Avatar billede morten_s Nybegynder
08. juni 2001 - 13:36 Der er 6 kommentarer og
1 løsning

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 ?
Avatar billede morten_s Nybegynder
08. juni 2001 - 13:41 #1
Det har jeg selv, inherited; skal bare flyttes op ;-))
Avatar billede martinlind Nybegynder
08. juni 2001 - 13:56 #2
morten_s >> Hold øje med www.delphi.e-lind.dk der kommer en komponent, så du kan styre hele din form med alle componenter på den i 4 states og 5 sublevels, det hele sætter du op designtime og sætter så bare state og subLevel på min comp. så styrer den resten, lige en comp. for dig.

<Snip..>
TSmartStates = (ssNew,ssEdit,ssBrowse,ssDelete);
TSmartStateLevel = 0..4;
<Snip..>

Jeg sidder og er ved at lave det sidste på den, så bliver den lagt op i en eller anden form, jeg skal lige beslutte mig for hvilken.

/Martin
Avatar billede morten_s Nybegynder
08. juni 2001 - 14:08 #3
Hej Martin, jeg går ud fra at du ved at siden www.delphi.e-lind.dk endnu ikke findes ;-))

Jeg glæder mig til at se din Component, selvom jeg endnú ikke ved helt præcist hvad den kan/gør
Avatar billede martinlind Nybegynder
08. juni 2001 - 18:51 #4
Prøv her istedet : siden delphi.e-lind.dk


/Martin
Avatar billede martinlind Nybegynder
08. juni 2001 - 18:53 #5
og så lige rigtigt : delphi.e-lind.dk


/Martin
Avatar billede martinlind Nybegynder
09. juni 2001 - 12:36 #6
Nå har du prøvet den ?

http://delphi.e-lind.dk
Avatar billede morten_s Nybegynder
09. juni 2001 - 17:57 #7
Endnu ikke, havde en gang en RAR udpakker, men kan ikke længere finde den... Der er gået zip i det meste

;-))
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester