AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Wie Panel in dll ablegen und bei bedarf laden

Ein Thema von jonny · begonnen am 15. Dez 2004 · letzter Beitrag vom 12. Jan 2005
 
jonny

Registriert seit: 15. Dez 2003
235 Beiträge
 
Delphi 7 Enterprise
 
#17

Re: Wie Panel in dll ablegen und bei bedarf laden

  Alt 29. Dez 2004, 22:14
So habe nun eine Procedure geschrieben die das Laden des Plugins übernehmen soll

hier der Quellcode:

Code:
procedure TForm1.LoadPlugin(PluginPath: String);
var phm: HModule;
    LoadP: procedure (Handle: hwnd);
    NewPanel: TPanel;
begin
  phm:=LoadPackage(PluginPath);
  If phm <> 0 Then
  try
    @LoadP:=GetProcAddress(phm, 'LoadMe');
    If Assigned(LoadP) Then
    begin
      NewPanel:=TPanel.Create(Form1);
      NewPanel.Align:=alTop;
      NewPanel.BevelInner:=bvNone;
      NewPanel.BevelOuter:=bvNone;
      NewPanel.Height:=100;
      NewPanel.Visible:=True;
      LoadP(NewPanel.Handle);
    end
    else
    begin
      ShowMessage ('"LoadMe"-Prozedur nicht gefunden');
    end
  finally
    UnloadPackage(phm);
  end
  else
    ShowMessage ('Plugin nicht gefunden');
end;
die Plugin-Unit sieht so aus:

Code:
...
procedure LoadMe(Handle: hwnd);
begin
  Form1:=TForm1.CreateParented(Handle);
  Form1.Align:=alClient;
  Form1.Show;
end;

procedure GetMeFree;
begin
  Form1.Release;
end;


exports
  LoadMe,
  GetMeFree;
end.
- So habe folgende Probleme Das Panel wird nicht erstellt (Bekomme ne Meldung das kein Parent an das Plugin übergeben wurde)
- erstelle ich zur entwurfzeit ein Panel und weise dem Plugin die als Paren zu so wird das Plugin dennoch nicht geladen (ausser einmal hats geklappt)
- Bei dem einen Mal wo es funktioniert hatte zeigte es sich aber nicht so wie erwünscht:
--eigener Taskbutton in der Taskleiste für das Plugin der aber störend ist
--da die Eigenschaft "Align" des Fensters auf "alClient" stand so bozog sich diese nicht auf das Panel sondern auf den Ganzen Bildschirm (Im Panel wurde also nur ein Teil der Form angezeigt)
--Jegliche Funktion der Anwendung war verschwunden noch nicht mal das beenden der Anwendung war möglich.

Kann mir jemand bei dem Problem helfen?

Die Anwendung die ich erstellen möcht soll so eine Art Sidebar werden wie die SmartBarXP oder die DesktopSidebar, wenn jemand die Anwendungen kennt so weiss er bestimmt was ich mit den Panels meine. Wenn jemand die Anwendungen nicht kennt so bin ich bereit ein Screenshot hier zu posten.

Danke schon mal für bisherige und folgende Hilfe.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:22 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz