Arv - Komponentskrivning
Jeg skal udvide en TSpeedButton med yderligere funktionalitet, knappen skal \"Creates\" under runtime.En af fasiliteterne er at den nye knap skal kunne flyttes når
jeg har sat min form i \"EditMode\" (et flag jeg selv sætter)
I Private deklarationen har jeg
procedure MouseMove(var m:twmmouse); message wm_MouseMove;
procedure MouseLDown(var m:twmmouse); message wm_LButtonDown;
procedure MouseLUp(var m:twmmouse); message wm_LButtonUp;
Og den tilhørende kode
procedure TLinkButton.MouseMove(var m:TWMMouse);
var
OldTop, OldLeft : Integer;
begin
if drag then
begin
Top:= Top - OldyPos+m.ypos;
if top < 0 then top := 0;
Left := Left - OldxPos+m.xpos;
if Left < 0 then Left := 0;
end;
inherited;
OldTop := Top;
OldLeft := Left;
end;
procedure TLinkButton.MouseLdown(var m:TWMMouse);
begin
if EditMode then
begin
inherited;
BringToFront;
drag:=true;
oldxpos := m.xpos;
oldypos := m.ypos;
end;
end;
Procedure TLinkButton.MouseLUp(var m:TWMmouse);
begin
if EditMode then
begin
inherited;
drag:=false
end;
end;
Koden fungere efter hensigten når knappen skal flyttes, problemet er at koden overskriver de tilsvarende funktioner som allerede findes i TSpeedButton, og det får den betydning at knappen ikke kan trykkes ned når formen ikke er i \"EditMode\"
Er der nogen som har en god ide, til hvordan dette løses ?
