![]() |
Listbox <-> Listenindex überschreitet das maximum
Hi :)
mein erster post... gleich zum thema Ich habe ein OnClick in meiner Listbox .. nun wenn items eingetragen sind aber man klickt ins "leere" dann bekomm ich logischerweise diese meldung, gibt es eine möglichkeit diese zu unterdrücken da sie mehr als nervig für den endanwender ist. Daradon |
Re: Listbox <-> Listenindex überschreitet das maximum
Ja, mit itemindex kannst du überprüfen, ob ein element überhaupt ausgewählt ist. Ist ItemIndex -1, ist keines ausgewählt, ansonsten ist es der Index des Elements (beginnend mit 0)
Greetz alcaeus |
Re: Listbox <-> Listenindex überschreitet das maximum
Du kannst bevor Du auf die Listbox zugreifst testen ob TListBox.ItemIndex verschieden -1 ist.
|
Re: Listbox <-> Listenindex überschreitet das maximum
vielleicht klingt die frage zu newbie haft das man sie sich nicht genau durchließt... es geht darum .. ich habe 3 einträge drinnen, und dann klickt man nicht auf einen eintrag sondern ins leere .. und schon hat man die fehlermeldung.
|
Re: Listbox <-> Listenindex überschreitet das maximum
Zitat:
Wenn ich bei einer ListBox ins leere klicke hat Itemindex den Wert -1. Deshalb schreibe ich auch:
Code:
Damit wäre der Fehler verschwunden.
If Listbox.ItemIndex<>-1 then
ShowMessage(ListBox.Items[Listbox.ItemIndex]) Ohne Source kann ich nix weiter dazu schreiben. |
Re: Listbox <-> Listenindex überschreitet das maximum
itemindex -1 bedeutet wenn KEIN EINTRAG(= '') da steht und man draufklickt ;)
hoffe das hilft |
Re: Listbox <-> Listenindex überschreitet das maximum
Zitat:
Ach ja, bevor ich es vergesse: "Herzlich Willkommen in der Delphi-PRAXIS". |
Re: Listbox <-> Listenindex überschreitet das maximum
Delphi-Quellcode:
also .. die listbox is eine übersichtsliste von einträgen die sha1 verschlüsselt in einer datei liegen, klickt man nun auf einen eintrag , holt sich die box die daten aus der datei und übergibt sie in einen valuelisteditor. Nun .. wenn ich jetzt z.b 4 einträge drinnen habe .. und auf den leeren teil der liste klicke kommt natürlich sofort der fehler (was mir auch absolut klar ist warum). Nun ist es aber nervig wenn das dem benutzer dauernt passiert, deswegen suche ich nach einer möglichkeit das nur einträge angeklickt werden können und nicht die ganze komponente anklickbar ist.
procedure TForm1.ListBox1Click(Sender: TObject);
var help : Integer; list,prefix : TStringList; begin list := TStringList.Create; prefix := TStringList.create; //ShowMessage(IntToStr(ValueListEditor1.RowCount)); if help = 0 then begin ValueListEditor1.InsertRow('Titel:','',true); ValueListEditor1.InsertRow('Speicher1:','',true); ValueListEditor1.InsertRow('Speicher2:','',true); ValueListEditor1.InsertRow('Speicher3:','',true); ValueListEditor1.InsertRow('Text:','',true); ValueListEditor1.InsertRow('Url:','',true); ValueListEditor1.InsertRow('Username:','',true); ValueListEditor1.InsertRow('Passwort:','',true); help := 1 end else begin List := GetContentByRange(listbox1.Items[Listbox1.itemindex]); ValueListEditor1.Values['Titel:']:=GetPureStr(List[0]); ValueListEditor1.Values['Speicher1:']:=GetPureStr(List[1]); ValueListEditor1.Values['Speicher2:']:=GetPureStr(List[2]); ValueListEditor1.Values['Speicher3:']:=GetPureStr(List[3]); ValueListEditor1.Values['Text:']:=GetPureStr(List[4]); ValueListEditor1.Values['Url:']:=GetPureStr(List[5]); ValueListEditor1.Values['Username:']:=GetPureStr(List[6]); ValueListEditor1.Values['Passwort:']:=GetPureStr(List[7]); end; end; Hoffe ihr versteht mich jetzt :) p.s: Zitat:
|
Re: Listbox <-> Listenindex überschreitet das maximum
Hallo
Delphi-Quellcode:
Achtung: Du musst am Ende des Event-Handlers list und prefix noch freigeben !!!
procedure TForm1.ListBox1Click(Sender: TObject);
var help : Integer; list,prefix : TStringList; begin If ListBox1.ItemIndex=-1 then Exit; // Schreib das mal dazu list := TStringList.Create; prefix := TStringList.create; //ShowMessage(IntToStr(ValueListEditor1.RowCount)); if help = 0 then begin ValueListEditor1.InsertRow('Titel:','',true); ValueListEditor1.InsertRow('Speicher1:','',true); ValueListEditor1.InsertRow('Speicher2:','',true); ValueListEditor1.InsertRow('Speicher3:','',true); ValueListEditor1.InsertRow('Text:','',true); ValueListEditor1.InsertRow('Url:','',true); ValueListEditor1.InsertRow('Username:','',true); ValueListEditor1.InsertRow('Passwort:','',true); help := 1 end else begin List := GetContentByRange(listbox1.Items[Listbox1.itemindex]); ValueListEditor1.Values['Titel:']:=GetPureStr(List[0]); ValueListEditor1.Values['Speicher1:']:=GetPureStr(List[1]); ValueListEditor1.Values['Speicher2:']:=GetPureStr(List[2]); ValueListEditor1.Values['Speicher3:']:=GetPureStr(List[3]); ValueListEditor1.Values['Text:']:=GetPureStr(List[4]); ValueListEditor1.Values['Url:']:=GetPureStr(List[5]); ValueListEditor1.Values['Username:']:=GetPureStr(List[6]); ValueListEditor1.Values['Passwort:']:=GetPureStr(List[7]); end; end; |
Re: Listbox <-> Listenindex überschreitet das maximum
Zitat:
bei mir (Delphi 7) wird das OnClick-Ereigniss nicht ausgelöst wenn ich auf den "leeren Teil" eine ListBox klicke. Nur wenn ich auch wirklich einen Eintrag auswähle! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:08 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