![]() |
gespeicherten Text ausgeben
Hi erstmal, da meine Delphi-Kenntnisse nicht wirklich ausreichen frage ich hier.
Ich brauche ein paar Ansätze wie ich das folgende Programm realisieren könnte. - Ein vorgegebener Text soll in eine Textbox automatisch eingegeben werden - Sobald man in die Textbox reinklickt, soll es beginnen und automatisch aufhören sobald der Text zu ende ist. - Man sollte zwischen verschiedenen Texten wählen können, die eingegeben werden sollen. Ich verlange nicht das ihr mir alles vorkaut, ich brächte nur ein paar Schlüsselwörter damit ich es selbst nach googeln kann. Das Programm ist für etwas änliches da wie das auf dieser Seite : ![]() |
AW: gespeicherten Text ausgeben
TEdit, TMemo, TTimer, GetTickCount usw.
|
AW: gespeicherten Text ausgeben
ich habe ein qc gefunden der mir den text so ausgibt wie ich es wollte aber wie schaffe ich das nun das der text langsam ausgegeben wird ? d.h Buchstabe für Buchstabe und nicht sofort erscheint ? Hinter jedem Buchstaben einen Timer ?
|
AW: gespeicherten Text ausgeben
Wenn man voraussetzt, dass Du bereits ein Zeichen nach dem anderen anzeigst (bzw. z.B. in ein Memo kopierst), dann könntest Du nach jedem Zeichen ein Sleep(Dauer) einbauen.
|
AW: gespeicherten Text ausgeben
Ich habe den Speedtest mal gemacht. Die zählen die Eingaben mit und bei Enter oder Leertaste kommt ein neues Wort, sofern die Buchstabenanzahl übereinstimmte. Richtig geschriebene Wörter werden FontColor grün , falsch geschrieben rot. Und während man am Tippen ist, bekommt der zu tippende Wort eine Hintergrundfarbe (Color). Also, ein Label und ein Edit, mehr brauchst du nicht. Abfragen in OnKeyPress des Edits. Vorrat an Wörten eventuell mit StringList.LoadFromFile o. ä. . Dürfte nicht so schwer sein. Kein Timer!
|
AW: gespeicherten Text ausgeben
hey...
also das starten könntest du durch die OnClick-Methode deines EditFeldes auslösen. in dieser methode würde ich dann einen timer aktivieren. Das machst du in dem du Eigenschaft Enabled des Timers auf True setzt. der Timer kann dann eine Variable hochzählen. Diese Variable entspricht dann der Position des Buchstabens der hinzugefügt werden soll. wenn alle buchstaben nacheinander zum Text der im EditFeld angezeigt wird hinzugefügt wurden. muss sich der timer wieder deaktiviern. wenn man davon ausgeht das der text der in Edit1.Text steht in Edit2.Text soll und dein timer Timer1 heißt dann müsste das in etwa so aussehen:
Delphi-Quellcode:
{...} var Form1: TForm1; Index : Integer; implementation {$R *.dfm} procedure TForm1.Edit2Click(Sender: TObject); begin Timer1.Enabled := True; //Timer aktivieren Index := 0; //"Index an den Start des Strings setzen" end; procedure TForm1.Timer1Timer(Sender: TObject); begin if Index < length(Edit1.Text) then //bis zum Textende begin // Inc(Index); //Index hochzählen Edit2.Text := Edit2.Text + Edit1.Text[Index]; //und Buchstaben anhängen end else //wenn Text zuende durchgegangen Timer1.Enabled := False; //Timer Deaktivieren end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:02 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