![]() |
Sychrone Listboxen
Hallo,
zwei LB sollen synchron gescrollt werden. Im Tool ![]()
Code:
Danke und beste Grüße
procedure TMainForm.PaintBox1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin TopLine:=... // SendMessage(ListBox1.Handle, WM_VSCROLL, MakeLong(LOWORD(SB_THUMBPOSITION), TopLine), 0); Application.ProcessMessages; SendMessage(ListBox2.Handle, WM_VSCROLL, MakeLong(LOWORD(SB_THUMBPOSITION), TopLine), 0); end; |
AW: Sychrone Listboxen
Na ja, das ist doch offensichtlich. Zwischen den beiden SendMessage-Aufrufen für ListBox1 und ListBox2 sorgt das Application.ProcessMessages für ein Refresh der ListBox1 bevor ListBox2 überhaupt den Befehl zum Scrollen bekommen hat.
|
AW: Sychrone Listboxen
Wenn ich Application.ProcessMessages rausmache dann hängt LB1.
|
AW: Sychrone Listboxen
Ohne konkretes Beispiel-Projekt kann ich auch nur spekulieren: Ändere mal die beiden SendMessage-Aufrufe in PostMessage.
|
AW: Sychrone Listboxen
Bei mir kann ich keinerlei Verzögerung bei der Synchronisation in Deinem Programm feststellen.
|
AW: Sychrone Listboxen
Hallo,
ich würde das Application.ProcessMessages; einfach als letzten Befehl aufrufen und nicht zwischen den beiden ListBox-Befehlen. |
AW: Sychrone Listboxen
Zitat:
|
AW: Sychrone Listboxen
Application.ProcessMessages; zuletzt: In dem Fall hängt LB1 etwas hinterher. Ich glaube ich muss damit erstmal leben:?.
|
AW: Sychrone Listboxen
Bevor ich ein Send-/Post-/Message anwenden würde, probiere ich zuerst ob das Control ein Perform beherrscht.
Bevor ich ein Application.ProcessMessages aufrufe, probiere ich ob es ein Begin-/End-/Update beherrscht. Ungetestet meine Theorie: Zitat:
|
AW: Sychrone Listboxen
Keine Änderung...
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:39 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