Image in einer Funktion Bild zuweisen...
-
Guten Abend,
ich habe folgendes Problem.
Ich möchte in einer Funktion, einem Image ein Bild zuweisen z.B. LoadFromFile.
Wenn ich das direkt einem Ereignis unter einem Button zum Beispiel hinterlege funktioniert alles. Packe ich den Code in eine Funktion. Kennt er mein Image nicht mehr?! Wie kommt das? Was muss ich machen?
Das funktioniert nicht.void LoadImage() { Image1->Picture->LoadFromFile("c:\\test.bmp"); }Das funktioniert
void __fastcall TForm1::Button1Click(TObject *Sender) { Image1->Picture->LoadFromFile("c:\\test.bmp"); }Kann ich irgendwie auch ein Ereignis aufrufen.
z.B. Das Ereignis Button1Click?
Tut mir leid, für die vielen "blöden Fragen"...Finde auf die schnelle nichts.Vielen Dank für eure Hilfe...
-
Hallo
Entweder gibst du der Funktion LoadImage noch einen Pointer auf das Form oder besser noch auf das Image selber als Parameter, den du dann innerhalb der Funktion benutzen kannst oder du machst die Funktion zu einer Membermethode der Klasse TForm1, dann kannst du auch alle Member einfach so aufrufen.
bis bald
akari
-
Ich habe einfach nur eine Form mit einem Button und einem Image.
Wenn ich auf den Button klicke erhalte ich eine Exception.
Kannst du mir einen Tipp geben?
Danke..//--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; TImage *Image1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void LoadPic() { Image1->Picture->LoadFromFile("c:\\leer.bmp"); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { LoadPic(); } //---------------------------------------------------------------------------
-
1000 Dank....
-
Hallo
Globale Zeiger sind die schlechteste Lösung.
Entweder sovoid LoadPic(TImage* Image) { Image->Picture->LoadFromFile("c:\\leer.bmp"); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { LoadPic(Image1); } //---------------------------------------------------------------------------oder so
// Im Header des Forms ... private : void LoadPic(); // einfügen! public : ... // Implementation void TForm1::LoadPic() { Image1->Picture->LoadFromFile("c:\\leer.bmp"); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { LoadPic(); } //---------------------------------------------------------------------------bis bald
akari