Udo - So 03.11.02 04:25
Titel: Formular aus DLL an das Hauptformular der Anwendung binden ?
Hallo zusammen,
meine ersten Gehversuche mit COM sind zwar schon von Erfolg gekrönt, aber ich habe immer noch ein paar Schwierigkeiten. :twisted:
Ich laß mir aus einer COM-Bibliothek ein Formular zurückgeben und möchte dieses an das Hauptformular meiner Anwendung binden (z.B. dllformular.parent := Hauptformular). Allerdings haut das nicht so ganz hin. Wizigerweise sehe ich zwar, daß im Hauptformular etwas passiert (u. a. werden die Scrollleisten angezeigt, wahrscheinlich deshalb, weil das DLL-Formular ein wenig größer als das Hauptformular ist), allerdings sehe ich das eigentliche DLL-Formular nicht in meinem Haupfenster.
Fürs bessere Verständnis hier der Code (lasst Euch von dem Befehl "var_to_object()" nicht stören, er stammt aus einem Zusatzmodul, welches ich installiert habe):
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| procedure TForm1.Item1Click(Sender: TObject); var server: variant; enviroment : TForm; begin server := createOleObject('filemanager.formserver'); enviroment:= TForm(var_to_object(server.getenviroment)); //hier wird die DLL-Form geholt und ans Hauptprogramm übergeben enviroment.Hide; //enviroment.ParentWindow := form1.Handle; enviroment.Parent := form1; enviroment.Height := 100; enviroment.Color := clwhite; enviroment.Align := alclient; enviroment.Parent := form1; enviroment.show; end; |
Mit dem auskommentierten Befehl "//enviroment.ParentWindow := form1. handle" krieg ich zwar das Formular zu Gesicht, allerdings reagiert es nicht mehr auf die jeweiligen Eigenschaften wie "enviroment.align := alclient;". Andere Eigenschaften dagegen (wie z.B. die Farbe) kann ich wunderbar einstellen. Geh ich dagegen den Weg über "parent" passiert so gut wie gar nix. :(
Kann mir jemand hierbei helfen und mir vielleicht einen Lösungsweg zeigen ?
mfg + Danke
Udo