![]() |
TStringList bleibt leer nach Find, nur warum? *gelöst*
Hallo liebe DP-Gemeinde, ich habe in meiner Logik irgendwie etwas falsch und komme einfach nicht weiter.
Ich möchte eine StringList mit Strings füllen die noch nicht enthalten sind und bei neuen wird der hinten rangehangen. Hier ist der Code (fixed!):
Delphi-Quellcode:
// global
var SList: TStringList; ... constructor TXXX.Create; begin inherited Create; SList := TStringList.Create; end; destructor TXXX.Destroy; begin SList.Free; inherited Destroy; end; function AddSList(_HWND: HWND): Boolean; var i: Integer; tmp: String; begin Result := False; tmp := ''; i := 0; SetLength(tmp, 64); SetLength(tmp, GetClassName(_HWnd, PWideChar(tmp), 64)); SList.Sort; if (SList.Find(String(IntToStr(_HWnd)+' <> '+tmp), i) = False) then begin i := SList.Add(String(IntToStr(_HWnd)+' <> '+tmp)); Result := True; end; end; function TXXX.Aufruf(_HWnd: HWND): String; begin Result := ''; if ((AddSList(_HWnd) = True) and (SList.Count > 0)) then // hier war mein Fehler, Count und HWnd waren vertauscht, Danke @ sahimba begin Result := SList.Strings[SList.Count-1]; Memo1.Lines.Add(Result); end; end; |
AW: TStringList bleibt leer nach Find, nur warum?
(SList.Count > 0)
ergibt natürlich immer False... ist ja noch nix in der Liste drin. |
AW: TStringList bleibt leer nach Find, nur warum?
Jupp! Ich wusste zwar was ich wollte nur die Reihenfolge war falsch.
Delphi-Quellcode:
Danke!
if ((AddSList(_HWnd) = True) and (SList.Count > 0)) then
|
AW: TStringList bleibt leer nach Find, nur warum? *gelöst*
So nebenbei bemerkt:
Warum
Delphi-Quellcode:
aber dann nur
(AddSList(_HWnd) = True)
Delphi-Quellcode:
?
(SList.Count > 0)
Entweder
Delphi-Quellcode:
(ich prüfe einen Boolean Wert immer nochmal auf True um wirklich wirklich sicher sicher zu zu sein sein)
if ((AddSList(_HWnd) = True) and ((SList.Count > 0) = True))
then oder
Delphi-Quellcode:
(ein Boolean ist genug)
if (AddSList(_HWnd) and (SList.Count > 0))
then PS: Eine Frage "Warum funktioniert mein Code nicht" wird für die Zukunft sinnlos, wenn man den fehlerhaften Code in der Ursprungsfrage korrigiert. |
AW: TStringList bleibt leer nach Find, nur warum? *gelöst*
Delphi-Quellcode:
if ((AddSList(_HWnd) = True) and ((SList.Count > 0) = True))
Und ich prüfe nie auf True..
Delphi-Quellcode:
if ((AddSList(_HWnd)) and ((SList.Count > 0)))
ist vollkommen ausreichend. gruss |
AW: TStringList bleibt leer nach Find, nur warum? *gelöst*
@KodeZwerg: Zieh dir mal dein Thread rein:
![]() |
AW: TStringList bleibt leer nach Find, nur warum? *gelöst*
|
AW: TStringList bleibt leer nach Find, nur warum? *gelöst*
Zitat:
Zitat:
Zitat:
Danke für Boolean Hinweise. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:33 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