AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

checklistbox.deleteselected funzt nicht

Ein Thema von Go2EITS · begonnen am 3. Okt 2006 · letzter Beitrag vom 24. Mär 2007
Antwort Antwort
Seite 1 von 2  1 2      
Go2EITS

Registriert seit: 25. Jun 2006
519 Beiträge
 
Delphi 7 Personal
 
#1

checklistbox.deleteselected funzt nicht

  Alt 3. Okt 2006, 16:49
Ich habe ein trivales Problem:

Ein einfaches
checklistbox1.items.add('1');
checklistbox1.items.add('2');
checklistbox1.items.add('3');
füllt die Listbox.

Ich kann alles markieren.

Multiselected scheint True zu sein.

checklistbox1.DeleteSelected löscht nur einen markierten Eintrag statt alles.

Was mache ich da falsch? Die Suche in der Hilfe und DP half mir auch nicht weiter.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: checklistbox.deleteselected funzt nicht

  Alt 3. Okt 2006, 17:34
Moin Go2EITS,

das kann ich für D7 Pro und TDE Win32 nicht bestätigen.
Es funktioniert wie erwartet.

Zitat von Go2EITS:
Multiselected scheint True zu sein.
das Mulitselect standardmässig false ist müsstest Du es schon gezielt aktiviert haben.

Auch wenn ich das Deiner Beschreibung nach eigentlich nicht vermute:
Verwechselst Du vielleicht Selected und Checked?
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Go2EITS

Registriert seit: 25. Jun 2006
519 Beiträge
 
Delphi 7 Personal
 
#3

Re: checklistbox.deleteselected funzt nicht

  Alt 3. Okt 2006, 18:15
@Seehase
Danke für Deine Hilfe!

Die in der Checklistbox selectierten Einträge sollen gelöscht werden. Da verwechsle ich mal nix.
Hier mein Code:

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
begin
chklst1.items.Add('1');
chklst1.items.Add('2');
chklst1.items.Add('3');
end;

procedure TForm1.button1Click(Sender: TObject);
begin
chklst1.DeleteSelected;
end;
Ich habe es nochmals probiert.
Der Code löscht nur einen Eintrag. Den unteren.

Ich werfe nun cnwizzard raus.
  Mit Zitat antworten Zitat
Go2EITS

Registriert seit: 25. Jun 2006
519 Beiträge
 
Delphi 7 Personal
 
#4

Re: checklistbox.deleteselected funzt nicht

  Alt 3. Okt 2006, 18:39
Ich wundere mich auch: Multiselected wird trotz intensiver Suche von mir nicht gefunden.
Weder unter D7 noch unter BDS2006 Win32. Ich verwende eine TChecklistbox.
Cnwizzard und delphispeedup deinstalliert. Gleiches Problem. Irgendetwas mache ich falsch.

Oha, ich sehe gerade, wenn ich eine anderen Eintrag makiere, und deleleteselected aufrufe wird der betreffende Eintrag gelöscht.Ich möchte, ich glaube da liegt mein Missverständnis, die Eintragungen mit Hacken löschen. Und dass scheint eine andere Eigenschaft zu sein, oder? Ein deletechecked konnte ich nicht finden.
Und clearselection löscht nur die makierten Einträge lt. der Hilfe. Funzt bei mir auch nicht.

Da habe ich wol ein generelles Verständnisproblem.
  Mit Zitat antworten Zitat
Go2EITS

Registriert seit: 25. Jun 2006
519 Beiträge
 
Delphi 7 Personal
 
#5

Re: checklistbox.deleteselected funzt nicht

  Alt 3. Okt 2006, 20:09
Na ja, da beibt mir wohl nichts anderes als meine gerade gefundene Notlösung zu nehmen:

Delphi-Quellcode:
for i:=checklistbox1.count-1 downto 0 do
  begin
   if checklistbox1.Checked[i]=true then
    checklistbox1.items.Delete(i);
  end;
Dies geht. Aber es gibt doch sicherlich für die gewählten, mit Hacken versehen Einträge, eine andere Lösung, oder?

Beste Grüße an die DP.
Go2EITS
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: checklistbox.deleteselected funzt nicht

  Alt 3. Okt 2006, 23:23
Moin Go2EITS,

was das MultiSelect angeht:
Nicht alles steht im Objektinspektor.

Die CheckedListBox kennt diese Eigenschaft.

Zitat von Go2EITS:
ich glaube da liegt mein Missverständnis, die Eintragungen mit Hacken löschen.
Haken dran => Checked
Ausgewählt/farbig hinterlegt: => Selected
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#7

Re: checklistbox.deleteselected funzt nicht

  Alt 3. Okt 2006, 23:45
Ein Vorschlag damit es bei langen Liste nicht so lange dauert:

Delphi-Quellcode:
CheckListBox1.Items.BeginUpdate;
Try
  For i := Pred(checklistbox1.Count) DownTo 0 Do
    If checklistbox1.Checked[i] Then
      Checklistbox1.items.Delete(i);
Finally
  CheckListBox1.Items.EndUpdate;
End;
  Mit Zitat antworten Zitat
Go2EITS

Registriert seit: 25. Jun 2006
519 Beiträge
 
Delphi 7 Personal
 
#8

Re: checklistbox.deleteselected funzt nicht

  Alt 4. Okt 2006, 06:29
Moin Seehase!
Zitat:
Nicht alles steht im Objektinspektor.
Das wusste ich nicht!
Zitat:
Haken dran => Checked
Ausgewählt/farbig hinterlegt: => Selected
Ja, das habe ich dann auch ge"checked".

@Muetze1:
Klingt theatralisch, ist aber frei nach "Apocalypse Now": Ich liebe erfrischenden Code am Morgen.
Delphi-Quellcode:
CheckListBox1.Items.BeginUpdate;
Try
  For i := Pred(checklistbox1.Count) DownTo 0 Do
    If checklistbox1.Checked[i] Then
      Checklistbox1.items.Delete(i);
Finally
  CheckListBox1.Items.EndUpdate;
End;
Den Code habe ich sogleich gleich mal übernommen! Danke!
Beste Grüße
Go2EITS
  Mit Zitat antworten Zitat
Christoph Frank

Registriert seit: 6. Mär 2007
26 Beiträge
 
#9

Re: checklistbox.deleteselected funzt nicht

  Alt 24. Mär 2007, 13:53
Hallo zusammen,

also mit der CheckListBox habe ich so meine Probleme.
Wie im Beitrag geschrieben - bei der CheckListBox gebe es auch ein MultiSelect - kann ich nicht bestätigen.
Wenn damit gemeint ist, daß ich sowohl ein Checked wie auch Selected ausführen kann, dann fängt da mein Problem schon an.
Ich möchte z.B. eine farbliche Hinterlegung in meiner CheckListBox haben aber nur dann, wenn auch ein Haken gesetzt ist und nur bei den angehakten. Auch möchte ich eine Möglichkeit haben, daß nur ein Haken gesetzt werden kann, also vergleichbar mit MultiSelect := false in der ListBox.

Hat denn dafür jemand eine Lösung?
Das Beispiel in diesem Beitrag habe ich etwas umgeändert und dachte mir damit zu helfen:

Altes Beispiel: Mein Beispiel:
CheckListBox1.Items.BeginUpdate; CheckListBox1.Items.BeginUpdate;
Try
For i := Pred(checklistbox1.Count) DownTo 0 Do For i := Pred(checklistbox1.Items.Count)
DownTo 0 Do
If checklistbox1.Checked[i] Then If checklistbox1.Checked[i] Then
Checklistbox1.items.Delete(i); Checklistbox1.Selected[i] := false;
Finally Finally
CheckListBox1.Items.EndUpdate; CheckListBox1.Items.EndUpdate;
End; End;

Bei meinem Beispiel knalle ich aber raus 'Index überschreitet das Maximum von (n)'

Gruß Christoph
  Mit Zitat antworten Zitat
Christoph Frank

Registriert seit: 6. Mär 2007
26 Beiträge
 
#10

Re: checklistbox.deleteselected funzt nicht

  Alt 24. Mär 2007, 13:57
Hoppla,
der hat mir alle Blanks weggeschmissen, hier noch mal mein Beispiel:

[delphi]
CheckListBox1.Items.BeginUpdate;
Try
For i := Pred(checklistbox1.Items.Count) DownTo 0 Do
If checklistbox1.Checked[i] Then
Checklistbox1.items.Selected[i] := false;
Finally
CheckListBox1.Items.EndUpdate;
End;
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:31 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