Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Familienduell - Leinwandausgabe (https://www.delphipraxis.net/25905-familienduell-leinwandausgabe.html)

chris01 14. Jul 2004 17:29


Familienduell - Leinwandausgabe
 
Hi,

da wir bei uns in der Schule am Freitag Schulfest haben, haben sich alle Klassenspiele ausgesucht, so auch meine.

Wir wollen gerne Familienduell machen, klappt auch alles, doch möchte ich gerne die Ausgabe wie beim richtigen Familienduell, das die Antwortzeichenweise ausgegeben wird, machen.

Meine Idee war bis jetzt es mit einem Timer zu machen, doch fehlt mir ein Ansatz.

Wäre lieb, wenn einer mir helfen könnte :)


Gruß
Christopher

neolithos 14. Jul 2004 17:38

Re: Familienduell - Leinwandausgabe
 
Delphi-Quellcode:
procedure ???(lbl : TLabel; const sText : String);
var i : Integer;
begin
  for i := 1 to Length(sText) do
      begin
        lbl.Caption := Copy(sText, 1, i);
        Application.ProcessMessages;
        Sleep(200);
      end;
end;
Nicht getestet, aus dem Kopf heraus geschreiben.

Rackergen2 14. Jul 2004 17:54

Re: Familienduell - Leinwandausgabe
 
Zitat:

Zitat von neolithos
Delphi-Quellcode:
procedure ???(lbl : TLabel; const sText : String);
var i : Integer;
begin
  for i := 1 to Length(sText) do
      begin
        lbl.Caption := Copy(sText, 1, i);
        Application.ProcessMessages;
        Sleep(200);
      end;
end;
Nicht getestet, aus dem Kopf heraus geschreiben.

Wenn ich mich nicht irre, hat Delphi keine sleep-Methode...

Baue dir einen Timer (Timer1), setze ihn auf 200 ms und disable ihn.
Lass ihn auf die obrer Methode zugreifen.
Baue einen Button (Button1) und lasse ihn auf die untere Methode zurückgreifen.
Außerdem brauchst du ein Label (Label1)...

Den Rest bekommst du schon raus...

Delphi-Quellcode:
var
  i: integer;
  sText: string;

...

procedure TForm1.Timer1Timer(...); //oder so ähnlich
begin
  Timer1.enabled:=false; //falls es nicht weiter geht
  Label1.Caption := Copy(sText, 1, i); //Label betexten

  if i=length(sText) then exit; //ganzes Wort bearbeitet? --> Funktion beenden

  inc(i); //nächster Buchstabe
  Timer1.enabled:=true; //200 ms warten
end;

procedure TForm1.Button1Click(Sender: TComponent);
begin
  sText:='Mäusefurz'; //Wort festlegen
  i:=1; //erster Buchstabe ist Start
  Timer1.Enabled:=true; //Los geht's!
end;
not yet tested...

EDIT: Tested edited and working...

Nebenbei, wollt ihr da wirklich vorher 100 Leute befragen.
Nochetwas, macht ihr das in den Ferien oder habt ihr noch Schule?

Luckie 14. Jul 2004 17:57

Re: Familienduell - Leinwandausgabe
 
Zitat:

Zitat von Rackergen2
Zitat:

Zitat von neolithos
Delphi-Quellcode:
procedure ???(lbl : TLabel; const sText : String);
var i : Integer;
begin
  for i := 1 to Length(sText) do
      begin
        lbl.Caption := Copy(sText, 1, i);
        Application.ProcessMessages;
        Sleep(200);
      end;
end;
Nicht getestet, aus dem Kopf heraus geschreiben.


Du irrst. Ist zwar das Sleep aus der Unit Windows.pas aber das tut ja nichts zur Sache.

neolithos 14. Jul 2004 17:58

Re: Familienduell - Leinwandausgabe
 
Delphi nicht! Aber Windows! -> Ergo Delphi auch!

Nikolas 14. Jul 2004 18:17

Re: Familienduell - Leinwandausgabe
 
Beim Familien-Duell erscheint doch nicht nur das Wort selbst, sondern noch eine Reihe von Punkten bevor das Wort selbst erscheint. Wenn man das zu suchende Wort so verändert, wird's noch ein bisschen spannender und kommt dem Original etwas näher:
Delphi-Quellcode:
i:=30;
while i>length(stext) do
begin
punkte:=punkte+'.';
dec(i);
end;
stext:=punkte+stext;
Sleep natürlich etwas runter sonst wird's etwas langweilig.

chris01 14. Jul 2004 21:07

Re: Familienduell - Leinwandausgabe
 
Danke...genau das brauchte ich :love:


Gruß
Christopher

[EDIT]@Rackergen2 P.S. Wir haben noch bis Mittwoch Schule..., ergo machen wir es in der Schulzeit[/EDIT]

Rackergen2 14. Jul 2004 23:38

Re: Familienduell - Leinwandausgabe
 
Zitat:

Zitat von chris01
Danke...genau das brauchte ich :love:


Gruß
Christopher

[EDIT]@Rackergen2 P.S. Wir haben noch bis Mittwoch Schule..., ergo machen wir es in der Schulzeit[/EDIT]

Herzliches Beileid :zwinker:

Welches Bundesland lässt euch denn bei den sommerlichen (:zwinker:) Temperaturen in der Schule hocken?

Tastaturkürzel 23. Mai 2007 12:16

Re: Familienduell - Leinwandausgabe
 
Ich weiß das dieser Bericht schon tierisch Alt ist und wenn ich pech habe die Person gar nicht mehr aktiv.... Aber ich bin zurzeit genau auf der Suche nach einem solchen Programm, ist da noch dran zu kommen? Es übersteigt bei weitem meine Delphi fähigkeit das zu Programmieren, bin aber im Besitz von Borland Delphi und könnte es, wenn jemand den gesamten Quellcode noch hat, ausführen... Wäre sehr froh! (Brauche es nicht um in der Schule zu glänzen und mich mit fremden Federn zu schmücken sondern für unserern Feztag (abientlassung)!

Danke

Tasta


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