Componenten zur Laufzeit

Rund um die LCL und andere Komponenten
Antworten
khh
Beiträge: 489
Registriert: Sa 5. Apr 2008, 09:37
OS, Lazarus, FPC: Win Vista,Win 7 (L 0.9.29 FPC 2.4.1)
CPU-Target: 32Bit /64 Bit
Wohnort: Nähe Freiburg i.Br.

Componenten zur Laufzeit

Beitrag von khh »

Hallo zusammen,
ich prüfe in einer neuen Basis-Klasse diverse Einstellungen.
Diese Klasse wird vom Form main im constructor verwendet.
Das funktioniert auch einwandfrei.
In Abhängigkeit dieser Einstellungen sollen diverse Componenten zur Laufzeit auf dem Form main erstellt werden.
Dies möchte ich ebenfalls in dieser Klasse erledigen.
Wie weise ich den diversen Komponenten die erstellt werden sollen, nun parent zu?
Geht das so überhaupt, oder denke ich zu sehr um 3 ecken?
gehts eventuell auch einfacher ?
Gibts vieleicht irgendwo ein Beispiel?
Danke für eure Info

Gruss KH

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

Das geht schon und es recht einfach also du defnierst die eine Variable von den Typ den du erstellen möchtest.

Dann hast du zu griff auf die Parent Eigenschaft
z.b. so:

Code: Alles auswählen

procedure CreateCompo;
var
Button:TButton
begin
  Button:=TButton.Create(self)
  Button.parent:=self
  ..
end;
 
oder so 
  // Kann sein das ich mich hier verschrieben habe
  wiht TButton.Create(self) do begin
    parent:=self 
  end;
MFG
Michael Springwald

EugenE
Beiträge: 440
Registriert: So 10. Dez 2006, 14:59
OS, Lazarus, FPC: MacOSX Lion 10.7 (L 0.9.31 FPC 2.7.1)
CPU-Target: 64Bit
Kontaktdaten:

Beitrag von EugenE »

du übergibts an die basis klasse nen TForm und dann mit dem TForm machste dann den rest? oder habe ich da jetzt was durch einander gebracht?^^

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

Ja das währe eine Möglichkeit. Die Komponenten sollten ja jemanden gehören. Es muss ja nicht den Form gehören. Die könnten ja auch der Parent Komponente gehören.

Es gibt bestimmt noch andere Wege das zu lösen, aber so ist es am einfachsten.
Du könntest auch noch die Unit forms einbinden und dann direckt auf Application.Mainfrom zurückgreifen.
MFG
Michael Springwald

khh
Beiträge: 489
Registriert: Sa 5. Apr 2008, 09:37
OS, Lazarus, FPC: Win Vista,Win 7 (L 0.9.29 FPC 2.4.1)
CPU-Target: 32Bit /64 Bit
Wohnort: Nähe Freiburg i.Br.

Beitrag von khh »

ich danke euch

Gruss KH

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

Dann hatte ich deine Frage ja richtig verstanden. Das freut mich. :lol:
MFG
Michael Springwald

Antworten