AW: TBooleanHelper
Klar ginge es (meistens)
* spaßig wird es bei MultiThread, den diese Zugriffe sind nicht thread-save * und warum die globalen variablen umschreiben, anschließend wieder löschen, wodurch sie von anderen wieder neu initialisiert werden müssen, anstatt direkt nur was Eigenes zu nehmen? Anstatt die globalen Variablen zu ändern, kannst auch nur deine Lokalen anpassen, wenn leer.
Delphi-Quellcode:
bzw. BoolToStr oder ToString anstatt TrueBoolStrs/FalseBoolStrs
// zuerst B und dann die Strings
function BoolToStrs(B: Boolean; const FalseStr, TrueStr: string): string; begin //VerifyBoolStrArray; // ich geh jetzt einfach mal davon aus das ist schon initialisert, vorallem da man von außen VerifyBoolStrArray nicht aufrufen kann if B then if TrueStr <> '' then Result := TrueStr else Result := TrueBoolStrs[0] else if FalseStr <> '' then Result := FalseStr else Result := FalseBoolStrs[0]; end; function BoolToStrs(B: Boolean; const FalseStr, TrueStr: string): string; begin //VerifyBoolStrArray; if B then Result := IfThen(TrueStr <> '', TrueStr, TrueBoolStrs[0]) // Result := Coalesce(TrueStr, TrueBoolStrs[0]) else Result := IfThen(FalseStr <> '', FalseStr, FalseBoolStrs[0]); // Result := Coalesce(FalseStr, FalseBoolStrs[0]); //Result := IfThen(B, IfThen(TrueStr <> '', TrueStr, TrueBoolStrs[0]), IfThen(FalseStr <> '', FalseStr, FalseBoolStrs[0])); //Result := IfThen(B, Coalesce(TrueStr, TrueBoolStrs[0]), Coalesce(FalseStr, FalseBoolStrs[0])); end; // soein Coalesce, wie man es aus Datenbanken kenn, hatte ich mir für String/Integer einfach mal nachgebaut // zuerst die Strings und dann B function BoolToStrs(B: Boolean; FalseStr, TrueStr: string): string; begin //VerifyBoolStrArray; if TrueStr = '' then TrueStr := TrueBoolStrs[0]; if FalseStr = '' then FalseStr := FalseBoolStrs[0]; if B then Result := TrueStr else Result := FalseStr; end;
Delphi-Quellcode:
Und wer sich TUseBoolStrs.True ausgedacht hat, gehört ausgepeitscht.
function BoolToStrs(B: Boolean; const FalseStr, TrueStr: string): string;
begin if B and (TrueStr <> '') then Result := TrueStr else if not B and (FalseStr <> '') then Result := FalseStr else Result := B.ToString(TUseBoolStrs.true); // Result := BoolToStr(B, True); end; |
AW: TBooleanHelper
Zitat:
War ja gut, dass ich nachgefragt habe. Werde ich verarbeiten. Es soll für die Zukunft dann sicher funktionieren. Gruß Willie. Nachtrag: Funktioniert nicht, weil es True/FalseBoolStr[0] nicht gibt. Es kommt zu einer Zugriffsverletzung. W. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:27 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