AGB  ·  Datenschutz  ·  Impressum  







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

Formular neu createn?

Ein Thema von Maurooon · begonnen am 19. Apr 2017 · letzter Beitrag vom 20. Apr 2017
Antwort Antwort
Seite 1 von 2  1 2      
a.def
(Gast)

n/a Beiträge
 
#1

AW: Formular neu createn?

  Alt 19. Apr 2017, 19:17
Wieso dann mit Kanonen auf Spatzen schießen?

Speichere doch einfach die Originalposition des Objekts und setze es im FormShow des Formulars #2 an die Originalposition zurück.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#2

AW: Formular neu createn?

  Alt 19. Apr 2017, 19:30
Wieso dann mit Kanonen auf Spatzen schießen?

Speichere doch einfach die Originalposition des Objekts und setze es im FormShow des Formulars #2 an die Originalposition zurück.
Wenn es für ihn so einfach wäre würde er nicht fragen.
Bitte tue hier nicht so überheblich, nicht vergessen du hast auch mal angefangen.
Dein Ton wird immer rauer habe ich den Eindruck.

gruss
  Mit Zitat antworten Zitat
Darlo

Registriert seit: 28. Jul 2008
Ort: München
1.196 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#3

AW: Formular neu createn?

  Alt 19. Apr 2017, 19:31
Ja, klar geht das. Ungefähr so:
Delphi-Quellcode:
var
myform2: TForm2;
begin
form2.close;
form2.free;
myform2 := TForm2.Create(self);
myform2.show;
end;
Philip
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.277 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Formular neu createn?

  Alt 19. Apr 2017, 19:43
Hallo,

1. Es geht nicht um MDI?

2.
Zitat:
Ich suche jetzt nach einer Möglichkeit, eine Form zu schließen, um sie bei erneutem Öffnen so vorzufinden, wie ich sie createt habe also wie sie nach dem Kompilieren aussah.
eine Form zu schließen
(Form2) OnButton1Click
Self.Close;

erneut öffnen
Form2 := TForm2.Create;
Form2.ShowModal;

wie ich sie createt habe
das sollte genauso sein


Es sei denn:
Du erzeugst Form2 gar nicht bei jedem (Form1)-Button-Klick,
sondern zeigst sie nur mit Form2.Show an.
Dann musst du dir die Positionen im FormCreate merken und im OnShow wiederherstellen


Ansonsten:
Ein bisschen mehr Code wäre schön,
am besten das ganze (Minimal-)Projekt als Zip.
Heiko

Geändert von hoika (19. Apr 2017 um 19:45 Uhr)
  Mit Zitat antworten Zitat
a.def
(Gast)

n/a Beiträge
 
#5

AW: Formular neu createn?

  Alt 19. Apr 2017, 19:56
Zitat:
Dein Ton wird immer rauer habe ich den Eindruck.
  Mit Zitat antworten Zitat
t.roller
(Gast)

n/a Beiträge
 
#6

AW: Formular neu createn?

  Alt 19. Apr 2017, 20:31
Das geht so:
Delphi-Quellcode:
program Project1;

uses
  Vcl.Forms,
  Unit1 in 'Unit1.pas{Form1},
  Unit2 in 'Unit2.pas{Form2};

{$R *.res}

begin
  Application.Initialize;
  Application.MainFormOnTaskbar := True;
  Application.CreateForm(TForm1, Form1);
// Application.CreateForm(TForm2, Form2);
  Application.Run;
end.
----------------------
procedure TForm1.Button1Click(Sender: TObject);
begin
Application.CreateForm(TForm2, Form2);
Form2.Show;
end;
----------------------
procedure TForm2.Button1Click(Sender: TObject);
begin
Close;
Self.Free;
end;
----------------------

Geändert von t.roller (19. Apr 2017 um 21:09 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Olli73
Olli73

Registriert seit: 25. Apr 2008
Ort: Neunkirchen
793 Beiträge
 
#7

AW: Formular neu createn?

  Alt 19. Apr 2017, 20:54
In den Beiträgen #8 und #10 sehe ich ein Speicherleck.

Close gibt standardmäßig das Formular nicht frei, sondern versteckt es nur => Entweder im OnClose des Formulars ein Action := caFree; einbauen oder das Formualar mit .Free (oder .Release ) freigeben.
  Mit Zitat antworten Zitat
Darlo

Registriert seit: 28. Jul 2008
Ort: München
1.196 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#8

AW: Formular neu createn?

  Alt 19. Apr 2017, 20:55
Da fehlt das ungefähr 😉
Nach dem Schließen des form sollte dieses freigegeben werden und vor dem Erzeugen besser noch Prüfen ob bereits vorhanden.
Philip
  Mit Zitat antworten Zitat
t.roller
(Gast)

n/a Beiträge
 
#9

AW: Formular neu createn?

  Alt 19. Apr 2017, 21:28
Da fehlt das ungefähr 😉
Nach dem Schließen des form sollte dieses freigegeben werden und vor dem Erzeugen besser noch Prüfen ob bereits vorhanden.
zu 1: Self.Free; angefügt nach Close;
zu 2: doppelt gemoppelt:
procedure TApplication.CreateForm(InstanceClass: TComponentClass; var Reference); prüft das selbst.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.277 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: Formular neu createn?

  Alt 20. Apr 2017, 08:55
Hallo,
warum wird hier immer Form.Show benutzt *wunder ?

An den Thread-Ersteller:
Ist Form2 modal, d.h. erst wenn Form2 geschlossen wird, kann mit Form1 weitergearbeitet werden?
Heiko
  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 21:58 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