Problemm mit einem in einer Forschleife erzeugtem RadioButton
-
Hallo Leute
mein Problemm stellt sich wie flogt da.Ich erzeuge in einer Forschleife einen(mehrere) RadioButton(s)
Dazu einmal der QuelCode:for (int i = 1; i < (ArticleList->Count+1); i++)
{
structARTICLE *article = (structARTICLE *)ArticleList->Items[(i-1)];
but = new TIWRadioButton(this);
but->Width = 10;
but->Height = 10;
but->Caption = "";
but->Tag = i;
Articles->Cell[i][0]->Control = but;
//...
}So mein Problem ist nicht das erzeugen sonder wie kann ich abfragen ob einer der Buttons gedrücked wurde? In der Regel folgen dafür ja Ausdrücke wie
void __fastcall TIWFormArticleMgm::ButClick(TObject *Sender)
{}
nur ist das in diesem Fall auch zulässig und wie kann ich die einzelen Knöpfe unterscheiden? Ich hab absolute keine Idee mehr.
Genuzt soll das ganze werden um in einer Tabelle, die mit in der ForSchleife erzeugt wird,einzelne Zeile zu makieren um diese zu bearbeiten und wieder in d MySQL Datenbank zu speicher also eine Art Management Funktion.
Ich benutze als Entwicklungsumgebeung CodeGear 2009!
wenn ihr noch weitere Information braucht schreibt es bitte
bin gerade erzt anfänger in c++Ich bedanke mich für eure mühen schon einmal im Voraus.
LG Micha
-
Hallo
Siehe FAQ hier im BCB-Forum, Abschnitt Komponenten benutzen, Thread "zur Laufzeit erstellen, anzeigen und Events zuweisen"
bis bald
akari
-
Der Sender identifiziert das Objekt. Da Du den Tag setzt, kannst du diesen doch auch verwenden um festzustellen, welcher Button geklickt wurde. Du musst nur den Sender entsprechend nach TIWRadioButton casten. Am besten wohl mit dynamic_cast.
Wieso startet die Schleife eigentlich bei 1? Wieso nicht bei 0? Dann brauchst Du nicht auf Count + 1 zu prüfen und musst auch nicht + 1 beim Itemzugriff rechnen...
[EDIT] akari war wieder mal schneller....
-
Die Schleife sartet bei 1 weil danach noch weitere befehle folgen die mit dem i arbeiten und die brauchen den wert 1 als erztes. Die buttons sollen ja in Collum 0 liegen der recht der in das Grid rein soll muss demnach bei 1 liegen ich lese ja daten aus einer MySQL Datenbank aus und die sollen im IWGRID angezeigt werden damit ich diese bearbeiten kann^^ naja gut ich werde mich ma an dem Cast versuchen und gleich berichten ob es geht!
Danke für eure hilfe
LG Micha
-
So danke war mir echt ne Hilfe...
habs leztendlich doch mit einem cast gemacht dadruch wurde die ButtonClick einfacher.sry das es am anfang das flasche Forum war ..naja war mein erzter Post!
werde diese Platform denke ich für Fragen weiternutzen(dann ins richtige Forum) und auch weiterempfehlen!!THX a lot
MFG Micha
-
Nachtrag:
Joe_M. schrieb:
[...] Wieso startet die Schleife eigentlich bei 1? Wieso nicht bei 0? Dann brauchst Du nicht auf Count + 1 zu prüfen und musst auch nicht + 1 beim Itemzugriff rechnen... [...]
Micha(); schrieb:
Die Schleife startet bei 1, weil danach noch weitere Befehle folgen, die mit dem i arbeiten und die brauchen den Wert 1 als Erstes. [...]
Es ist auch mit Startwert 1 nicht nötig auf Count + 1 zu prüfen, weil:
for (int i= 1; i <= ArticleList->Count; i++) { //... }
Es sei denn, es kommt jetzt jemand daher und weiß, dass <= wesentlich länger dauert, als < und + 1.
MfG