![]() |
Memo komponente Buchtaben auslesen,warten,weiterauslesen
Hallo ich habe folgendes Problem :wall: :wall:
Ich möchte jeden einzelnen Buchstaben aus einer Memo-Komponente auslesen, also z.B. (im Memo steht): sadfdsfa dann (in der selben Dialogbox) unten in ein Säulendiagramm jeweils für s:20% einfügen, dann eine Sekunde warten (säulendiagramm wieder auf 0% setzen,nächsten Buchstaben auslesen), dann für a:10% einfügen (säulendiagramm wieder auf 0% setzen,nächsten Buchstaben auslesen), warten, dann für d:30% einfügen (säulendiagramm wieder auf 0% setzen,nächsten Buchstaben auslesen), ...warten, usw... Das Problem ist nun, wie schaffe ich es das Delphi einen Buchstaben ausliest, dann z.B. "Gauge1.Progress := (Gauge1.Progress + 20);" macht und erst nach einer Sekunde weiterarbeitet... Auch soll delphi das automatisieren also z.B. IMMER für s:20% eingeben... Ich hoffe ihr versteht das was ich da geschrieben hab... Vielen Dank im voraus... |
Re: Memo komponente Buchtaben auslesen,warten,weiterauslesen
wenn du willst, dass immer eine Sekunde Pause gemacht wird, dann könntest du einen Timer nehmen ;)
|
Re: Memo komponente Buchtaben auslesen,warten,weiterauslesen
hi,
in der hilfe steht alles schön erklärt. zum auslesen: ![]() ![]() ![]() und zum sekundenweise abarbeiten empfehe ich dir ![]() Aenogym |
Re: Memo komponente Buchtaben auslesen,warten,weiterauslesen
das war flott...
Ja das ist aber nicht mein Hauptproblem... Eher das auslesen |
Re: Memo komponente Buchtaben auslesen,warten,weiterauslesen
Okay noch ma kurz...
Kann mir das keiner in einfachen Worten (oder Codesnippets) sagen, wie ich einzelne Buchstaben nacheinander aus ner Memo auslesen kann und bei jedem Buchstaben was angezeigt bekomme? UND JA Ich hab die Forumsuchfunktion schon benutzt UND JA Ich hab mein Englisches Handbusch schon gelesen Beides ohne nennnenswerten ERfolg |
Re: Memo komponente Buchtaben auslesen,warten,weiterauslesen
hi,
hm aus dem kopf würd ich jetzt mal sagen:
Delphi-Quellcode:
ja, delay gibts nicht direkt in delphi. deswegen einfach mal hier in der codelibrary schauen:
var currentChar: string;
position: integer; begin position := 1; //zum anfang setzem //solange tun, bis position das ende erreicht hat while position <= length(memo1.lines.text) do begin //aktuellen buchstaben einlesen currentchar := copy(memo1.lines.text, position, 1); //diesen buchstaben in eine listbox einfügen //(du kannst den buchstaben auch anders weiterverarbeiten - zB mit dem gauge listbox1.items.add(currentchar); //position erhöhen position := position+1; //eine sekunde warten (achtung! delay gehört nicht zu delphi. s.u.) delay(1000); end; end; ![]() Aenogym |
Re: Memo komponente Buchtaben auslesen,warten,weiterauslesen
Hi!
Also ich würde das mal so machen:
Delphi-Quellcode:
So hast du jeden einzelnen Buchstaben.
procedure TForm1.Button1Click(Sender: TObject);
var i: integer; begin for i:=1 to length(memo1.Text) do begin showmessage(Memo1.Lines.Text[i]); end; end; Ciao Frederic |
Re: Memo komponente Buchtaben auslesen,warten,weiterauslesen
es empfiehlt sich das "memo1.lines.text" in eine zwischen variable zu speichern da dies ein property ist und sonst bei jedem zugriff neu erzeugt wird. Also so machen
Delphi-Quellcode:
noch besser wäre jede Zeile extra zu verarbeiten damit im Speicher nicht ein solanger String am Stück ist.
var LStr: String;
LCount: Integer; LBuchstabe: Char; begin LStr := Memo1.Lines.Text; for LCount := 1 to length(LStr) do begin LBuchstabe := LStr[LCount]; //und jetzt kannst du mit LBuchstabe weiterarbeiten.. end; end
Delphi-Quellcode:
var LZeile: String;
LCountLines, LCountZeile: Integer; LBuchstabe: Char; begin for LCountLines := 0 to Memo1.Lines.count - 1 do begin LZeile := Memo1.Lines.Strings[LCountLines]; for LCountZeile := 1 to length(LZeile) do begin LBuchstabe := LZeile[LCountZeile]; //jetzt mit LBuchstabe weiterarbeiten wobei auch direct mit "LZeile[LCountZeile]" gearbeitet werden (wäre sogar performanter) end; end; end; |
Re: Memo komponente Buchtaben auslesen,warten,weiterauslesen
Jo das läuft nur soll Delphi bei jedem Buchstaben was anderes machen.
Also z.B. Bei s + 10 Bei t + 20 Und nun soll der die memo Komponente nacheinander abarbeiten also erst den Buchstaben prüfen, anzeigen, nächsten Buchstaben prüfen Also irgendwas mit If...Then zum warten nehm ich immer sleep(1000) ;) |
Re: Memo komponente Buchtaben auslesen,warten,weiterauslesen
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:06 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