TBooleanHelper Fehler?

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Benutzeravatar
theo
Beiträge: 9911
Registriert: Mo 11. Sep 2006, 19:01

Re: TBooleanHelper Fehler?

Beitrag von theo »

Na gut, dann bastele ich mir eben selber was.

Code: Alles auswählen

{$modeswitch typehelpers}

type

  { TMyBooleanHelper }

  TMyBooleanHelper = type helper(TBooleanHelper) for Boolean
    function ToBoolStr: String;
  end;    

implementation   

{ TMyBooleanHelper }

function TMyBooleanHelper.ToBoolStr: String;
begin
  Result:=Self.ToString(TUseBoolStrs.True);
end;  

....

var B:Boolean;
begin
  B:=True;
  Caption:=B.ToBoolStr+False.ToBoolStr;
end;

PascalDragon
Beiträge: 670
Registriert: Mi 3. Jun 2020, 07:18
OS, Lazarus, FPC: L 2.0.8, FPC Trunk, OS Win/Linux
CPU-Target: Aarch64 bis Z80 ;)
Wohnort: München

Re: TBooleanHelper Fehler?

Beitrag von PascalDragon »

theo hat geschrieben:
So 27. Nov 2022, 11:44
Na gut, dann bastele ich mir eben selber was.
Du könntest deine ToBoolStr Methode noch mit inline markieren, dann wird der Compiler den zusätzlichen Aufruf wegoptimieren.
FPC Compiler Entwickler

Benutzeravatar
theo
Beiträge: 9911
Registriert: Mo 11. Sep 2006, 19:01

Re: TBooleanHelper Fehler?

Beitrag von theo »

PascalDragon hat geschrieben:
So 27. Nov 2022, 22:46
Du könntest deine ToBoolStr Methode noch mit inline markieren, dann wird der Compiler den zusätzlichen Aufruf wegoptimieren.
Danke!
Ausserdem wäre es so eigentlich noch direkter:

Code: Alles auswählen

TMyBooleanHelper = type helper(TBooleanHelper) for Boolean
  function ToBoolStr: String; inline;
end;      
...
function TMyBooleanHelper.ToBoolStr: String;
begin
  Result:=BoolToStr(Self,True);
end;   

Antworten