Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

AW: Klassen Methoden die private stehen

  Alt 28. Feb 2014, 14:12
Zitat:
Delphi-Quellcode:
procedure TZitrone.ZFarbe(a: String);
begin
  if (LowerCase(a) = 'grün') or (LowerCase(a) = 'gelb') then
    FZitronenfarbe := a
  else
    FZitronenfarbe := 'gelb';
end;
Wobei man sich hier noch überlegen kann, ob es nich besser wäre einen Fehler zu werfen
oder still und heimlich einen "Standardwert" zu setzen (so wie es aktuell gemacht wird)
oder den aktuellen Wert in diesem Fall garnicht zu ändern.

Delphi-Quellcode:
procedure TZitrone.ZFarbe(a: String);
begin
  if MatchText(a, ['grün', 'gelb']) then // if (LowerCase(a) = 'grün') or (LowerCase(a) = 'gelb') then
    FZitronenfarbe := a
  else
    raise Exception.CreateFmt('Die Farbe "%s" ist nicht erlaubt.', [a]);
end;
Delphi-Quellcode:
procedure TZitrone.ZFarbe(a: String);
begin
  if MatchText(a, ['grün', 'gelb']) then
    FZitronenfarbe := a;
end;
PS: Delphi-Referenz durchsuchenLowerCase ist eine uralte "schnelle"/einfache Funktion und unterstützt nur ASCII, also keine Ä, Ö und Ü.
Hier sollte man besser Delphi-Referenz durchsuchenAnsiLowerCase verwenden.
Aber nicht Wundern ... irgendwer ist bei der Umstellung auf Unicode (D2009) auf die saublöde Idee gekommen und hat die Unicode-Versionen mit Ansi benannt.
(Delphi-Referenz durchsuchenWideLowerCase geht dafür nur auf den WideString und sollte mit String/UnicodeString besser nicht verwendet werden)

PSS: Bei Delphi-Referenz durchsuchenMatchText ist das Anders, denn dieses ist eine "Umleitung" zur passenden Funktion (hier Delphi-Referenz durchsuchenAnsiMatchText)
$2B or not $2B

Geändert von himitsu (28. Feb 2014 um 14:21 Uhr)
  Mit Zitat antworten Zitat