Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   TStringList => Anordnung der Einträge (https://www.delphipraxis.net/103524-tstringlist-%3D-anordnung-der-eintraege.html)

Tommy1988 16. Nov 2007 21:41


TStringList => Anordnung der Einträge
 
Ich habe folgenden Code:

Delphi-Quellcode:
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;
So.. jetzt gelingt es mir nicht z.B. die letzten, sagen wir, 5 Eingaben zu überprüfen, also
mir etwas anderem zu vergleichen.

Wie gehe ich da vor?

Progman 16. Nov 2007 21:47

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?

Tommy1988 16. Nov 2007 21:51

Re: TStringList => Anordnung der Einträge
 
Delphi-Quellcode:
ListBox1.Items.AddStrings(AllTypedKeys);
Ok.. sie sind nun alle in der ListBox. Testeingabe im Memo war: 123

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.

Progman 16. Nov 2007 21:53

Re: TStringList => Anordnung der Einträge
 
Delphi-Quellcode:
while StringList.Count > irgendnezahl do StringList.Delete(StringList.Count-1);
müsste gehen.

Tommy1988 16. Nov 2007 21:57

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 .

Progman 16. Nov 2007 22:00

Re: TStringList => Anordnung der Einträge
 
Delphi-Quellcode:
if StringList.Count > 5 then
  for i:=StringList.Count-1 downto 1 do Str:=Str+StringList[i];
müsste gehen ;)

Tommy1988 16. Nov 2007 22:20

Re: TStringList => Anordnung der Einträge
 
Mhh.. ich habs jetzt mal so versucht:
Delphi-Quellcode:
  for i := AllTypedKeys.Count downto AllTypedKeys.Count-3 do
  begin
   Str := AllTypedKeys[i]+Str;
   Label1.Caption := Str;
  end;
Nur leider überschreitet da etwas das Listenindex.

Mit der for-Zeile dachte vom letzten eintrag 3 runter zählen zu können (-3) :idea:

Tommy1988 16. Nov 2007 22:25

Re: TStringList => Anordnung der Einträge
 
Hier mal mein ganzer Code und worum es geht:

Delphi-Quellcode:
  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;
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

Progman 16. Nov 2007 22:26

Re: TStringList => Anordnung der Einträge
 
Count - 1 !!
Die Zählung beginnt doch bei null und endet daher bei Count-1

Progman 16. Nov 2007 22:28

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.
Seite 1 von 3  1 23      

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