![]() |
Strings nur einmalig im Code verwenden - Zugriff
Erster Post: sorry, bin kein Pro und kein Programmierer, daher verzeiht mir dumme Fragen!
Ich benutze in einem Testprojekt ein paar Strings gefühlte 100 Mal an verschiedenen Stellen. Das find ich etwas suboptimal. Meine 0815-Lösung war jetzt, dass ich eine Konstante definiere die so aussehen kann
Delphi-Quellcode:
StringListe: array [0 .. 1] of String = ('String 1', 'String 2');
Etwas weiter unten ein Type
Delphi-Quellcode:
type TStringListe = (sString1, sString2);
Jetzt kann ich ungefähr so auf die Strings zugreifen
Delphi-Quellcode:
Das gibt dann 'String 2' aus.
showmessage(StringListe[Ord(TStringListe.sString2)]);
Ich könnte auch einfach das Array benutzen
Delphi-Quellcode:
Aber wenn sich dann mal der Index von String 2 ändert, müsste ich überall alles abändern.
showmessage(StringListe[1]);
Gibt es eine bessere Methode als meine? Die gibt es doch sicher! |
AW: Strings nur einmalig im Code verwenden - Zugriff
Öhm du könntest direkt Konstanten anlegen:
Delphi-Quellcode:
const
sString1 = 'String 1'; sString2 = 'String 2'; showmessage(sString1); showmessage(sString2); |
AW: Strings nur einmalig im Code verwenden - Zugriff
Oder so.
Aber geht das nicht schöner und kompakter? Eventuell sogar noch über einen Type? |
AW: Strings nur einmalig im Code verwenden - Zugriff
Wie viel kompakter als
Delphi-Quellcode:
willst du es denn noch haben? :mrgreen:
Konstantenname = Wert
Du kannst optional für deine Konstanten einen Typ angeben:
Delphi-Quellcode:
const
sString1: String = 'String 1'; sString2: String = 'String 2'; |
AW: Strings nur einmalig im Code verwenden - Zugriff
Also ungefähr so? :-D
Delphi-Quellcode:
type
TStringListe = record const sString1 = 'String 1'; sString2 = 'String 2'; end; var MeineStrings: TStringListe; showmessage(MeineStrings.sString1); |
AW: Strings nur einmalig im Code verwenden - Zugriff
Es gibt da verschiedene Möglichkeiten. Eine prominente dürfte die Verwendung von resourcestring sein.
Beispiel:
Delphi-Quellcode:
Das hat den Vorteil, daß sie von den gängigen Übersetzungsprogrammen auch gleich erkannt werden.
resourcestring
rsInvalidIP = 'Ungültige IP'; rsGeraetVon = 'Geraet von: %s'; rsGeraetBis = '%0:s bis: %1:s'; rsListeBearbeiten = 'Liste Bearbeiten'; rsFertig = 'Fertig'; rsZuordnen = 'Zuordnen'; Sherlock |
AW: Strings nur einmalig im Code verwenden - Zugriff
Oder vielleicht so etwas?
Delphi-Quellcode:
type
TSomeType = (stOK, stError, stBananenSindKrumm); const SOMESTRINGS: array[TSomeType] of string = ('Alles in Butter', 'Oops', 'Is mir völlig Banane'); ... ShowMessage(SOMESTRINGS[TSomeType.stBananenSindKrumm]); |
AW: Strings nur einmalig im Code verwenden - Zugriff
Zitat:
|
AW: Strings nur einmalig im Code verwenden - Zugriff
So viele verschiedene Lösungen hier :shock: :stupid:
|
AW: Strings nur einmalig im Code verwenden - Zugriff
Na meist passiert irgendetwas und wir brachen einen String der angezeigt werden soll.
Delphi-Quellcode:
Warum sollte ich mir so etwas antun:
if state<>ErrorOK then
DisplayMessage(FEHLER_DATEI_NICHT_GEFUNDEN);
Delphi-Quellcode:
vielleicht wäre es gut uns zu erzählen warum Du es so machen willst.
if state <>ErrorOK then
DisplayMessage(StringListe[machwasdraus(state)]); Gruß K-H |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:59 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz