M. Behrendt
2015-08-21 23:15:16 UTC
[code]
type
TMoveCracker = class(TControl);
procedure TMainFrm.ControlMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
FDownX := X;
FDownY := Y;
FDragging := True;
TMoveCracker(Sender).MouseCapture := True;
end;
[/code]
ich bekomme in Lazarus v1.4 eine EInvalidCast in der Zeile
TMoveCracker(Sender).MouseCapture := True;
In TurboDelphi (unter WinXPPro 32) funktioniert dies, hier in Lazarus (unter Win8.1 Pro 64) nicht.
Ignoriere ich den Fehler kann trotzdem die Komponente draggen, wenn auch sehr hakelig aber es geht.
Den gleichen Fehler bekomme ich später beim loslassen wieder:
[code]
procedure TMainFrm.ControlMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if FDragging then
begin
TMoveCracker(Sender).MouseCapture := False;
FDragging := False;
end;
end;
[/code]
Habt Ihr eine Idee?
type
TMoveCracker = class(TControl);
procedure TMainFrm.ControlMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
FDownX := X;
FDownY := Y;
FDragging := True;
TMoveCracker(Sender).MouseCapture := True;
end;
[/code]
ich bekomme in Lazarus v1.4 eine EInvalidCast in der Zeile
TMoveCracker(Sender).MouseCapture := True;
In TurboDelphi (unter WinXPPro 32) funktioniert dies, hier in Lazarus (unter Win8.1 Pro 64) nicht.
Ignoriere ich den Fehler kann trotzdem die Komponente draggen, wenn auch sehr hakelig aber es geht.
Den gleichen Fehler bekomme ich später beim loslassen wieder:
[code]
procedure TMainFrm.ControlMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if FDragging then
begin
TMoveCracker(Sender).MouseCapture := False;
FDragging := False;
end;
end;
[/code]
Habt Ihr eine Idee?