Article View: pl.comp.lang.pascal
Article #92992[Lazarus] Klasa dziedzicząca po TCustomStringGrid
From: Terrmit
Date: Mon, 19 Apr 2010 22:41
Date: Mon, 19 Apr 2010 22:41
44 lines
2769 bytes
2769 bytes
Witam, Tym razem chciałbym zapytać o bardziej złożony problem (a może jest on prosty, tylko ja mam za małą wiedzę). W programie używam własny komponent StringGrid: TMyStringGrid = class(TCustomStringGrid) Wprowadziłem w nim wiele "innowacji" :) bo standardowy StringGrid nie za bardzo mi odpowiadał. W mojej klasie pokrywam też kilka zdarzeń między innymi procedure HeaderClick(IsColumn: Boolean; index: Integer); override; procedure DrawCell(aCol,aRow: Integer; aRect: TRect; aState:TGridDrawState); override; i kilka innych Jednak nie mogę (albo nie wiem jak) pokryć zdarzenia OnEditButtonClicked procedure EditButtonClicked(Sender: TObject); http://lazarus-ccr.sourceforge.net/docs/lcl/grids/tcustomgrid.html Jeśli do TStringGrid.Columns.Items[x].ButtonStyle przypiszemy cbsButton albo cbsEllipsis, to w po wybraniu komórki z takiej kolumny mamy dodatkowy przycisk. Po jego kliknięciu może nam się otworzyć np. jakieś okno dialogowe. Właśnie zdarzenie OnEditButtonClicked informuje, że kliknięto taki button. Chciałbym aby moja klasa TMyStringGrid zawsze w takim momencie sprawdzała jaka dana jest w komórce (tekst, czy liczba) i w zależności od tego po kliknięciu na button komórki wyświetlała inne okno dialogowe. Ponieważ w programie używam takich tabel kilkadziesiąt, a niektóre będą też tworzone dynamicznie, to chciałbym włączyć to do klasy, a nie oprogramowywać każdą jej instancję. Niestety procedura EditButtonClicked w przeciwieństwie do HeaderClick czy DrawCell nie jest oznaczona słowem virtual, stąd problem. Czy ktoś mógłby mi poradzić jak to zrobić (i czy w ogóle da się to zrobić)? Sławek być może pomocne linki: http://svn.freepascal.org/svn/lazarus/trunk/lcl/grids.pas http://lazarus-ccr.sourceforge.net/docs/lcl/grids/tcustomstringgrid.html http://wiki.lazarus.freepascal.org/Grids_Reference_Page
Technical Details
Message-ID:
<hqimar$2mct$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-mailShow 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: [Lazarus] Klasa dziedzicząca po TCustomStringGrid Date: Tue, 20 Apr 2010 00:41:35 +0200 Organization: Multimedia Polska SA Lines: 44 Message-ID: <hqimar$2mct$1@news.mm.pl> NNTP-Posting-Host: host-89-231-112-128.warszawa.mm.pl Mime-Version: 1.0 X-Trace: news.mm.pl 1271717019 88477 89.231.112.128 (19 Apr 2010 22:43:39 GMT) X-Complaints-To: abuse@multimedia.pl NNTP-Posting-Date: Mon, 19 Apr 2010 22:43:39 +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 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit