BoolToStr wirft Memcheck Exception.
Hallo zusammen,
ich habe ein Projekt, welches ich gerade mit Memcheck auf Leaks überprüfe. Dabei meckert Memcheck folgende Codezeile an:
Delphi-Quellcode:
Auszug aus dem Memcheck.log:
unit uProject.pas
// schreibe daten des projektes ... 319: ini.WriteString(cIniSectionProject, project_usernumberwithzero, BoolToStr(aTestProject.NumberWithZero, true)); ... Size: 14 2 Occurences call stack - 0 : (no debug info) Find error: 0000000E call stack - 1 : Module sysutils.pas Routine @Sysutils@BoolToStr Line 4720 Find error: 0040A576 call stack - 2 : Module uProject.pas Routine @Uproject@SaveProjectDataToFile Line 319 Find error: 0054C3F0 Was läuft hier in @Sysutils@BoolToStr für Memcheck falsch ab? Gruß, Christoph |
Re: BoolToStr wirft Memcheck Exception.
Was steht in aTestProject.NumberWithZero?
|
Re: BoolToStr wirft Memcheck Exception.
Zitat:
Delphi-Quellcode:
fNumberWithZero: boolean; // sollen nach dem prefix der nummernbereich mit nullen aufgefüllt werden?
... property NumberWithZero: boolean read fNumberWithZero write fNumberWithZero; ... constructor TTestProject.Create; begin // rufe vater auf inherited Create; // eigene daten inits fNumberWithZero:=true; end; |
Re: BoolToStr wirft Memcheck Exception.
Zitat:
|
Re: BoolToStr wirft Memcheck Exception.
Zitat:
Vielen Dank, Christoph |
Re: BoolToStr wirft Memcheck Exception.
Hat keiner mehr eine Idee, was an der Property nun so falsch ist? (*Push*)
Gruß, Chritoph |
Re: BoolToStr wirft Memcheck Exception.
Hi,
Also an den Properties kann es eigentlich nicht liegen, denn das hier funktioniert:
Delphi-Quellcode:
Schau lieber mal dort nach:
type
TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); private FVS: Boolean; { Private declarations } public property Test: Boolean read FVS write FVS; end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin Test := false; Caption := BoolToStr(Test,true); end; procedure TForm1.FormCreate(Sender: TObject); begin Test := true; end; Zitat:
Gruß Neutral General |
Re: BoolToStr wirft Memcheck Exception.
Zitat:
Hast Du noch eine Idee? Gruß, Christoph |
Re: BoolToStr wirft Memcheck Exception.
Mal eine Frage, warum der Umweg über die Public-Property ? Ich würde statt
Delphi-Quellcode:
dieses hier schreiben
BoolToStr(aTestProject.NumberWithZero, true)
Delphi-Quellcode:
BoolToStr(fNumberWithZero, true)
|
Re: BoolToStr wirft Memcheck Exception.
Zitat:
Delphi-Quellcode:
Daher der Zugriff auf alle public properties des Objektes für das Speichern. Hältst Du das für falsch?
function SaveProjectDataToFile(aTestProject: TTestProject): boolean;
Gruß, Christoph |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:59 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