![]() |
WMVScroll: Position > 30.000
Hallo,
Ich habe eine Frage bezüglich TWMScroll, das bei WMVScroll übergeben wird. Erst mal die Funktion:
Delphi-Quellcode:
Meine Komponente benötigt eine Scrollbar, die als maximalen Wert ca. 200.000 besitzt.
type
TComp = class(TCustomControl) // ... procedure WMVScroll(var Msg: TWMScroll); message WM_VSCROLL; // ... end; procedure TComp.WMVScroll(var Msg: TWMScroll); begin // Auslesen und Verarbeiten der Position Msg.Pos end; Das Problem ist jetzt, dass Msg.Pos nur ein SmallInt ist also nur bis ca. 30.000 geht und somit nicht ausreicht. Wie kann ich größere Positionen der Scrollbar auslesen? |
AW: WMVScroll: Position > 30.000
AFAIK unterstützt Windows keine größeren Auflösungen als 2^16 - 1 in Höhe und Breite.
D.h. du wirst da selbst was (von Grund auf Bauen müssen um eine Art "Kachelung" zu erreichen. Ähnlich wie es z.G. Google Maps macht. |
AW: WMVScroll: Position > 30.000
Wie meinst du das genau?
Ich habe jetzt zufällig auf dieser Seite ![]()
Delphi-Quellcode:
Sie scheint zu funktionieren.
function GetRealScrollPosition(): Integer;
var ScrollInfo: TScrollInfo; begin ScrollInfo.cbSize := SizeOf(TScrollInfo); ScrollInfo.fMask := SIF_TRACKPOS; GetScrollInfo(Handle, SB_VERT, ScrollInfo); Result := ScrollInfo.nTrackPos; end; Aber ich finde es sollte gleich ein Integer übergeben werden in TWMScroll und nicht ein SmallInt. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:56 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