AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi TPanel Visible := True wirkt nicht in TabSheet OnShow
Thema durchsuchen
Ansicht
Themen-Optionen

TPanel Visible := True wirkt nicht in TabSheet OnShow

Ein Thema von Graf Gustav · begonnen am 5. Feb 2019 · letzter Beitrag vom 6. Feb 2019
Antwort Antwort
v2afrank

Registriert seit: 9. Mai 2005
Ort: Bocholt
575 Beiträge
 
Delphi XE2 Professional
 
#1

AW: TPanel Visible := True wirkt nicht in TabSheet OnShow

  Alt 6. Feb 2019, 09:24
Auch mit meinem Beispielprojekt ?


Vergiss es das war ja falsch

Geändert von v2afrank ( 6. Feb 2019 um 09:29 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Moombas
Moombas

Registriert seit: 22. Mär 2017
Ort: bei Flensburg
525 Beiträge
 
FreePascal / Lazarus
 
#2

AW: TPanel Visible := True wirkt nicht in TabSheet OnShow

  Alt 6. Feb 2019, 09:35
Zu deinem Beispiel Projekt:
1. Liegt das Panel nicht im Sheet -> korrigiert
2. Packe mal eine zweite Seite zum Pagecontrol hinzu
3. Wechsel die Seiten

und siehe da, das Panel erscheint! Siehe Anhang.

Und wenn man das Panel per Button ein-/ausblenden möchte geht (nur als Beispiel) folgendes:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  if Panel1.Visible = True then
    Panel1.Visible := False
  else
    Panel1.Visible := True;
end;
Angehängte Dateien
Dateityp: zip Borland Studio-Projekte.zip (826,4 KB, 0x aufgerufen)
Der Weg ist das Ziel aber man sollte auf dem Weg niemals das Ziel aus den Augen verlieren.

Geändert von Moombas ( 6. Feb 2019 um 09:52 Uhr)
  Mit Zitat antworten Zitat
Andreas L.

Registriert seit: 23. Mai 2011
Ort: Furth im Wald
308 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: TPanel Visible := True wirkt nicht in TabSheet OnShow

  Alt 6. Feb 2019, 10:15
Ich hab jetzt nochmal was ausprobiert. Wenn das Panel auf dem TabSheet liegt das beim Start der Anwendung sichtbar ist. Wird das Panel tatsächlich nicht sichtbar.
Andreas Lauß
Blog
  Mit Zitat antworten Zitat
Benutzerbild von Moombas
Moombas

Registriert seit: 22. Mär 2017
Ort: bei Flensburg
525 Beiträge
 
FreePascal / Lazarus
 
#4

AW: TPanel Visible := True wirkt nicht in TabSheet OnShow

  Alt 6. Feb 2019, 10:26
Ich hab jetzt nochmal was ausprobiert. Wenn das Panel auf dem TabSheet liegt das beim Start der Anwendung sichtbar ist. Wird das Panel tatsächlich nicht sichtbar.
Weil das Tabsheet als default visible = false beim start hat. Ansonsten macht es ja auch keinen Sinn! Du stellst ja das visible auf false im Objektinspector damit das Panel (oder was auch immer) beim Programmstart NICHT sichtbar ist. Nun willst du aber das beim Programmstart es über das Show-Event doch sichtbar wird. Das beißt sich.

Ich glaube das es WaD (Works as designed) ist, da beim Seitenwechsel der ".visible := True;" korrekt ausgeführt ist und dein Problem nur beim Programmstart besteht, was du aber mit deiner Einstellung im Objektinspektor selber ABSICHTLICH so eingestellt hast!?

Fazit:
Willst du das das Panel sofort sichtbar ist bei Programmstart: Visible per default auf True setzen (oder z.B. beim onCreate-Event einblenden, wenn es Abhängigkeiten dafür gibt).
Willst du das Panel während der Laufzeit einblenden: z.B. beim onShow-Event ".visible := true" setzen.
Der Weg ist das Ziel aber man sollte auf dem Weg niemals das Ziel aus den Augen verlieren.

Geändert von Moombas ( 6. Feb 2019 um 10:43 Uhr)
  Mit Zitat antworten Zitat
Andreas L.

Registriert seit: 23. Mai 2011
Ort: Furth im Wald
308 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: TPanel Visible := True wirkt nicht in TabSheet OnShow

  Alt 6. Feb 2019, 10:43
Weil das Tabsheet als default visible = false beim start hat. Ansonsten macht es ja auch keinen Sinn! Du stellst ja das visible auf false im Objektinspector damit das Panel (oder was auch immer) beim Programmstart NICHT sichtbar ist. Nun willst du aber das beim Programmstart es über das Show-Event doch sichtbar wird. Das beißt sich.
Das ist mir klar.

Ich glaube das es WaD (Works as designed)
Das denke ich auch. Macht auch keinen Sinn ein onShow-Event zu feuern wenn das TabSheet bereits sichtbar ist.
Andreas Lauß
Blog
  Mit Zitat antworten Zitat
Benutzerbild von Moombas
Moombas

Registriert seit: 22. Mär 2017
Ort: bei Flensburg
525 Beiträge
 
FreePascal / Lazarus
 
#6

AW: TPanel Visible := True wirkt nicht in TabSheet OnShow

  Alt 6. Feb 2019, 10:46
Ich glaube das es WaD (Works as designed)
Das denke ich auch. Macht auch keinen Sinn ein onShow-Event zu feuern wenn das TabSheet bereits sichtbar ist.
Nein, es macht keinen Sinn das Panel per default auszublenden, das Sheet beim Start als "Startsheet" anzuzeigen und sich dann zu beschweren, dass das Panel beim Programmstart nicht eingeblendet wird, obwohl es im onShow-Event gezeigt werden soll.

Einzige Ausnahme, es gibt Abhängigkeiten aber dann setze ich die Abhängigkeitsprüfung eher z.B. in das OnCreate-Event und nicht ins onShow-Event (was im übrigen auch Fehlerfrei funktioniert). Ggf. in eine Predure gepackt, wenn ich diese Prüfung an mehreren stellen nutzen muss.
Der Weg ist das Ziel aber man sollte auf dem Weg niemals das Ziel aus den Augen verlieren.

Geändert von Moombas ( 6. Feb 2019 um 10:51 Uhr)
  Mit Zitat antworten Zitat
Andreas L.

Registriert seit: 23. Mai 2011
Ort: Furth im Wald
308 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: TPanel Visible := True wirkt nicht in TabSheet OnShow

  Alt 6. Feb 2019, 10:51
Einzige Ausnahme, es gibt Abhängigkeiten aber dann setze ich die Abhängigkeitsprüfung eher in das OnCreate-Event und nicht ins onShow-Eevent.
Das sehe ich genau so
Andreas Lauß
Blog
  Mit Zitat antworten Zitat
Benutzerbild von Moombas
Moombas

Registriert seit: 22. Mär 2017
Ort: bei Flensburg
525 Beiträge
 
FreePascal / Lazarus
 
#8

AW: TPanel Visible := True wirkt nicht in TabSheet OnShow

  Alt 6. Feb 2019, 12:36
@Moombas: Mein Delphi-Code in meinem Startbeitrag ist das Beispielprojekt.
Und da habe ich 1 PageControl mit 1 Tabsheet. Ein PageControl-Changeevent findet da nicht statt.
Ich habe mich dabei auf folgendes bezogen:
Auch mit meinem Beispielprojekt ?
Beispielprojekt in diesem Falle das von v2afrank!

@Graf Gustav: Aber dennoch funktioniert es wie in Beitrag #18 geschrieben (funktionierendes Beispielprojekt im Anhang).
Weitere Hinweise in den folgenden Beiträgen:
Zitat:
Willst du das das Panel sofort sichtbar ist bei Programmstart: Visible per default auf True setzen (oder z.B. beim onCreate-Event einblenden, wenn es Abhängigkeiten dafür gibt).
Willst du das Panel während der Laufzeit einblenden: z.B. beim onShow-Event(erst beim Umblättern AUF das entsprechende Tabsheet!) ".visible := true" setzen.
Ggf. in eine Procedure gepackt, wenn du diese Prüfung an mehreren stellen nutzen musst.
Der Weg ist das Ziel aber man sollte auf dem Weg niemals das Ziel aus den Augen verlieren.

Geändert von Moombas ( 6. Feb 2019 um 12:52 Uhr)
  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 05:05 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