AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Ursprüngliche Reihenfolge nach Änderungen von "Visible" ?
Thema durchsuchen
Ansicht
Themen-Optionen

Ursprüngliche Reihenfolge nach Änderungen von "Visible" ?

Ein Thema von Deep-Sea · begonnen am 29. Okt 2007 · letzter Beitrag vom 1. Nov 2007
Antwort Antwort
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#1

Ursprüngliche Reihenfolge nach Änderungen von "Visible&

  Alt 29. Okt 2007, 14:36
Hallöchen ...
Ich hab da mal ein kleines Problem. Und zwar folgendes als Beispiel:

Man nehme zB. 3 Panels und richte sie auf einem beliebigen Parent mit "Align = alTop" aus. Je nach Reihenfolge der Änderungen von "Visible" der einzelnen Panels ergibt sich eine falsche Reihenfolge, so dass das 2. Panel zb. unter dem 3. liegt. Und genau das möchte ich nicht. Ich möchte die ursprüngliche Reihenfolge beibehalten.

Leider fällt mir gerade (wohl aufgrund von Kopfschmerzen ^^) nichts ein, wie ich es schön und einfach lösen könnte ... aber vlt. wisst ihr was. (PS: Irgendwelche extrem rustikalen Methoden fallen mir schon selber ein, aber die müssen ja nicht sein)
Chris
  Mit Zitat antworten Zitat
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Ursprüngliche Reihenfolge nach Änderungen von "Visi

  Alt 30. Okt 2007, 22:42
Hi,

besitzen alle Controls das gleiche Align, wie bei dir Top, so ligen diese in der Reihenfolge der Erstellung (Einblendung) in Reihenfolge von oben nach unten. Sind alle Controls visible = False, so passiert folgendes. Das erste Control für Visible liegt oben, das nächste an zweiter Stelle usw.

Wenn du jetzt eine definierte Reihenfolge haben möchtest, so mache beim Einblenden eines weiteren Controls folgendes. Alle Controls Visible = False, dann alle sichtbaren Controls in der Reihenfolge von Oben nach unten Visible True.

Ist also Control2 visible = True und Control1 Visible = False und Control1 soll eingeblendet und über Control2 angezeigt werden, dann wie folgt:

Delphi-Quellcode:
  Control2.Visible := False;
  Control1.Visible := True;
  Control2.Visible := True;
Jetzt stimmt die Reihenfolge wieder.

Gruß oki
42
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#3

Re: Ursprüngliche Reihenfolge nach Änderungen von "Visi

  Alt 31. Okt 2007, 08:02
Leider führt das genau zu dem, was ich nicht will:
Nachdem das oberste (1.) Panel unsichtbar ist, rutscht das 2. nach oben. Beide haben nun den gleichen Top-Wert. Wenn ich nun erst das 1. Panel und dann das 2. sichtbar mache, ist das 2. über dem ersten. Also wenn, müsste ich mich von unten nach oben arbeiten. Aber auch nur, wenn alle den gleichen Top-Wert hätten. Mhh...

Ich denke ich löse es wohl doch anders, aber trotzdem danke
Chris
  Mit Zitat antworten Zitat
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#4

Re: Ursprüngliche Reihenfolge nach Änderungen von "Visi

  Alt 31. Okt 2007, 19:43
Zitat von Deep-Sea:
Leider führt das genau zu dem, was ich nicht will:
Nachdem das oberste (1.) Panel unsichtbar ist, rutscht das 2. nach oben. Beide haben nun den gleichen Top-Wert. Wenn ich nun erst das 1. Panel und dann das 2. sichtbar mache, ist das 2. über dem ersten. Also wenn, müsste ich mich von unten nach oben arbeiten.
Naja, dann halt anders herum. Das Ergebnis zählt.

Zitat von Deep-Sea:
Aber auch nur, wenn alle den gleichen Top-Wert hätten. Mhh...
Also ich kenne bei Align nur einen Top-Wert, und der ist alTop. Welche weiteren Werte für Top verwendest du denn noch? Würd mich echt mal interessieren

Gruß oki
42
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#5

Re: Ursprüngliche Reihenfolge nach Änderungen von "Visi

  Alt 1. Nov 2007, 07:14
Zitat von oki:
Zitat von Deep-Sea:
Aber auch nur, wenn alle den gleichen Top-Wert hätten. Mhh...
Also ich kenne bei Align nur einen Top-Wert, und der ist alTop. Welche weiteren Werte für Top verwendest du denn noch? Würd mich echt mal interessieren

Gruß oki
Ich meine die TControl-Eigenschaft Top ^^ denn anhand von Top und Height regelt Delphi die Reihenfolge (bei alTop und alBottom zumindest)
Chris
  Mit Zitat antworten Zitat
Progman

Registriert seit: 31. Aug 2007
Ort: 99974 MHL
695 Beiträge
 
Delphi 10.1 Berlin Starter
 
#6

Re: Ursprüngliche Reihenfolge nach Änderungen von "Visi

  Alt 1. Nov 2007, 07:18
Für diese Problematik sollte man Align auf alNone stellen und die Position "per Hand" festlegen.
Karl-Heinz
Populanten von Domizilen mit fragiler, transparenter Aussenstruktur sollten sich von der Translation von gegen Deformierung resistenter Materie distanzieren!
(Wer im Glashaus sitzt sollte nicht mit Steinen werfen)
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#7

Re: Ursprüngliche Reihenfolge nach Änderungen von "Visi

  Alt 1. Nov 2007, 07:27
Zitat von Progman:
Für diese Problematik sollte man Align auf alNone stellen und die Position "per Hand" festlegen.
Viele Wege führen nach Rom *gg*

Hab's nun so gelöst (bevor noch wer Fragt xD):
Es gibt mehrere Zustände, einer ist der Grundzustand. Ich merke mir die Position und Größe (BoundsRect) aller Controls im Grundzustand. Wenn ich nun in einen anderen Zustand wechsel, setze ich zuerst alle Controls wieder auf ihren Grundzustand. Zuvor muss ich natürlich beim Parent DisableAlign aufrufen. Dann setze ich noch Visible auf die gewünschten Werte und mache wieder EnableAlign ...
Chris
  Mit Zitat antworten Zitat
Antwort Antwort


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 17:48 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