Hallo
ich fülle in einer Schleife ein stringGrid. Darin sollen in einer Spalte Buttons erzeugt werden. Wie geht man mit dem Click Event um? Sind ja mehrere Buttons.
Code:
int i = 0;
while (!ADOQueryGrid->Eof) {
Das funkt auch wunderbar und soll beim Click das hier aufrufen. Je nach Sender
dann eine andere Aktion.
void __fastcall TMainForm::butDetClick(TObject *Sender)
{
Wie komme ich an den Sender ran? Muß ich den schon im Funktionsaufruf übergeben?
Gruß und Danke
ich fülle in einer Schleife ein stringGrid. Darin sollen in einer Spalte Buttons erzeugt werden. Wie geht man mit dem Click Event um? Sind ja mehrere Buttons.
Code:
int i = 0;
while (!ADOQueryGrid->Eof) {
i = i + 1;
// Def. Rechteck
TRect R;
R = stringGrid->CellRect(11,i);
// Def. Button
TButton *butDet = new TButton(this);
butDet->Name = "butDet" + IntToStr(i);
butDet->Caption = "Details";
butDet->Left = stringGrid->Left + R.Left + 2;
butDet->Top = stringGrid->Top + R.Top + 2;
butDet->Width = R.Width();
butDet->Height = R.Height();
butDet->OnClick = butDetClick; // Button Event
butDet->Parent = MainForm;
ADOQueryGrid->Next();
}// Def. Rechteck
TRect R;
R = stringGrid->CellRect(11,i);
// Def. Button
TButton *butDet = new TButton(this);
butDet->Name = "butDet" + IntToStr(i);
butDet->Caption = "Details";
butDet->Left = stringGrid->Left + R.Left + 2;
butDet->Top = stringGrid->Top + R.Top + 2;
butDet->Width = R.Width();
butDet->Height = R.Height();
butDet->OnClick = butDetClick; // Button Event
butDet->Parent = MainForm;
ADOQueryGrid->Next();
Das funkt auch wunderbar und soll beim Click das hier aufrufen. Je nach Sender
dann eine andere Aktion.
void __fastcall TMainForm::butDetClick(TObject *Sender)
{
ShowMessage(Sender); // soll Namen des Buttons ausgeben, geht so nicht
// Fehler: Konvertierung von 'TObject *' nach 'AnsiString' nicht möglich
// hier die Aktion. z.B Id aus Grid Spalte an andere Funktion weitergeben.
}// Fehler: Konvertierung von 'TObject *' nach 'AnsiString' nicht möglich
// hier die Aktion. z.B Id aus Grid Spalte an andere Funktion weitergeben.
Wie komme ich an den Sender ran? Muß ich den schon im Funktionsaufruf übergeben?
Gruß und Danke