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
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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); } }
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager