Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Überprüfen ob String in ListBox vorhanden (https://www.delphipraxis.net/28703-ueberpruefen-ob-string-listbox-vorhanden.html)

GimbaR 28. Aug 2004 19:34


Überprüfen ob String in ListBox vorhanden
 
Hi, hba mal wieder ne Frage: Ich habe den Source-Code von Luckie genutzt, um bestimmte Programme zu schließen. Nun habe ich folgendes Problem: Wenn mein Programm ein Programm beenden will, bzw soll^^, dass nicht gestartet wurde, kommt eine Fehlermeldung "Listenindex überschreitet das Maximum (-1)". Ich habe es hiermit versucht zu umgehen:
Delphi-Quellcode:
if ((Listbox1.Items.Strings[Listbox1.Items.IndexOf(appexe)])=appexe) then
        KillProcess(GetProcessID(Listbox1.Items.Strings[Listbox1.Items.IndexOf(appexe)]));
Wie man unschwer erkennen kann, enthält die Variable appexe die exe-Datei. Das mit KillProcess funktioniert einwandfrei, außer wenn halt der String nicht in der ListBox (in der die System-Prozesse als Items/Strings geladen werden) vorhanden ist.

Meine Frage lautet nun, wie ich gucken kann, ob der String appexe schon vorhanden ist...

mfg GimbaR

Assarbad 28. Aug 2004 19:38

Re: Überprüfen ob String in ListBox vorhanden
 
Indem du die Rückgabe von IndexOf() überprüfst? -1 sollte bedeutetn, daß der String nciht vorhanden ist.

himitsu 28. Aug 2004 21:17

Re: Überprüfen ob String in ListBox vorhanden
 
Also sollte
Delphi-Quellcode:
if (Listbox1.Items.Strings[Listbox1.Items.IndexOf(appexe)]) > -1 then
        ...
ausreichen, ausserdem ist doch
Delphi-Quellcode:
        Listbox1.Items.Strings[Listbox1.Items.IndexOf(appexe)]) = appexe
, da ja "Listbox1.Items.IndexOf(appexe)" die Position von "appexe" und demnach "Listbox1.Items.Strings[Die_Position_von_appexe)])" wiederum "appexe" zurückgibt.

Also kommt es somit auf folgendes raus:
Delphi-Quellcode:
if (Listbox1.Items.Strings[Listbox1.Items.IndexOf(appexe)]) > -1 then
        KillProcess(GetProcessID(appexe));

Assarbad 28. Aug 2004 22:21

Re: Überprüfen ob String in ListBox vorhanden
 
Zitat:

Zitat von himitsu
Also kommt es somit auf folgendes raus:
Delphi-Quellcode:
if (Listbox1.Items.Strings[Listbox1.Items.IndexOf(appexe)]) > -1 then
        KillProcess(GetProcessID(appexe));

LOL, so genau hatte ich garnicht hingeschaut. Sieht aber viel eleganter aus als vorher :-D


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:07 Uhr.

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