Einzelnen Beitrag anzeigen

jensw_2000
(Gast)

n/a Beiträge
 
#1

eingebettete DLL-Form, Scrollbar Problem

  Alt 5. Mai 2006, 09:18
Ich habe eine Anwendung eingebetteten Formularen (DLL basiert).
Diese funktioniert soweit zufriedenstellend, jedoch sind bisher alle Versuche Scrollbalken bei Größenänderung der Hauptanwendung darzustellen erfolglos geblieben.
Die DLL-Forms werden auf einem Panel der Hauptanwendung mit CreateParented dargestellt.

Zur Zeit versuche ich es auf folgenden Weg:
Ich sende im OnResize der Hauptanwendung eine Message an das eingebettete DLL Formular, die der Form die aktuelle Größe des "Patent-Panels" (PluginTarget) mitteilt.
Delphi-Quellcode:
SendMessage( AdsPlugins[CurrentPluginIndex].Plugin.PluginFormHandle,
             WM_MainAppResize,
             PluginTarget.Width,
             PluginTarget.Height );
Das DLL-Formular hat einen entsprechenden Eventhandler für die Message.

Delphi-Quellcode:
procedure TPluginForm.onWM_MsgAppResize(var message: TMessage);
begin
  // DLL Form positionieren und Größe an den "Parent-Panel anpassen"
  Align:=alNone;
  Top:=0;
  Left:=0;
  Height:=Message.lParam;
  Width:=Message.WParam;
  AutoScroll:=true;
  
  // alle Steuerelemente der DLL Form liegen auf einem Panel ("BgPanel")
  // dieser wird nun konfiguriert
  With BgPanel do
  begin
    Top:=0;
    Left:=0;
    Constraints.MinHeight:=680;
    Constraints.MinWidth:=850;
    Width:=ClientWidth;
    Height:=Clientheight;
  end;

end;
Funktioniert leider nicht. Die Größe der DLL-Form wird zwar angepasst und stimmt, aber wenn die Größe des "ParentPanels" die in den BgPanel.Contraints festgelegten Minimalablessungen unterschreitet zeigt die DLL-Form die Scrollballken nicht an, sondern schiebt sich über den "Bildrand".

Ich habe schon 100 andere Wege probiert und kapituliere

Unter anderem habe ich folgendes erfolglos getestet:
- Scrollbox auf der DLL-Form
- Scrollbox auf dem "Parent-Panel"
- AutoScroll in Hauptanwendung
- AutoScroll in DLL-Form
- Scrollbars in Hauptanwendung erzwingen mit ShowScrollBar(handle, SB_BOTH, true);
- Scrollbars in DLL-Form erzwingen mit ShowScrollBar(handle, SB_BOTH, true);
- diverse Varianten von Align und SetBounds

Ich bin ratlos.

Kann mit jemand erklären wie automatisch Scrollbars bekomme, wenn die Hauptanwendung kleiner ist als das eingebettete DLL-Formular ?



Schöne Grüße,
Jens
  Mit Zitat antworten Zitat