Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#4

AW: Komponenten Editor, (Teil 2)

  Alt 24. Okt 2012, 21:51
Zitat von Mavarik:
Hi Frank

Und haste ne Idee? Wie erzeuge ne Komponente "für" den Objectinspector?

Grüsse
Wie gesagt, es kommt ja erstmal drauf an, was gemacht werden soll.

Wenn dein Panel wie ein "normales" Panel sein soll, also alle erzeugten Komponenten auch normal behandelt werden sollen, dann hat es bei mir immer gereicht, wenn ich die Komponenten einfach ganz normal erzeugt hatte.
Also Owner = Panel.Owner (die Form) und Parent = dein Panel .

z.B. folgender Code erstellt jetzt einfach mal testweise ein Panel und darin ein paar Buttons.
Das ist jetzt zwar nur schnell mal in den Code meines HintManagers gehackt, weil der halt verfügbar war und es ist FMX und nicht VCL, aber dieses Verhalten ist überall gleich.
Delphi-Quellcode:
procedure THintManagerLink.ExecuteVerb(Index: Integer);
var
  X: TPanel;
begin
  case Index of
    0: ...;
    1: //raise EProgrammerNotFound.Create('Nicht implementiert.');
    begin
      X := TPanel.Create(Component.Owner);
      with X do begin
        Name := 'Panel12346';
        Parent := Component.Owner as TFmxObject;
      end;
      with TButton.Create(Component.Owner) do begin
        Position.X := Position.X + 20;
        Position.Y := Position.Y + 20;
        Name := 'dsadsa';
        Parent := X;
      end;
      with TButton.Create(Component.Owner) do begin
        Position.X := Position.X + 40;
        Position.Y := Position.Y + 40;
        Name := 'gfdsgfd';
        Parent := X;
      end;
      with TButton.Create(Component.Owner) do begin
        Position.X := Position.X + 60;
        Position.Y := Position.Y + 60;
        Name := 'efklj';
        Parent := X;
      end;
    end;
  end;
end;
(Component ist ein HintManager, welcher auf der Form liegt, also Component.Owner ist erstmal nur die Form selber)



Wird die Kompoente nur in deinem Panel "manuel" erstellt und jeweils im Constructor beim Laden wieder selbst erstellt/geladen und ist sie nur über ein Published-Property sichtbar, dann kann man über SetSubComponent dafür sorgen, daß Delphi die Eigenschaften dieser Komponente läd/speichert.
siehe z.B. die ColorMap der TActionMainMenuBar
Miniaturansicht angehängter Grafiken
unbenannt.png  
$2B or not $2B

Geändert von himitsu (24. Okt 2012 um 22:02 Uhr)
  Mit Zitat antworten Zitat