Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Form öffnen und bei ok Form neu erstellen (https://www.delphipraxis.net/108876-form-oeffnen-und-bei-ok-form-neu-erstellen.html)

Eppos 20. Feb 2008 16:22


Form öffnen und bei ok Form neu erstellen
 
Hallo zusammen,

ich möchte folgendes machen, aber ich weiss nicht wie ich vogehen soll.

Ich erstelle eine Form. Die Form wird geöffnet und der Benutzer kann was eingeben.
Wenn ich jetzt auf OK klicke, werden die Daten gespeichert. Und danach soll die Form sich schließen und automatisch wieder öffnen.

Kann mir jemand einen rat geben, wie ich das umsetzten kann?

Vielen Dank!

Eppos

mkinzler 20. Feb 2008 16:24

Re: Form öffnen und bei ok Form neu erstellen
 
Warum löscht du nicht einfach alle Eingaben?

Eppos 20. Feb 2008 16:29

Re: Form öffnen und bei ok Form neu erstellen
 
Das möchte ich nicht...

mkinzler 20. Feb 2008 16:31

Re: Form öffnen und bei ok Form neu erstellen
 
Warum?

Ferdy2003 20. Feb 2008 16:31

Re: Form öffnen und bei ok Form neu erstellen
 
evtl. geht es mit Destroy und dann wieder mit Create von dem Form...

Eppos 20. Feb 2008 16:32

Re: Form öffnen und bei ok Form neu erstellen
 
einfach so :wink:

Eppos 20. Feb 2008 16:37

Re: Form öffnen und bei ok Form neu erstellen
 
@Ferdy2003

also bei mir kommt da ne access violation...

HalloDu 20. Feb 2008 16:40

Re: Form öffnen und bei ok Form neu erstellen
 
Zeig mal deinen Code. Die Glaskugel ist beschlagen.

Eppos 20. Feb 2008 16:45

Re: Form öffnen und bei ok Form neu erstellen
 
es gibt nicht viel code, dass ist nur mein Versuch:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
begin
 // Recreate ausführen---
end;

end.
Beim Klick auf den Button soll die Maske sich schließen und dann wieder aufgehen. Wie wenn ich auf schließen klicke und das Programm wieder aufrufe...

HalloDu 20. Feb 2008 16:49

Re: Form öffnen und bei ok Form neu erstellen
 
Ich meinte eher den Teil bei dem eine Access Violation ausgelöst wird.

GericasS 20. Feb 2008 16:50

Re: Form öffnen und bei ok Form neu erstellen
 
könnte das nicht so in der Art funktionieren ?

Delphi-Quellcode:
Form1.Destroy;
Form1.Create(Form1);
bin halt auch ein Anfänger :oops:

DeddyH 20. Feb 2008 16:51

Re: Form öffnen und bei ok Form neu erstellen
 
Wie soll ein zerstörtes Objekt ein anderes Objekt erzeugen?

bluesbear 20. Feb 2008 16:52

Re: Form öffnen und bei ok Form neu erstellen
 
Wäre das gut genug? Dann sieht es zumindest so aus, als täte das Form was Du willst:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Hide;
  Sleep(1000);
  Show;
end;

GericasS 20. Feb 2008 16:53

Re: Form öffnen und bei ok Form neu erstellen
 
Zitat:

Zitat von DeddyH
Wie soll ein zerstörtes Ojbekt ein anderes Objekt erzeugen?

deswegen meine ich ja vll. auf diese Art und Weise, aber wie schon erwähnt handelt es sich bei mir um einen Anfänger =)

Zitat:

Wäre das gut genug? Dann sieht es zumindest so aus, als täte das Form was Du willst:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Hide;
  Sleep(1000);
  Show;
end;

versteckt der code die form nicht nur einfach ? :gruebel:

Eppos 20. Feb 2008 16:54

Re: Form öffnen und bei ok Form neu erstellen
 
@GericasS

Delphi-Quellcode:
Form1.Destroy;
Form1.Create(Form1);
genau das löst ne access violation aus.

@bluesbear
Ne leider nicht, die muss richtig erstellt werden, dass in meinem Edit1 Feld die Eingaben verschwinden.
Aber bitte jetzt nicht mit... Edit1.Text := ''; kommen :)

DeddyH 20. Feb 2008 16:54

Re: Form öffnen und bei ok Form neu erstellen
 
Ehrlich gesagt sehe ich auch überhaupt keinen Sinn in dem ganzen Unterfangen :gruebel: .

sirius 20. Feb 2008 16:55

Re: Form öffnen und bei ok Form neu erstellen
 
Das geht im Sinne der VCL so nicht. Das kannst du recht einfach mit einem anderen, nicht als MainForm benutztes, Formular machen. Aber ich nehme an, dass Form1 deine Mainform ist.

GericasS 20. Feb 2008 16:55

Re: Form öffnen und bei ok Form neu erstellen
 
Zitat:

Zitat von Eppos
@GericasS

Delphi-Quellcode:
Form1.Destroy;
Form1.Create(Form1);
genau das löst ne access violation aus.

@bluesbear
Ne leider nicht, die muss richtig erstellt werden, dass in meinem Edit1 Feld die Eingaben verschwinden.
Aber bitte jetzt nicht mit... Edit1.Text := ''; kommen :)

:wall: jo habs nach probieren eben auch gemerkt... :|

HalloDu 20. Feb 2008 16:55

Re: Form öffnen und bei ok Form neu erstellen
 
Ich bin mir nicht sicher aber ich würd's mal so probieren, obwohl ich trotzdem nicht verstehe warum du nicht einfach die Komponenten auf Standard zurücksetzt, aber gut.
Delphi-Quellcode:
Form1.Free;
Form1 := TForm1.Create(nil);
ungetestet und bin mir auch nicht so sicher, ob das so geht. Ist es den wenigstens nicht deine MainForm?

GericasS 20. Feb 2008 16:58

Re: Form öffnen und bei ok Form neu erstellen
 
Zitat:

Zitat von HalloDu
Ich bin mir nicht sicher aber ich würd's mal so probieren, obwohl ich trotzdem nicht verstehe warum du nicht einfach die Komponenten auf Standard zurücksetzt, aber gut.
Delphi-Quellcode:
Form1.Free;
Form1 := TForm1.Create(nil);
ungetestet und bin mir auch nicht so sicher, ob das so geht. Ist es den wenigstens nicht deine MainForm?

ne geht nicht, Form verschwindet und kommt nicht mehr zurück :mrgreen:

Eppos 20. Feb 2008 16:59

Re: Form öffnen und bei ok Form neu erstellen
 
genau sie verschwindet und kommt nicht mehr.

@sirus
Die Form1 ist nicht meine mainform, davor schalte ich noch ein fenster...

HalloDu 20. Feb 2008 16:59

Re: Form öffnen und bei ok Form neu erstellen
 
Sonst vielleicht noch ein Show dahinter.

bluesbear 20. Feb 2008 17:03

Re: Form öffnen und bei ok Form neu erstellen
 
Zitat:

Zitat von Eppos
@bluesbear
Ne leider nicht, die muss richtig erstellt werden, dass in meinem Edit1 Feld die Eingaben verschwinden.
Aber bitte jetzt nicht mit... Edit1.Text := ''; kommen :)

Dann erklär mir aber bitte wenigstens noch, wofür das gut sein soll. Erst neugierig machen und dann nix sagen ist fies! :zwinker:
Das neu erstellen muß Dein MainForm machen, dann klappt das.

DeddyH 20. Feb 2008 17:05

Re: Form öffnen und bei ok Form neu erstellen
 
Delphi-Quellcode:
Form1.Free;
Form1 := TForm1.Create(nil); //setz mal hier einen Breakpoint, ich glaube nicht, dass der angesprungen wird

Eppos 20. Feb 2008 17:18

Re: Form öffnen und bei ok Form neu erstellen
 
@DeddyH
Ja er springt rein.
Das Problem ist nur, wenn ich auf "X" drücke hängt er sich auf...

Wie würde das funktionieren, wenn das Mainform davor geschalten wäre?

bluesbear 20. Feb 2008 17:40

Re: Form öffnen und bei ok Form neu erstellen
 
Zitat:

Zitat von Eppos
Wie würde das funktionieren, wenn das Mainform davor geschalten wäre?

Ich weiß es! Ich weiß es! :mrgreen: aber ich sags nicht :P

Eppos 20. Feb 2008 17:41

Re: Form öffnen und bei ok Form neu erstellen
 
:( und warum nicht? :)

HalloDu 20. Feb 2008 17:43

Re: Form öffnen und bei ok Form neu erstellen
 
Jeder hat seine Geheimnisse: Du, warum umbedingt das Formular neu erzeugt werden muss, und bluesbear, wie du das lösen kannst. :stupid:

mkinzler 20. Feb 2008 17:43

Re: Form öffnen und bei ok Form neu erstellen
 
Zitat:

Zitat von Eppos
:( und warum nicht? :)

Ich zitier mal jemad
Zitat:

Zitat von Eppos
einfach so Wink


Eppos 20. Feb 2008 17:53

Re: Form öffnen und bei ok Form neu erstellen
 
also ist ne lange geschicht, ich machs in kurzform. Ich habe ne form ca. 25.000 zeilen code, zig klassen und ich habe keinen Durchblick.
will ne klasse zerstören, und das tut er nicht, ich habe schon wochen verbracht. Ich glaueb das ist ein Delphi-Bug.
Und jetzt muss ne Lösung her.

Die Variante ohne mainform, hat ja gut funktioniert.
Das Problem ist nur, dass wenn ich das Fenster auf X verlasse, dann kommt eine access violation.
Wenn ich das in den griff kriegen könnte, wäre es optimal... (ohne mainform, ist doch besser)

sirius 20. Feb 2008 18:08

Re: Form öffnen und bei ok Form neu erstellen
 
Zitat:

Zitat von Eppos
Wie würde das funktionieren, wenn das Mainform davor geschalten wäre?

1. Du schickst dem Mainform (oder Application) eine Message, dass es das andere Form neu erstellen soll.
2. Du erstellst das Formular einfach immer wieder dynamisch.

DeddyH 20. Feb 2008 18:10

Re: Form öffnen und bei ok Form neu erstellen
 
Zitat:

Zitat von Eppos
Ich habe ne form ca. 25.000 zeilen code, zig klassen und ich habe keinen Durchblick.
will ne klasse zerstören, und das tut er nicht, ich habe schon wochen verbracht.

Das ist aber Herumschustern an der falschen Stelle. Wenn Du die Klassen erzeugst, musst Du auch wissen, wann und wie sie wieder freigegeben werden.

Eppos 20. Feb 2008 18:12

Re: Form öffnen und bei ok Form neu erstellen
 
@Sirus
Vielleicht ein Programmschnipsel?

Darf aber dann nicht beim "X" wieder erstellt werden :)

@DeddyH
Das ist ja nicht meine Form, was ich geschrieben habe...
Ich habe schon geschaut und versucht zu verstehen was passiert, das ist mir auch gelungen, aber ich kann die Klasse nicht zerstören.
Habe wirklich sehr viel ausprobiert. Aber ich würde sagen, dass das mein letzter Ausweg ist...

sirius 20. Feb 2008 18:16

Re: Form öffnen und bei ok Form neu erstellen
 
Zitat:

Zitat von Eppos
Die Variante ohne mainform, hat ja gut funktioniert.
Das Problem ist nur, dass wenn ich das Fenster auf X verlasse, dann kommt eine access violation.
Wenn ich das in den griff kriegen könnte, wäre es optimal... (ohne mainform, ist doch besser)

Kannst du den Teil nochmal genauer erklären? Wie war es bisher? Was hast du geändert? Wie hat danach sich derProgrammablauf geändert?

PS: Solch ein letzter Ausweg lässt den Nutzer dann immer wieder verzweifeln. Ich glaube Microsoft verfolgt dieselbe Strategie.

busybyte 20. Feb 2008 18:36

Re: Form öffnen und bei ok Form neu erstellen
 
Vergiss es, Du erzählst nur Märchen,

900.000 Zeilen Code,lol aber nur wenn Du alle Units mitzählst,die Du irgendwie eingebunden hast.
Vom Zählen der Zeilen mal abgesehen.

http://www.delphipraxis.net/internal...574&highlight=


in diesem Thread sollen es 25000 sein und dann post #9,rofl.
Also wenn Du hier einen auf dicke Hose machen willst,dann viel Vergnügen,ohne mich.
Cu

//edit
aber bei einem gebe ich Dir vollkommen recht:
Zitat:

ich habe keinen Durchblick

bluesbear 20. Feb 2008 19:11

Re: Form öffnen und bei ok Form neu erstellen
 
Zitat:

Zitat von busybyte
Vergiss es, Du erzählst nur Märchen

Öhm, ich hab hier über 800.000 Zeilen, wenn ich das projekt neu compilieren lasse. Ok, knapp die Hälfte davon sind zugekaufte Komponenten. Delphi3, BDE und Paradox...
Meine primäre Mission hier ist, herauszufinden, wie man das auf den neuesten Stand der Technik bringen kann. Delphi2007, Firebird mit FibPlus, QuantumExpress, nicht zu vergessen madExcept (das alleine wird ne Menge arbeit sparen, so klein wie es ist!)... all die Infos hab ich aus dem Forum hier. Ich hab einfach ein paar Jahre zurück gelesen. Sich auf den neuesten Stand der Technik zu bringen, wenn man mit heute etwar zehn Jahre altem Gelumpe beschäftigt war - das ist eine steile Lernkurve. Bücher kommen noch dazu.
Die Zeit, wo ich hier komische fragen stellen werde, kommt erst noch :-D
Das Projekt wird eine komplette Neuentwicklung sein, und damit sollen nicht nur die über die Jahre "gewachsenen" (und oft vergewaltigten, jenseits ihres ursprünglichen Zweckes missbrauchten) Datenstrukturen, sondern auch die inzwischen für Anwender viel zu kompliziert gewordene Benutzeroberfläche komplett ... öhm... naja, neu, schöner, unkomplizierter, intuitiver - also einfach besser werden.
Beim Mitschreiben hier lerne ich mehr als nur vom Mitlesen. Ich kenne das noch von damals, aus dem Borlandforum von Compuserve - das war eine sehr, sehr große Hilfe, für jeden, der sich beteiligte. Ich bin vom Thema abgekommen :gruebel:

Es gibt Leute hier, die haben tatsächlich soviele Zeilen Code. Nich nur alles Schüler, die zu faul sind, ihre Hausaufgaben zu machen. Aber:
Ich denke, Eppos zäumt hier das Pferd von hinten auf. Versucht, Symptome zu kurieren statt die Ursache. Die Ursachen hier nachzuvollziehen wird schwierig sein, aber ich probiers mal. Nur heute nicht mehr.

busybyte 20. Feb 2008 19:21

Re: Form öffnen und bei ok Form neu erstellen
 
Keine Ahnung was Du mir jetzt erzählen willst bluesbar,aber was eine Konsolen-Anwendung ist
sollte Euch doch bekannt sein,oder?
Für noobs:Konsolenanwendung besitzt keine Forms, aber man kann (wenn man kann)
Forms damit erstellen.
//edit
Noch einfacher geht's wenn man die Projektdatei editiert siehe Frames
viel Spass

bluesbear 20. Feb 2008 20:34

Re: Form öffnen und bei ok Form neu erstellen
 
:mrgreen: Jou!

Eppos 20. Feb 2008 22:38

Re: Form öffnen und bei ok Form neu erstellen
 
@bluesbaer
Wenn du nicht zum Thema etwas produktives Beitragen möchtest, dann halte doch einfach deine klappe!
Das Hilft mir mehr. Danke dafür!

@alle anderen

Danke Ihr habt mir weiterhelfen können.

Viele Grüße,
Eppos


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:30 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