![]() |
Onclick-Ereignis für ein per Code erstelltes Objekt
Hallo,
ich habe ein Problem, was wahrscheinlich ganz Banal zu Lösen ist. Ich erstelle zur Laufzeit eine neue Seite (Tab) in einer PageControl-Komponente. Und auf der Seite wird ein Bild erstellt. Die Bilder der verschiedenen Tabs sind in einem TImage-Array gespeichert.
Delphi-Quellcode:
Der Index des Bildes ist identisch mit dem Index des Tabs in dem das Bild erstellt wurde.
Bilder: array of TImage
Ich möchte jetzt folgendes erreichen bei dem Klick auf eines der Bilder aus dem Arrays soll ein Ereignis ausgelöst werden. Wie definiere ich dieses Ereignis für die Bilder? Den Index des Bildes könnte ich ganz einfach ermitteln:
Delphi-Quellcode:
Dies ist möglich, da ja immer nur das Bild, dass zu der gerade aktiven Seite gehört, geklickt werden kann.
PageControl.ActivePage
|
Re: Onclick-Ereignis für ein per Code erstelltes Objekt
Delphi-Quellcode:
wobei DeinOnClickEreignis etwa so aussieht:
Bilder[i].OnClick := DeinOnClickEreignis
Delphi-Quellcode:
private
procedure DeinOnClickEreignis(Sender : TObject);
Delphi-Quellcode:
implementation
//... procedure TForm1.DeinOnClickEreignis(Sender : TObject); begin end; |
Re: Onclick-Ereignis für ein per Code erstelltes Objekt
Zitat:
Delphi-Quellcode:
Image1 ist auch auf der Form. das OnImage1Click ereignis löst nur "showmessage" aus. Wenn man auf das entsprechende Image klickt dann macht er das auch. Allerdings kompiliert der die Unit nicht wegen obiger Zuweisung.
bild[i].Onclick:=Image1Click;
mfg KahPee |
Re: Onclick-Ereignis für ein per Code erstelltes Objekt
Der Fehler tritt bei mir bei JEDER Zuweisung eines Ereignisses dieser art auf, auch wenn ich das ganze mit einem Label mache. Woran könnte das liegen? in einem anderen Programm funktioniert ähnliches :(
|
Re: Onclick-Ereignis für ein per Code erstelltes Objekt
Poste mal bitte ein bisschen mehr von deinem Code. So kann man nicht sehen was dort falsch ist.
|
Re: Onclick-Ereignis für ein per Code erstelltes Objekt
Deklaration:
Delphi-Quellcode:
Array vergrößern
var pagepic: array of Timage;
Delphi-Quellcode:
SetLength(pagepic, Length(pagepic)+1); //Array vergrößern
index:=length(pagepic-1); //etwas mit dem letzten Object im Array machen pagepic[index]:=Timage.Create(self); pagepic[index].Onclick:=Image1Click; Image1Click ist eine funktionierende Prozdeur wie oben schon beschrieben. Kann es sein, dass das was mit Objekten in dynamischen arrays zu tun hat? mfg KahPee |
Re: Onclick-Ereignis für ein per Code erstelltes Objekt
Lad mal bitte deine ganze Unit mit hoch.
|
Re: Onclick-Ereignis für ein per Code erstelltes Objekt
Das ganze Projekt besteht aus mehreren Units unten die MainUnit und die Unit mit den Declarationen. Die anderen Units sind unrelevant.
|
Re: Onclick-Ereignis für ein per Code erstelltes Objekt
Ah OK. Nun verstehe ich:
Du hast folgendes:
Delphi-Quellcode:
Tobject=record //Objekte
Typ: Tobjecttyp; end; Wobei Delphi ja selber ein Typen von TObject hat. Dort kommt der durch einander. Benne das um und es funktioniert |
Re: Onclick-Ereignis für ein per Code erstelltes Objekt
argh... so was blödes..
Vielen Dank!! Ich bin noch dabei den Schritt vom Anfänger zum Fortgeschrittenen Programmierer zu machen :P KahPee |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:00 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz