AGB  ·  Datenschutz  ·  Impressum  







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

Problem mit Form Show und Hide

Ein Thema von sonicfire · begonnen am 17. Aug 2006 · letzter Beitrag vom 17. Aug 2006
Antwort Antwort
Seite 1 von 2  1 2      
sonicfire

Registriert seit: 17. Jan 2006
Ort: Berlin
58 Beiträge
 
#1

Problem mit Form Show und Hide

  Alt 17. Aug 2006, 04:40
Servus allerseits!

Bitte um Entschuldigung , falls diese eine doofe Frage ist... aber:

1. Wenn ich eine zweite Form via "Hide;" schließe und Sie danach wieder mit "Show;" anzeige ... öhm, ja dann sind sämtliche Einstellungen in der Form wieder auf Ihrem Ursprungs-Stand.

Warum? Ich dachte genau dafür sind Show und Hide, um eben NICHT alle Einstellungen zu verlieren?
  Mit Zitat antworten Zitat
Onkelrossie

Registriert seit: 7. Aug 2006
43 Beiträge
 
Delphi 7 Architect
 
#2

Re: Doofe Frage, ich weiss...

  Alt 17. Aug 2006, 05:39
Guten Morgen,
bei show wird die Form neu gezeichnet und dadurch wird alles bei labels usw. zurrück gesetzt. Versuche es mit Visible := True/False. Ich hoffe das war die Antwort die du gesucht hast.


Einen schönen Tag noch...
Onkelrossie
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#3

Re: Doofe Frage, ich weiss...

  Alt 17. Aug 2006, 07:58
Guten Morgen,

grundsätzlich ändern sich keine "Einstellungen" an einer Form, deren Methoden Hide() und Show() aufgerufen werden - vorausgesetzt, die Form wurde nicht zerstört und neu erzeugt. Die Formulierung "eine zweite Form" macht mich stutzig. Vielleicht ist der Zugriff auf die globale Form-Variable schuld an der Verwirrung.

Grüße vom marabu
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.920 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Doofe Frage, ich weiss...

  Alt 17. Aug 2006, 08:14
moin,

die Frage ist keineswegs doof und es besteht nicht der geringste Anlass, sich dafür zu entschuldigen. Aaaaaber: Der Titel, den Du Deinem Beitrag gegeben hast, der ist doof. Bitte ändere ihn doch in etwas Aussagekräftiges. Danke Dir.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.641 Beiträge
 
#5

Re: Doofe Frage, ich weiss...

  Alt 17. Aug 2006, 08:15
Edit: Da war Cheffe schneller...
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
lizardking

Registriert seit: 2. Sep 2005
76 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Doofe Frage, ich weiss...

  Alt 17. Aug 2006, 08:15
Zitat von Onkelrossie:
Guten Morgen,
bei show wird die Form neu gezeichnet und dadurch wird alles bei labels usw. zurrück gesetzt. Versuche es mit Visible := True/False. Ich hoffe das war die Antwort die du gesucht hast.
Das wird keinen Unterschied machen. Auszug aus der VCL:

Delphi-Quellcode:
procedure TCustomForm.Hide;
begin
  Visible := False;
end;

procedure TCustomForm.Show;
begin
  Visible := True;
  BringToFront;
end;
Intern passiert also eh nicht viel mehr, als auf Visible zuzugreifen.
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#7

Re: Doofe Frage, ich weiss...

  Alt 17. Aug 2006, 08:38
Zitat von lizardking:
Das wird keinen Unterschied machen. Auszug aus der VCL:

.....
.....

Intern passiert also eh nicht viel mehr, als auf Visible zuzugreifen.
es könnte aber sein, dass in FormShow des Forms etwas spezielles gemacht wird.
Daher solltest Du Form.Visible benutzen.
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Benutzerbild von Andidreas
Andidreas

Registriert seit: 27. Okt 2005
1.110 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#8

Re: Doofe Frage, ich weiss...

  Alt 17. Aug 2006, 08:39
hey,

ich habs mal so gemacht...

ShowWindow(application.Handle, SW_HIDE); funkt ohne probleme....

falls des problem weiterhin besteht, kannst ja deine einstellungen in einer ini speichern und
vor dem anzeigen die ini datei wieder auslesen!
Ein Programmierer Programmiert durchschnittlich 15 Code Zeilen pro Tag
Wir sind hier doch nicht bei SAP!!!

Aber wir habens bald
  Mit Zitat antworten Zitat
sonicfire

Registriert seit: 17. Jan 2006
Ort: Berlin
58 Beiträge
 
#9

Re: Doofe Frage, ich weiss...

  Alt 17. Aug 2006, 14:38
Zitat von marabu:
Guten Morgen,

grundsätzlich ändern sich keine "Einstellungen" an einer Form, deren Methoden Hide() und Show() aufgerufen werden - vorausgesetzt, die Form wurde nicht zerstört und neu erzeugt. Die Formulierung "eine zweite Form" macht mich stutzig. Vielleicht ist der Zugriff auf die globale Form-Variable schuld an der Verwirrung.

Grüße vom marabu
Hmm... naja, ich habe in meinem Hauptprogramm unter TForm1.FormCreate (usw) das hier:
(Also damit die zweite Form beim Programmstart einmal instanziiiert wird:
Delphi-Quellcode:
    NewForm := TForm2.Create(Application);
    NewForm.Position := poMainFormCenter;
Ist natürlich auch unter "Uses" eingebunden (Unit2).

Dann habe ich einfach nur im "Hauptprogramm" einen Button der die Form2 anzeigt:
  Form2.Show; Und in Form2 bzw. Unit2 habe ich einen "Schließen"-Button:
  Self.Hide; ...komisch
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#10

Re: Problem mit Form Show und Hide

  Alt 17. Aug 2006, 14:45
Dann scheint meine Vermutung richtig zu sein:

Zitat von marabu:
Vielleicht ist der Zugriff auf die globale Form-Variable schuld an der Verwirrung.
Wenn du eine Instanz von TForm2 in der Variable NewForm erzeugst und Delphi per default eine Instanz in der Variablen Unit2.Form2 ablegt, dann musst du dich entscheiden, mit welcher Instanz du arbeiten willst. Noch besser du entscheidest dich für den einen oder anderen Weg: entweder du beschränkst die Lebenszeit der Form indem du sie bei Bedarf erzeugst und dann wieder löschst, oder du lässt Delphi (Projektoptionen::Formulare) die Form zu Beginn erzeugen und zum Schluß zerstören.

Grüße vom marabu
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 07: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