AGB  ·  Datenschutz  ·  Impressum  







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

Form soll sich selbst schließen und erneut anzeigen

Ein Thema von BlueStarHH · begonnen am 13. Nov 2016 · letzter Beitrag vom 14. Nov 2016
Antwort Antwort
BlueStarHH

Registriert seit: 28. Mär 2005
Ort: Hannover-Hainholz
801 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: Form soll sich selbst schließen und erneut anzeigen

  Alt 13. Nov 2016, 19:13
Damit ein anderer Inhalt im Form angezeigt wird. Der wird im Execute erzeugt und geladen.
In dem Fall würde ich eine separate Methode erstellen, die genau dieses tut. Diese Methode kannst du dann im Execute und im Button1Click aufrufen.
Ja, das hab ich nun auch gemacht. Hat knappe 2 Stunden gekostet, die ich einsparen wollte...
  Mit Zitat antworten Zitat
dGeek
(Gast)

n/a Beiträge
 
#2

AW: Form soll sich selbst schließen und erneut anzeigen

  Alt 13. Nov 2016, 20:28
Zitat:
Ja, das hab ich nun auch gemacht. Hat knappe 2 Stunden gekostet, die ich einsparen wollte...
Wieso hat das denn zwei Stunden gedauert?
Das ist doch eigentlich nur eine Copy & Paste-Angelegenheit + "hier und da" ein paar Zeilen hinzufügen?

Aus....
Delphi-Quellcode:
procedure TSecondDlg.Execute;
begin
 Berechne;
 MacheWas;
 MachNochwas;
end;
wird...
Delphi-Quellcode:
procedure TSecondDlg.StartUpCode;
begin
 Berechne;
 MacheWas;
 MachNochwas;
end;

procedure TSecondDlg.Button1Click(Sender: TObject);
begin
 StartUpCode;
end;

procedure TSecondDlg.Execute;
begin
 StartUpCode;
end;

Geändert von dGeek (13. Nov 2016 um 20:31 Uhr)
  Mit Zitat antworten Zitat
BlueStarHH

Registriert seit: 28. Mär 2005
Ort: Hannover-Hainholz
801 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Form soll sich selbst schließen und erneut anzeigen

  Alt 13. Nov 2016, 21:01
Wieso hat das denn zwei Stunden gedauert?
Das ist doch eigentlich nur eine Copy & Paste-Angelegenheit + "hier und da" ein paar Zeilen hinzufügen?
Weil es eben keine Copy & Paste-Angelegenheit war. Das TSecondDlg soll direkt keine Details aus der MainForm kennen. Diese wurden von der MainForm an TSecondDlg.Execute(hier) übergeben. Wenn ich nun Execute im TSecondDlg selbst aufrufe, habe ich die Infos aus dem MainForm nicht. Also musste das Model und die MainForm geändert werden. Nichts kompliziertes, aber viele Zeilen und nicht nur dieses eine Beispiel.
  Mit Zitat antworten Zitat
Benutzerbild von blawen
blawen

Registriert seit: 30. Nov 2003
Ort: Luterbach (CH)
654 Beiträge
 
Delphi 12 Athens
 
#4

AW: Form soll sich selbst schließen und erneut anzeigen

  Alt 13. Nov 2016, 21:16
Wieso hat das denn zwei Stunden gedauert?
Das ist doch eigentlich nur eine Copy & Paste-Angelegenheit + "hier und da" ein paar Zeilen hinzufügen?
Weil es eben keine Copy & Paste-Angelegenheit war. Das TSecondDlg soll direkt keine Details aus der MainForm kennen. Diese wurden von der MainForm an TSecondDlg.Execute(hier) übergeben. Wenn ich nun Execute im TSecondDlg selbst aufrufe, habe ich die Infos aus dem MainForm nicht. Also musste das Model und die MainForm geändert werden. Nichts kompliziertes, aber viele Zeilen und nicht nur dieses eine Beispiel.
Wieso rufst Du die Startup-Procedure nicht mit den benötigten Parametern auf und blendest das Fenster innerhalb dieser Procedure ein?

Delphi-Quellcode:
procedure TSecondDlg.StartUpCode(Meine_Parameter : String);
begin
 Berechne;
 MacheWas;
 MachNochwas;
 Show;
end;
Roland
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.733 Beiträge
 
Delphi 6 Enterprise
 
#5

AW: Form soll sich selbst schließen und erneut anzeigen

  Alt 14. Nov 2016, 10:47
Wieso hat das denn zwei Stunden gedauert?
Das ist doch eigentlich nur eine Copy & Paste-Angelegenheit + "hier und da" ein paar Zeilen hinzufügen?
Weil es eben keine Copy & Paste-Angelegenheit war. Das TSecondDlg soll direkt keine Details aus der MainForm kennen. Diese wurden von der MainForm an TSecondDlg.Execute(hier) übergeben. Wenn ich nun Execute im TSecondDlg selbst aufrufe, habe ich die Infos aus dem MainForm nicht. Also musste das Model und die MainForm geändert werden. Nichts kompliziertes, aber viele Zeilen und nicht nur dieses eine Beispiel.
Hätte TSecondDlg nicht beim schließen über Tags oder ModalResult der MainForm mitteilen können, dass noch ein zweites mal TSecondDlg zu öffnen ist, ggf. mit anderen Parametern? Dann sollten die Änderungen in TSecondDlg minimal sein und nur im MainForm müsste man was ändern...
Ralph
  Mit Zitat antworten Zitat
bra

Registriert seit: 20. Jan 2015
711 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#6

AW: Form soll sich selbst schließen und erneut anzeigen

  Alt 14. Nov 2016, 12:20
Woher soll denn der Dialog beim zweiten Öffnen seine Daten bekommen, wenn die nur vom Hauptform übergeben werden? Das kann doch gar nicht funktionieren.

Erstelle den Zweitdialog einmal, füge da eine Funktion ein, mit der die benötigten Daten befüllt werden und rufe die bei Bedarf vom Hauptfenster auf. Da den Dialog zu zerstören und neu zu erstellen ist doch überflüssig.
  Mit Zitat antworten Zitat
dGeek
(Gast)

n/a Beiträge
 
#7

AW: Form soll sich selbst schließen und erneut anzeigen

  Alt 14. Nov 2016, 12:22
Erstelle den Zweitdialog einmal, füge da eine Funktion ein, mit der die benötigten Daten befüllt werden und rufe die bei Bedarf vom Hauptfenster auf. Da den Dialog zu zerstören und neu zu erstellen ist doch überflüssig.
...
Wieso rufst Du die Startup-Procedure nicht mit den benötigten Parametern auf und blendest das Fenster innerhalb dieser Procedure ein?

Delphi-Quellcode:
procedure TSecondDlg.StartUpCode(Meine_Parameter : String);
begin
 Berechne;
 MacheWas;
 MachNochwas;
 Show;
end;
  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 07:26 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