Einzelnen Beitrag anzeigen

Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#1

JvPanel zur Laufzeit skalieren

  Alt 18. Dez 2011, 14:11
Hallo und einen schönen Sonntag zusammen,

ich habe ein Form mit mehreren gleichgroßen JvPanel Komponenten. Ich möchte diese zur Laufzeit skalieren können. Das geht auch soweit ohne Problem. Jetzt kommt das was ich bislang noch nicht hinbekommen habe. Ändere ich die Größe von z.B. Panel1, sollen alle anderen Panels ebenfalls gleichmäßig mit "Größer" oder "Kleiner" werden.
Die Panels werden zur Laufzeit auch erst erstellt. Das heißt, ich muss der Methode eine Prozedure zuweisen.

Delphi-Quellcode:
private
  //Methoden zu JvPanel
  procedure PanelSetWidth(Sender: TObject; ChangedSize: Integer);
  procedure PanelSetHeight(Sender: TObject; ChangedSize: Integer);

...
//Erstellen der Panels zu Laufzeit
  Panels[i] := TJvPanel.Create(Self);
  with Panels[i] do
    begin
      Name := 'p'+IntToStr(i);;
      Parent := ParentPan;
      Align := alClient;
      Height := KPanelHeight;
      Width := KPanelWidth;
      Caption := IntToStr(i);
      Sizeable := True;
      OnChangedWidth := PanelSetWidth;
      OnChangedHeigth := PanelSetHeigth;
      TabOrder := i;
    end;
Das Problem ist, ich kann das entsprechenden Panel skalieren, allerdings wird die Methode OnChangeWidth und OnChangeHeigth nie aufgerufen. Selbst wenn ich eine Komponente zur Entwurfszeit auf die Form legen und z.B. ein ShowMessage('Größe geändert'); in die Methode eintrage. Es passiert nichts. Kennt jemand vieleicht das Problem?

Gruß Jens
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat