Einzelnen Beitrag anzeigen

Geri

Registriert seit: 23. Nov 2004
Ort: Feldkirch
72 Beiträge
 
Delphi 2005 Personal
 
#16

AW: falsche Anordnung von TPanels

  Alt 3. Jun 2025, 11:05
du könntest auch die height der panels auf 0 setzen und das visible auf true belassen. Den originalen wert kannst du dir irgendwo (z.b. tagfloat) merken um später die height wiederherzustellen. Die panels behalten dann ihre relative position bei.
Mit folgendem Code ergibt sich auch keine Besserung.

Delphi-Quellcode:
procedure TmDROMainForm.UpdateLayout_VHeight(aPortrait:Boolean);
begin

  try
    pnlClient.BeginUpdate;
    If aPortrait then
     begin
      pnlAxis01.Height:=60;
      pnlAxis11.Height:=60;
      pnlAxis21.Height:=60;
      mAxisItem[0].W.Parent:= pnlAxis01;
      mAxisItem[0].Divider.Parent:= pnlAxis01;
      mAxisItem[0].Buzzer.Parent:= pnlAxis01;

      mAxisItem[1].W.Parent:= pnlAxis11;
      mAxisItem[1].Divider.Parent:= pnlAxis11;
      mAxisItem[1].Buzzer.Parent:= pnlAxis11;

      mAxisItem[2].W.Parent:= pnlAxis21;
      mAxisItem[2].Divider.Parent:= pnlAxis21;
      mAxisItem[2].Buzzer.Parent:= pnlAxis21;
    end
    else
    begin
      // Landscape
      pnlAxis01.Height:=0;
      pnlAxis11.Height:=0;
      pnlAxis21.Height:=0;

      mAxisItem[0].W.Parent:= pnlAxis0;
      mAxisItem[0].Divider.Parent:= pnlAxis0;
      mAxisItem[0].Buzzer.Parent:= pnlAxis0;

      mAxisItem[1].W.Parent:= pnlAxis1;
      mAxisItem[1].Divider.Parent:= pnlAxis1;
      mAxisItem[1].Buzzer.Parent:= pnlAxis1;

      mAxisItem[2].W.Parent:= pnlAxis2;
      mAxisItem[2].Divider.Parent:= pnlAxis2;
      mAxisItem[2].Buzzer.Parent:= pnlAxis2;
    end;
   finally
     pnlClient.EndUpdate;
  end;
  // Layout und Style auffrischen
  pnlClient.Repaint;
end;
Gerhard

Geändert von Geri ( 3. Jun 2025 um 11:08 Uhr) Grund: Tippfehler im Code
  Mit Zitat antworten Zitat