Neues Problem mit dynamisch erzeugten Bildern und Ereignissen
-
Sorry Leute,
doch trotz der guten Hilfe von Windoof komme ich nicht ganz weiter.
Wenn ich das wie er geschrieben hat auf mein Projekt anwende (sein Beispiel als neues Projekt klappt einwandfrei!) bekomme ich einen Laufzeitfehler.Ich habe ein mehrdimensionales array von Bildern.
TImage *bild[50][50];
for (int i=0; i<50; i++)
{
for (int j=0; j<50; j++)
{
bild[i][j] = new TImage(this);
bild[i][j]->Picture->LoadFromFile("...");
bild[i][j]->Parent = Form1;
bild[i][j]->OnClick = OnClickPicture(Owner);
}
}Problem: Im Einzelschritt-Tracking läuft das Programm genau so lange, wie i = 0 ist. Also genau 10mal. Für diese 10 Bilder kann ich die OnClick-Funktion auch aufrufen. Komme ich zum 11.Element, also i=1, j=0, verreckt mein Programm. Warum ?
Methode sieht so aus:
void __fastcall TForm1::OnClickPicture(TObject Sender);
{
TImage * img = dynamic_cast<TImage>(Sender);
ShowMessage("Es wurde auf " + img->Name + " geklickt!");
}Danke für die Antwort auf eine erneute quängelnde Frage...
-
Oliver Kohl schrieb:
TImage *bild[50][50]; for (int i=0; i<50; i++) {
wie i = 0 ist. Also genau 10mal.
1. Verstehe ich nicht, wieso 10 mal?! Ich dachte 50 mal!
2. an welcher Stelle genau verreckt das Programm?
3. Fehlermeldung wäre nicht schlecht.(wo sind eigentlich heute unsere Moderatoren?!
)
MfG
xy
-
Sorry, xy...
Ich meinte auch 50mal (copy&paste-Fehler...).
Fehlermeldung: EAccessViolation an der Stelle blahblahblah...
Die Fehlerzeile is die mit der Zuweisung ...=OnClickPicture...
-
Oliver Kohl schrieb:
bild[i][j]->OnClick = OnClickPicture(Owner);
Hi,
also ich weise das immer so zu:bild[i][j]->OnClick = OnClickPicture;
MfG
Alexander Sulfrian