Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi LMD IDE-Tools über mehrere Formulare (https://www.delphipraxis.net/115685-lmd-ide-tools-ueber-mehrere-formulare.html)

SvB 16. Jun 2008 11:24


LMD IDE-Tools über mehrere Formulare
 
Hallo,

ich benutze die LMD IDE-Tools und baue mir gerade eine spezielle IDE für ein Projekt. Jetzt habe ich die Situation, dass ich mehrere Formulare habe und einzelne Komponenten zwischen den Formularen verlinke. Das Funktioniert auch und das speichern klappt auch. Das Problem ist nun, dass beim Laden der Formulare z.B. eine Komponente von Form1 verlinkt ist auf eine Komponente von Form2. Form2 ist aber noch nicht geladen und somit ist meine Verlinkung verschwunden.

Da die IDE-Tools das Streaming System der VCL benutzen und entsprechend das ganze in Delphi selbst ja auch funktioniert möchte ich hiermit die Frage in die Runde stellen, ob jemand weiß, wie das intern in Delphi funktioniert?????

Vielen Dank schon mal.

Grüße Sven

SvB 19. Jun 2008 13:26

Re: LMD IDE-Tools über mehrere Formulare
 
Hi, hat hierzu niemand eine Info für mich. Für jeden noch so kleinen Happen wäre ich sehr dankbar.

Grüße Sven

NickelM 29. Jun 2008 16:35

Re: LMD IDE-Tools über mehrere Formulare
 
Und wenn du die Verlinkung in einen array lädst???
und beim Form2.Create weist du alle zu. Das wäre meine einfache Idee.

Vieleicht hilft dir das weiter.

SvB 30. Jun 2008 09:35

Re: LMD IDE-Tools über mehrere Formulare
 
Das wäre ein Versuch Wert. Beim Laden eines Formulares alles das zwischenspeichern, wass er nicht kennt und später wieder zuweisen.
Ich probiere es.

Danke, Sven

SvB 20. Jul 2008 12:36

Re: LMD IDE-Tools über mehrere Formulare
 
Hi, nachdem ich die classes.pas von unten nach oben gedebugged habe, mir die Lazarus-IDE angesehen habe (Quellcode - hat mir aber nicht viel geholfen) bin ich dann langsam dem Rätsel auf die Spur gekommen.
Es gibt zwei Möglichkeiten:

1. RegisterFindGlobalComponentProc: Damit kann ich eine eigene Funktion registrieren, mit der ich dann die nicht aufgelösten Eigenschaften selbst behandeln kann und z.B. das zweite Formular nachladen kann. Die Funktion wird dann mit UnregisterFindGlobalComponentProc wieder deregistriert.

2. Das Ereignis OnFindComponentInstance von TReader. Ich habe es selbst in die LMD Sourcen eingebaut, da genau dieses nicht mit eingebaut war. Über eine eigene Routine lade ich dann das fehlende Formular nach, suche die gelinkte Komponente und gebe die Instanz weiter. Es gibt keine Probleme mehr.

Grüße Sven


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:29 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz