WinFuture-Forum.de: Mein 1. Projekt In Delphi - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Mein 1. Projekt In Delphi Randomize, Wiederhohlungsausschluss, vergleich, ...


#1 Mitglied ist offline   Ghost92 

  • Gruppe: aktive Mitglieder
  • Beiträge: 597
  • Beigetreten: 01. August 06
  • Reputation: 0
  • Geschlecht:Männlich

  geschrieben 03. Dezember 2007 - 14:39

Hallo liebe Progger. Ich arbeite an einem Programm und bin gerade Verzweifelt. Ich bekomme es nicht hin, dass die 5 Videos sich nicht wiederhohlen, bei Random.

Und wenn ich dann auswähle, wie stark das verschoben ist(Ton bei Videos), wird bei einer richtigen angabe, die in die falsche zeile geschriben, in Memo2.

zB:
Es wird das Video 'D:\video\Kopie von PICT0003.00.wmv' wiedergegeben. Ich klicke auf 1 sekunde nach vorn verschoben. Er sollte D:\video\Kopie von PICT0003.00.wmv in Memo2.Lines[0] reinschreiben, macht er aber nicht, sondern schreibt das in Memo2.Lines[4] oder in eine andere Zeile von Memo2.
(Code Aktualisiert)

Hier der Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, MPlayer, StdCtrls, ButtonGroup, Buttons;

type
  TForm1 = class(TForm)
	Button1: TButton;
	Memo1: TMemo;
	MediaPlayer1: TMediaPlayer;
	Button2: TButton;
	Button3: TButton;
	Button5: TButton;
	ButtonGroup1: TButtonGroup;
	BitBtn1: TBitBtn;
	BitBtn2: TBitBtn;
	BitBtn3: TBitBtn;
	BitBtn4: TBitBtn;
	Button6: TButton;
	Button7: TButton;
	Button8: TButton;
	Button9: TButton;
	Button10: TButton;
	GroupBox1: TGroupBox;
	GroupBox2: TGroupBox;
	Label1: TLabel;
	Label2: TLabel;
	Label3: TLabel;
	Label4: TLabel;
	Label5: TLabel;
	frstvid1: TLabel;
	frstvid2: TLabel;
	frstvid3: TLabel;
	frstvid4: TLabel;
	frstvid5: TLabel;
	Button11: TButton;
	Button12: TButton;
	Memo2: TMemo;
	Memo3: TMemo;
	Button4: TButton;
	procedure Button1Click(Sender: TObject);
	procedure Button2Click(Sender: TObject);
	procedure Button3Click(Sender: TObject);
	procedure Button6Click(Sender: TObject);
	procedure Button7Click(Sender: TObject);
	procedure Button8Click(Sender: TObject);
	procedure Button9Click(Sender: TObject);
	procedure Button10Click(Sender: TObject);
	procedure Button11Click(Sender: TObject);
	procedure Button4Click(Sender: TObject);

  private
	{ Private-Deklarationen }
   Procedure vid1play0(Sender:Tobject);
   Procedure vid1play1(Sender:Tobject);
   Procedure vid1play2(Sender:Tobject);
   Procedure vid1play3(Sender:Tobject);
   Procedure vid1play4(Sender:Tobject);
  public
	{ Public-Deklarationen }

  end;

var
  Form1: TForm1;
  f1: integer = 0;
  filmaus, zahl, I :integer;
	ausg:String;
  memo2line:integer=-1;
  vid0,vid1,vid2,vid3,vid4:Boolean;
implementation

{$R *.dfm}

procedure TForm1.Button11Click(Sender: TObject);   //auswertung1
begin
if memo1.Lines[0]=memo2.Lines[0] then begin
 frstvid1.Caption:='richtig';
end
else
frstvid1.Caption:='Falsch';

if memo1.Lines[1]=memo2.Lines[1] then begin
 frstvid2.Caption:='richtig';
end
else
frstvid2.Caption:='Falsch';

if memo1.Lines[2]=memo2.Lines[2] then begin
 frstvid3.Caption:='richtig';
end
else
frstvid3.Caption:='Falsch';

if memo1.Lines[3]=memo2.Lines[3] then begin
 frstvid4.Caption:='richtig';
end
else
frstvid4.Caption:='Falsch';

if memo1.Lines[4]=memo2.Lines[4] then begin
 frstvid5.Caption:='richtig';
end
else
frstvid5.Caption:='Falsch';

end;									//Auswertung_End

procedure TForm1.Button1Click(Sender: TObject); //Abspielen

begin
   button4.click;
   Button3.Enabled:=True;
   Button2.Enabled:=False;


   case vid0 of
	True:Form1.vid1play0(nil);

   end;

   case vid1 of
	True:Form1.vid1play1(nil);

   end;

   case vid2 of
	True:Form1.vid1play2(nil);

   end;

   case vid3 of
	True:Form1.vid1play3(nil);

   end;

   case vid4 of
	True:Form1.vid1play4(nil);

   end;


end;

Procedure Tform1.vid1play0(Sender:Tobject);
Begin

if strtoint(Memo3.Lines[0])<> 53 then begin
	   Mediaplayer1.filename := ausg;
	   Mediaplayer1.Open;
	 end
	 else
	  Button1.Click;

End;
Procedure TForm1.vid1play1(Sender:Tobject);
begin

if strtoint(Memo3.Lines[0])<> 54 then begin
	   Mediaplayer1.filename := ausg;
	   Mediaplayer1.Open;
	 end
	 else
	 Button1.Click;

end;
Procedure Tform1.vid1play2(Sender:Tobject);
begin

if strtoint(Memo3.Lines[0])<> 55 then begin
	   Mediaplayer1.filename := ausg;
		Mediaplayer1.Open;
	 end
	 else
	 Button1.Click;

end;
Procedure Tform1.vid1play3(Sender:Tobject);
begin

if strtoint(Memo3.Lines[0])<> 56 then begin
	   Mediaplayer1.filename := ausg;
		Mediaplayer1.Open;
	 end
	 else
	 Button1.Click;

end;
Procedure TForm1.vid1play4(Sender:Tobject);
begin

if strtoint(Memo3.Lines[0])<> 57 then begin
	   Mediaplayer1.filename := ausg;
	   Mediaplayer1.Open;
	 end
	 else
	 Button1.Click;

end;
procedure TForm1.Button2Click(Sender: TObject);
begin
f1:=0;
Button1.Enabled:=True;

Memo1.Lines[0]:= 'D:\video\Kopie von PICT0003.00.wmv';
Memo1.Lines[1]:= 'D:\video\Kopie von PICT0004.00.wmv';
Memo1.Lines[2]:= 'D:\video\Kopie von PICT0005.wmv';
Memo1.Lines[3]:= 'D:\video\Kopie von PICT0006.wmv';
Memo1.Lines[4]:= 'D:\video\Kopie von PICT0007.00.wmv';
Randomize;
vid0:=True;
vid1:=True;
vid2:=True;
vid3:=True;
vid4:=True;

for I := 0 to Memo2.Lines.Count - 1 do
Memo2.Lines[I]:=inttostr(I);
  
end;

procedure TForm1.Button3Click(Sender: TObject);
begin

f1:= f1+1;
 case filmaus of
	0: memo3.Lines[0]:='53';
	1: memo3.Lines[1]:='54';
	2: memo3.Lines[2]:='55';
	3: memo3.Lines[3]:='56';
	4: memo3.Lines[4]:='57';
  end;

 case filmaus of
	0: vid0:=False;
	1: vid1:=False;
	2: vid2:=False;
	3: vid3:=False;
	4: vid4:=False;
  end;

  If  f1 >= 10  then begin
	Button5.Enabled:=True;
	Button3.Enabled:=false;
	Button2.Enabled:=True;
	Button1.Enabled:=false;

   end;
end;


procedure TForm1.Button4Click(Sender: TObject);
begin

zahl := memo1.Lines.Count;
	filmaus:= Random(zahl);

	  case filmaus of
	  0: ausg:= Memo1.Lines[0];
	  1: ausg:= Memo1.Lines[1];
	  2: ausg:= Memo1.Lines[2];
	  3: ausg:= Memo1.Lines[3];
	  4: ausg:= Memo1.Lines[4];
	  end;
end;

procedure TForm1.Button6Click(Sender: TObject);
begin
memo2line:= memo2line+1;	//1.0sek
case filmaus of
0: memo2.Lines[0]:=Memo1.Lines[0];
1: memo2.Lines[1]:=Memo1.Lines[0];
2: memo2.Lines[2]:=Memo1.Lines[0];
3: memo2.Lines[3]:=Memo1.Lines[0];
4: memo2.Lines[4]:=Memo1.Lines[0];
end;
end;

procedure TForm1.Button7Click(Sender: TObject);
begin
memo2line:= memo2line+1;  //0.5
case filmaus of
0: memo2.Lines[0]:=Memo1.Lines[1];
1: memo2.Lines[1]:=Memo1.Lines[1];
2: memo2.Lines[2]:=Memo1.Lines[1];
3: memo2.Lines[3]:=Memo1.Lines[1];
4: memo2.Lines[4]:=Memo1.Lines[1];
end;
end;

procedure TForm1.Button8Click(Sender: TObject);
begin
memo2line:= memo2line+1;	//0
 case filmaus of
0: memo2.Lines[0]:=Memo1.Lines[2];
1: memo2.Lines[1]:=Memo1.Lines[2];
2: memo2.Lines[2]:=Memo1.Lines[2];
3: memo2.Lines[3]:=Memo1.Lines[2];
4: memo2.Lines[4]:=Memo1.Lines[2];
end;
end;

procedure TForm1.Button9Click(Sender: TObject);
begin
memo2line:= memo2line+1;	 //-0.5
case filmaus of
0: memo2.Lines[0]:=Memo1.Lines[3];
1: memo2.Lines[1]:=Memo1.Lines[3];
2: memo2.Lines[2]:=Memo1.Lines[3];
3: memo2.Lines[3]:=Memo1.Lines[3];
4: memo2.Lines[4]:=Memo1.Lines[3];
end;
end;

procedure TForm1.Button10Click(Sender: TObject);
begin
memo2line:= memo2line+1;		   //-1.0
case filmaus of
0: memo2.Lines[0]:=Memo1.Lines[4];
1: memo2.Lines[1]:=Memo1.Lines[4];
2: memo2.Lines[2]:=Memo1.Lines[4];
3: memo2.Lines[3]:=Memo1.Lines[4];
4: memo2.Lines[4]:=Memo1.Lines[4];
end;
end;

end.


Ich weiß, der Code ist schrecklich, aber ich kanns noch nicht besser.

Und ein Bild:
Angehängtes Bild: Aufzeichnen.JPG
die Zahlen sindnanem der Buttons, ohne "Button" dahinter.

Könnt ihr mir einen Tipp geben, wie ich das beheben kann?

Und bei den Videos, kann man 5 verschiedene Videos nehmen.

Dieser Beitrag wurde von Ghost92 bearbeitet: 03. Dezember 2007 - 21:13

Zufällig interessante Videos schauen? http://random-video.net !
0

Anzeige



#2 Mitglied ist offline   christoph_hausner 

  • Gruppe: aktive Mitglieder
  • Beiträge: 68
  • Beigetreten: 23. August 07
  • Reputation: 0

geschrieben 04. Dezember 2007 - 16:10

Erstelle ein Integer-Array mit den Zahlen von 1 bis 5. Dann wählst du jedesmal eines zufällig aus dem Array aus und löscht es danach, sodass es beim nächsten Mal nicht mehr zufällig ausgewählt werden kann. Noch einfacher, wenn auch weniger effizient: statt dem Array eine TStringList nehmen.
0

#3 Mitglied ist offline   Ghost92 

  • Gruppe: aktive Mitglieder
  • Beiträge: 597
  • Beigetreten: 01. August 06
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 08. Dezember 2007 - 17:56

So, das ist geschaft. Nächstes Problem: ich möchte .txt-Dateien in einem Ordner zählen und dann ausgeben. Bräuchte mal dringend ein Denkanstoß.

Danke im voraus.
Zufällig interessante Videos schauen? http://random-video.net !
0

#4 Mitglied ist offline   christoph_hausner 

  • Gruppe: aktive Mitglieder
  • Beiträge: 68
  • Beigetreten: 23. August 07
  • Reputation: 0

geschrieben 09. Dezember 2007 - 14:33

Das sollte dir weiterhelfen.
0

#5 Mitglied ist offline   Ghost92 

  • Gruppe: aktive Mitglieder
  • Beiträge: 597
  • Beigetreten: 01. August 06
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 09. Dezember 2007 - 15:40

Danke schön. Ich werde das jetzt ein bisshen anschauen und sehen, was ich davon brauche.

Danke nochmal.
Zufällig interessante Videos schauen? http://random-video.net !
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0