Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi image.picture.LoadfromFile funktioniert nicht (https://www.delphipraxis.net/217495-image-picture-loadfromfile-funktioniert-nicht.html)

H.Bothur 11. Jul 2025 17:18

image.picture.LoadfromFile funktioniert nicht
 
Moin,

ich habe anscheinend mal wieder was vergessen :-(

ich habe ein TImage, in Source beim Versuch ein JPG zu laden wird aber gesagt das der Bezeichner unbekannt ist (E2003):

Delphi-Quellcode:
type
  TMultiMPlayer = class(TForm)
    imgAnzeige: TImage;
    btnEnde: TButton;
    procedure FormShow(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  MultiMPlayer: TMultiMPlayer;

implementation

{$R *.dfm}

var
  ProgrammGestartet: boolean = false;
  PlayerList: TStringList;


procedure JpgAnzeigen(DateiName: String);
begin
  imgAnzeige.picture.LoadfromFile(DateiName); <--- hier kommt der Fehler
end;
Was habe ich da schon wieder falsch gemacht ?

Hans

DenkDirNix 11. Jul 2025 17:23

AW: image.picture.LoadfromFile funktioniert nicht
 
Du benutzt da eine normale Prozedur statt einer Methode. Deshalb ist das Symbol "MultiMPlayer" nicht implizit bekannt.
Also entweder "MultiMPlayer." vor den Aufruf schreiben oder (sinnvoller!) als Methode realisieren.

H.Bothur 11. Jul 2025 17:27

AW: image.picture.LoadfromFile funktioniert nicht
 
Ja natürlich !! Danke !!

Hans

Redeemer 14. Jul 2025 10:28

AW: image.picture.LoadfromFile funktioniert nicht
 
Zitat:

Zitat von DenkDirNix (Beitrag 1550142)
Du benutzt da eine normale Prozedur statt einer Methode. Deshalb ist das Symbol "MultiMPlayer" nicht implizit bekannt.
Also entweder "MultiMPlayer." vor den Aufruf schreiben oder (sinnvoller!) als Methode realisieren.

Jede Prozedur ist eine Methode. Eine Prozedur statt einer Methode zu verwenden, ist somit völlig unmöglich.

jaenicke 14. Jul 2025 10:38

AW: image.picture.LoadfromFile funktioniert nicht
 
Zitat:

Zitat von Redeemer (Beitrag 1550203)
Jede Prozedur ist eine Methode. Eine Prozedur statt einer Methode zu verwenden, ist somit völlig unmöglich.

Das stimmt nicht. Vielleicht ist die engliche Übersetzung "member function" statt "method" besser verständlich. Eine Methode ist explizit bei objektorientierten Sprachen eine innerhalb eines Objekts verwendete Funktion oder Prozedur, sprich in Delphi eine innerhalb einer Klasse deklarierte Funktion oder Prozedur. Der Unterschied ist entscheidend.

Stimmen tut: Jede Methode ist entweder eine Prozedur oder eine Funktion, aber eben innerhalb einer Klasse.

// EDIT:
Ach ja, deshalb bekommst du ja auch die entsprechende Fehlermeldung bei diesem Code:
Delphi-Quellcode:
procedure Test(Sender: TObject);
begin

end;

procedure TForm296.FormCreate(Sender: TObject);
begin
  OnClick := Test;
end;
Zitat:

E2009 Inkompatible Typen: 'Methodenzeiger und reguläre Prozedur'
Wenn man den Unterschied zwischen Methode und Prozedur nicht kennt, versteht man diese Fehlermeldung natürlich ggf. nicht.

Redeemer 14. Jul 2025 11:27

AW: image.picture.LoadfromFile funktioniert nicht
 
Danke. Ja, Member Function ist klarer, aber es ist ja in Delphi meistens eine Prozedur und keine Funktion.

Ich hatte das vermutlich falsch in Erinnerung, weil der Begriff Methodenüberladung auf Prozeduren und Funktionen angewendet wird, die meist keine Member Functions sind.

jaenicke 14. Jul 2025 17:31

AW: image.picture.LoadfromFile funktioniert nicht
 
Zitat:

Zitat von Redeemer (Beitrag 1550205)
Ich hatte das vermutlich falsch in Erinnerung, weil der Begriff Methodenüberladung auf Prozeduren und Funktionen angewendet wird, die meist keine Member Functions sind.

Es gibt überladene Funktionen, Prozeduren oder in Klassen Methoden. Wenn man alle meint, sind es z.B. überladene Routinen.
"Method overloading" ist im Zusammenhang von objektorientierter Programmierung gemeint.

Überladene lose Routinen sollte es in neuem Code aber kaum noch geben.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:17 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