Я конвертирую большой проект в Firemonkey, и у нас есть несколько пользовательских кнопок, которые не отображаются в форме. Я выделил проблему для очень простого проекта:
С приведенным ниже кодом как на мобильных устройствах, так и на настольных компьютерах (с использованием новых приложений по умолчанию в Delphi XE6) создание tTestButton1 работает нормально, но tTestButton2 не отображается в форме. Как это возможно?
type
tTestButton1 = class(TButton);
tTestButton2 = class(tTestButton1);
tMainForm = class(TForm)
private
fTestButton: TButton;
public
constructor Create(aOwner: TComponent); override;
end;
constructor tMainForm .Create(aOwner: TComponent);
begin
inherited;
// fTestButton := tTestButton1.Create(Self); // this works fine (used instead of next line)
fTestButton := tTestButton2.Create(Self); //this button does not show up
fTestButton.Text := 'Test';
fTestButton.Parent := Self;
fTestButton.Visible := True;
fTestButton.Position.X := 20;
fTestButton.Position.Y := 20;
end;
TButton
!! Так что, возможно, обходной путь заключается в том, что вы даете всем своим производным кнопкам одно и то же имя класса!! Ха-ха! - person David Heffernan   schedule 16.09.2014TButton
в порядке, но не внук? - person David Heffernan   schedule 16.09.2014ButtonStyle
в первом примере, но не во втором, где TestButton1Style не зарегистрирован. - person LU RD   schedule 16.09.2014