Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Verschieben der Items innerhalb einer CheckListBox per Drag&
lexmy3 - Mi 04.01.06 11:25
Titel: Verschieben der Items innerhalb einer CheckListBox per Drag&
Hallo
Ich versuche die Items innerhalb einer CheckListBox verschieben zu konnen per Drag&Drop, doch es macht nicht was ich will. Kann einer vieleicht ein Tip geben???
Habe diesen Quellcode hier gefunden und auf mein Prog. umgeschrieben, doch es bewegt sich die Ganze CheckListBox und nicht die Items innerhalb WARUM???
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49:
| procedure TFormGeneral.CheckListBoxGeneralDragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); begin Accept := Source is TCheckListBox; end;
procedure TFormGeneral.CheckListBoxGeneralDragDrop(Sender, Source: TObject; X, Y: Integer); var iTemp : integer; ptTemp : TPoint; szTemp : String;
begin
ptTemp.x:=x; ptTemp.y:=y;
iTemp := 0; While iTemp <= TCheckListBox(Source).Items.Count-1 do begin
if TCheckListBox(Source).selected[iTemp] then begin
With Sender as TCheckListBox do begin
szTemp := TCheckListBox(Source).items[iTemp];
TCheckListBox(Source).items.Delete(iTemp);
items.Insert(itemAtPos(ptTemp,true),szTemp); end; end; inc(iTemp); end; end; |
Mfg
Lexmy3
Kroko - Mi 04.01.06 11:29
Items ist vom Typ TStrings und da gibt es Excchange als Methode :!:
lexmy3 - Mi 04.01.06 11:36
Kroko hat folgendes geschrieben: |
Items ist vom Typ TStrings und da gigt es Excchange als Methode :!: |
Hey es geht, musste nur im Objektinspector unter Eigenschaften DragKind auf dkDrag umstellen!!!!!!!!!!!
Und es geht doch!!!!!!!!!
Trotzdem Danke
mfg
Gruß aus Frankfurt
Kroko - Mi 04.01.06 11:42
lexmy3 hat folgendes geschrieben: |
...
Und es geht doch!!!!!!!!!
... |
Wenn man nach Byte bezahlt wird schon :P
lexmy3 - Mi 04.01.06 12:11
Kroko hat folgendes geschrieben: |
lexmy3 hat folgendes geschrieben: | ...
Und es geht doch!!!!!!!!!
... |
Wenn man nach Byte bezahlt wird schon :P |
Hey,
wenn du eine andere/kürzere Möglichkeit hast dann bin ich gerne bereit es umzuändern.
lexmy3 - Mi 04.01.06 12:30
So So nach deiner Kritik habe ich noch einwenig rum gestöbert und dies entdeckt.
Das geht auch und ist um einige Zeilen kürzer!!!
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| procedure TFormSewage.CheckListBoxSewageDragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); begin Accept := Source is TCheckListBox; end;
procedure TFormSewage.CheckListBoxSewageDragDrop(Sender, Source: TObject; X, Y: Integer); begin CheckListBoxSewage.Items.Move(CheckListBoxSewage.ItemIndex,CheckListBoxSewage.ItemAtPos(point(x,y),true)); end; |
Mfg
Willi
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!