Hallo Leute,
stehe heute vor einem seltsamen Problem. Vielleicht kann mir hier wer weiterhelfen. Ich debugge eine
Unit meines Programmes (Delphi 10.2 Update 1),
im Debugger werden Werte scheinbar "wegoptimiert", Haltepunkte werden "ausgegrünt" . Die Routine selbst ist im "Protected" Teil einer Klasse, weder inline noch virtual deklariert.
Compilerflags in der
Unit sind derzeit nicht gesetzt.
Die Routine selbst liefert einen neuen Bezeichner für einen Stringpräfix zurück. Leider läuft diese Routine im Moment ins Leere, wie der angehängte Screenshot zeigt.
Sowohl der Integer- als auch der Stringwert werden nicht gesetzt.
Weiß jemand von euch, was es damit auf sich haben könnte?
Code:
(******************************************************************************)
function TSVFXLayoutManager.NewControlName (ANamePrefix : String) : String;
var ATmpName : String;
AId : Integer;
begin
(** Standardprefix setzen, falls ANamePrefix leer ist **)
if ANamePrefix = '' then ANamePrefix := 'Control';
AId := 1;
ATmpName := format('%s%d', [ANamePrefix, AId]);
while Assigned(FindControlByName(ATmpName)) do begin
Inc(AId);
ATmpName := format('%s%d', [ANamePrefix, AId]);
end;
Result := ATmpName;
end;
(******************************************************************************)
function TSVFXLayoutManager.FindControlByName (Const AName : String) : TSVFXVisualControl;
var i : integer;
begin
Result := Nil;
if fControls.Count > 0 then begin
for i := 0 to pred(fControls.Count) do begin
if AnsiUpperCase(TSVFXVisualControl(fControls[i]).Name) = AnsiUpperCase(AName) then begin
Result := fControls[i];
Break;
end;
end;
end;
end;
(******************************************************************************)