Avatar billede sfreak Nybegynder
01. marts 2002 - 22:34 Der er 13 kommentarer

Efter 2 sek.

Jeg vil gerne prøve at lave et program i Delphi, hvor man ikke skal bruge TTimers. Hvordan gøres dette?

F.eks:
Hver gang der går 2 sek. så ShowMessage("hej");

Hvordan gøres dette uden en TTimer?

Avatar billede wollabella Nybegynder
01. marts 2002 - 23:33 #1
tryk på uret og skriv showmessage("hej");

og i dens paramenter skal du bare sætte interval til 2000 istedet for 1000
Avatar billede zerohero Nybegynder
01. marts 2002 - 23:42 #2
i din form create procedure skriv følgende:

begin
  sleep(2000);
  showmessage('hej');
end;

NB: Det der egentligt sker er at du lader din computer "sove" (fryse om du vil!) i 2 sekunder og dernæst skal programmet vise din showmessage! Men hvorfor vil du egentligt ikke benytte Ttimer?
Avatar billede wollabella Nybegynder
02. marts 2002 - 00:07 #3
han skal lave en løkke...

while(1) do
sleep(2000);
showmessage('hej');

sådan
Avatar billede zerohero Nybegynder
02. marts 2002 - 01:28 #4
wollabella>> Hvad snakker du om?

I mit eksempel behøves der kun

begin
  sleep(2000);
  showmessage('hej');
end;

(Basta)
Avatar billede wollabella Nybegynder
02. marts 2002 - 11:35 #5
øhhhh sq da ikke hvis den hver gang der går 2 sek skal popup med hej... den kode du har vil den kun gøre det 1 gang altså 2 sek efter form load!
Avatar billede zerohero Nybegynder
02. marts 2002 - 12:50 #6
Ja! - sfreak ville JO IKKE BRUGE EN TTIMER...og i dit eksempel BLIVER der jo brugt en Ttimer!
Avatar billede zerohero Nybegynder
02. marts 2002 - 12:56 #7
Hvis der skal poppe en besked frem hver 2. sekund skal det se således ud i din form create procedure:

var
  i : integer;
begin
  for i := 0 to 2 do
  begin
    sleep(2000);
    showmessage('hej');
  end;
end;
Avatar billede wollabella Nybegynder
02. marts 2002 - 13:51 #8
øhhh hvor er den timer henne??
Avatar billede wollabella Nybegynder
02. marts 2002 - 13:51 #9
jeg bruger sq da ingen timer ...
Avatar billede zerohero Nybegynder
02. marts 2002 - 13:59 #10
Nu gør den det selvfølig kun 3 gange i træk men det kan du jo altid ændre... En helt anden alternativ måde er at lave en appmessage procedure:

procedure TForm1.FormCreate(Sender: TObject);
begin
  application.onmessage := appmessage;
end;

procedure TForm1.AppMessage(var Msg: TMsg; var Handled: Boolean);
var
  MyTime: TDateTime;
  hour, min, sec, msec : word;
begin
  MyTime:= Now;
  DecodeTime(MyTime, Hour, Min, Sec, MSec);
  panel1.caption := inttostr(hour)+':'+inttostr(min)+':'+inttostr(sec);
  formpaint(nil);
  caption := caption+'.';
end;

procedure TForm1.FormPaint(Sender: TObject);
begin
  repaint;
  caption := '.';
end;

Her bliver klokken vist på en panel men der bliver IKKE brugt Ttimer!!!
Avatar billede zerohero Nybegynder
02. marts 2002 - 14:02 #11
wollabella>> dit første indslag: "tryk på uret og skriv showmessage("hej");"

PS: i mit sidste eksempel skal du definere: AppMessage under private! (Husk at tilføje en panel "Panel1" på din form!)
Avatar billede sfreak Nybegynder
03. marts 2002 - 17:44 #12
Jeg kan altså ikke bruge den sleep til en skid.
Min computer skal ikke på nogen måde "sove".
Jeg skal kunne bruge programmet i de 2 sek. inden der kommer en showmessage();

Og jeg kan ikke bruge en TTimer, da der kommer en error når jeg bruger TTimer i en OCX-fil og kører den i HTML.
Avatar billede zerohero Nybegynder
05. marts 2002 - 15:51 #13
så brug mit sidste eksempel!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester