Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Procedure unterbrechen (https://www.delphipraxis.net/61890-procedure-unterbrechen.html)

renekr 27. Jan 2006 16:36


Procedure unterbrechen
 
Hallo,

Wollte mal fragen ob es möglich ist eine Procedure zu unterbrechen?
Als zb. im Durchlauf einer Procedure eine andere Form auf zumachen, eine Variable zu setzen und diese Form zu schießen.
Dabei läuft dann die Procedure weiter.

Danke.

ichbins 27. Jan 2006 16:37

Re: Procedure unterbrechen
 
du kannst ja so arbeiten:

Delphi-Quellcode:
formshow;
while form.visible do begin end;
weitermachen;
bei Forms anzeigen ist dies aber schon möglich: mit showmodal anstatt show.

tommie-lie 27. Jan 2006 16:48

Re: Procedure unterbrechen
 
Zitat:

Zitat von ichbins
du kannst ja so arbeiten:
Delphi-Quellcode:
while form.visible do begin end;

Das hast du definitiv nicht ausprobiert.
Bei der von Michael propagierten Methoden kannst du mit deinem neu geöffneten Fenster nichts machen. Du müsstest innerhalb der Schleife ProcessMessages() aufrufen, sinnvollerweise gepaart mit einem Aufruf von "sleep(1)". Ansonsten würde die Schleife den einzig vorhandenen Thread in einer gewöhnlichen VCL-Anwendung blockieren und dein Programm reagiert nicht mehr.

tomsel 27. Jan 2006 17:06

Re: Procedure unterbrechen
 
Zitat:

eine andere Form auf zumachen, eine Variable zu setzen und diese Form zu schießen.
Auf machen, Variable setzen, schließen ???
Wozu dann das Ganze?

Meinst du vllt etwas in der Art wie:

Delphi-Quellcode:
procedure WeissDerGeier;
var form:tFuckingForm;
begin
  form := tFuckingForm.Create(nil);
  form.VarXY := 'was guckst du?';
  form.showmodal;
  form.Free;
end;

renekr 27. Jan 2006 18:43

Re: Procedure unterbrechen
 
Hi @,
Erstmal danke für eure schnelle Hilfe.

Ich muß da wohl etwas näher Erklären was i will .
Ev. gibt es da auch einen besseren Weg.

Also:

Die Form wo gestartet wird macht eine Connection über das ganze Programm hinweg zu einer Datenbank .
Der Servername gebe ich als Const im Sourcecode an und auch verwende die const im ganzen Programm weiter.

Ich will aber die möglichkeit haben den Server beim Programm start zu switchen.
Ev. mit Taste xy drücken beim Start bevor er die Verbindung aufgebaut hat.
Dann kann ich auf der 2. Form den anderen Server wo ich vorgebe wählen und dann macht er in der Procedure weiter mit der neuen var.


Dazu müßte ich dann die const in eine Var. umwandeln.




Hat ev. jemand eine bessere Lösung?. bin für alles offen.

marabu 27. Jan 2006 19:11

Re: Procedure unterbrechen
 
Wo du schonmal beim Erklären bist - zu welchem DBMS verbindest du, mit welchen Komponenten? Sind die Datenbanken, zwischen denen du umschalten möchtest, vom selben Typ? Enthalten sie die gleichen Tabellen - sprich ist das Datenmodell identisch?

Grüße vom marabu

alzaimar 27. Jan 2006 19:54

Re: Procedure unterbrechen
 
[quote="tomsel"]
Zitat:

Delphi-Quellcode:
...
...tFuckingForm;...

Mich würde mal interessieren, was du damit zu kompensieren versuchst ... vor Allem: Wieso ist das 't' so klein? :mrgreen:

tomsel 27. Jan 2006 20:06

Re: Procedure unterbrechen
 
OT:

[quote="alzaimar"]
Zitat:

Zitat von tomsel
Zitat:

Delphi-Quellcode:
...
...tFuckingForm;...

Mich würde mal interessieren, was du damit zu kompensieren versuchst ... vor Allem: Wieso ist das 't' so klein? :mrgreen:

Wer wird denn hier OT? Das böse F-Wort wird üblicherweise auch in einer anderen als die hier angedeuteten Bedeutung benutzt, und ich benutzte es in der ANDEREN Bedeutung. Kompensieren will ich höchstens etwas miserable Laune. Sollte die Wahl des Typbezeichners jemandem misfallen: tut mir leid. Und die 't's schreib ich immer klein, da sie unbedeutend sind. Ach ja: bei mir ist der Plattenstapel rund, nur das Laufwerksgehäuse ist eckig (abgerundet natürlich).

inherited 27. Jan 2006 22:10

Re: Procedure unterbrechen
 
Warum nicht die procedure in neuem Thread starten und nach jeder zeile überprüfen ob sie eitermachen soll :D
ok passt nich ganz

Airblader 28. Jan 2006 08:44

Re: Procedure unterbrechen
 
Ich weiß ja nicht, aber dürfte

Delphi-Quellcode:
Bedingung := FALSE;

...

while not Bedingung do
begin
   Application.ProcessMessages;
end;

...
nicht reichen?

air
P.S.: Das 'T' schreibt man normal groß, da es für "Type" steht ;) ("TFormBla","TMyType",...)


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