AGB  ·  Datenschutz  ·  Impressum  







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

Mehrer einträge verschieben

Ein Thema von mimi · begonnen am 27. Aug 2006 · letzter Beitrag vom 28. Aug 2006
Antwort Antwort
mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#1

Mehrer einträge verschieben

  Alt 27. Aug 2006, 18:19
Hallo,
ich möchte gerne mehrer einträge einer TJVCChecklistbox verschieben.
mit einem eintrag habe ich es hinbekommen...

das ganze soll in etwa so werden wie im Windows MediaPlayer oder Winamp geht.

hier ist mein qullcode:
Delphi-Quellcode:
var
  index,newIndex:Integer;
  i:Integer;
begin
  if Sender <> Source then begin
// TJvCheckListBox(Source).MoveSelection(TJvCheckListBox(sender));
    TJvCheckListBox(Source).CopySelection(TJvCheckListBox(sender));
  end
  else begin
// index:=TJvCheckListBox(Source).ItemIndex;
    newIndex:=TJvCheckListBox(Source).ItemAtPos(Point(x,y),true);
    for i:=0 to TJvCheckListBox(Source).Count-1 do begin
      if TJvCheckListBox(Source).Selected[i] = True then begin
        TJvCheckListBox(Source).items.exchange(i,newIndex);

        TJvCheckListBox(Source).Selected[NewIndex]:=True;
      end;
    end;
  end;
aufjedenfall geht das so nicht, ich weiß auch noch nicht warum(leider).
es gibt keine fehlermeldung er verschiebt auch nur an die falsche position

(ich arbeitet mit unendliche vielen listboxen dahrer habe ich den oben gezeigten weg gewählt !
ich hoffe ihr könnt das problem nachvollziehen !
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat
mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#2

Re: Mehrer einträge verschieben

  Alt 27. Aug 2006, 20:32
ich habe einen weg gefunden allerdings geht dieser weg nur wenn nicht das letzte item in der liste ausgwält wird beispiel:
Item1
Item2
Item3
Item4
Item5

jetzt ziehe ich item1 und 2 auf Item5 dann vertauschen sich die einträge von item1 und 2 die reinfolge ändert sicht dann sieht die liste so aus:
Item5
Item3
Item4
Item2
Item1
wobei sie eigentlich so aussehen sollte:
Item5
Item3
Item4
Item1
Item2

hier der code:
Delphi-Quellcode:
procedure TForm1.DraqDrop(Sender, Source: TObject; X, Y: Integer);
var
  index,newIndex:Integer;
  i:Integer;
begin
  if Sender <> Source then begin
// TJvCheckListBox(Source).MoveSelection(TJvCheckListBox(sender));
    TJvCheckListBox(Source).CopySelection(TJvCheckListBox(sender));
  end
  else begin
// index:=TJvCheckListBox(Source).ItemIndex;
    newIndex:=TJvCheckListBox(Source).ItemAtPos(Point(x,y),true);
    if newIndex > -1 then begin
      for i:=0 to TJvCheckListBox(Source).Count-1 do begin
        if TJvCheckListBox(Source).Selected[i] = True then begin
          TJvCheckListBox(Source).items.exchange(i,newIndex);

          TJvCheckListBox(Source).Selected[i]:=false;
          TJvCheckListBox(Source).Selected[NewIndex]:=True;

          if newIndex+1 < TJvCheckListBox(Source).items.count then
            newIndex:=newIndex+1
          else
            newIndex:=newIndex-1
        end;
      end;
    end;
  end;
end;
ich hoffe ihr könnt mir folgeden
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#3

Re: Mehrer einträge verschieben

  Alt 27. Aug 2006, 21:33
Kannst du etwas genauer beschreiben, wie die neue Reihenfolge zustande kommen soll? Denn dein Drag & Drop-Beispiel ist mir nicht nur aus keinem anderen Programm bekannt, ich sehe auch überhaupt keine Logik dahinter. So sähe dein Beispiel in Winamp aus:
Zitat:
1 + 2 markieren, auf 4 oder niedriger ziehen

3
4
5
1
2
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#4

Re: Mehrer einträge verschieben

  Alt 27. Aug 2006, 23:26
naja so änliches solltes es auch bei mir funktinieren.... das problem es halt die letztzeile.
ich sage ja immer +1 bei newindex und am ende geht das nicht mehr wenn ich jetzt es prüfe und dann garnichts mache bzw. -1 hinschreibe bekomme ich die reinfolge durcheinader....

das problem trit nur auf wenn ich zwei einträge makiert habe wenn ich mehr als zwei makiert habe dann geht es bzw. dann bleibt die reinfolge erhalten.
der grund wird das +1 sein und genau das ist das problem !

edit: das beispiel im zweiten post sollte es nur verdeutlichen wie es aussehen sollte wenn ich was verschoben das war nur einbeispiel !
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#5

Re: Mehrer einträge verschieben

  Alt 27. Aug 2006, 23:30
Wie sollen wir dir denn helfen können, wenn du nicht verrätst, wie die Einträge verschoben werden sollen?
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#6

Re: Mehrer einträge verschieben

  Alt 28. Aug 2006, 09:25
das verschieben soll mit der mauß passieren mit einem eintrag geht das ja auch schon.
d.h.
ich ziehe die Maus auf einen neuen eintrag und dort sollen die makierten einträge landen.
(und zwawr alle makieren einträge)
so wie in winamp und dem mediaplayer halt....
Ich möchte meine einträge mit der Maus per Draq und Drop verschieben können und zwar alle die makiert sind sollen an die neue position gebracht werden und genau da habe ich probleme !
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat
Antwort Antwort


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 15:36 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