AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Variablen nicht NIL 64Bit

Ein Thema von EWeiss · begonnen am 1. Sep 2018 · letzter Beitrag vom 12. Sep 2018
 
Schokohase
(Gast)

n/a Beiträge
 
#19

AW: Variablen nicht NIL 64Bit

  Alt 1. Sep 2018, 13:51

Delphi-Quellcode:
  if Assigned(TempFont) then begin
     GdipDeleteFont(TempFont);
     TempFont := nil; // H2077 Auf 'TempFont' zugewiesener Wert wird niemals mehr benutzt
   end;
Ist logisch weil du den Font vorher nicht verwendest.
Aber Ich. Siehe!
Du hast den Sinn der Warnung immer noch nicht verstanden.

Du weist der Variablen einen Wert zu, aber dieser Wert wird NACH dieser Code-Zeile niemals verwendet. Diese Zeile ist also prinzipiell überflüssig.

Ob du vorher die Variable mit ihrem Inhlat verwendet hast oder nicht, spielt hier keine Geige. Es geht um diese Zuweisung und den Code danach.

Dein Code könnte also so aussehen
Delphi-Quellcode:
var
  Graphics: LONG_PTR;
  Fam: GpFontFamily;
  TempFont: GpFont;
  rb: TRect;
  xWidth, YHeight: Integer;
  strFormat: GPSTRINGFORMAT;
  boundingBox, layoutRect: TGPRectF;

begin

  result := GenericError;
  strFormat := nil;
  Fam := nil;
  TempFont := nil; ..// hier kommt Warnung unter D2010 in Delphi 10.2.3 nicht. Deshalb war es vorher nicht addiert.
                     // habe es aber jetzt trotzdem addiert und ignoriere die Warnung.
  Graphics := 0;

  try
    // ... schnipp ... schnapp ...
  finally
    if Graphics <> 0 then
    begin
      GdipCheck(GdipDeleteGraphics(Graphics));
      //Graphics := 0;
    end;

    if Assigned(TempFont) then
    begin
      GdipCheck(GdipDeleteFont(TempFont)); // Und hier kracht es unter Win10 wenn TempFont mit irgendwas gefüllt wird. (In D2010 nicht! )
      //TempFont := nil;
    end;

    if Assigned(Fam) then
    begin
      GdipCheck(GdipDeleteFontFamily(Fam));
      //Fam := nil;
    end;
  end;

end;
und müsste jetzt 3 Warnungen weniger produzieren

Geändert von Schokohase ( 1. Sep 2018 um 13:55 Uhr)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:49 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