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
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#11

Re: Kein Fehler obwohl Objekt nicht erstellt !?

  Alt 14. Dez 2004, 21:18
Mir ging es um das TFont-Feld des Records, und warum man MsgRecord.Font := FontDialog1.Font; schreiben kann, ohne ein AV zu bekommen.
Thx to jim_raynor und die anderen ...

Ach ja,
Zitat von Luckie:
Ja, wo ist denn da das Problem? TFont ist doch auch nur ein Datentyp, wie jeder andere auch und keine Klasse.
Das ich sowas noch erleben darf
In meinem Delphi steht folgendes:
TFont = class(TGraphicsObject)
private
{...}
Na wenn das keine Klasse ist ...
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#12

Re: Kein Fehler obwohl Objekt nicht erstellt !?

  Alt 14. Dez 2004, 21:20
Oh verdammt, da habe ich mich wohkl vertan.

Aber du kannst dich auch mal kalrer ausdrücken um was es dir eigentlich geht.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von jim_raynor
jim_raynor

Registriert seit: 17. Okt 2004
Ort: Berlin
1.251 Beiträge
 
Delphi 5 Standard
 
#13

Re: Kein Fehler obwohl Objekt nicht erstellt !?

  Alt 14. Dez 2004, 21:22
Zitat von Luckie:
Oh verdammt, da habe ich mich wohkl vertan.

Aber du kannst dich auch mal kalrer ausdrücken um was es dir eigentlich geht.
Dax und ich haben es doch von Anfang an verstanden Also so schlimm war es garnicht.
Christian Reich
Schaut euch mein X-COM Remake X-Force: Fight For Destiny ( http://www.xforce-online.de ) an.
  Mit Zitat antworten Zitat
Benutzerbild von Sanchez
Sanchez

Registriert seit: 24. Apr 2003
Ort: Neumarkt Stmk
892 Beiträge
 
Delphi XE6 Enterprise
 
#14

Re: Kein Fehler obwohl Objekt nicht erstellt !?

  Alt 14. Dez 2004, 21:28
Hallo,

Wenn das hier
MsgRecord.Font := FontDialog1.Font; eine AV liefern würde, dann müsste das hier
Delphi-Quellcode:
var EinFont : TFont;
begin
  EinFont := TFont.Create;
end;
genauso eine AV liefern. In beiden Fällen weisst du einer Variable, die vorher ins Nirvana zeigte einen gültigen Wert zu.
Warums sollte das einen Fehler liefern?

grüße, daniel
Daniel
Testen ist feige!
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#15

Re: Kein Fehler obwohl Objekt nicht erstellt !?

  Alt 14. Dez 2004, 21:31
Zitat von Sanchez:
In beiden Fällen weisst du einer Variable, die vorher ins Nirvana zeigte einen gültigen Wert zu.
Warums sollte das einen Fehler liefern?
Falls ich das Drunter&Drüber richtig gedeutet habe ist nicht mehr die Zuweisung sein Problem sondern das Freigeben.
War aber auch nur ein Blick in die trübe Kristallkugel.
  Mit Zitat antworten Zitat
tommie-lie
(Gast)

n/a Beiträge
 
#16

Re: Kein Fehler obwohl Objekt nicht erstellt !?

  Alt 14. Dez 2004, 21:36
Zitat von Robert_G:
Falls ich das Drunter&Drüber richtig gedeutet habe ist nicht mehr die Zuweisung sein Problem sondern das Freigeben.
Nein, Julius ging's erstmal um's Zuweisen, das mit dem Freigeben habe ich ins Spiel gebracht

P.S.: Jaaaaaa, ich habe es geschafft, ich habe wenigstens einen verwirrt!
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#17

Re: Kein Fehler obwohl Objekt nicht erstellt !?

  Alt 14. Dez 2004, 21:46
Zitat von tommie-lie:
P.S.: Jaaaaaa, ich habe es geschafft, ich habe wenigstens einen verwirrt!
Kunststück Bei meinem biblischen Alter verwirrt mich schon ein An/Aus-Knopf (An oder aus, an oder aus, ... ? )
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#18

Re: Kein Fehler obwohl Objekt nicht erstellt !?

  Alt 14. Dez 2004, 21:47
->
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
berens

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

Re: Kein Fehler obwohl Objekt nicht erstellt !?

  Alt 25. Sep 2006, 11: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
Sascha L

Registriert seit: 4. Jun 2004
Ort: Hamm
390 Beiträge
 
Delphi 2006 Professional
 
#20

Re: Kein Fehler obwohl Objekt nicht erstellt !?

  Alt 25. Sep 2006, 11:54
Das Problem ist, dass du nur den Pointer setzt und somit ist auch klar, dass FfntBla auf nichts zeigt, wenn du das Ziel frei gibst.

Du musst also Assign verwenden!

FfntBla.Assign(Font_GetFontFromUser(FfntBla));
Sascha
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 09:02 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz