Sto convertendo un progetto di grandi dimensioni in Firemonkey e abbiamo alcuni pulsanti personalizzati, che non vengono visualizzati nel modulo. Ho isolato il problema in un progetto molto semplice:Pulsante personalizzato ereditato da TButton non mostra
Con il codice seguente, sia su dispositivo mobile che desktop (utilizzando le nuove applicazioni predefinite in Delphi XE6), la creazione di tTestButton1 funziona correttamente, ma tTestButton2 non viene visualizzato nel modulo. Come è possibile?
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;
+1 eccellente domanda, meraviglioso codice di ripro, se solo fossero tutti così buoni –
Può riprodurre lo stesso in Delphi XE3. – TLama
E XE7. Sembra un bug FMX, anche se potrebbe essere difficile credere che potrebbe essere il caso ... –