Bonjour, je voudrais savoir la ligne de code qui me pemettrai d'avoir le chemin exacte d'une photo qui est dans mon composant TImage merci
Version imprimable
Bonjour, je voudrais savoir la ligne de code qui me pemettrai d'avoir le chemin exacte d'une photo qui est dans mon composant TImage merci
Le composant TImage n'est pas directement relié à un fichier sur ton disque dur, donc tu ne peux pas savoir d'où provient l'image chargée.
A moins de garder le chemin en mémoire lors du chargement de l'image par LoadFromFile.
Salut !
Il doit exister moultes solutions à commencer par la mémorisation d'une chaîne dans le Tag du TImage à l'aide d'un pointeur .
Par contre, je suis un adepte inconditionnel de la dérivation donc je ne me pose même pas la question :
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 class jImage : public TImage { private : AnsiString FFilename; public : __fastcall jImage(TWinControl *AOwner); __fastcall ~jImage(); void __fastcall LoadFromFile(AnsiString AFilename); // cette propriété est donnée, ici, en lecture seule __property AnsiString Filename={read=FFilename}; };
J'utilise de cette manière :Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 __fastcall jImage::jImage(TWinControl *AOwner) : TImage(AOwner) { Parent = AOwner; } //-- __fastcall jImage::~jImage() { } //-- void __fastcall jImage::LoadFromFile(AnsiString AFilename) { AnsiString E = ExtractFileExt(AFilename).UpperCase(); if( (E == ".BMP") || (E == ".ICO") ) { if( FileExists(AFilename) ) { FFilename = AFilename; Picture->LoadFromFile(AFilename); } } }
A plus !Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 jImage *Image; //-- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { Image = new jImage(this); Image->SetBounds(10,10, 100, 100); } //-- void __fastcall TForm1::Open1Click(TObject *Sender) { if(OpenPictureDialog1->Execute()) { Image->LoadFromFile(OpenPictureDialog1->FileName); } }