Autor Beitrag
DumboNine
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Fr 04.02.05 17:06 
Hi!

Aus einem rätselhaften Grund funktioniert bei mir die Arbeit mit 2 dynamischen Forms nicht.

1. Form: Passwortform - wird automatisch erstellt bei Programmstart
2. Form: Hauptprogramm - wird nicht automatisch erstellt

Soweit so gut.

Die Passwortform soll anfangs angezeigt werden, nach erfolgreicher Eingabe (was jetzt im Detail keine Rolle spielt) soll per

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
var
Hauptform: TForm;

begin
Application.CreateForm(Hauptunit.THauptform, Hauptform) ;
Hauptform.Show;
Passwortform.Free;
end;


die Hauptform angezeigt werden. Soweit finde ich Gedankengang und Programmierung auch logisch: Hauptform wird erstellt und nicht mehr benötigte Passwortform gelöscht.

Das funktioniert soweit auch, allerdings passieren nun einige Merkwürdigkeiten. Zunächst: Wenn ich die Hauptform irgendwann schließe - ganz normal mit dem X in der Ecke - dann beendet sich die Anwendung trotzdem nicht. Warum? Es existiert doch kein weiteres Fenster?!

Dann wollte ich die Passwortform auch aus dem Programm (zum "sperren", wie in Windows) aufrufen lassen. Da habe ich obigen Code ausprobiert sowie sämtliche Variationen davon. Entweder bleibt die Hauptform einfach stehen, oder es gibt Zugriffsverletzungen etc etc etc.

Kann mir vielleicht jemand einen Tipp geben wie man diese eigentlich einfache Sache schnell über die Bühne bringt?

- Passwortform erstellt die Hauptform
- Hauptform erstellt wiederum die Passwortform wenn sie gebraucht wird und wieder umgekehrt.

Thats all. Hoffe das war verständlich..danke für eure Hilfe!

Moderiert von user profile iconKlabautermann: Code- durch Delphi-Tags ersetzt.
matze.de
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 576

Win95, Win98 SE, WinXp Prof SP2
D7P, D8P, FPC2.0
BeitragVerfasst: Sa 05.02.05 10:05 
hi,
dein projekt muss aber eine Mainform haben, guck mal in delphi unter projekt->optionen->Formen. Und wenn du mal unter Projekt->View Source guckst, dann erscheint die hauptform immer direkt nach dem "Application.Initialize;" . Damit wird dein problem zusammenhängen.

Ich würde das Problem ganz aners Lösen. Ich würde die hauptform als Mainform nehmen diese aber beim programmstart nicht anzeigen. Wiederum aber erzeugt diese mainform dann deine passwortform.

hoffe du verstehst was ich mein o0

mfg matze

_________________
si tacuisses, philosophus mansisses.
stschemel
Hält's aus hier
Beiträge: 7

WIN 2000, WIN XP, Linux
D7 Prof
BeitragVerfasst: Mo 14.02.05 17:06 
Titel: Re: 2 Forms dynamisch erstellen funktioniert einfach nicht !
DumboNine hat folgendes geschrieben:
Hi!

Aus einem rätselhaften Grund funktioniert bei mir die Arbeit mit 2 dynamischen Forms nicht.

1. Form: Passwortform - wird automatisch erstellt bei Programmstart
2. Form: Hauptprogramm - wird nicht automatisch erstellt


Moderiert von user profile iconKlabautermann: Code- durch Delphi-Tags ersetzt.


Hi!

Es geht viel einfacher:

Hauptprogramm ist mainform
dieses ruft per onshow das Paßwortform modal (.showmodal) auf. Je nach Ergebnis kann dann einfach weitergemacht werden oder die Anwendung per application.terminate abgebrochen werden. Dann kannst Du das Paßwortformular freigeben, das muß aber gar nicht sein.

Die Erzeugung der Formulare erfolgt automatisch (dynamisch brauchst Du nur, wenn Du sehr viele hast und unbedingt Speicher sparen willst / mußt (ist mir noch nicht passiert, selbst 50 Formulare belegen nicht mehr als 20 MB).

Tschau
Steffen