Entwickler-Ecke
Sonstiges (Delphi) - Schrift efeckt
N47R0N - Mi 18.05.05 20:00
Titel: Schrift efeckt
Hi
Ich wollte fragen wie man si eine art schrift efeckt zu stande bringt z.B
Ich drücke einen Button und es erscheint ein fenster in dem es so aussit als würde jemand da rein schreiben und ein text entsteht langsam .
galagher - Mi 18.05.05 20:17
Titel: Re: Schrift efeckt
N47R0N hat folgendes geschrieben: |
| Ich drücke einen Button und es erscheint ein fenster in dem es so aussit als würde jemand da rein schreiben und ein text entsteht langsam . |
Hallo! Nimm doch einen Timer, der dir Buchstabe für Buchstabe hinzufügt und sich disabled, wenn der Text komplett ist.
JayEff - Mi 18.05.05 20:18
1: Suche benutzen
2:
TTIMER
3: Label1.Caption:=Label1.Caption+'a';
Der Rest sollte einich einfach sein... Bin mir aber recht sicher, dass die frage schonmal (schon 2 mal...? )gestellt wurde.
N47R0N - Mi 18.05.05 21:21
OK danke erstmal
Werd das näste mal suchen :D
N47R0N - Mi 18.05.05 21:53
N47R0N hat folgendes geschrieben: |
| OK danke erstmal |
Habe aber trotzdem ein problem unzwar wie bekomme ich den timer dazu immer eine bestimmte zeit zu warten bis er den nästen bustaben hinzufügt .
Moderiert von
matze: Quote Tag repariert
rjan - Mi 18.05.05 22:01
Den intervall höher drehen (siehe Objektinspektor)
VitaminC - Mi 18.05.05 22:02
Einfach die Eigenschaft "Interval" verändern. Angabe erfolgt in Millisekunden.
Also z.B.:
Delphi-Quelltext
1:
| Timer1.Interval := 500; |
für eine halbe Sekunde.
--> Tia, eine Sekunde zu langsam gewesen :-)
Moderiert von
matze: Code- durch Delphi-Tags ersetzt.
rjan - Mi 18.05.05 22:11
| Zitat: |
Einfach die Eigenschaft "Interval" verändern. Angabe erfolgt in Millisekunden.
Also z.B.:
ausblenden anzeigen Code
ausgeblendet markieren
1:
Timer1.Interval := 500;
für eine halbe Sekunde. |
ODER so
N47R0N - Mi 18.05.05 22:36
Das habe ich bereitz versucht , doch das funktioniert irgendwie nicht
mein code:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119: 120: 121: 122: 123: 124: 125:
| procedure TForm1.Timer3Timer(Sender: TObject); begin Label25.font.Color:=clred; Label25.Caption:=Label25.Caption+'G'; if Timer3.Interval := 500 then begin Label25.Caption:=Label25.Caption+'a'; end; begin if Timer3.Interval := 1000 then begin Label25.Caption:=Label25.Caption+'m'; end; begin if Timer3.Interval := 1500 then begin Label25.Caption:=Label25.Caption+'e'; end; begin if Timer3.Interval := 2000 then begin Label25.Caption:=Label25.Caption+'R'; end; begin if Timer3.Interval := 2500 then begin Label25.Caption:=Label25.Caption+'i'; end; begin if Timer3.Interval := 3000 then begin Label25.Caption:=Label25.Caption+'p'; end; begin if Timer3.Interval := 3500 then begin Label25.Caption:=Label25.Caption+'z'; end; begin if Timer3.Interval := 4000 then begin Label25.Caption:=Label25.Caption+' '; end; begin if Timer3.Interval := 4500 then begin Label25.Caption:=Label25.Caption+'H'; end; begin if Timer3.Interval := 5000 then begin Label25.Caption:=Label25.Caption+'T'; end; begin if Timer3.Interval := 5500 then begin Label25.Caption:=Label25.Caption+'M'; end; begin if Timer3.Interval := 6000 then begin Label25.Caption:=Label25.Caption+'L'; end; begin if Timer3.Interval := 6500 then begin Label25.Caption:=Label25.Caption+' '; end; begin if Timer3.Interval := 7000 then begin Label25.Caption:=Label25.Caption+'C'; end; begin if Timer3.Interval := 7500 then begin Label25.Caption:=Label25.Caption+'r'; end; begin if Timer3.Interval := 8000 then begin Label25.Caption:=Label25.Caption+'e'; end; begin if Timer3.Interval := 8500 then begin Label25.Caption:=Label25.Caption+'a'; end; begin if Timer3.Interval := 9000 then begin Label25.Caption:=Label25.Caption+'t'; end; begin if Timer3.Interval := 9500 then Label25.Caption:=Label25.Caption+'o'; end; begin if Timer3.Interval := 10000 then begin Label25.Caption:=Label25.Caption+'r'; end; begin if Timer3.Interval := 10500 then begin Label25.Caption:=Label25.Caption+' '; end; begin if Timer3.Interval := 11000 then begin Label25.Caption:=Label25.Caption+'1'; end; begin if Timer3.Interval := 11500 then begin Label25.Caption:=Label25.Caption+'.'; end; begin if Timer3.Interval := 12000 then begin Label25.Caption:=Label25.Caption+'0'; Timer3.Enabled := false end;
end. |
Der Fehler der mir angezeigt wird:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27:
| [Fehler] Unit1.pas(334): Ausdruckstyp muss BOOLEAN sein [Fehler] Unit1.pas(339): Ausdruckstyp muss BOOLEAN sein [Fehler] Unit1.pas(344): Ausdruckstyp muss BOOLEAN sein [Fehler] Unit1.pas(349): Ausdruckstyp muss BOOLEAN sein [Fehler] Unit1.pas(354): Ausdruckstyp muss BOOLEAN sein [Fehler] Unit1.pas(359): Ausdruckstyp muss BOOLEAN sein [Fehler] Unit1.pas(364): Ausdruckstyp muss BOOLEAN sein [Fehler] Unit1.pas(369): Ausdruckstyp muss BOOLEAN sein [Fehler] Unit1.pas(374): Ausdruckstyp muss BOOLEAN sein [Fehler] Unit1.pas(379): Ausdruckstyp muss BOOLEAN sein [Fehler] Unit1.pas(384): Ausdruckstyp muss BOOLEAN sein [Fehler] Unit1.pas(389): Ausdruckstyp muss BOOLEAN sein [Fehler] Unit1.pas(394): Ausdruckstyp muss BOOLEAN sein [Fehler] Unit1.pas(399): Ausdruckstyp muss BOOLEAN sein [Fehler] Unit1.pas(404): Ausdruckstyp muss BOOLEAN sein [Fehler] Unit1.pas(409): Ausdruckstyp muss BOOLEAN sein [Fehler] Unit1.pas(414): Ausdruckstyp muss BOOLEAN sein [Fehler] Unit1.pas(419): Ausdruckstyp muss BOOLEAN sein [Fehler] Unit1.pas(424): Ausdruckstyp muss BOOLEAN sein [Fehler] Unit1.pas(428): Ausdruckstyp muss BOOLEAN sein [Fehler] Unit1.pas(433): Ausdruckstyp muss BOOLEAN sein [Fehler] Unit1.pas(438): Ausdruckstyp muss BOOLEAN sein [Fehler] Unit1.pas(443): Ausdruckstyp muss BOOLEAN sein [Fehler] Unit1.pas(448): Ausdruckstyp muss BOOLEAN sein [Fehler] Unit1.pas(454): Record, Objekt oder Klassentyp erforderlich [Fehler] Unit1.pas(457): 'END' erwartet, aber Dateiende gefunden [Fataler Fehler] Project1.dpr(7): Verwendete Unit 'Unit1.pas' kann nicht compiliert werden |
Bitte helft mir :cry: :cry: :cry: :cry:
crakos - Mi 18.05.05 23:40
Delphi-Quelltext
1:
| Label25.Caption:=Label25 |
du weist es zu mit := du darfst aber nur fragen if mhmhmh ist mhmhmh dann mhmhmh ;)
also nur =
JayEff - Do 19.05.05 00:40
interessante sache. wieso fragst du mit der If-abfrage die größe des intervalls ab? versuchs mal so:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| var Form1 : TForm1; i : integer;
procedure TForm1.Timer1onTimer(Sender: TObject); begin inc(i); case i of 1:Label1.text:=Label1.Text+'h'; 2:Label1.text:=Label1.Text+'a'; 3:Label1.text:=Label1.Text+'l'; 4:Label1.text:=Label1.Text+'l'; 5:Label1.text:=Label1.Text+'o'; 6:Label1.text:=Label1.Text+' '; 7:Label1.text:=Label1.Text+'w'; 8:Label1.text:=Label1.Text+'e'; 9:Label1.text:=Label1.Text+'l'; 10:Label1.text:=Label1.Text+'t'; end; end; |
Dann stellst du noch den Timer1.Intervall auf die entsprechende größe (vielleicht 500 milisekunden) und tadaaa, klappt.
N47R0N - Do 19.05.05 07:11
Habe meinen code jetzt überarbeitet
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119: 120: 121: 122: 123: 124: 125:
| procedure TForm1.Timer3Timer(Sender: TObject); begin Label25.font.Color:=clred; Label25.Caption:=Label25.Caption+'G'; if Timer3.Interval = 500 then begin Label25.Caption:=Label25.Caption+'a'; end; begin if Timer3.Interval = 1000 then begin Label25.Caption:=Label25.Caption+'m'; end; begin if Timer3.Interval = 1500 then begin Label25.Caption:=Label25.Caption+'e'; end; begin if Timer3.Interval = 2000 then begin Label25.Caption:=Label25.Caption+'R'; end; begin if Timer3.Interval = 2500 then begin Label25.Caption:=Label25.Caption+'i'; end; begin if Timer3.Interval = 3000 then begin Label25.Caption:=Label25.Caption+'p'; end; begin if Timer3.Interval = 3500 then begin Label25.Caption:=Label25.Caption+'z'; end; begin if Timer3.Interval = 4000 then begin Label25.Caption:=Label25.Caption+' '; end; begin if Timer3.Interval = 4500 then begin Label25.Caption:=Label25.Caption+'H'; end; begin if Timer3.Interval = 5000 then begin Label25.Caption:=Label25.Caption+'T'; end; begin if Timer3.Interval = 5500 then begin Label25.Caption:=Label25.Caption+'M'; end; begin if Timer3.Interval = 6000 then begin Label25.Caption:=Label25.Caption+'L'; end; begin if Timer3.Interval = 6500 then begin Label25.Caption:=Label25.Caption+' '; end; begin if Timer3.Interval = 7000 then begin Label25.Caption:=Label25.Caption+'C'; end; begin if Timer3.Interval = 7500 then begin Label25.Caption:=Label25.Caption+'r'; end; begin if Timer3.Interval = 8000 then begin Label25.Caption:=Label25.Caption+'e'; end; begin if Timer3.Interval = 8500 then begin Label25.Caption:=Label25.Caption+'a'; end; begin if Timer3.Interval = 9000 then begin Label25.Caption:=Label25.Caption+'t'; end; begin if Timer3.Interval = 9500 then Label25.Caption:=Label25.Caption+'o'; end; begin if Timer3.Interval = 10000 then begin Label25.Caption:=Label25.Caption+'r'; end; begin if Timer3.Interval = 10500 then begin Label25.Caption:=Label25.Caption+' '; end; begin if Timer3.Interval = 11000 then begin Label25.Caption:=Label25.Caption+'1'; end; begin if Timer3.Interval = 11500 then begin Label25.Caption:=Label25.Caption+'.'; end; begin if Timer3.Interval = 12000 then begin Label25.Caption:=Label25.Caption+'0'; Timer3.Enabled := false end;
end. |
Kommt aber immernoch n fehler
azubi_20 - Do 19.05.05 13:53
Hi,
Siehst so aus als ob du die Funktionsweise des Timers nicht richtig verstanden hast.
Zum Verständnis : Alles, was im Ereignis OnTimer steht wird im Abstand von n Millisekunden ausgeführt.
(Wobei n der Wert des Intervalls ist). Das Intervall bezeichnet aber NICHT die vergangene Zeit.
Guck dir nochmal den Code von JayEff an. Falls du ihn nicht verstehst nochmal die Erklärung :
Wenn du jede halbe Sekunde einen Buchstaben setzen willst stellst du den Timer.Intervall auf 500.
Im OnTimer-Ereignis baust du dann einen Zähler ein, der sich bei jedem Aufruf des Ereignisses um 1 erhöht. Danach fragst den Zähler ab und fügst den entsprechenden Buchstaben hinzu. Ist der Zähler beim letzen Buchstaben kannst du noch Timer.enable auf false setzen.
JayEff - Do 19.05.05 14:04
Ausserdem fehlt bei dir noch ein end; ... -.-
N47R0N - Do 19.05.05 15:22
DANKE Azubi 20 jetzt hab ich es richtig verstanden
F34r0fTh3D4rk - Do 19.05.05 15:34
Schrift Effekt:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| procedure TForm1.Button1Click(Sender: TObject); var i: integer; str: string; begin randomize; str := 'Hello World'; label1.caption := ''; for i := 1 to length(str) do begin label1.caption := label1.caption + str[i]; application.processmessages; sleep(random(255) + 126); end; end; |
JayEff - Do 19.05.05 16:53
jaaaaa genau ^^ das ist natürlich noch besser. einen String nehmen und per schleife zeichenweise auslesen...
F34r0fTh3D4rk - Do 19.05.05 16:55
warum denn nicht ?
Fabian W. - Do 19.05.05 17:11
Eine andere Möglichkeit bestünde darin, den Text ganz in ein Label zu machen, dessen widht auf 0 setzten und dann die widht immer größer werden lassen. So kommen dann die Zeichen wie aus der Feder, nur dass manchmal halt 2 Federn schreiben müssten :wink:
JayEff - Do 19.05.05 19:06
auch nich schlecht.
@FotD: Ich meinte: deine Idee ist natürlich besser als meine. Viel weniger kompliziert! Übersichtlicher! das war es, was ich sagen wollte, das sollte nicht ironisch gemeint sein, sorry wenns so rüber kam :wink:
F34r0fTh3D4rk - Fr 20.05.05 14:59
gut, weil ich finde die sleeps doch schon etwas unelegant :lol:
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!