![]() |
tImage1 geht nur im Form1.OnCreate
Hi,
habe ein wahrscheinlich sehr triviales Problem mit einem Timage. Wenn ich die gesamte Prozedur ins Form.Create schreibe funktioniert alles ohne Probleme. Als extra Prozedur sagt Delphi mir "Image1 undeklarierter Bezeichner". 1. funktioniert
Code:
procedure TForm1.FormCreate(Sender: TObject); var fAppPath: String; begin fAppPath := ExtractFilePath(Application.Exename); UrlDownloadToFile(nil, Pwidechar( 'http://myurl.com/banner.png'), Pwidechar(fAppPath + 'banner.png'), 0, nil); Image1.Picture.LoadFromFile(fAppPath + 'banner.png'); end; 2.funktioniert so nicht, warum?
Code:
procedure getbanner; var fAppPath: String; begin fAppPath := ExtractFilePath(Application.Exename); UrlDownloadToFile(nil, Pwidechar( 'http://myurl.com/banner.png'), Pwidechar(fAppPath + 'banner.png'), 0, nil); Image1.Picture.LoadFromFile(fAppPath + 'banner.png'); end; procedure TForm1.FormCreate(Sender: TObject); begin getbanner; end; |
AW: tImage1 geht nur im Form1.OnCreate
Hallo,
du musst aus der Procedure getBanner eine Methode der Klasse TForm machen. GetBanner kennt nicht die Komponenten der TForm Klasse. Grüße Klaus |
AW: tImage1 geht nur im Form1.OnCreate
Oder du übergibst der procedure Image1 als Parameter:
Delphi-Quellcode:
Frank
procedure GetBanner(AImage: TImage);
var fAppPath: String; begin fAppPath := ExtractFilePath(Application.Exename); UrlDownloadToFile(nil, Pwidechar( 'http://myurl.com/banner.png'), Pwidechar(fAppPath + 'banner.png'), 0, nil); AImage.Picture.LoadFromFile(fAppPath + 'banner.png'); end; procedure TForm6.FormCreate(Sender: TObject); begin GetBanner(Image1); end; |
AW: tImage1 geht nur im Form1.OnCreate
@Klaus, wie mache ich aus getBanner eine Methode der Klasse TForm?
@Frank, vielen Dank für das Beispiel, aber wie verhält es sich wenn ich mehrere Komponenten mit einbinden möchte (z.B. progressbar, button usw.) müssen die parameter dann alle einzeln zugewiesen werden? Alles etwas anders als ich von Pascal gewohnt war. |
AW: tImage1 geht nur im Form1.OnCreate
Delphi-Quellcode:
type
TDeinForm = class(TForm) private (* Deklaration einer Methode der Klasse TDeinForm *) procedure GetBanner(AImage: TImage); ... end; ... (* Implementation der Methode *) procedure TDeinForm.GetBanner(AImage: TImage); begin (* Code *) end; |
AW: tImage1 geht nur im Form1.OnCreate
Jetzt verstehe ich das auch. Vielen Dank!
|
AW: tImage1 geht nur im Form1.OnCreate
wobei diese Möglichkeit auch noch besteht, wenn die Procedure eine Methode von Form1 ist:
Delphi-Quellcode:
type
TDeinForm = class(TForm) private (* Deklaration einer Methode der Klasse TDeinForm *) procedure GetBanner; ... end; ... (* Implementation der Methode *) procedure TDeinForm.GetBanner; var fAppPath: String; begin fAppPath := ExtractFilePath(Application.Exename); UrlDownloadToFile(nil, Pwidechar('http://myurl.com/banner.png'), Pwidechar(fAppPath + 'banner.png'), 0, nil); Image1.Picture.LoadFromFile(fAppPath + 'banner.png'); end; |
AW: tImage1 geht nur im Form1.OnCreate
Zitat:
Zitat:
UrlDownloadToFile -> PChar UrlDownloadToFileA -> PAnsiChar UrlDownloadToFileW -> PWideChar String -> PChar AnsiString -> PAnsiChar WideString und UnicodeString -> PWideChar |
AW: tImage1 geht nur im Form1.OnCreate
Zitat:
Also als Methode der Form und nicht als Procedure. Dann brauchst du auch keine Parameter, da du auf alle Eigenschaften des Form Zugriff hast. Frank |
AW: tImage1 geht nur im Form1.OnCreate
Danke erstmal an alle die sich hier so positiv mit meinem Problem befassen!
@himitsu: dachte mit PWideChar bin ich immer sicher was den Namen betrifft. Wenn ich das ganze mit inifiles probiere, sagt er mir das Tinifiles nicht deklariert ist.
Code:
GetBanner funktioniert perfekt und ich dachte ich hätte es damit auch verstanden.
private
{ Private-Deklarationen } procedure getbanner; procedure readini; procedure TForm1.readini; var ini: Tinifiles; begin Ini := TIniFile.Create('C:my.ini'); try Edit1.Text := Ini.ReadString('Directory', 'MyCfg','1 '); finally Ini.Free; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:41 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz