drop component at designtime : parent ermitteln

Rund um die LCL und andere Komponenten
Antworten
arturx
Beiträge: 140
Registriert: Fr 21. Nov 2008, 11:29
OS, Lazarus, FPC: Winux (L 1.0.6.xy FPC 2.6.z)
CPU-Target: 32/64Bit

drop component at designtime : parent ermitteln

Beitrag von arturx »

Ein control (z.B. tbutton) wird auf der Komponentenleiste ausgewählt und dann auf ein parent wincontrol (z.B. groupbox) gelegt.
Wie kann man während (bzw.anschließend) des Ablegens aus dem Control heraus ermitteln,
wer der Parent (also in diesem Beispiel die groupbox) ist ?
Ich brauche diese Info, um bestimmte Eigenschaften des parent als default Vorgaben für das Control zu nutzen.
In button.create geht es nicht ohne weiteres, da ist der parent=nil.

Wer weiß wie es geht oder wo man evt. nachschauen kann ?

Scotty
Beiträge: 768
Registriert: Mo 4. Mai 2009, 13:24
OS, Lazarus, FPC: Arch Linux, Lazarus 1.3 r44426M FPC 2.6.4
CPU-Target: x86_64-linux-qt/gtk2
Kontaktdaten:

Re: drop component at designtime : parent ermitteln

Beitrag von Scotty »

Im Event OnEndDrag() werden Sender und Target als TObject übergeben.

arturx
Beiträge: 140
Registriert: Fr 21. Nov 2008, 11:29
OS, Lazarus, FPC: Winux (L 1.0.6.xy FPC 2.6.z)
CPU-Target: 32/64Bit

Re: drop component at designtime : parent ermitteln

Beitrag von arturx »

Scotty hat geschrieben:Im Event OnEndDrag() werden Sender und Target als TObject übergeben.
Ich habs versucht (natürlich die Original procedures überschrieben, mich interessiert ja die designtime) .
Ich habs sowohl für den parent als auch für die abgelegte komponente probiert :

Code: Alles auswählen

Procedure DragDrop(Source: TObject; X,Y : Integer);   override;
procedure DoEndDrag(Target: TObject; X,Y: Integer);  override;
Die Idee war verlockend. Leider wird weder das eine noch das andere zur designtime aufgerufen....
Gibt es noch weitere Ideen ?

Socke
Lazarusforum e. V.
Beiträge: 3178
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: drop component at designtime : parent ermitteln

Beitrag von Socke »

arturx hat geschrieben:Die Idee war verlockend. Leider wird weder das eine noch das andere zur designtime aufgerufen....
Gibt es noch weitere Ideen ?
Hast du die entsprechende Komponente auch als Package in die IDE gelinkt? Mit reinem Quelltext kann die nämlich nichts anfangen.
Sollen die Funktionen nur zur Designtime etwas tun (bzw. zur Laufzeit etwas anderes tun), solltest du noch auf
csDesigning in ComponentState
testen.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

arturx
Beiträge: 140
Registriert: Fr 21. Nov 2008, 11:29
OS, Lazarus, FPC: Winux (L 1.0.6.xy FPC 2.6.z)
CPU-Target: 32/64Bit

Re: drop component at designtime : parent ermitteln

Beitrag von arturx »

Hallo Socke : Die Komponente mit ihrem Package war gelinkt - und trotzdem....

Mittlerweile habe ich die Lösung gefunden :

Code: Alles auswählen

procedure SetParent(NewParent: TWinControl); override;
 
procedure tmycomponent.SetParent(NewParent: TWinControl);
begin
  inherited SetParent(NewParent);
// If componentstate   ...usw. usw.  .....
end;
Innerhalb dieser procedure kann ich prächtig alles checken und erledigen.
Wie so oft liegt die Lösung einfach zu nahe.
Velen Dank an alle, die Ideen beigesteuert haben !

Antworten