AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Kein Fehler obwohl Objekt nicht erstellt !?
Thema durchsuchen
Ansicht
Themen-Optionen

Kein Fehler obwohl Objekt nicht erstellt !?

Ein Thema von jfheins · begonnen am 14. Dez 2004 · letzter Beitrag vom 25. Sep 2006
 
berens

Registriert seit: 3. Sep 2004
441 Beiträge
 
Delphi 10.4 Sydney
 
#19

Re: Kein Fehler obwohl Objekt nicht erstellt !?

  Alt 25. Sep 2006, 10:10
Um das Problem nochmals aufzugreifen (ich stehe nämlich vor selbigen):

Delphi-Quellcode:
function Font_GetFontFromUser(_Font: TFont): TFont;
var
  FD: TMyFontDialog;
begin
  Result := NIL;
  FD := TMyFontDialog.Create(NIL);
  try
    FD.Font := _Font;
    if FD.Execute then begin
      Result := FD.Font;
    end;
  finally
    FreeAndNil(FD);
  end;
end;
Ich habe eine globale Variable vom Typ TFont die ich beim Aufrufen dieser Funktion übergebe und auch wieder zuweise, also in der Form
  FfntBla := Font_GetFontFromUser(FfntBla); Aber kurze Zeit (nicht direkt!) nachdem ich diese Funktion aufgerufen habe, sind die Werte von FfntBla.Name, FfntBla.Size etc. in der "Liste überwachter Ausdrücke" ungültig. Vermutete Ursache ist -wie hier schon angesprochen-, dass mit FreeAndNil auch meine globale Schrift freigegeben wird.

Als Abhilfe hatte ich folgendes angedacht:
Delphi-Quellcode:
 
function Font_GetFontFromUser(_Font: TFont): TFont;
var
  FD: TMyFontDialog;
  DummyFont: TFont;
begin
  Result := NIL;
  FD := TMyFontDialog.Create(NIL);
  try
    DummyFont := FD.Font
    FD.Font := _Font;
    if FD.Execute then begin
      Result := FD.Font;
    end;
    FD.Font := DummyFont;
  finally
    FreeAndNil(FD);
  end;
end;
Leider besteht dummerweise das Problem und die globale Variable wird freigegeben, obwohl das afaik nicht sein durfte!

Vielen Dank für schnelle Antworten!
  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 14:31 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