Thema: Delphi Konstanten-Fehler

Einzelnen Beitrag anzeigen

Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

AW: Konstanten-Fehler

  Alt 10. Nov 2010, 15:19
Hallo

1) Wenn du eine Procedur mit Var-Parameter hast, kannst du für diesen Parameter nur Variablen übergeben und keine konstanten Werte ('http://www.google.com' ist z.B. ein konstanter Wert).

2) Lösen kannst du DAS Problem indem du das var vor deinem Parameter wegmachst, weil es in diesem Fall eigentlich unnötig ist:

function load_picture(url : String) : TGIFImage;

3) .. Funktionieren wird dein Code trotzdem nicht, weil du das in load_picture erstellte GIF direkt wieder freigibst.

Die Funktion sollte so aussehen:

Delphi-Quellcode:
function load_picture(url : String) : TGIFImage;
var
  Stream : TMemoryStream;
  GIF : TGIFImage;
begin
  if url <> 'then
  begin
    Stream := TMemoryStream.Create;
    try
      Form1.IdHTTP1.Get(url, Stream);
      Stream.Position := 0;
      GIF := TGIFImage.Create;
      GIF.LoadFromStream(stream);
      Result := GIF;
    finally
      Stream.Free;
    end;
  end;
end;
Du könntest/solltest die procedure vllt. auch als Methode von TForm1 definieren. Dann müsstest du nicht Form1.IdHTTP1.Get schreiben sondern nur IdHTTP1.Get, was dann auch mit jeder Instanz von TForm1 funktioniert und nicht nur mit der Variable Form1.
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat