Autor Beitrag
splattergnome
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Mo 19.05.03 01:45 
Hallo!

Es mag zwar nicht sehr fein (programmiertechnisch gesehen), aber ich wollte wissen, ob es einen Weg gibt, eine Prozedur "einzufrieren" und später wieder an die selbe stelle "aufzuwecken".

Mein Beispiel:

Ich eröffene eine neue Form (mit alles drumherrum) in der Mitte von eine Prozedur als erweiterte "Eingabefeld", sozusagen, will aber nicht, daß der Prozedur "weitergeht" bis der neue Formfenster ausgefüllt und geschlossen wird.

Gibt es irgendwelche Möglichkeiten, ohne, daß ich mein Codestruktur ganz von vorne anfangen muß? Danke!

splatty
MKehrer
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 114

NT, 2000
D6
BeitragVerfasst: Mo 19.05.03 08:37 
plaziere diesen Code in Deiner Procedure
ausblenden Delphi-Quelltext
1:
2:
3:
4:
waiting:=true;  //globale Var.
Repeat
   Application.ProcessMessages
   Until not Waiting;

Die Var waiting kannst Du dann von wo anders setzen

_________________
Manfred
Was Du siehst ist in Dir (Smile)
ErnestoChe
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 528

Win 2000 pro, CRUX 2.0
Delphi 6 Pers, Open K3
BeitragVerfasst: Mo 19.05.03 08:40 
Hi

mit Sleep kannst du die Prozedur für eine gewisse Zeit warten lassen:

ausblenden Delphi-Quelltext
1:
Sleep(5000);  // wert in millisekunden					


in diesem Fall wartet die Prozedur 5 sekunden bis sie mit der nächsten Anweisung fortfährt.

MFG

- Ernesto -
Udontknow
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2596

Win7
D2006 WIN32, .NET (C#)
BeitragVerfasst: Mo 19.05.03 09:08 
Hi!

Rufe einfach "EingabeForm.ShowModal" anstelle von "Eingabeform.Show" auf.

Cu,
Udontknow
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 19.05.03 10:36 
@UDontKnow:
Ich dachte schon, niemand kommt darauf das Fenster modal zu öffnen. :shock:
Udontknow
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2596

Win7
D2006 WIN32, .NET (C#)
BeitragVerfasst: Mo 19.05.03 11:31 
:mrgreen:
Nicht jeder Thread namens "Warten in Prozeduren" hat was mit sleep zu tun...
splattergnome Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Mo 19.05.03 14:39 
Titel: Danke!
@MKehrer

Es funktioniert - ich habe im HelpFile über ProcessMessages nachgelesen, es ist gerade das, was ich gesucht habe... DANKE! :-D

@Udontknow

Danke für den Tipp... ich werde versuchen, meine Fenster dynamisch zu erschaffen, schliesslich zählt jede byte RAM! :-)

Danke für eure schnelle Hilfe,

splatty
Udontknow
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2596

Win7
D2006 WIN32, .NET (C#)
BeitragVerfasst: Mo 19.05.03 14:45 
:?:
Jetzt bin ich verwirrt... "Showmodal" hat nichts mit der Speicherbelegung zu tun. TForm.ShowModal zeigt eben einfach ein Fenster an und wartet, bis dieses geschlossen wird.

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
procedure Tuwas;
begin
  ShowMessage('Das Fenster wird geöffnet...');
  MeinEingabeForm.ShowModal;
  ShowMessage('Das Fenster wurde geschlossen.');
end;


Cu,
Udontknow
Saarpoint
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 199

Win XP Home, Vista Home Premium
D5 Std, D7 pers., D2005 Pro. SP3, TurboDelphi
BeitragVerfasst: Mi 20.10.04 23:36 
Hab das selbe Problem. Auch bei mir läuft das eigentliche Programm weiter,
obwohl in einer angezeigten Form noch Daten zur Weiterbearbeitung eingetragen
werden müssen. Wenn ich per "Form1.ShowModal" die Form aufrufe, erhalte ich einen
Laufzeitfehler: "Aus einem sichtbaren Fenster kann kein Modales gemacht werden"

Was soll das heißen? Es ist ja nicht sichtbar. Es wird erst mit ".ShowModal" angezeigt... :gruebel:

Gruß, Andy

_________________
Standart := false; Standard := true;