Spørg endeligt hvis der er noget som jeg ikke har forklaret ordenligt, da det er et virkelig vigtigt problem som jeg gerne vil have løst hurtigst muligt...
Den moderne arbejdsplads er i stigende grad afhængig af mødelokaler til at fremme samarbejde, men dette skift medfører også stigende sikkerhedsudfordringer.
for i := 0 to 3 do begin case i of 0:image1.picture.loadfromfile('C:\pic0.jpg'); 1:image1.picture.loadfromfile('C:\pic1.jpg'); 2:image1.picture.loadfromfile('C:\pic2.jpg'); 3:image1.picture.loadfromfile('C:\pic3.jpg'); end; sleep(300); if imgnr = 4 then imgnr := -1; inc(imgnr); end; end;
Jeg har brugt sleep. Men det stopper alt kode. Hvis du ikke kan overleve det skulle det ikke være for svært at lave en timer istedet. btw. så er koden ikke testet!
Jeg forstår det ikke den viser det samme billede hele tiden...? Er det ikke muligt at gøre det sådan at den viser at den bladrer igennem billederne........som vist på eksemplet.....? sådan at den viser hvert billede i 300 og ikke venter 300 med at vise billedet..... og kan man skrive resultatet i en Edit1?
Denne procedure virker :-) procedure TForm1.Button2Click(Sender: TObject); Var imgnr, i:integer; begin Randomize; imgnr := random(4); for i := 0 to 3 do begin Label1.Caption:=IntToStr(ImgNr); case imgnr of 0:image1.picture.loadfromfile('D:\Dokumenter\Dias01.jpg'); 1:image1.picture.loadfromfile('D:\Dokumenter\Dias02.jpg'); 2:image1.picture.loadfromfile('D:\Dokumenter\Dias03.jpg'); 3:image1.picture.loadfromfile('D:\Dokumenter\Dias04.jpg'); end; inc(imgnr); if imgnr = 4 then imgnr := 0; Image1.Refresh; Label1.Refresh; sleep(1000); end; end;
OKay det virker fint..Men er det ikke muligt når man har trykker på Button første gang at den så kører fra slut billedet fra første gang, når man trykker på button igen anden gang... Og er det ikke muligt at gøre det sådan at den tekst man vil skrive i Labelen at man selv må bestemme den... fx. 0:image1.picture:= Billede 1 eks.vis...
Mon ikke det her virker? Jeg har levet det i notepad så jeg ved ikke om det virker. Skulle det ikke virke så skriv fejlen og linien så retter jeg fejlen. Du gør nok klogt i at bruge en timer eller en tråd, ellers fryser dit program jo i den tid den viser billeder.
private ViserNr : integer; Rnd : integer; Alle : boolean;
TForm1.Button1Click(Sender : TObject); begin Alle := true; ViserNr := 0; Rnd := random(ANTAL_BILLEDER); Button1.Enabled := false; Timer1.Enabled := true; end;
TForm1.Timer1Timer(Sender : TObject); begin if Alle then begin image1.picture.loadfromfile(STI+'\'+GRUND_NAVN+IntToStr(ViserNr)+GRUND_EFTERNAVN); Inc(ViserNr); if ViserNr = ANTAL_BILLEDER then begin Alle := false; ViserNr := 0; end; end else begin image1.picture.loadfromfile(STI+'\'+GRUND_NAVN+IntToStr(ViserNr)+GRUND_EFTERNAVN); if ViserNr = Rnd then begin Edit1.Text := 'Billed '+IntToStr(ViserNr); //Her kan du jo skrive hvad du vil. Timer1.Enabled := false; end else Inc(ViserNr); end; end;
Ups, jeg glemte lige at Enable button1 igen det skal gøres her:
if ViserNr = Rnd then begin Edit1.Text := 'Billed '+IntToStr(ViserNr); //Her kan du jo skrive hvad du vil. Timer1.Enabled := false; Button1.Enabled := true; end
Er det ikke muligt at gøre det sådan at den ændrer teksten, efter hvilket billede den slutter på.... FX. Billede1 = Edit1.Text := 'TAk' Billede2 = Edit1.Text := 'For Mad' fx.... Men forresten koden virker godt.... Men hvordan kan det være at den slutter på de samme billeder gang efter gang, altså hvis jeg lukker programmet og så åbner det igen så slutter den på de samme billeder igen.... Eks. Første gang jeg havde programmet åbnet landede den på billede: 1, 1, 4, 2 Og de samme billeder landede den på i samme rækkefølge
Okay nu virker det hele men der er lige en sidste ting..... Den der ting som jeg nævnte før med at anden gang jeg trykker på button altså sætter processen igang igen, så starter den ikke på samme billede som den stoppede på i sidste runde... er det muligt at gøre
procedure TForm1.FormCreate(Sender: TObject); begin randomize; Foerste := true; end;
procedure TForm1.Button1Click(Sender: TObject); begin Alle := true; if foerste then begin ViserNr := 0; foerste := false; end else begin ViserNr := rnd+1; if ViserNr = ANTAL_BILLEDER then ViserNr := 0; end; Rnd := random(ANTAL_BILLEDER); Button1.Enabled := false; Timer1.Enabled := true; end;
procedure TForm1.Timer1Timer(Sender: TObject); begin if Alle then begin image1.picture.loadfromfile(STI+'\'+GRUND_NAVN+IntToStr(ViserNr)+GRUND_EFTERNAVN); Inc(ViserNr); if ViserNr = ANTAL_BILLEDER then begin Alle := false; ViserNr := 0; end; end else begin image1.picture.loadfromfile(STI+'\'+GRUND_NAVN+IntToStr(ViserNr)+GRUND_EFTERNAVN); if ViserNr = Rnd then begin Edit1.Text := TEKSTER[ViserNr]; Timer1.Enabled := false; Button1.Enabled := true; end else Inc(ViserNr); end; end;
Ups jeg gjorde alle variablerne public det var ikke meningen. Det har dog ikke den store betydning men for en god ordens skyld så lav den lige private.
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.