|
| Ændre / tilføje i komponent Fra : Frank Nørvig |
Dato : 21-09-03 12:20 |
|
Hejsa,
Jeg benytter en TShape til at lave en figur på en form, men ønsker også at
man skal kunne benytte TPopupmenu på den, så man kan højreklikke i shapen og
vælge i en menu.
Jeg går ud fra at jeg skal lave et nyt komponent, f.eks. TAdvancedShape som
arver alt fra TShape, og så tilføjer den egenskab som gør, at jeg kan
benytte TPopupmenu, men jeg ved ikke hvordan jeg skal gøre det.
Nogen der kan komme med et par gode bud?
---
| |
Thor (21-09-2003)
| Kommentar Fra : Thor |
Dato : 21-09-03 15:38 |
|
Hej Frank
Det behøver du ikke.
Lav en almindelig popupmenu, popupmenu1.
derefter - utestet:
procedure TForm1.Shape1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if button = mbRight then
with shape1 do
popupmenu1.popup(left+x,top+y);
end;
Hilsen Thomas Riedel
"Frank Nørvig" <spam@noervig.dk> wrote in message
news:3f6d894f$0$137$edfadb0f@dread11.news.tele.dk...
> Hejsa,
>
> Jeg benytter en TShape til at lave en figur på en form, men ønsker også at
> man skal kunne benytte TPopupmenu på den, så man kan højreklikke i shapen
og
> vælge i en menu.
>
> Jeg går ud fra at jeg skal lave et nyt komponent, f.eks. TAdvancedShape
som
> arver alt fra TShape, og så tilføjer den egenskab som gør, at jeg kan
> benytte TPopupmenu, men jeg ved ikke hvordan jeg skal gøre det.
>
> Nogen der kan komme med et par gode bud?
>
> ---
>
>
| |
Thomas N. Larsen (21-09-2003)
| Kommentar Fra : Thomas N. Larsen |
Dato : 21-09-03 15:48 |
|
"Thor" <thr@image.danmark> wrote in message
news:bkkcjp$20s9$1@news.cybercity.dk...
> Hej Frank
>
> Det behøver du ikke.
> Lav en almindelig popupmenu, popupmenu1.
> derefter - utestet:
>
> procedure TForm1.Shape1MouseUp(Sender: TObject; Button: TMouseButton;
> Shift: TShiftState; X, Y: Integer);
> begin
> if button = mbRight then
> with shape1 do
> popupmenu1.popup(left+x,top+y);
> end;
>
> Hilsen Thomas Riedel
Godt forslag.
Jeg tænkte ikke lige i de baner.
Men det kommer jo an på hvor meget denne funktionalitet skal bruges.
Hvis det er begrænset vil det klart være den bedste løsning og omvendt.
| |
Thomas N. Larsen (21-09-2003)
| Kommentar Fra : Thomas N. Larsen |
Dato : 21-09-03 15:35 |
|
Det har du ret i.
Det du skal gøre(ikke nødvendigvis den letteste metode er følgende:
Tilføje et objekt af typen TPopupmenu.
Tilføje properties svarende til dem fra TPopupmenu (dem du skal bruge eller
alle) og benytte dem til at tilgå dit TPopupmenu objekt.
Tilføj constructor/destructor med oprettelse nedlæggelse af objektet.
Hvis der er nogle der vil have noget uddybning må i skrive det.
Thomas
| |
Frank Nørvig (21-09-2003)
| Kommentar Fra : Frank Nørvig |
Dato : 21-09-03 19:24 |
|
Tak for de gode forslag, men fandt en endnu nemmere løsning:
TShape arver fra TControl som i forvejen indeholder PopupMenu egenskaben,
det skal blot aktiveres.
Gjorde følgende:
TShapePop = Class(TShape)
Published
property PopUpMenu;
End;
Det er alt der skal til.
Mvh Frank
| |
Thor (22-09-2003)
| Kommentar Fra : Thor |
Dato : 22-09-03 21:12 |
|
Respekt!
mvh Thomas Riedel
"Frank Nørvig" <spam@noervig.dk> wrote in message
news:3f6decc8$0$166$edfadb0f@dread11.news.tele.dk...
> Tak for de gode forslag, men fandt en endnu nemmere løsning:
> TShape arver fra TControl som i forvejen indeholder PopupMenu egenskaben,
> det skal blot aktiveres.
>
> Gjorde følgende:
>
> TShapePop = Class(TShape)
> Published
> property PopUpMenu;
> End;
>
> Det er alt der skal til.
>
> Mvh Frank
>
>
| |
|
|