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
 
St.Gro

Registriert seit: 21. Dez 2004
Ort: Duisburg
13 Beiträge
 
Delphi 7 Enterprise
 
#18

Re: Wie Panel in dll ablegen und bei bedarf laden

  Alt 30. Dez 2004, 00:25
Hallo!

Zitat:
Das Panel wird nicht erstellt (Bekomme ne Meldung das kein Parent an das Plugin übergeben wurde)
Du brauchst noch:

Code:
NewPanel.parent := self;
NewPanel.name := 'Panel1';
Zitat:
eigener Taskbutton in der Taskleiste für das Plugin der aber störend ist
Verschwindet damit:

Code:
form.borderstyle := bsNone;
Und du musst das Package später freigeben, nicht unmittelbar nach der Erstellung.
Bei deinem Code läuft es in einem durch:

Code:
try
  <Erstellung...>
finally
  UnloadPackage(phm);
end
Kommentier die Zeile UnloadPackage mal aus..Setz sie z.B. im onClose vom Formular wieder ein.

Zitat:
Im Panel wurde also nur ein Teil der Form angezeigt
Das ist vermutlich wahr..alClient ist natürlich blödsinn, wenn du das Formular in ein Panel "hineinerstellst", passt es sich in der Größe dem Panel an und es erscheinen natürlich keine Scrollbars.
Erstelle es statt dessen in eine TScrollBox. Blöderweise musst du hierfür noch nach der Erstellung die Höhe des Scrollbars dem erstellten Formular anpassen, in etwa so wird es vermutlich funktionieren:

Code:
procedure LoadMe(Handle: hwnd; var fHeight: integer);
begin
  fmTest:=TfmTest.CreateParented(Handle);
  fmTest.Align := alNone;
  fmTest.SetBounds(10,10,400,400);
  fHeight := fmTest.top + fmTest.height;
...
entsprechend beim Aufruf:

Code:
procedure TForm1.LoadPlugin(PluginPath: String);
var phm: HModule;
    LoadP: procedure (Handle: hwnd; var fHeight: integer);
    NewScrollBox: TScrollBox;
    fHeight: integer;
begin
  phm:=LoadPackage(PluginPath);
  If phm <> 0 Then
  try
    @LoadP:=GetProcAddress(phm, 'LoadMe');
    If Assigned(LoadP) Then
    begin
      NewScrollBox:=TScrollBox.Create(Form1);
      NewScrollBox.parent := self;
      NewScrollBox.name := 'ScrollBox1';
      NewScrollBox.Align:=alTop;
      NewScrollBox.Height:=100;
      LoadP(NewScrollBox.Handle, fHeight);
      NewScrollBox.VertScrollBar.Range := fHeight;
...

Sollte deine Probleme alle abdecken, ich gehe nun ins Bett. Vielleicht dann bis später,

Steffen
Stress hat man nicht, Stress macht man sich
  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 14:09 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