Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - CheckListBox Problem


bounc3r - Di 26.10.04 16:22
Titel: CheckListBox Problem
Hallo,

ich habe da ein Problem mit der CheckListBox (Register "Zusätzlich") und zwar...

Wenn ich jetzt z.B. drei Einträge drin stehen hab, möchte ich zB den Mittleren (den 2ten) auswählen (Bei mir ist dann da ein blauer Hintergrund) und durch einen Button diesen Eintrag dann löschen. WIchtig ist es dann auch, dass mir irgendwie in eine Variable der Index, dessen EIntrag ich gelöscht habe, reingeschrieben wird (Bei drei Einträgen wärs der mittlere Eintrag ja dann der Index 1, weil delphi da ja mit 0 anfängt zu Zählen) Und warum? Weil ich gleichzeitig einen Array hab wo syncron beides Reingeschrieben wird (Einmal in der checklistbox und dann im Array), wenn ich nun etwas aus dem checklistbox lösche soll auch gleichzeit der dazugehörige Eintrag im Array gelöscht werden....

Ich hoffe ich hab mich verständlich ausgedrückt

Vielen vielen dank

PS: ich hab irgendwie das gefühl das ich alles doppelt machen, gibt es keinen weg die eintrage zwischen Array und checklistbox autom. zu verknüpfen?


bounc3r - Di 26.10.04 16:31

ok selbst beantwortet

CheckListBox1.Items.Delete(CheckListBox1.ItemIndex);

aber kann mir jemand meien PS: frage beantworten



EDIT: Naja nicht ganz selbst beantwortet: Wenn ich jetzt " Text[CheckListBox1.ItemIndex] := ''; " schreibe, dann sagt er " Der linken Seite kann nichts zugewiesen werden..."

ALSO BITTE HELFEN


greg - Di 26.10.04 16:40

Hallo bounc3r,

ich hab mich auch schon gefragt, wofür Du das Array brauchst. Du hast doch die Einträge in der ChecklistBox. Da kannst Du doch im Prinzip genauso, wie auf ein Array drauf zugreifen. Mit ChecklistBox1.Items.Count, kriegst Du sogar die Anzahl der Einträge zurück.

Gruß
Gregor


bounc3r - Di 26.10.04 16:54

Warum ich es brauche?

Ok ich wollte euch damit verschonen, abe GUT ich glaub es muss sein damit mich jemand versteht

Stellt euch vor ich habe NEws die ich verwalten möchte, es gibt aber nicht nur eine News sondern mehrere. In der CheckListBox stehen nun alle News drin (einzelne zB jeden Tag eine), aber nicht der ganze text sondern nur die Ersten 10 Zeichen (zu orientierung um was es sich handelt) hab ich halt mit nem Copy befehl gelöst. So ok weiter...
So wie die Einträge in der CLB (CheckListBox) stehen (also untereinander), so sollen sie dann auch später auf ner HTML/Flash Seite ausgegeben werden (Wie ich sie ausgeben ist aber hier nicht wichtig, ich mein ob es HTML ist spielt keine ROlle) jetzt möchte ich aber auch mit dem löschen Button einen Eintrag löschen (und zawr den, den ich ausgewählt habe). OK verstanden? in der CLB stehen nur kurz zusammengefasst was ich alles drin hab damit ich alle news editieren kann.


thx


greg - Di 26.10.04 17:19

ok, verstehe ... begreife ... hoffentlich :P

Also ... wie wäre es, wenn Du Deine 'Nachrichtentitel' in der Checklistbox verwaltest, Dir die ausführlichen Nachrichten in einer Stringliste hälst und für beide dieselbe Indizierung verwendest? Das Löschen aus der Stringliste funktioniert mit StringList.Delete(Index). Guck Dir doch mal das Objekt TStringlist in der Hilfe an.

Gruß
Gregor


Tino - Mi 27.10.04 08:23

Hallo!

Als "Verknüpfung" könntest du die Data Eigenschaft der Items verwenden. Allerdings musst du dann immer noch beide Daten (Checkbox & Array) gleichzeitig pflegen.

Gruß
Tino