2 Listboxen syncronisieren

Für Fragen von Einsteigern und Programmieranfängern...
felix96
Beiträge: 287
Registriert: So 29. Nov 2009, 17:44
CPU-Target: 32BitWin+64bitUbunt

2 Listboxen syncronisieren

Beitrag von felix96 »

Hallo,
damit meine ich ,wenn man an listbox1 nach unten scrollt, dann soll listbox 2 mitscrollen.
Vielen dank schonmal für antworten
Danke schonmal für eure Antworten
it´s not a bug, it´s a feature!

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: 2 Listboxen syncronisieren

Beitrag von pluto »

Es gibt einen relativ einfachen Weg: Du erstellt eine neue ListBox und leitest von TCustomListBox ab. Hier erstellt du dann z.b. eine Eigenschaft die du mit einer ListBox verbinden kannst.
Nun musst du noch die beiden Botschaften:
procedure WMVScroll(var Message: TWMVScroll); message WM_VSCROLL;
procedure WMHScroll(var Message: TWMHScroll); message WM_HSCROLL;
überschreiben. Hier musst du zunächst die Vorhandene Botschaft. Außerdem solltest du die Units: LMessages und Controls einbinden.

Ob das so geht, weiß ich nicht, ich habe es nicht getestet, es müsste aber. Du könntest natürlich auch in den Botschaften Events auslösen die du dann auffängst. Ist vielleicht etwas besser, wenn du mehr als zwei ListBoxen gleich halten möchtest.

Es müsste auch Möglich sein eine Botschaft zu senden, jedoch gibt es keine einfache Möglichkeit eine Botschaft aufzufangen ohne von eine vorhandenen Klasse abzuleiten.
MFG
Michael Springwald

monta
Lazarusforum e. V.
Beiträge: 2809
Registriert: Sa 9. Sep 2006, 18:05
OS, Lazarus, FPC: Linux (L trunk FPC trunk)
CPU-Target: 64Bit
Wohnort: Dresden
Kontaktdaten:

Re: 2 Listboxen syncronisieren

Beitrag von monta »

viel zu aufwendig.

Code: Alles auswählen

ListBox2.TopIndex:=ListBox1.TopIndex;
Johannes

Benutzeravatar
theo
Beiträge: 10904
Registriert: Mo 11. Sep 2006, 19:01

Re: 2 Listboxen syncronisieren

Beitrag von theo »

monta hat geschrieben:viel zu aufwendig.

Code: Alles auswählen

ListBox2.TopIndex:=ListBox1.TopIndex;
Das ist schon richtig Monta, aber Pluto hat auch nicht ganz unrecht.
Die Frage ist doch, wann du diesen Code ausführen willst.
Und da wäre Pluto's WM_SCROLL schon das richtige, gibt's aber nicht gratis.

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: 2 Listboxen syncronisieren

Beitrag von pluto »

Und da wäre Pluto's WM_SCROLL schon das richtige, gibt's aber nicht gratis.
Meinst du damit den Aufwand ?
ListBox2.TopIndex:=ListBox1.TopIndex;
Das währe natürlich auch noch eine Möglichkeit. Eine Andere, die gerne unter Delphi genutzt wird bei solche Art von Fragen währe: Ich sende eine Botschaft an die zweite ListBox, die ich steuern möchte.
Die Frage währe halt nur wie ?

Wir können ja hier mal einige Möglichkeiten aufdecken und besprechen :)
MFG
Michael Springwald

felix96
Beiträge: 287
Registriert: So 29. Nov 2009, 17:44
CPU-Target: 32BitWin+64bitUbunt

Re: 2 Listboxen syncronisieren

Beitrag von felix96 »

Sorry, schon wieder falsche fragenstellung (mis***)
Ich meinte das nur die Scrallbaren syncronisirt werden.
Danke schonmal für eure Antworten
it´s not a bug, it´s a feature!

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: 2 Listboxen syncronisieren

Beitrag von pluto »

Ja, so habe ich das auch verstanden. Mit meiner Idee von Oben müsste das gehen. Mit Montas Vorschlag könnte auch der ItemIndex verstellt werden, aber das weiß ich nicht sicher.

Edit: Du müsstet nur die Botschaft WMVScroll senden an die zweite ListBox.
MFG
Michael Springwald

felix96
Beiträge: 287
Registriert: So 29. Nov 2009, 17:44
CPU-Target: 32BitWin+64bitUbunt

Re: 2 Listboxen syncronisieren

Beitrag von felix96 »

pluto hat geschrieben: procedure WMVScroll(var Message: TWMVScroll); message WM_VSCROLL;
procedure WMHScroll(var Message: TWMHScroll); message WM_HSCROLL;
überschreiben. Hier musst du zunächst die Vorhandene Botschaft. Außerdem solltest du die Units: LMessages und Controls einbinden.

Es müsste auch Möglich sein eine Botschaft zu senden, jedoch gibt es keine einfache Möglichkeit eine Botschaft aufzufangen ohne von eine vorhandenen Klasse abzuleiten.
Das klingt aber irgendwie sehr - sehr kompliziert :oops:
Danke schonmal für eure Antworten
it´s not a bug, it´s a feature!

RSE
Beiträge: 462
Registriert: Mi 30. Jul 2008, 13:11
OS, Lazarus, FPC: WinXP SP3 (L 0.9.28.2 FPC 2.2.4)
CPU-Target: 32Bit
Kontaktdaten:

Re: 2 Listboxen syncronisieren

Beitrag von RSE »

An dieser Stelle mal ein Einwurf: Warum hat die ListBox kein Ereignis OnScroll? Das sollte man in die LCL einbauen hab ich bei irgend einer anderen Komponente schon mal gesehen, bilde ich mir ein. Dann wäre das alles viel einfacher.
Seit er seinen neuen Computer hat, löst er alle Probleme, die er vorher nicht hatte!

Benutzeravatar
theo
Beiträge: 10904
Registriert: Mo 11. Sep 2006, 19:01

Re: 2 Listboxen syncronisieren

Beitrag von theo »

felix96 hat geschrieben: Das klingt aber irgendwie sehr - sehr kompliziert :oops:
Wenn man seltsame Wünsche hat, wird's oft kompliziert. ;-)

felix96
Beiträge: 287
Registriert: So 29. Nov 2009, 17:44
CPU-Target: 32BitWin+64bitUbunt

Re: 2 Listboxen syncronisieren

Beitrag von felix96 »

Kan man die Scrollbars der Listboxen nicht irgendwie wegmachen, (das es so aussieht wie ein Memo)
und diese durch eigene srollbars ersetzen :?:
Danke schonmal für eure Antworten
it´s not a bug, it´s a feature!

RSE
Beiträge: 462
Registriert: Mi 30. Jul 2008, 13:11
OS, Lazarus, FPC: WinXP SP3 (L 0.9.28.2 FPC 2.2.4)
CPU-Target: 32Bit
Kontaktdaten:

Re: 2 Listboxen syncronisieren

Beitrag von RSE »

Das wär aber aufwendiger als die Scrollbars zu syncen
Seit er seinen neuen Computer hat, löst er alle Probleme, die er vorher nicht hatte!

felix96
Beiträge: 287
Registriert: So 29. Nov 2009, 17:44
CPU-Target: 32BitWin+64bitUbunt

Re: 2 Listboxen syncronisieren

Beitrag von felix96 »

Und wie kann ich die Scrollbars
RSE hat geschrieben:syncen
:?:
Danke schonmal für eure Antworten
it´s not a bug, it´s a feature!

RSE
Beiträge: 462
Registriert: Mi 30. Jul 2008, 13:11
OS, Lazarus, FPC: WinXP SP3 (L 0.9.28.2 FPC 2.2.4)
CPU-Target: 32Bit
Kontaktdaten:

Re: 2 Listboxen syncronisieren

Beitrag von RSE »

syncen = synchronisieren = das, was du vorhast ;-)
Seit er seinen neuen Computer hat, löst er alle Probleme, die er vorher nicht hatte!

felix96
Beiträge: 287
Registriert: So 29. Nov 2009, 17:44
CPU-Target: 32BitWin+64bitUbunt

Re: 2 Listboxen syncronisieren

Beitrag von felix96 »

Ok, das weiß ich auch, ABER WIE MACH ICH DAS ?
Danke schonmal für eure Antworten
it´s not a bug, it´s a feature!

Antworten