![]() |
2 ListBoxen verkuppeln (Beim Scrollen)
Hi Leute!
Ja, wie mache ich das? Ich habe 2 ListBoxen, die jeweils gleich viele Items haben. Wenn ich jetzt nun an der einen LB rumscrolle, dann soll die 2. auch mitscrollen, sodass ich die Einträge immer auf gleicher Höhe habe. Ich hoffe, ihr versteht meine Frage. ;) |
Re: 2 ListBoxen verkuppeln (Beim Scrollen)
versuch mal 'ne TListView, statt 2 Listboxen!
|
Re: 2 ListBoxen verkuppeln (Beim Scrollen)
Danke Illu.
Jetzt gibt's nur noch ein Problem: Ich hab noch nie mit einer ListView gearbeitet. Ich weiß nicht, wer es war, aber irgendjemand hat hier mal so einen HexViewer programmiert. Der wurde auch mit 3 ListBoxen erstellt. |
Re: 2 ListBoxen verkuppeln (Beim Scrollen)
So geht das leider nicht:
Delphi-Quellcode:
procedure TForm1.ListBox1Click(Sender: TObject);
begin ListBox2.Selected[ListBox1.ItemIndex]:=true; end; |
Re: 2 ListBoxen verkuppeln (Beim Scrollen)
neue Frage, neuer Thread ;-)
Nutzt du jetzt statt den beiden Listboxen eine Listview? Nun ja da brauchst du das ja gar nicht, du willst doch das die ganze Zeile markiert wird oder wie? Da gibt es eine Eigenschaft. ICh glaube RowSelect oder so heißt die, probier es mal aus.. |
Re: 2 ListBoxen verkuppeln (Beim Scrollen)
Danke Alex. Aber ich bin immer noch bei meiner alten Frage, wie ich das mit einer ListBox (besser gesagt: mit 2 ListBoxen) machen soll. :gruebel:
|
Re: 2 ListBoxen verkuppeln (Beim Scrollen)
mhm es gibt die WM WM_MOUSEWHEEL, damit könnte man vielleicht was anfangen.
Musst de mal schauen, ich habe jetzt leider keine Zeit mehr mir das genauer anzukucken.. ![]() |
Re: 2 ListBoxen verkuppeln (Beim Scrollen)
Danke, aber das muss doch irgendwie anders gehen.
Ich glaube Spider war das mit dem HexViewer, bin mir aber nicht sicher. Falls du es warst, Spider, dann melde dich bitte. |
Re: 2 ListBoxen verkuppeln (Beim Scrollen)
Delphi-Quellcode:
private
OldGridProc1, OldGridProc2: TWndMethod; procedure Grid1WindowProc(var Message: TMessage); procedure Grid2WindowProc(var Message: TMessage); public {...} procedure TForm1.Grid1WindowProc(var Message: TMessage); begin OldGridProc1(Message); if ((Message.Msg = WM_VSCROLL) or (Message.Msg = WM_HSCROLL) or Message.msg = WM_Mousewheel)) then begin OldGridProc2(Message); end; end; procedure TForm1.Grid2WindowProc(var Message: TMessage); begin OldGridProc2(Message); if ((Message.Msg = WM_VSCROLL) or (Message.Msg = WM_HSCROLL) or (Message.msg = WM_Mousewheel)) then begin OldGridProc1(Message); end; end; procedure TForm1.FormCreate(Sender: TObject); begin OldGridProc1 := ListBox1.WindowProc; OldGridProc2 := ListBox2.WindowProc; ListBox1.WindowProc := Grid1WindowProc; ListBox2.WindowProc := Grid2WindowProc; end; |
Re: 2 ListBoxen verkuppeln (Beim Scrollen)
Hi! Danke, nur bringt er hier einen fehler:
Delphi-Quellcode:
Wie ist das? Geht das auch, wenn ich nur auf die Scrollbar an der Seite der ListBox klicke, oder nur, wenn ich am Mausrad drehe? :gruebel:
if ((Message.Msg = WM_VSCROLL) or (Message.Msg = WM_HSCROLL) or
Message.msg = WM_Mousewheel)) then |
Re: 2 ListBoxen verkuppeln (Beim Scrollen)
Zitat:
|
Re: 2 ListBoxen verkuppeln (Beim Scrollen)
Zitat:
|
Re: 2 ListBoxen verkuppeln (Beim Scrollen)
Zitat:
![]() Die ist von mir, da ist aber nix mit drei Listboxen, sondern nur ein Listview. |
Re: 2 ListBoxen verkuppeln (Beim Scrollen)
Sorry Chewie, das ist es leider nicht. Ich bin mir sicher, dass jemand so etwas in der Art mit 3 ListBoxen gamacht hat.
|
Re: 2 ListBoxen verkuppeln (Beim Scrollen)
Dann ist ja gut. Hab mich schon gewundert :gruebel:...
|
Re: 2 ListBoxen verkuppeln (Beim Scrollen)
Zitat:
Habe hier noch einen besseren Code gefunden: ![]() |
Re: 2 ListBoxen verkuppeln (Beim Scrollen)
Falls du es doch mit der Listbox machen willst und ich dich richtig verstanden hab:
Delphi-Quellcode:
Oder andersrum
procedure TForm1.ListBox1Click(Sender:TObject);
begin Listbox2.Itemindex := ListBox1.Itemindex; end;
Delphi-Quellcode:
procedure TForm1.ListBox2Click(Sender:TObject);
begin Listbox1.Itemindex := ListBox2.Itemindex; end; |
Re: 2 ListBoxen verkuppeln (Beim Scrollen)
Schau mal hier:
![]() Da hatte ich das gleiche "Problem", nur halt in Bezug auf Memo's. |
Re: 2 ListBoxen verkuppeln (Beim Scrollen)
Danke Tpercon!
Aber bei mir geht das nicht so richtig, ich habe meine Frage falsch formuliert, ich meinte nicht scrollen, sonder, wenn ich in einer ListBox was anklicke, dann soll in der daneben liegenden dessen Eintrag auf gleicher Höhe markiert sein. Sorry. :wall: |
Re: 2 ListBoxen verkuppeln (Beim Scrollen)
Dann so:
Code:
KASI
procedure TForm1.ListBox1Click(Sender: TObject);
begin ListBox2.TopIndex := ListBox1.TopIndex; ListBox2.ItemIndex := ListBox1.ItemIndex; end; |
Re: 2 ListBoxen verkuppeln (Beim Scrollen)
Versuche das ganze jetzt mit 3 Grids zu machen. Leider funktioniert es nicht habe jetzt noch folgendes eingefüht:
Delphi-Quellcode:
Das Grid2 ist mein Grid mit dem ich die Navigation steure. Bei den anderen zwei habe ich ScrollBars auf None gesetzt. Mit zwei Grids hat das auch wunderbar funktioniert. Jedoch jetzt mit dem dritten geht es zwar immer noch, doch das dritte Grid scrollt nicht mit.
private
{ Private declarations } OldGridProc1, OldGridProc2, OldGridProc3: TWndMethod; [...] procedure Grid3WindowProc(var Message: TMessage); [...] procedure TForm1.FormCreate(Sender: TObject); [...] OldGridProc3 := StringGrid3.WindowProc; StringGrid3.WindowProc := Grid3WindowProc; [...] procedure TForm1.Grid3WindowProc(var Message: TMessage); begin OldGridProc3(Message); if ((Message.Msg = WM_VSCROLL) or (Message.Msg = WM_HSCROLL) or (Message.msg = WM_Mousewheel)) then begin OldGridProc2(Message); end; end; Könnte das auch daran liegen, dass das dritte Grid nicht die selbe Spaltenanzahl hat? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:04 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz