Hier mein Problem :
Ich habe eine
dll Datei in der befindet sich ein normales TForm mit diversen Schaltflächen. Nun importiere ich dieses Formular aus der
dll Datei in mein Hauptprogramm. Dabei lege weise ich dem Formular ein TPanel als Parent zu um das ganze besser unter Kontrolle zu haben. Das funktioniert so weit auch ohne Probleme.
Hier ein kleiner Code Ausschnitt(nur falls dort schon Fehler stecken)
Delphi-Quellcode:
var
MainWnd : hwnd;
...
dlldata.dllhandle := LoadLibrary(pchar(ExtractFileDir(Application.ExeName)+'\Objects\'+ObjectFile));
if dlldata.dllhandle <>0 then
begin
@dlldata.StartMainWnd := GetProcAddress(dlldata.dllhandle,'StartMainWnd');
@dlldata.StartMainWndEx := GetProcAddress(dlldata.dllhandle,'StartMainWndEx');
end;
MainWnd:=dlldata.StartMainWndEx(BackgroundPanel.Handle);
Nun habe ich aber folgende Probleme.
1. Ich möchte das das Formular der
dll Datei Transparent angezeigt wird. Es sollen also nur die Schaltflächen sichtbar sein. Der Rest soll so Transparent sein das der Hintergrund des HauptFormulars der Anwendung angezeigt wird. Das Problem ist das sämtliche gesetzte Eigenschaften wie AlphaBlend,Trasparenz oder Canvas.Brush.Style:=bsnone nach dem importieren in die Hauptanwendung keine Wirkung zeigen.
2. Das Zweite problem ist das das erste importierte Fenster sofort verschwindet wenn ich den Code nochmals mit der selben
dll Datei ausführe. Es ist jedoch verdammt wichtig das es irgendwie funktioniert das ich zwei mal die selbe
dll lade und die Formulare unabhängig voneinander importieren kann. Nur wie mache ich das?