Article View: pl.comp.lang.pascal
Article #92997Re: [Lazarus] Klasa dziedzicząca po TCustomStringGrid
From: Terrmit
Date: Wed, 28 Apr 2010 14:00
Date: Wed, 28 Apr 2010 14:00
68 lines
2884 bytes
2884 bytes
W dniu 20.04.2010 21:41, Terrmit pisze:
>> Gdyby komuś miał jeszcze jakiś pomysł
>
> Oczywiście miało być:
> "Gdyby ktoś miał jeszcze jakiś pomysł"
>
To ja mam taki pomysł, u mnie działa :)
więc może u Ciebie też ;D
W swojej klasie, np. TMyStringGrid dopisz:
<code>
TMyStringGrid = class(TCustomStringGrid)
private
FOnEditButtonClick: TNotifyEvent;
protected
//procedura obsługi nowego zdarzenia OnEditButtonClick
procedure EditButtonClicked(Sender: TObject);
public
//w public musi być konstruktor, bo będzie nam potrzebny
constructor Create(AOwner: TComponent); override;
published
//w published nasze zdarzenie dla Inspektora obiektów
property OnEditButtonClick: TNotifyEvent read FOnEditButtonClick
write FOnEditButtonClick;
end;
//A teraz nasze procedurki
procedure TMyStringGrid.EditButtonClicked(Sender: TObject);
begin
//w EditButtonClicked dopisujemy
if Assigned(OnEditButtonClick) then OnEditButtonClick(self);
//a tu wpisujemy to co ma się stać po kliknięciu
ShowMessage('Nastąpiła eksplozja!');
end;
//W konstruktorze, jeszcze przed inherited Create(AOwner)
//przypisujemy naszą procedurę do OnEditButtonClick rodzica
constructor TMyStringGrid.Create(AOwner: TComponent);
begin
inherited OnEditButtonClick := @EditButtonClicked;
inherited Create(AOwner);
//tu dalszy kod konstruktora
end;
</code>
Nie wiem, czy powinienem ustawiać nil na OnEditButtonClick
w destruktorze. Może dla porządku należałoby.
Fajnie byłoby gdyby procedura EditButtonClicked mogła być
wreszcie virtual, aby można ją było już dalej dziedziczyć.
Na razie nie wiem jak to ugryźć.
Może ktoś ma jakieś uwagi/wskazówki do tego kodu?
Pozdrawiam,
Sławek
Technical Details
Message-ID:
<hr9f5b$19if$1@news.mm.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.task.gda.pl!news.mm.pl!not-for-mailReferences:
<hqimar$2mct$1@news.mm.pl> <gzbqyg47z8mz.1cw1eop9xnav5.dlg@40tude.net> <hql001$1oem$1@news.mm.pl> <hql04f$1oem$2@news.mm.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.task.gda.pl!news.mm.pl!not-for-mail From: Terrmit <terrmitv@poczta.onet.pl> Newsgroups: pl.comp.lang.pascal Subject: Re: [Lazarus] Klasa dziedzicząca po TCustomStringGrid Date: Wed, 28 Apr 2010 16:00:14 +0200 Organization: Multimedia Polska SA Lines: 68 Message-ID: <hr9f5b$19if$1@news.mm.pl> References: <hqimar$2mct$1@news.mm.pl> <gzbqyg47z8mz.1cw1eop9xnav5.dlg@40tude.net> <hql001$1oem$1@news.mm.pl> <hql04f$1oem$2@news.mm.pl> NNTP-Posting-Host: host-89-231-112-128.warszawa.mm.pl Mime-Version: 1.0 X-Trace: news.mm.pl 1272463339 42575 89.231.112.128 (28 Apr 2010 14:02:19 GMT) X-Complaints-To: abuse@multimedia.pl NNTP-Posting-Date: Wed, 28 Apr 2010 14:02:19 +0000 (UTC) User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.9) Gecko/20100330 Fedora/3.0.4-1.fc12 Lightning/1.0b2pre Thunderbird/3.0.4 In-Reply-To: <hql04f$1oem$2@news.mm.pl> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit