2 Listboxen syncronisieren
2 Listboxen syncronisieren
Hallo,
damit meine ich ,wenn man an listbox1 nach unten scrollt, dann soll listbox 2 mitscrollen.
Vielen dank schonmal für antworten
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!
it´s not a bug, it´s a feature!
-
- 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
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.
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
Michael Springwald
-
- 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
viel zu aufwendig.
Code: Alles auswählen
ListBox2.TopIndex:=ListBox1.TopIndex;
Johannes
Re: 2 Listboxen syncronisieren
Das ist schon richtig Monta, aber Pluto hat auch nicht ganz unrecht.monta hat geschrieben:viel zu aufwendig.
Code: Alles auswählen
ListBox2.TopIndex:=ListBox1.TopIndex;
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.
-
- 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
Meinst du damit den Aufwand ?Und da wäre Pluto's WM_SCROLL schon das richtige, gibt's aber nicht gratis.
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.ListBox2.TopIndex:=ListBox1.TopIndex;
Die Frage währe halt nur wie ?
Wir können ja hier mal einige Möglichkeiten aufdecken und besprechen

MFG
Michael Springwald
Michael Springwald
Re: 2 Listboxen syncronisieren
Sorry, schon wieder falsche fragenstellung (mis***)
Ich meinte das nur die Scrallbaren syncronisirt werden.
Ich meinte das nur die Scrallbaren syncronisirt werden.
Danke schonmal für eure Antworten
it´s not a bug, it´s a feature!
it´s not a bug, it´s a feature!
-
- 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
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.
Edit: Du müsstet nur die Botschaft WMVScroll senden an die zweite ListBox.
MFG
Michael Springwald
Michael Springwald
Re: 2 Listboxen syncronisieren
Das klingt aber irgendwie sehr - sehr kompliziertpluto 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.

Danke schonmal für eure Antworten
it´s not a bug, it´s a feature!
it´s not a bug, it´s a feature!
-
- 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
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!
Re: 2 Listboxen syncronisieren
Wenn man seltsame Wünsche hat, wird's oft kompliziert.felix96 hat geschrieben: Das klingt aber irgendwie sehr - sehr kompliziert

Re: 2 Listboxen syncronisieren
Kan man die Scrollbars der Listboxen nicht irgendwie wegmachen, (das es so aussieht wie ein Memo)
und diese durch eigene srollbars ersetzen
und diese durch eigene srollbars ersetzen

Danke schonmal für eure Antworten
it´s not a bug, it´s a feature!
it´s not a bug, it´s a feature!
-
- 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
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!
Re: 2 Listboxen syncronisieren
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!
it´s not a bug, it´s a feature!
-
- 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
syncen = synchronisieren = das, was du vorhast 

Seit er seinen neuen Computer hat, löst er alle Probleme, die er vorher nicht hatte!
Re: 2 Listboxen syncronisieren
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!
it´s not a bug, it´s a feature!