AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Nach dem Schließen eine Form Procdure einer anderen Form ausführen
Thema durchsuchen
Ansicht
Themen-Optionen

Nach dem Schließen eine Form Procdure einer anderen Form ausführen

Ein Thema von MCOP2001DE · begonnen am 25. Mai 2017 · letzter Beitrag vom 31. Mai 2017
Antwort Antwort
Seite 2 von 3     12 3      
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#11

AW: Nach dem schleißen eine Form Procdure einer anderen Form ausführen

  Alt 25. Mai 2017, 14:00
Es gibt mittlerweile soviel Arbeitsspeicher... wieso gibt man überhaupt noch Forms frei? Ich gehe einfach mal davon aus, dass es sich hierbei um ein Kleinstprojekt handelt wo das eh vollkommen überflüssig ist Forms freizugeben. Ob diese Kleinstanwendung jetzt 2 MB oder 5 MB belegt ist doch egal.
Also diese Denkweise finde ich mehr als fragwürdig.

Natürlich gibt man Instanzen (egal welcher Art) immer wieder frei wenn man sie nicht benötigt. Außerdem hat man es sich bei der Freigabe der Form gespart, dass man zuvor geänderte Felder (Edit, ComboBox, ...) wieder auf einen Standardwert zurücksetzen muss, usw.

Also Objekte sollte man immer freigeben.
  Mit Zitat antworten Zitat
SneakyBagels
(Gast)

n/a Beiträge
 
#12

AW: Nach dem schleißen eine Form Procdure einer anderen Form ausführen

  Alt 25. Mai 2017, 14:18
Zitat:
Natürlich gibt man Instanzen (egal welcher Art) immer wieder frei wenn man sie nicht benötigt. Außerdem hat man es sich bei der Freigabe der Form gespart, dass man zuvor geänderte Felder (Edit, ComboBox, ...) wieder auf einen Standardwert zurücksetzen muss, usw.
Nur wenn man davon keine Ahnung hat dann sollte man das nutzen was Delphi einem anbietet:
Forms automatisch erzeugen und automatisch freigeben und nicht selber daran rumwerkeln.
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#13

AW: Nach dem schleißen eine Form Procdure einer anderen Form ausführen

  Alt 25. Mai 2017, 14:28
Vorschlag:

Ich hatte nicht ein großes Projekt erwartet.
Delphi-Quellcode:
procedure TMain.FNeuerArtikeloeffnen;
begin
   TNeuerArtikel.Create(Self); // hier z.B.
end;
Du hast ein Chaos in den Instanzen. Du erzeugst ständig neue Forms und gibst sie nur über Main(Owner = Self) Close frei. Auch wenn ich auch für die dynamischen Forms bin,
hier würde ich das nicht empfehlen.

1. Alle Forms automatisch erzeugen lassen mit Hide oder Visible := False = nicht sichtbar.
2. Statt xxx.Create(Self) nur xxx.Show des entsprechenden Forms ausführen.
3. Danach wieder die Form ausblenden mit Hide oder Visible := False.

...dann schaun wir mal weiter.

PS: Ich gehe jetzt ein ECHTES trinken. Auf meinen Ehrentag... Ich schaue dann mal später wieder rein.

Geändert von haentschman (25. Mai 2017 um 14:36 Uhr)
  Mit Zitat antworten Zitat
SneakyBagels
(Gast)

n/a Beiträge
 
#14

AW: Nach dem schleißen eine Form Procdure einer anderen Form ausführen

  Alt 25. Mai 2017, 14:30
Zitat:
1. Alle Forms automatisch erzeugen lassen mit Hide = nicht sichtbar.
2. Statt xxx.Create(Self) nur xxx.Show des entsprechenden Forms ausführen.
3. Danach wieder die Form ausblenden mit Hide.
Exakt. Vereinfacht das Ganze sehr!
  Mit Zitat antworten Zitat
MCOP2001DE

Registriert seit: 19. Jun 2004
89 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#15

AW: Nach dem schleißen eine Form Procdure einer anderen Form ausführen

  Alt 25. Mai 2017, 14:34
Ok danke werde ich versuchen.
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#16

AW: Nach dem schleißen eine Form Procdure einer anderen Form ausführen

  Alt 25. Mai 2017, 14:42
Zitat:
Natürlich gibt man Instanzen (egal welcher Art) immer wieder frei wenn man sie nicht benötigt. Außerdem hat man es sich bei der Freigabe der Form gespart, dass man zuvor geänderte Felder (Edit, ComboBox, ...) wieder auf einen Standardwert zurücksetzen muss, usw.
Nur wenn man davon keine Ahnung hat dann sollte man das nutzen was Delphi einem anbietet:
Forms automatisch erzeugen und automatisch freigeben und nicht selber daran rumwerkeln.
Warum wirst du eigentlich bei jedem der nicht deiner Meinung ist immer direkt aggressiv und greifst die Leute (verbal) an. Wo ist dein Problem. Jede Methode hat Vor- und Nachteile. Und das ist kein Grund direkt pampig zu werden.

Du gehörst für mich schon seit deiner letzten Aktion zu denjenigen, mit denen man besser keine Diskussion anfängt. Da gibt es so einige Spezialisten hier im Forum. Es bringt ja eh nichts. Auch hier wieder genau das gleiche Verhalten. Und diese Meinung hat sich gerade wieder verstärkt.
  Mit Zitat antworten Zitat
SneakyBagels
(Gast)

n/a Beiträge
 
#17

AW: Nach dem schleißen eine Form Procdure einer anderen Form ausführen

  Alt 25. Mai 2017, 14:53
Zitat:
Warum wirst du eigentlich bei jedem der nicht deiner Meinung ist immer direkt aggressiv und greifst die Leute (verbal) an
wo bitte bin ich aggressiv?

Zitat:
Warum wirst du eigentlich bei jedem der nicht deiner Meinung ist immer direkt aggressiv und greifst die Leute (verbal) an
Dir steht es frei mir nicht zu antworten, was du aber dennoch tust.

Demnach müsstest du eigentlich auch haentschman anmeckern, denn er ist auch nicht deiner Meinung - in DIESEM Fall.
  Mit Zitat antworten Zitat
stalkingwolf

Registriert seit: 6. Mai 2011
543 Beiträge
 
#18

AW: Nach dem schleißen eine Form Procdure einer anderen Form ausführen

  Alt 29. Mai 2017, 15:31
ich würde das nicht beim formclose durchführen sondern beim click auf den Button.
Die neue Form wird doch sicherlich modal geöffnet und danach kann man auf das Modalresult der 2ten Form reagieren.

Formcloses zu verlangsamen hat bei uns zu einigen komischen verhalten von Fenstern geführt.
Z.b das die Form noch sichtbar war, aber nicht mehr vorhanden. Beim erneuten click auf schließen ( auch das X von Windows ) hagelte es Zugriffsverletzungen.

formclose benutze ich nur noch zum aufräumen meiner form und evtl speichern von Konfigurationen.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#19

AW: Nach dem schleißen eine Form Procdure einer anderen Form ausführen

  Alt 29. Mai 2017, 15:55
Drum Erwähnte ich auch OnCloseQuery (vordem Schließen).

formclose benutze ich nur noch zum aufräumen meiner form und evtl speichern von Konfigurationen.
Aber nur von Dingen, die im OnShow geladen/erstellt wurden.
Alles Andere gehört in Destroy, wenn es im Create erstellt wurde.
$2B or not $2B
  Mit Zitat antworten Zitat
stalkingwolf

Registriert seit: 6. Mai 2011
543 Beiträge
 
#20

AW: Nach dem schleißen eine Form Procdure einer anderen Form ausführen

  Alt 31. Mai 2017, 09:20
Natürlich

Wir haben uns das vollstopfen von onCreate aber mittlerweile abgewöhnt. Verzögert den Programmstart und dann kommt nur mimimi von Kunden.
Irgendwo muss man ja die verlorene Zeit der Live Virenscanner wieder reinholen

Geändert von stalkingwolf (31. Mai 2017 um 09:23 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 22:38 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