/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
OnMouse og Canvas nedarvning...
Fra : Thomas Eg Jørgensen


Dato : 20-10-01 04:21

Hejsa

Jeg er ved at lave en form for kalender og har i den forbindelse lave en
component. Komponenten arver fra TGraphicControl for at jeg kan tegne, men
hvordan fanger jeg nu en OnMouseDown event? min component skal vide hvor jeg
klikker for at kunne trigge en event.

Sagen er den at brugeren skal kunne klikke i et felt, når dette sker skal
der køres en stump kode men hvordan får jeg lige det til at hænge sammen med
at jeg også skal kunne tegne componenten med canvas?

Håber i kan hjælpe, hvis i mangler mere info må i jo sige til...

MVH
Thomas



 
 
Thomas Rose (20-10-2001)
Kommentar
Fra : Thomas Rose


Dato : 20-10-01 10:37

Hej Thomas,

"Thomas Eg Jørgensen" <thomas@kontorbutikken.dk> wrote in message
news:9qqqda$kup$1@news.cybercity.dk...
> Jeg er ved at lave en form for kalender og har i den forbindelse lave en
> component. Komponenten arver fra TGraphicControl for at jeg kan tegne, men
> hvordan fanger jeg nu en OnMouseDown event? min component skal vide hvor
jeg
> klikker for at kunne trigge en event.

det er noget tid siden jeg selv har leget med "hjemmedlavede" komponenter,
så jeg kan ikke huske om det er nok blot at indføre en published property
der hedder OnMouseDown... hvis ikke skal du også indføre en overskrevet
version af metoden (der bag kulisserne hedder MouseUp), f.eks.:

TMyGraphicControl = class(TGraphicControl)
private
protected
procedure MouseUp(Button: TMouseButton; Shift: TShiftState;
X, Y: Integer); override;
published
property OnMouseUp;

og i din implementation:

procedure TMyGraphicControl.MouseUp(Button: TMouseButton; Shift:
TShiftState;
X, Y: Integer);
begin
// Kald TGraphicControl.MouseUp
inherited MouseUp(Button,Shift,X,Y);

// Her kan også indsættes egen kode for OnMouseUp-event
end;

Bemærk, koden er ikke testet

Cheers,
Thomas



Thomas Eg Jørgensen (20-10-2001)
Kommentar
Fra : Thomas Eg Jørgensen


Dato : 20-10-01 14:59


"Thomas Rose" <trose@get2net.dk> wrote in message
news:3bd14591$0$42048$edfadb0f@dspool01.news.tele.dk...
> Hej Thomas,
Hej Thomas

> > Jeg er ved at lave en form for kalender og har i den forbindelse lave en
> > component. Komponenten arver fra TGraphicControl for at jeg kan tegne,
men
> > hvordan fanger jeg nu en OnMouseDown event? min component skal vide hvor
> jeg
> > klikker for at kunne trigge en event.
> det er noget tid siden jeg selv har leget med "hjemmedlavede" komponenter,
> så jeg kan ikke huske om det er nok blot at indføre .........

Sørme om ikke du ikke huskede rigtigt. Mange tak for det. Nu er der styr på
det...

Tak for hjælpen!

MVH
Thomas



Thomas Eg Jørgensen (20-10-2001)
Kommentar
Fra : Thomas Eg Jørgensen


Dato : 20-10-01 15:32


"Thomas Eg Jørgensen" <thomas@kontorbutikken.dk> wrote in message
news:9qrvor$24fs$1@news.cybercity.dk...
> > > Jeg er ved at lave en form for kalender og har i den forbindelse lave
en
> > > component. Komponenten arver fra TGraphicControl for at jeg kan tegne,
> men
> > > hvordan fanger jeg nu en OnMouseDown event? min component skal vide
hvor
> > jeg
> > > klikker for at kunne trigge en event.
> > det er noget tid siden jeg selv har leget med "hjemmedlavede"
komponenter,
> > så jeg kan ikke huske om det er nok blot at indføre .........
> Sørme om ikke du ikke huskede rigtigt. Mange tak for det. Nu er der styr

> det...

Hmm, dog er der stadig en ting der nager mig. Hvorfor kommer de events ikke
frem i min object inspector? jeg har:
TUgePlan = class(TGraphiccontrol)
private
DataArray: array of array of TAftale;
{ Private declarations }
protected
{ Protected declarations }
procedure Paint; override;
procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y:
Integer); override;
public
constructor Create(aOwner : TComponent); override;
function AddItem(day: integer; start, stop: TTime):integer;
function DeleteAll:boolean;
property OnMouseDown;
{ Public declarations }
published
{ Published declarations }
end;

Men den OnMouseDown kommer ikke frem, burde den ikke det?

MVH
Thomas



Thomas Rose (20-10-2001)
Kommentar
Fra : Thomas Rose


Dato : 20-10-01 15:56

Hej Thomas,

"Thomas Eg Jørgensen" <thomas@kontorbutikken.dk> wrote in message
news:9qs1p6$26ib$1@news.cybercity.dk...
> Hmm, dog er der stadig en ting der nager mig. Hvorfor kommer de events
ikke
> frem i min object inspector? jeg har:
> TUgePlan = class(TGraphiccontrol)
> private
> DataArray: array of array of TAftale;
> { Private declarations }
> protected
> { Protected declarations }
> procedure Paint; override;
> procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y:
> Integer); override;
> public
> constructor Create(aOwner : TComponent); override;
> function AddItem(day: integer; start, stop: TTime):integer;
> function DeleteAll:boolean;
> property OnMouseDown;
> { Public declarations }
> published
> { Published declarations }
> end;
>
> Men den OnMouseDown kommer ikke frem, burde den ikke det?

Ja og nej... du har lagt den i din "public" sektion... som jeg skrev i mit
første svar skal den lægge under "published" sektionen, der netop angiver at
den pågældende property skal publiceres i Property Editor'en.

Cheers,
Thomas



Thomas Eg Jørgensen (21-10-2001)
Kommentar
Fra : Thomas Eg Jørgensen


Dato : 21-10-01 11:51


"Thomas Rose" <trose@get2net.dk> wrote in message
news:3bd19058$0$3788$edfadb0f@dspool01.news.tele.dk...
> > Hmm, dog er der stadig en ting der nager mig. Hvorfor kommer de events
> ikke
> > frem i min object inspector? jeg har:
> Ja og nej... du har lagt den i din "public" sektion... som jeg skrev i mit
> første svar skal den lægge under "published" sektionen, der netop angiver
at
> den pågældende property skal publiceres i Property Editor'en.

doh, i knew that! .-))

MVH
Thomas



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408926
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste