events für elemente
-
Hi,
1. WO? [kommt der Fehler]2. Speicherplatz muss reserviert werden mit new!
MFG
Alexander Sulfrian
PS: Liegt das Image in dem Panel welches die Farbe ändern soll? Soll das vielleicht irgend so ein Spiel werden?
ala:
Image wird gedrückt
-> Panel wird makiert
-> 2. Image wird gedrückt
-> Zug wird ausgeführtNur so'ne Frage?
-
ja das soll ein "schach-brett" werden, was heist eigentlich werden (?!), das ist schon eins :).
die figuren werden wie auf [url] www.jippii.de [/url] (in java) erst markiert und dann ans zieg geschoben.
-
dasobjekt->Picture->LoadFromFile("G:\\AktueLL\\Schach\\pferd-weis.jpg");
da kommt der fehler.
ich möchte das "dasobjekt" wie "Image1" verwenden.
-
dasobjekt ist bei dir ein AnsiString, und der hat nun mal keine Picture-Eigenschaft.
-
wie weise ich ihm die denn zu?
-
Gar nicht, denn AnsiString hat nun mal keine Picture-Eigenschaft.
Wenn du ein TImage-Objekt benötigst dann musst du halt ein solches deklarieren und ihm zB. per dynamic_cast den Sender zuweisen. Benutz endlich mal die Suchfunktion hier, zu dynamic_cast findest du sicher zig Beispiele.
-
ich habe alle beispiele mit dynamic_cast durchgelesen, ich glaube du verstehst mich falsch:
ich möchte NICHT ein neues TImage erstellen!
ich möchte einen pointer oder soetwas ähnliches auf
dynamic_cast<TImage*>(Sender)->Name;
setzen, da ich eine große anzahl von TImages habe nicht für jedes ein event schreiben kann!
beispielsweise:
dasobjekt = dynamic_cast<TImage*>(Sender)->Name;
//und später
dasobjekt->Picture->LoadFromFile("G:\\bild.jpg");ich werde aus den bispielen echt nicht schlau, und bei dem o.g. bekomme ich einen compiler error. könnte mir irgendjemand ein codesnippet geben, dass einen pointer auf dynamic_cast<TImage>(Sender)->Name; anlegt !?*
-
Stell dich doch nicht so bescheuert an (sorry ;)). Was willst du immerzu mit Zeigern auf den Namen? Den sollst du nur benutzen, um festzustellen, welches Image geklickt wurde
TImage *tmp = dynamic_cast<TImage*>(Sender); tmp->Picture->LoadFromFile... // oder dynamic_cast<TImage*>(Sender)->Picture->LoadFromFile...
-
Hi,
ich will mal nicht so sein! Hier ein kleines BSP:void __fastcall TForm1::Image1Click(TObject *Sender) { // den Sender (TObject) zu TImage casten und temp zuweisen TImage *temp = dynamic_cast<TImage*>(Sender); // wenn erfolgreich if(temp != NULL) { // wenn noch nicht geklickt if (temp->Tag == 0) { // geklickt setzen temp->Tag = 1; // Panel auf welchem des Image liegt ermitteln und nach TPanel casten TPanel *panel = dynamic_cast<TPanel*>(temp->Parent) // wenn erfolgreich -> Farbe ändern if (panel != NULL) panel->Color = clTeal; // Bild laden temp->Picture->LoadFromFile("G:\\AktueLL\\Schach\\pferd-weis.jpg"); } // wenn schon mal geklickt else { // selber machen, ist ja fast das gleiche } } }
MFG
Alexander Sulfrian
[ Dieser Beitrag wurde am 04.06.2003 um 20:59 Uhr von Alexander Sulfrian editiert. ]
-
DANKE