Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi name eines tpicture (https://www.delphipraxis.net/62026-name-eines-tpicture.html)

Weazy 29. Jan 2006 23:22


name eines tpicture
 
wie kann ich den namen des bildes, welches mit loadfromfile() in ein tpicture geladen wurde herausfinden?


Also ich habe z.b das Bitmap "123.bmp" in das tpicture geladen. Wie kann ich anhand des tpictures nun wieder den string "123.bmp" bekommen?

turboPASCAL 29. Jan 2006 23:52

Re: name eines tpicture
 
TPictures speichert nur die Graphic, aber nicht den Namen der Datei die du geladen hast. Darum musst du dich selbst kümmern.

Delphi-Quellcode:
var PicName: String;

procedure Form1.PicLoad...
begin
  PicName := 'c:\..MeineDatei.bmp';
  TImage1.Picture.Bitmap.LoadFromFile(PicName);
  //...
end;

Weazy 29. Jan 2006 23:54

Re: name eines tpicture
 
dann muss ich also beim laden des Bildes den Dateinamen irgendwo abspeichern? Wie mache ich das am besten?

dahead 30. Jan 2006 00:37

Re: name eines tpicture
 
schreibt turboPascal doch oben. in einem string den er/du global deklarierst und bei jedem neuladen ebenfalls wieder setzt.

Delphi-Quellcode:
var
  Picname: String;

Christian Seehase 30. Jan 2006 01:11

Re: name eines tpicture
 
Moin Weazy,

oder, in etwas aufwändigerer Form:
Du erstellst Dir selber eine Klasse, die um den Dateinamen ergänzt wird.

Einfaches Beispiel (ungetestet):

Delphi-Quellcode:
interface

type
  TMyImage = class(TImage)
  private
    FsFilename : string;
  public
    constructor Create(AOwner : TComponent);
    procedure LoadFromFile(const Filename: string);
    property Filename : string read FsFilename;
  end;

implementation

constructor TMyImage.Create;
begin
  inherited;
  FsFilename := '';
end;

procedure TMyImage.LoadFromFile(const Filename: string);
begin
  self.Picture.Bitmap.LoadFromFile(Filename);
  FsFilename := Filename;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:04 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz