AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

TBooleanHelper

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

Registriert seit: 28. Mai 2008
551 Beiträge
 
Delphi 10.1 Berlin Starter
 
#1

TBooleanHelper

  Alt 17. Feb 2021, 19:15
Hallo,
ich habe mehrere Variablen vom Typ Boolean, die ich mit einem jeweils anderen Text versehen will.
FalseBoolStrs := ['Aus']; TrueBoolStrs:=['An'];
B1.ToString(TUseBoolStrs.true);
..
B2.ToString(TUseBoolStrs.true);
..
B3.ToString(TUseBoolStrs.true);
B1,B2,B3 kommen in mehreren Units vor und werden benutzt.

Meine Frage: Ich muss also jedes mal FalseBoolStr, .. neu definieren, wenn B?.ToString vorkommt? Dass FalseBoolStrs, .. ein Array sind, hilft mir hier nicht weiter?
Willie.
Gut hören kann ich schlecht, schlecht sehen kann ich gut - Ersteres stimmt nicht, das zweite schon.

Geändert von Willie1 (17. Feb 2021 um 19:30 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.578 Beiträge
 
#2

AW: TBooleanHelper

  Alt 17. Feb 2021, 20:05
Ich denke, du kannst dir sicher eine globale Funktion schreiben, die einen Boolean in einen string passend konvertiert. Diese dann einfach in eine utils unit und überall einbinden. Fertig

Wenn die utils unit zu groß wird, aufteilen. Aber so eine Bool => String methode ist ja einfach zu testen, klein und pur => sollte kein Problem darstellen, wenn die global ist.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
38.604 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: TBooleanHelper

  Alt 17. Feb 2021, 20:08
Erstmal: NIEMALS die Default aus diesen Variablen löschen, sondern Deines nur anhängen.
Jedes BoolToStr, StrToBool, Boolean.ToString usw. verwendet Dieses.

Aber am Besten du schreibst dir hierfür ein eingene Funktion, bzw. eigenen Helper,
oder wie wäre es mit IfThen(B1, 'An', 'Aus') ?
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
8.676 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: TBooleanHelper

  Alt 17. Feb 2021, 22:32
Alternativ kann man auch eine globale Konstante erstellen:
Delphi-Quellcode:
const
  cBoolStr: array[Boolean] of string = ['aus', 'an'];

...
  cBoolStr[B1];
  cBoolStr[B2];
  cBoolStr[B3];
Von einem Überschreiben der Standard-Arrays würde ich auch abraten. Die werden auch an anderen Stellen benutzt.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Willie1

Registriert seit: 28. Mai 2008
551 Beiträge
 
Delphi 10.1 Berlin Starter
 
#5

AW: TBooleanHelper

  Alt 18. Feb 2021, 11:15
Erstmal: NIEMALS die Default aus diesen Variablen löschen, sondern Deines nur anhängen.
Jedes BoolToStr, StrToBool, Boolean.ToString usw. verwendet Dieses.
Ich habe verstanden. Aber wo soll ich das anhängen? Tue/FalseBoolStrs sind zu Beginn doch leer.
Delphi-Quellcode:
const
  cBoolStr: array[Boolean] of string = ['aus', 'an'];
Uwe Raabe, Globale Konstante: an diese Möglichkeit hatte ich gedacht aber ich wollte die Helferlein benutzen. Aber so könnte ich das Brett an der dünnsten Stelle bohren. Trotzdem effektiv!
Willie.
Gut hören kann ich schlecht, schlecht sehen kann ich gut - Ersteres stimmt nicht, das zweite schon.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
8.676 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: TBooleanHelper

  Alt 18. Feb 2021, 11:47
Tue/FalseBoolStrs sind zu Beginn doch leer.
Wenn sie leer sind, werden sie mit dem ersten Aufruf von BoolToStr oder TryStrToBool initialisiert (siehe VerifyBoolStrArray in System.SysUtils).
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Willie1

Registriert seit: 28. Mai 2008
551 Beiträge
 
Delphi 10.1 Berlin Starter
 
#7

AW: TBooleanHelper

  Alt 18. Feb 2021, 11:59
Das bedeutet, mit SetLength(True/FalseBoolStrs, 0) setze ich wieder auf die Defaultwerte zurück? Wi.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
8.676 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: TBooleanHelper

  Alt 18. Feb 2021, 12:20
Das bedeutet, mit SetLength(True/FalseBoolStrs, 0) setze ich wieder auf die Defaultwerte zurück? Wi.
Genau.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
38.604 Beiträge
 
Delphi 10.4 Sydney
 
#9

AW: TBooleanHelper

  Alt 18. Feb 2021, 13:19
oder FalseBoolStrs := nil; , was auch einem SetLength 0 entspricht.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014
  Mit Zitat antworten Zitat
Willie1

Registriert seit: 28. Mai 2008
551 Beiträge
 
Delphi 10.1 Berlin Starter
 
#10

AW: TBooleanHelper

  Alt 18. Feb 2021, 19:37
Delphi-Quellcode:
function BoolToStrs(B: Boolean; const Falsestr, Truestr: string): string;
begin
  if (FalseStr <> '') and (Truestr <> '') then begin
    FalseBoolStrs := [Falsestr];
    TrueBoolStrs := [Truestr];;
  end;
  Result := B.ToString(TUseBoolStrs.True);
  FalseBoolStrs := nil; //zurück auf Defaultwerte.
  TrueBoolStrs := nil;
end;
Ich will es so machen und in einer Tool-Bibliothek ablegen. Geht das in Ordnung?
Willie.
Gut hören kann ich schlecht, schlecht sehen kann ich gut - Ersteres stimmt nicht, das zweite schon.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 +2. Es ist jetzt 15:45 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf