AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Items der ListBox über die Grenzen verschieben?
Thema durchsuchen
Ansicht
Themen-Optionen

Items der ListBox über die Grenzen verschieben?

Ein Thema von AlexII · begonnen am 20. Mai 2011 · letzter Beitrag vom 20. Mai 2011
Antwort Antwort
AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#1

Items der ListBox über die Grenzen verschieben?

  Alt 20. Mai 2011, 17:30
Hallo, hab da eine Frage wo ich nicht weiter komme. Also ich verschiebe wie folgt Items in einer ListBox, was auch gut klappt, aber wenn ich ein Item weit nach vorne oder hinten verschieben will scrollt sich die ListBox nicht automatisch nach oben oder unten mit. So muss ich ein Item verschieben, die ListBox scrollen, wieder verschieben und weiter scrollen, bis ich oben oder unten ankomme, was sehr nervig ist.

Delphi-Quellcode:
procedure TForm1.ListBox1DragOver(Sender, Source: TObject; X, Y: Integer;
  State: TDragState; var Accept: Boolean);
begin
  Accept := Source = ListBox1;
end;

procedure TForm1.ListBox1DragDrop(Sender, Source: TObject; X, Y: Integer);
var TargetIndex : Integer;
begin
  if (Sender is TTntListBox) and (Source is TTntListBox) then
  begin
    with Sender as TTntListBox do
    begin
      TargetIndex := ItemAtPos(Point(X, Y), True);
      if (ItemIndex > -1) then
      begin
        Items.Move(ItemIndex, TargetIndex);
        ListBox2.Items.Move(ListBox2.ItemIndex, TargetIndex);
        ListBox3.Items.Move(ListBox3.ItemIndex, TargetIndex);
        ListBox4.Items.Move(ListBox4.ItemIndex, TargetIndex);
      end;
    end;
  end;
end;
Bin Hobbyprogrammierer! Meine Fragen beziehen sich meistens auf Lazarus!
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#2

AW: Items der ListBox über die Grenzen verschieben?

  Alt 20. Mai 2011, 17:32
Idee: Prüfe im MouseMove-Ereignis, ob der Cursor von Top N Pixel entfernt ist und scrolle dann via Code nach oben bzw. eben das ganze analog nach unten. Idee klar? Dazu solltest dann noch ein Flag einführen, welches den Drag-Status beinhaltet, denn das Verhalten sollte nur aktiv sein, wenn du ein Item gegriffen hast.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#3

AW: Items der ListBox über die Grenzen verschieben?

  Alt 20. Mai 2011, 17:39
Wie heißt denn der Befehl zum scrollen?
Bin Hobbyprogrammierer! Meine Fragen beziehen sich meistens auf Lazarus!
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#4

AW: Items der ListBox über die Grenzen verschieben?

  Alt 20. Mai 2011, 17:41
ListBox1.ScrollBy() ?

Gib mir einen Moment, muss selbst nachschauen

-- Edit: Habs gerade probiert, aber irgendwie hats auf die Schnell leider nicht geklappt. Dafür habe ich aber was bei den Schweizern gefunden. In der downloadbaren Demo sollte, laut Kommentar, alles notwendige drin stecken.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)

Geändert von s.h.a.r.k (20. Mai 2011 um 17:51 Uhr)
  Mit Zitat antworten Zitat
AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#5

AW: Items der ListBox über die Grenzen verschieben?

  Alt 20. Mai 2011, 22:07
Ja bei dem Demo wird die ListBox zwar automatisch gescrollt, aber man kann trotzdem kein Item z.B. an die erste Stelle ziehen.
Bin Hobbyprogrammierer! Meine Fragen beziehen sich meistens auf Lazarus!

Geändert von AlexII (20. Mai 2011 um 22:10 Uhr)
  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 02:19 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