Einzelnen Beitrag anzeigen

Der schöne Günther

Registriert seit: 6. Mär 2013
6.176 Beiträge
 
Delphi 10 Seattle Enterprise
 
#29

AW: Properties haben nach Zuweisung falsche Werte

  Alt 29. Okt 2014, 17:35
Egal ob Optimierung an oder aus, stimmt.

Und noch interessanter: Der Fehler besteht nur beim Win32-Compiler, bei Win64 nicht. Andere Compiler kann ich nicht testen.


Könnte man folgendes als Minimalbeispiel in die QC eintragen?

Delphi-Quellcode:
program Project4;

{$APPTYPE CONSOLE}


type
   TMyClass = class
      one, two: String;
   end;

var
   globalInstance: TMyClass;

function getInstance(): TMyClass;
begin
   if not Assigned(globalInstance) then
      globalInstance := TMyClass.Create();

   globalInstance.one := 'one';
   globalInstance.two := 'two';

   Result := globalInstance;
end;

function getBoth(): String;
var
   oneCopy, twoCopy: String;
begin
   oneCopy := getInstance().one;
   twoCopy := getInstance().two;

   WriteLn( oneCopy + ' ' + twoCopy );

   Result := getInstance().one + ' ' + getInstance().two;
end;

begin
   WriteLn( getBoth() );

   // Output on DCC32:
   //one two
   //two two

   // Output on DCC64:
   //one two
   //one two
end.
Oder ginge das noch kürzer?
  Mit Zitat antworten Zitat