Strona 1 z 1

Zdarzenie OnClick gdy właścicielem jest StringGrid

Nowy postNapisane: poniedziałek, 18 lipca 2011, 21:59
przez sebaskow
Witam.

Mój problem polega na tym iż chcę obsłużyć zdarzenie OnClick dla kontrolki TRadioButton która jest umieszczona na TStringGrid.

Kod: Zaznacz cały
TRadioButton *rb = new TRadioButton(StringGrid1);

rb->Parent = StringGrid1;
rb->Left = StringGrid1->CellRect(0,1).Left + 18;
rb->Top  = StringGrid1->CellRect(0,1).Top  + 4;

rb->OnClick = myClick;


Oczywiście jest to tylko przykładowy kod. Ale zdarzenie nie działa a wygląda następująco:

Kod: Zaznacz cały
void __fastcall TForm1::myClick(TObject *Sender)
{
    ShowMessage("Udało ci się kliknąć");
}


Oczywiście gdy rodzicem jest Form1 wszystko gra. No ale gdy StringGrid jest problem. Nie ma komunikatu błędu jednak zdarzenie nie występuje.

Proszę o pomoc.

Re: Zdarzenie OnClick gdy właścicielem jest StringGrid

Nowy postNapisane: wtorek, 19 lipca 2011, 16:37
przez Cyfrowy Baron
Musisz użyć obiektu pośredniczącego, czyli umieszczasz obiekt typu TPanel w TStringGrid i przypisujesz mu Parent = StringGrid, a następnie na typ Panelu umieszczasz RadioButton.

Coś podobnego opisałem w serwisie Cyfrowy Baron w dziale: porady -> StringGrid -> Wstawianie obiektu ComboBox do obiektu StringGrid. W poradzie zamiast RadioButton użyłem ComboBox i zamiast zdarzenie OnClick zdarzenie OnChange.