![]() |
TStringList => Anordnung der Einträge
Ich habe folgenden Code:
Delphi-Quellcode:
So.. jetzt gelingt es mir nicht z.B. die letzten, sagen wir, 5 Eingaben zu überprüfen, also
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin AllTypedKeys.Add(Key); end; procedure TForm1.Button1Click(Sender: TObject); var i: Integer; begin for i := 0 to AllTypedKeys.Count-1 do showmessage(AllTypedKeys[i]); end; mir etwas anderem zu vergleichen. Wie gehe ich da vor? |
Re: TStringList => Anordnung der Einträge
Möglicherweise löst der Enterdruck beim Schließen von ShowMessage auch beim Edit ein OnKeyPress aus.
So was ähnliches hatte ich auch mal. Pack dir doch mal eine TListBox aufs Form und lass die Eingaben da rein Adden, da siehst du vielleicht mehr? |
Re: TStringList => Anordnung der Einträge
Delphi-Quellcode:
Ok.. sie sind nun alle in der ListBox. Testeingabe im Memo war: 123
ListBox1.Items.AddStrings(AllTypedKeys);
In der ListBox sind sie so 1 2 3. In einer MessageBox wären sie auch untereinander. Wie "schneidet" man denn bei TStringList die letzten 5, oder 6 .. ab? Also ich meine: In der SringList suchen bringt nicht viel. Das habe ich schon alles angetestet. Weil die Einträge j alle Untereinander sind bringt dss nix. |
Re: TStringList => Anordnung der Einträge
Delphi-Quellcode:
müsste gehen.
while StringList.Count > irgendnezahl do StringList.Delete(StringList.Count-1);
|
Re: TStringList => Anordnung der Einträge
Ahh.. ne ich habe mich glaube ich falsch ausgedrückt :wall:
Ich meinte eigentlich, wie man die letzten paar Eingaben, z.B. die letzten 5 Eingaben, aus der Stringlist bekommt und als Zeichenkette in einen String packt . |
Re: TStringList => Anordnung der Einträge
Delphi-Quellcode:
müsste gehen ;)
if StringList.Count > 5 then
for i:=StringList.Count-1 downto 1 do Str:=Str+StringList[i]; |
Re: TStringList => Anordnung der Einträge
Mhh.. ich habs jetzt mal so versucht:
Delphi-Quellcode:
Nur leider überschreitet da etwas das Listenindex.
for i := AllTypedKeys.Count downto AllTypedKeys.Count-3 do
begin Str := AllTypedKeys[i]+Str; Label1.Caption := Str; end; Mit der for-Zeile dachte vom letzten eintrag 3 runter zählen zu können (-3) :idea: |
Re: TStringList => Anordnung der Einträge
Hier mal mein ganzer Code und worum es geht:
Delphi-Quellcode:
Angenommen ich tippe ABC ein, dann sollte dem Code nach, dachte ich, DEF HINTER ABC gesetzt werden aber der macht etwas murks. Heraus kommt: AB DEFC
for i := AllTypedKeys.Count-1 downto 0 do
begin Str := AllTypedKeys[i]+Str; Label1.Caption := Str; end; if Str = 'ABC' then begin Ln := SynMemo1.CaretY; CurPosition := SendMessage(SynMemo1.handle,EM_LineIndex,Ln,0); CurPosition := SynMemo1.SelStart-CurPosition; SynMemo1.SelStart := CurPosition+1; SynMemo1.SelText := 'DEF'; end; |
Re: TStringList => Anordnung der Einträge
Count - 1 !!
Die Zählung beginnt doch bei null und endet daher bei Count-1 |
Re: TStringList => Anordnung der Einträge
hm, beim SynMemo muss ich passen, das kenne ich nicht, steht denn wenigstens im Label das Richtige?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:43 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