Я тестировал TVirtualStringTree (версия 4.8.7) от Mike Lischke на Delphi 7.0 Windows XP 2. Он отлично работает. Я установил тот же самый TVirtualStringTree (v.4.8.7) на другой компьютер (система Delphi 7.0 Windows XP 3) и протестировал этот же проект в системе Windows XP 3. Когда я нажал на заголовок, это вызвало ошибку. Я удалил TVirtualStringTree (версия 4.8.7) из Delphi 7.0 Windows XP 3 и установил более высокую версию TVirtualStringTree (версия 5.3.0) в Windows XP 3. Та же проблема все еще существовала.Как решить этот параметр TVirtualStringTree Onheaderclick несовместимый?
Когда я построил проект на Windows XP 3, запрос ниже:
The vtHeaderClick method referenced by vt.Onheaderclick has an incompatible parameter list. Remove the reference?
Я нажал Нет и запустить тестовую программу. Когда я нажал на заголовок, это побудило «Нарушение прав доступа на ...»
И это побудило ошибку ниже:
function TVTHeader.HandleMessage(var Message: TMessage): Boolean;
// The header gets here the opportunity to handle certain messages before they reach the tree. This is important
// because the tree needs to handle various non-client area messages for the header as well as some dragging/tracking
// events.
// By returning True the message will not be handled further, otherwise the message is then dispatched
// to the proper message handlers.
var
P: TPoint;
R: TRect;
I: TColumnIndex;
OldPosition: Integer;
HitIndex: TColumnIndex;
NewCursor: HCURSOR;
Button: TMouseButton;
Menu: TPopupMenu;
IsInHeader,
IsHSplitterHit,
IsVSplitterHit: Boolean;
//--------------- local function --------------------------------------------
function HSPlitterHit: Boolean;
var
NextCol: TColumnIndex;
......
......
case Message.Msg of
WM_LBUTTONUP:
with TWMLButtonUp(Message) do
begin
if FColumns.FDownIndex > NoColumn then
FColumns.HandleClick(Point(XPos, YPos), mbLeft, False, False);
if FStates <> [] then // this line is highlighted
FOwner.DoHeaderMouseUp(mbLeft, KeysToShiftState(Keys), XPos, YPos);
end;
WM_NCLBUTTONUP:
with TWMNCLButtonUp(Message) do
begin
......
......
Как я могу решить эту проблему?
Большое вам спасибо. Ваш ответ решает. – warren