Entwickler-Ecke

Sonstiges (Delphi) - Schleifenstopp Auf Tatendruck ?


Nickture - Di 07.10.03 18:41
Titel: Schleifenstopp Auf Tatendruck ?
Wie kann Man Eine RepeatSchleife AUf Tatendruck Beenden ?

Delphi-Quelltext
1:
2:
3:
4:
5:
Repeat 
 .
 .
 .
Until ????????


Anonymous - Di 07.10.03 18:48

z.B so:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
function IsKeyDown(c : Char) : Boolean;
var
 vk : Integer;
begin
 vk:=VkKeyScan(c) and $FF;
 if vk<>$FF then
  Result:=(GetAsyncKeyState(vk)<0)
 else
  Result:=False;
end;

...

repeat

until fertig or IsKeyDown('a');

...
[/delphi]


CenBells - Di 07.10.03 18:49

hallo,

deklariere dir eine Globale Variable

Delphi-Quelltext
1:
Keypressed: Boolean;                    


im FormCreate setzt du die Variable auf false.

im OnKeyDown deines Formulars setzt du die variable auf true.

und dann musst du nur until KeyPressed; als Abbruchbedingung benutzen.

Gruß
Ken


/Edit mist, zu langsam :lol:


Anonymous - Di 07.10.03 19:11

wenn du es so löst, musst du allerdings noch ein application.processmessages irgendwo einbauen. Bei meiner Lösung bin ich mir nicht sicher.