AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TBooleanHelper

Ein Thema von Willie1 · begonnen am 17. Feb 2021 · letzter Beitrag vom 19. Feb 2021
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.048 Beiträge
 
Delphi 12 Athens
 
#11

AW: TBooleanHelper

  Alt 18. Feb 2021, 19:50
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:
// 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;
bzw. BoolToStr oder ToString anstatt TrueBoolStrs/FalseBoolStrs
Delphi-Quellcode:
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;
Und wer sich TUseBoolStrs.True ausgedacht hat, gehört ausgepeitscht.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (18. Feb 2021 um 20:04 Uhr)
  Mit Zitat antworten Zitat
Willie1

Registriert seit: 28. Mai 2008
655 Beiträge
 
Delphi 10.1 Berlin Starter
 
#12

AW: TBooleanHelper

  Alt 19. Feb 2021, 16:54
Und wer sich TUseBoolStrs.True ausgedacht hat, gehört ausgepeitscht.
Das möchte ich auch gerne wissen. Hier im Forum gibt es einen Bot, der einen Link enthält, wo das genau erklärt wird. Bot hin oder her, hier hilft er!
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.
Gut hören kann ich schlecht, schlecht sehen kann ich gut - Ersteres stimmt nicht, das zweite schon.

Geändert von Willie1 (19. Feb 2021 um 18:06 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:29 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