AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Controls werden erst nach zweitem öffnen eines Formulars angezeigt

Controls werden erst nach zweitem öffnen eines Formulars angezeigt

Ein Thema von Markus Traxler · begonnen am 18. Feb 2019 · letzter Beitrag vom 19. Feb 2019
Antwort Antwort
Markus Traxler

Registriert seit: 10. Jan 2012
4 Beiträge
 
#1

Controls werden erst nach zweitem öffnen eines Formulars angezeigt

  Alt 18. Feb 2019, 11:40
Hallo,
ich stehe vor einem dubiosen Problem, in meiner Anwendung werden bei manchen Formularen 2 Toolbars gefüllt mit BitBtns und SpeedButtons erst nach schließen des Formulars und erneutem öffnen angezeigt.

Ich habe mir ein Basisformular mit den Toolbars gebaut, in der OnShow-Routine berechne ich anhand der Anzahl der Button in den Toolbars und der Breite des gesamten Formulars die Breite der einzelnen Buttons um alle gleich groß zu haben.
Jetzt habe ich das Problem, dass eben bei manchen vererbten Formularen alles wunderbar klappt, bei anderen muss ich das Formular öffnen (mache das mittels form.ShowModal) und schließen und erst beim zweiten Showmodal werden die Toolbars mit den Button richtig angezeigt.
Die Formulare werden alle bei Programmstart schon erzeugt.
Es fehlen auch nur die Toolbars, alle anderen Control sind schon beim ersten öffen sichtbar.
Beim Debuggen scheinen auch alle Properties wie visible-, left-, Top-, enabled, tranparent-werte zu passen.

Kennt jemand dieses Problem, bzw hat eine Lösung für mich?
Ich will nicht immer erst Form.Show und Form.Close ausführen müssen, damit das Formular richtig angezeigt wird.

Bin für jeden Hinweis dankbar.

MfG Markus

P.S. Entwicklungsumgebung ist Delphi 10 Seattle Update 1
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: Controls werden erst nach zweitem öffnen eines Formulars angezeigt

  Alt 18. Feb 2019, 11:51
in der OnShow-Routine berechne ich anhand der Anzahl der Button in den Toolbars und der Breite des gesamten Formulars die Breite der einzelnen Buttons um alle gleich groß zu haben.
Wäre da nicht das OnResize der bessere Ansatz? Vielleicht sogar das OnResize der Toolbars?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
18. Feb 2019, 12:08
Dieses Thema wurde am "18. Feb 2019, 12:08 Uhr" von "Luckie" aus dem Forum "Algorithmen, Datenstrukturen und Klassendesign" in das Forum "GUI-Design mit VCL / FireMonkey / Common Controls" verschoben.
Markus Traxler

Registriert seit: 10. Jan 2012
4 Beiträge
 
#4

AW: Controls werden erst nach zweitem öffnen eines Formulars angezeigt

  Alt 18. Feb 2019, 16:54
in der OnShow-Routine berechne ich anhand der Anzahl der Button in den Toolbars und der Breite des gesamten Formulars die Breite der einzelnen Buttons um alle gleich groß zu haben.
Wäre da nicht das OnResize der bessere Ansatz? Vielleicht sogar das OnResize der Toolbars?
Danke, habe gerade mal Testweise die Routine zur Berechnung der Buttons nur im OnResize aufzurufen (war ja davor auch schon drin, weil sich die Controls ja beim Ändern der Größe des Formulars mitändern sollen).
Macht aber keinen Unterschied. Die Toolbars und darin enthaltene Buttons sind nach wie vor erst beim zweiten öffen des Formulars sichtbar.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: Controls werden erst nach zweitem öffnen eines Formulars angezeigt

  Alt 18. Feb 2019, 17:02
Dann zeig doch mal den ein kleines Beispiel, mit dem wir das Problem nachstellen können.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Markus Traxler

Registriert seit: 10. Jan 2012
4 Beiträge
 
#6

AW: Controls werden erst nach zweitem öffnen eines Formulars angezeigt

  Alt 19. Feb 2019, 08:55
Ein beispiel dafür ist nur schwierig zu zeigen, da es sich doch um ein umfangreicheres Projekt handelt...
Ich habe jetzt auch die Routine, die die Buttonbreite berechnet komplett rausgenommen, es ändert nichts am Verhalten der Formulare....
In manchen abgeleiteten Formularen werden die Tollbars mit Buttons beim ersten öffnen angezeigt, in anderen wiederum nicht. Der Code der abgeleiteten Formulare ist dabei gleich, bzw. befindet sich ja eh in den Basisformularen...

Geändert von Markus Traxler (19. Feb 2019 um 09:03 Uhr)
  Mit Zitat antworten Zitat
Markus Traxler

Registriert seit: 10. Jan 2012
4 Beiträge
 
#7

AW: Controls werden erst nach zweitem öffnen eines Formulars angezeigt

  Alt 19. Feb 2019, 11:18
Hat sich erledigt, dank Quellcodeversionierung konnte ich den Fehler finden. Es lag an einem Fehler im OnResize des Basisformulars. Danke
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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