![]() |
Schreibmaschineneffekt erzeugen
Ich weiß nicht genau in welche Kategorie meine Frage passt, deswegen stell ich sie mal hier rein.
Also ich habe gestern ein paar Programme erstellt die der Show "Familien Duell" ähneln. (diese Programme brauche ich für unseren letzten Schultag. Und wer die Show kennt, der weiß, dass die Lösungen an der Ratetafel fortlaufend erscheinen. und ich frage mich nun wie ich das in Delphi am besten umsetzen kann :?::?: Eine weitere Frage die ich noch habe, ist wie ich die 5 Programme die ich jetzt habe verbinden kann, sodass ich nicht jedes Projekt einzeln öffnen muss, sondern dass ich durch nen Button von einem Projekt ins andere gelange und gleichzeitig verschiedene Werte noch übertragen werden ( die Punktzahlen der Teams) Bin noch nicht so sehr erfahren mit Delphi, bin über jede Hilfe dankbar :D |
Re: Schreibmaschineneffekt erzeugen
Nimm ein Label für die Ausgabe, und füge der Caption des Labels in einer Schleife in jedem Durchlauf ein Zeichen hinzu. Dann bremst Du noch die Schleife entsprechend aus, und fertig.
Sherlock |
Re: Schreibmaschineneffekt erzeugen
hay,
wenn ich es richtig verstehe willst du ne art Hauptmenü erzeugen, wo du dann das Programm auswählen musst, oder? falls ja dann: kopiere die Anwendungen alle in einen Ordner und benutze diesen code:
Delphi-Quellcode:
falls nein dann:
ShellExecute(0, Nil, '<dein pfad>', ' /s', NIL, SW_NORMAL);
kann ich dir leider nicht weiter helfen. mfG Daniel |
Re: Schreibmaschineneffekt erzeugen
Na bestens, jetzt geht es hier wieder drunter und drüber. Nicht umsonst soll für jedes Thema ein Thread erstellt werden. Ich werde den letzten Beitrag deaktivieren und die zweite Frage aus dem ursprüngölichen Posting löschen.
@freshprince: Bitte erstell für jedes Thema einen eigenen Thread. Desweiteren hilft auch die Forensuche. |
Re: Schreibmaschineneffekt erzeugen
|
Re: Schreibmaschineneffekt erzeugen
erstmal danke für die schnelle Hilfe, aber so richtig weiter hilft mir das noch nicht...
Das Problem ist folgendes... Das Programm wird mit einem Beamer an die Wand geworfen wo es von den Zuschauern gesehen werden kann Die Finalrunde: Kandidat sagt eine Lösung. -> Die Lösung wird in das Programm eingefügt ( für die Zuschauer nicht sichtbar) ( das Beamerbild kann dabei ja gefreezed werden;) es wirkt praktisch in dem Moment programmiert, wenn die Lösung gesagt wird. Allerdings denke ich dass das nicht so schnell in eine Schleife zu programmieren ist, wenn ein ziemlich langes Wort kommt. ansonsten habe ich schon für die Runden davor mit einem timer gearbeitet, statt eine schleife, kommt aber aufs gleiche hinaus... bloß das lässt sich auch nicht sehr schnell programmieren...( um es auf den Punkt zu bringen: innerhalb von ca einer minute sollen 5 Lösungen programmiert werden. Wie kann man es am schnellsten bewerkstelligen, dass man im Programm nur noch die Wörter eingeben muss und diese dann im Schreibmaschineneffekt erscheinen?? |
Re: Schreibmaschineneffekt erzeugen
wieso muß das erst pogrammiert werden?
du brauchst nur ein Edit und 'nen Button zum Starten dann ließt du den Text aus dem Edit und fügst ihn Stück für Stück z.B. in ein Label:
Delphi-Quellcode:
Procedure TForm1.Button1Click(Sender: TObject);
Var S: String; Begin S := Edit1.Text; Label1.Caption := ''; While S > '' do Begin Label1.Caption := Label1.Caption + S[1]; Delete(S, 1, 1); Application.ProcessMessages; Sleep(150); End; End; [add] Beispiel für 2 Labels
Delphi-Quellcode:
jetzt noch'n Sound verbessern und es sieht fast aus wie echt
// [Edit1] + [Button1] > [Label1]
// [Edit2] + [Button2] > [Label2] Const MaximaleZeichenAnzahl = 20; Procedure ClearLabel(E: TEdit; L: TLabel); Var S: String; i: Integer; Begin E.MaxLength := MaximaleZeichenAnzahl; E.Text := ''; S := StringOfChar('_', MaximaleZeichenAnzahl); For i := MaximaleZeichenAnzahl downto 2 do Insert(' ', S, i); L.Caption := S; End; Procedure FillLabel(E: TEdit; L: TLabel); Var S, S2, S3: String; i: Integer; Begin S := Trim(E.Text); If S = '' Then S2 := StringOfChar('_', MaximaleZeichenAnzahl) Else S2 := S + StringOfChar(' ', MaximaleZeichenAnzahl - Length(S)); S3 := L.Caption + StringOfChar(' ', 2 * MaximaleZeichenAnzahl - Length(L.Caption) - 1); For i := 1 to MaximaleZeichenAnzahl - 1 do S3[i * 2] := ' '; i := 1; While i <= MaximaleZeichenAnzahl do Begin S3[i * 2 - 1] := S2[i]; L.Caption := S3; If S <> '' Then MessageBeep($40); Application.ProcessMessages; Sleep(50); Inc(i); End; End; Procedure TForm1.FormCreate(Sender: TObject); Begin ClearLabel(Edit1, Label1); ClearLabel(Edit2, Label2); End; Procedure TForm1.Button1Click(Sender: TObject); Begin FillLabel(Edit1, Label1); End; Procedure TForm1.Button1Click(Sender: TObject); Begin FillLabel(Edit2, Label2); End; Text in Edit eintragen und Button klicken zum löschen einfach Text im Edit löschen und Button drücken |
Re: Schreibmaschineneffekt erzeugen
danke, so habe ich das gemeint :D:D vielen Dank. klappt einwandfrei :D
|
Re: Schreibmaschineneffekt erzeugen
Zitat:
nur wenn ich nen Button mache mit folgendem Inhalt
Delphi-Quellcode:
kommt die Fehlermeldung:
procedure TForm1.Button1Click(Sender: TObject);
begin ShellExecute(0, Nil,'.\Runde 1\Project.exe', ' /s', NIL, SW_NORMAL); end;
Delphi-Quellcode:
muss ich da noch was anderes machen??
[Pascal Fehler] Unit1.pas(37): E2003 Undefinierter Bezeichner: 'ShellExecute'
|
Re: Schreibmaschineneffekt erzeugen
Hi,
Musst die Unit "shellapi" in die uses mit aufnehmen. Ganz oben in der Unit steht ungefähr sowas:
Delphi-Quellcode:
da schreibst du noch irgendwo shellapi hin. z.B.:
uses Windows, Classes, Forms, ...;
Delphi-Quellcode:
uses Windows, Classes, Forms, ..., shellapi;
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz