Einzelnen Beitrag anzeigen

Benutzerbild von Uwe Raabe
Uwe Raabe
Online

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.024 Beiträge
 
Delphi 12 Athens
 
#17

AW: Variablen nicht NIL 64Bit

  Alt 1. Sep 2018, 13:08
NÖ weil sie unter Delphi2010 ausgespuckt wird und nicht unter Delphi 10.2.3..
Dann compilierst du was anderes oder mehr als hier gezeigt.

Ich habe mal die nötigen GDI+ Deklarationen extrahiert, da es die unter D2010 im Standard noch nicht gibt. Dieses Programm
Delphi-Quellcode:
program Test;

type
  Status = (Ok, GenericError, InvalidParameter, OutOfMemory, ObjectBusy, InsufficientBuffer, NotImplemented, Win32Error,
    WrongState, Aborted, FileNotFound, ValueOverflow, AccessDenied, UnknownImageFormat, FontFamilyNotFound,
    FontStyleNotFound, NotTrueTypeFont, UnsupportedGdiplusVersion, GdiplusNotInitialized, PropertyNotFound,
    PropertyNotSupported);
  TStatus = Status;

  GpStatus = TStatus;

type
  GpFont = Pointer;

function GdipDeleteFont(font: GpFont): GpStatus;
begin
  Result := Ok;
end;

procedure Main;
var
  TempFont: GpFont;
begin
  TempFont := nil;

  if Assigned(TempFont) then begin
    GdipDeleteFont(TempFont);
    TempFont := nil; // H2077 Auf 'TempFont' zugewiesener Wert wird niemals benutzt
  end;
end;

begin
  Main;
end.
gibt sowohl unter D2010 als auch unter Delphi 10.2.3 nur einen Hinweis
Zitat:
H2077 Auf 'TempFont' zugewiesener Wert wird niemals benutzt
für die zweite Zuweisung von TempFont innerhalb des if-then-Blocks aus. Die erste Zuweisung auf nil wird nicht bemängelt. Die beiden Compiler arbeiten in diesem Fall also identisch und auch korrekt.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat