AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Delphi Strings nur einmalig im Code verwenden - Zugriff
Thema durchsuchen
Ansicht
Themen-Optionen

Strings nur einmalig im Code verwenden - Zugriff

Ein Thema von RandomDD · begonnen am 12. Aug 2016 · letzter Beitrag vom 12. Aug 2016
Antwort Antwort
Seite 1 von 2  1 2      
RandomDD

Registriert seit: 11. Aug 2016
42 Beiträge
 
#1

Strings nur einmalig im Code verwenden - Zugriff

  Alt 12. Aug 2016, 14:33
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
StringListe: array [0 .. 1] of String = ('String 1', 'String 2');

Etwas weiter unten ein Type
type TStringListe = (sString1, sString2);

Jetzt kann ich ungefähr so auf die Strings zugreifen
showmessage(StringListe[Ord(TStringListe.sString2)]); Das gibt dann 'String 2' aus.

Ich könnte auch einfach das Array benutzen
showmessage(StringListe[1]); Aber wenn sich dann mal der Index von String 2 ändert, müsste ich überall alles abändern.

Gibt es eine bessere Methode als meine? Die gibt es doch sicher!
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

AW: Strings nur einmalig im Code verwenden - Zugriff

  Alt 12. Aug 2016, 14:36
Öhm du könntest direkt Konstanten anlegen:
Delphi-Quellcode:
const
  sString1 = 'String 1';
  sString2 = 'String 2';

showmessage(sString1);
showmessage(sString2);
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
RandomDD

Registriert seit: 11. Aug 2016
42 Beiträge
 
#3

AW: Strings nur einmalig im Code verwenden - Zugriff

  Alt 12. Aug 2016, 14:36
Oder so.

Aber geht das nicht schöner und kompakter? Eventuell sogar noch über einen Type?

Geändert von RandomDD (12. Aug 2016 um 14:40 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

AW: Strings nur einmalig im Code verwenden - Zugriff

  Alt 12. Aug 2016, 14:39
Wie viel kompakter als Konstantenname = Wert willst du es denn noch haben?
Du kannst optional für deine Konstanten einen Typ angeben:

Delphi-Quellcode:
const
  sString1: String = 'String 1';
  sString2: String = 'String 2';
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
RandomDD

Registriert seit: 11. Aug 2016
42 Beiträge
 
#5

AW: Strings nur einmalig im Code verwenden - Zugriff

  Alt 12. Aug 2016, 14:40
Also ungefähr so?

Delphi-Quellcode:
type
 TStringListe = record
 
 const
  sString1 = 'String 1';
  sString2 = 'String 2';
end;

var
 MeineStrings: TStringListe;

showmessage(MeineStrings.sString1);
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.798 Beiträge
 
Delphi 12 Athens
 
#6

AW: Strings nur einmalig im Code verwenden - Zugriff

  Alt 12. Aug 2016, 14:40
Es gibt da verschiedene Möglichkeiten. Eine prominente dürfte die Verwendung von resourcestring sein.
Beispiel:
Delphi-Quellcode:
resourcestring
  rsInvalidIP = 'Ungültige IP';
  rsGeraetVon = 'Geraet von: %s';
  rsGeraetBis = '%0:s bis: %1:s';
  rsListeBearbeiten = 'Liste Bearbeiten';
  rsFertig = 'Fertig';
  rsZuordnen = 'Zuordnen';
Das hat den Vorteil, daß sie von den gängigen Übersetzungsprogrammen auch gleich erkannt werden.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#7

AW: Strings nur einmalig im Code verwenden - Zugriff

  Alt 12. Aug 2016, 14:44
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]);
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#8

AW: Strings nur einmalig im Code verwenden - Zugriff

  Alt 12. Aug 2016, 14:45
Zitat von http://edn.embarcadero.com/article/34324:
Classes can now have class constants -- a constant value associated with the class itself and not an instance of the class.
Delphi-Quellcode:
type
  TClassWithConstant = class
    public
      const SomeConst = 'This is a class constant';
  end;
         

procedure TForm1.FormCreate(Sender: TObject);
begin
  ShowMessage(TClassWithConstant.SomeConst);
end;
In nicht ganz so alten Delphi Versionen sollte das da gehen. Wobei es bei meinem Delphi 7 nicht geht obwohl auf der Seite steht dass es ab Delphi 7 geht (oder hab ich was falsch verstanden?)
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
RandomDD

Registriert seit: 11. Aug 2016
42 Beiträge
 
#9

AW: Strings nur einmalig im Code verwenden - Zugriff

  Alt 12. Aug 2016, 14:49
So viele verschiedene Lösungen hier
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#10

AW: Strings nur einmalig im Code verwenden - Zugriff

  Alt 12. Aug 2016, 15:02
Na meist passiert irgendetwas und wir brachen einen String der angezeigt werden soll.
Delphi-Quellcode:
if state<>ErrorOK then
   DisplayMessage(FEHLER_DATEI_NICHT_GEFUNDEN);
Warum sollte ich mir so etwas antun:
Delphi-Quellcode:
if state <>ErrorOK then
  DisplayMessage(StringListe[machwasdraus(state)]);
vielleicht wäre es gut uns zu erzählen warum Du es so machen willst.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 06:06 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