Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Memo komponente Buchtaben auslesen,warten,weiterauslesen (https://www.delphipraxis.net/36382-memo-komponente-buchtaben-auslesen-warten-weiterauslesen.html)

Jab 19. Dez 2004 12:43


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...

malo 19. Dez 2004 12:44

Re: Memo komponente Buchtaben auslesen,warten,weiterauslesen
 
wenn du willst, dass immer eine Sekunde Pause gemacht wird, dann könntest du einen Timer nehmen ;)

Aenogym 19. Dez 2004 12:45

Re: Memo komponente Buchtaben auslesen,warten,weiterauslesen
 
hi,

in der hilfe steht alles schön erklärt.

zum auslesen: Delphi-Referenz durchsuchenTMemo.lines.text, Delphi-Referenz durchsuchenpos, Delphi-Referenz durchsuchencopy
und zum sekundenweise abarbeiten empfehe ich dir DelayDelay

Aenogym

Jab 19. Dez 2004 12:46

Re: Memo komponente Buchtaben auslesen,warten,weiterauslesen
 
das war flott...
Ja das ist aber nicht mein Hauptproblem...

Eher das auslesen

Jab 19. Dez 2004 12:47

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

Aenogym 19. Dez 2004 13:17

Re: Memo komponente Buchtaben auslesen,warten,weiterauslesen
 
hi,

hm aus dem kopf würd ich jetzt mal sagen:

Delphi-Quellcode:
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;
ja, delay gibts nicht direkt in delphi. deswegen einfach mal hier in der codelibrary schauen: delaydelay.

Aenogym

fkerber 19. Dez 2004 13:20

Re: Memo komponente Buchtaben auslesen,warten,weiterauslesen
 
Hi!

Also ich würde das mal so machen:

Delphi-Quellcode:
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;
So hast du jeden einzelnen Buchstaben.


Ciao Frederic

SirThornberry 19. Dez 2004 13:21

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:
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
noch besser wäre jede Zeile extra zu verarbeiten damit im Speicher nicht ein solanger String am Stück ist.
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;

Jab 19. Dez 2004 13:24

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) ;)

fkerber 19. Dez 2004 13:25

Re: Memo komponente Buchtaben auslesen,warten,weiterauslesen
 
Hi!

Delphi-Referenz durchsuchencase of


Ciao Frederic


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:31 Uhr.
Seite 1 von 2  1 2      

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