AGB  ·  Datenschutz  ·  Impressum  







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

falsche Anordnung von TPanels

Ein Thema von Geri · begonnen am 3. Jun 2025 · letzter Beitrag vom 13. Jun 2025
Antwort Antwort
Seite 4 von 5   « Erste     234 5      
Geri

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

AW: falsche Anordnung von TPanels

  Alt 3. Jun 2025, 16:20
Beim komplexeren Programm funktioniert es noch nicht.
Miniaturansicht angehängter Grafiken
objektstrukturv2.jpg  
Gerhard
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.763 Beiträge
 
Delphi 12 Athens
 
#32

AW: falsche Anordnung von TPanels

  Alt 3. Jun 2025, 16:25
Die Panels sollten direkt unter dem Layout liegen. Der pnlClient als Zwischenschicht macht es wieder kaputt.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Geri

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

AW: falsche Anordnung von TPanels

  Alt 3. Jun 2025, 20:54
Guten Abend

Anbei das abgespeckte Projekt mit dem Problem.
Bin schon sehr gespannt, was es sein wird.

@Uwe, Layout-so wie du meinstest hatte auch keine Besserung gebracht.
Angehängte Dateien
Dateityp: zip TestPanelOrderDRO-V0_6.zip (4,48 MB, 4x aufgerufen)
Gerhard
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.763 Beiträge
 
Delphi 12 Athens
 
#34

AW: falsche Anordnung von TPanels

  Alt 3. Jun 2025, 23:59
Nun, die Panel müssen natürlich schon zur Designzeit in der richtigen Reihenfolge angeordnet sein. Zur Laufzeit werden die schmalen Panels ja nur verborgen, die Reihenfolge bleibt aber unverändert.

Die Reihenfolge der Panels muss also im Designer schon so aussehen (sortiert nach Position.Y aufsteigend): pnlAxis0, pnlAxis01, pnlAxis1, pnlAxis11, pnlAxis2, pnlAxis21
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Geri

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

AW: falsche Anordnung von TPanels

  Alt 4. Jun 2025, 06:50
Guten Morgen

Die Reihenfolge der Panels muss also im Designer schon so aussehen (sortiert nach Position.Y aufsteigend): pnlAxis0, pnlAxis01, pnlAxis1, pnlAxis11, pnlAxis2, pnlAxis21
Das ist meiner Ansicht doch bereits so,

Hoffe, ich übersehe nicht ganz etwas Elementares
Miniaturansicht angehängter Grafiken
anordnungpanels.png  
Gerhard
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.763 Beiträge
 
Delphi 12 Athens
 
#36

AW: falsche Anordnung von TPanels

  Alt 4. Jun 2025, 08:50
Ich habe mal meine Änderungen angehängt. So funktioniert es zumindest hier: https://app.screencast.com/JrwUBgjqBV3ve

Um die schmalen Panels voneinander unterscheiden zu können habe ich bei den Buttons eine unterschiedliche Beschriftung gewählt.
Angehängte Dateien
Dateityp: zip TestPanelOrderDRO-V0_6_UR.zip (4,38 MB, 3x aufgerufen)
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Geri

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

AW: falsche Anordnung von TPanels

  Alt 4. Jun 2025, 11:42
Vielen Dank allen und insbesondere dir Uwe für deine große Mühe!🤗

Nachdem ich den Tab order geändert hatte und die Elemente anschließend entsprechend verschoben habe, funktioniert es nun unter Windows und Android.

Es zeigt sich wieder mal, dass es immer wieder die einfachen Dinge und die Grundlagen sind😀

Obwohl mich ChatGPT sonst sehr hilfreich dünkt ist es trotzdem sehr interessant, welche Vorschläge ich zuvor damit bekam. Auf das Naheliegende ist es auch nicht gekommen.
Gerhard
  Mit Zitat antworten Zitat
Geri

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

AW: falsche Anordnung von TPanels

  Alt 10. Jun 2025, 15:47
Hallo zusammen

An einem Punkt hänge ich doch noch.
Wenn ich von Landscape nach Portrait und anschließend retour schalte, dann werden Elemente, obwohl die z-Order Reihenfolge passt, nicht in der richtigen Reihenfolge dargestellt.

Step 1: richtige Darstellung
Step 2: nach Umschalten Landscape - Portrait - Landscape => falsche Darstellung und andere Reihenfolge
Step 3: Reihenfolge wie am Anfang aber falsche Darstellung

Vielleicht habt ihr hierzu noch einen Tipp.
Anbei das Programm und drei Screenshots mit den Ergebnissen.

Beste Grüße

Gerhard
Miniaturansicht angehängter Grafiken
step1.jpg   step2.jpg   step3.jpg  
Angehängte Dateien
Dateityp: zip TestButtonAlignV0_1.zip (141,6 KB, 2x aufgerufen)
Gerhard

Geändert von Geri (10. Jun 2025 um 15:50 Uhr) Grund: Text etwas ausgeführt
  Mit Zitat antworten Zitat
Geri

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

AW: falsche Anordnung von TPanels

  Alt 13. Jun 2025, 09:43
Hallo zusammen

Ich habe die richtige Darstellung immer noch nicht hinbekommen.
  1. Die Panels sind direkt unter dem Layout angeordnet
  2. Die Reihenfolge der Elemente (z-Order) in de Children und Cotnrols-Liste ist meiner Ansicht i.O
  3. Egal ob ich ein Stylebook oder keines Verwende, die Buttons werden immer falsch angeordnet
  4. Margins und Padding bei allen auf 0
  5. Hitttest bei allen auf true
  6. Opacity bei allen auf 0
Delphi-Quellcode:
procedure SwapControls(Control1, Control2: TControl);
var
  Parent: TFmxObject;
  Index1, Index2: Integer;
begin
  if (Control1 = nil) or (Control2 = nil) then Exit;
  if Control1.Parent <> Control2.Parent then Exit; // Nur innerhalb desselben Elternteils

  Parent := Control1.Parent;
  Index1 := Parent.Children.IndexOf(Control1);
  Index2 := Parent.Children.IndexOf(Control2);

  if (Index1 < 0) or (Index2 < 0) then Exit;

  // Reihenfolge tauschen
  Parent.RemoveObject(Control1);
  Parent.InsertObject(Index2, Control1);

  Parent.RemoveObject(Control2);
  Parent.InsertObject(Index1, Control2);
end;
Wenn ich SwapControls aufrufe, dann wird die Chhildren-Liste vom zugrundeliegenden Panel geändert, auf die Anzeigereihenfolge hat es aber keinen Einfluss

   SwapControls(btnAxisw0, btnAxisDiv0);

Hat einer von euch vielleicht noch eine Idee?
Gerhard
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.763 Beiträge
 
Delphi 12 Athens
 
#40

AW: falsche Anordnung von TPanels

  Alt 13. Jun 2025, 10:07
Die Anzeigeposition wird durch den Top-Wert (Position.Y) bestimmt. Beim sichtbar machen bzw. setzen der Height auf einen höheren Wert ist aber die Reihenfolge der Controls wichtig, da diese das Align beeinflusst.

Beispiel: Panel1, Panel2, Panel2 sind untereinander angeordnet und liegen auch in dieser Control-Reihenfolge vor. Nun wird Panel2.Height auf 0 gesetzt. Damit bekommt Panel3 dieselbe Top-Position wie Panel2. Beim Align werden die Panels von 1 bis 3 angeordnet und somit liegt Panel2 immer noch vor Panel3.

Wäre die Reihenfolge Panel1, Panel3, Panel2 dann verschiebt sich Panel3 vor Panel2, sobald Panel2 eine Height von 0 bekommt. Ab dann kann es ohne weitere Maßnahmen nicht mehr heilen.

Also, Vorrang hat die Top-Position, aber bei gleichen Werten wird die Control-Order beachtet.

Dein ursprüngliches Beispiel sah kein Vertauschen der Controls vor. Daher wurde das da auch nicht berücksichtigt.

Das Swap-Controls muss also neben der Control-Order auch die Top-Position vertauschen damit das wieder richtig aussieht. Das ganze sollte dann auch in ein DisableAlign/EnableAlign gekapselt werden.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 5   « Erste     234 5      


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 08:00 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