AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Einen resourcestring über einen String ansprechen
Thema durchsuchen
Ansicht
Themen-Optionen

Einen resourcestring über einen String ansprechen

Ein Thema von bernau · begonnen am 24. Jun 2011 · letzter Beitrag vom 24. Jun 2011
Antwort Antwort
Benutzerbild von bernau
bernau
Online

Registriert seit: 1. Dez 2004
Ort: Köln
1.303 Beiträge
 
Delphi 12 Athens
 
#1

Einen resourcestring über einen String ansprechen

  Alt 24. Jun 2011, 01:14
Delphi-Version: XE
Folgender Code(Schnipsel) ist vorhanden:

Delphi-Quellcode:
resourcestring
  AA_10_10='Dies ist ein Text';
  AA_10_11='Dies ist ein weiterer Text';
  AA_10_12='Dies ist noch ein Text';
  AA_10_13='Dies ist der letzte Text';
Ich möchte über eine Funktion den Wert auslesen und als String den Bezeichner übergeben.

 LabelXy.caption:=constantentext('AA_10_10'); LabelXy.caption sollte dan 'Dies ist ein Text' anzeigen.


Jemand eine Idee, wie ich das realsisieren kann?
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Einen resourcestring über einen String ansprechen

  Alt 24. Jun 2011, 08:11
Geht nicht.

- Eine Resourcestring wird in den Resourcen als durchnummerierte Gruppen zu je 16 Strings abgelegt.
- Die Nummern/Indize der Resourcestrings werden bei jedem Neucompilieren "zufällig" (vermutlich in Compilier-/Linkreihenfolge) neu vergeben.
- Delphi speichert keine Variablen-/Konstantennamen.

> Erstell einfach mal eine EXE, mit deinen Ressourcestrings und schau mit einem Resourceeditor dort rein.

Lösung:
Selber die namentlichen "Text"-Resourcen erstellen (keine nummerierten Stringlisten, es sei denn du willst über die selbstvergebenen Nummern/Indize zugreifen)
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (24. Jun 2011 um 11:16 Uhr)
  Mit Zitat antworten Zitat
ASM

Registriert seit: 16. Aug 2004
165 Beiträge
 
Delphi 7 Enterprise
 
#3

AW: Einen resourcestring über einen String ansprechen

  Alt 24. Jun 2011, 08:25
Zitat:
Geht nicht.
Warum nicht so:
Code:
resourcestring
  AA_10_10='Dies ist ein Text';
  AA_10_11='Dies ist ein weiterer Text';
  AA_10_12='Dies ist noch ein Text';
  AA_10_13='Dies ist der letzte Text';

var ResStr: Array [0..3] of string =(AA_10_10,AA_10_11,AA_10_12,AA_10_13);

Function constantentext(i: word): String;
begin
 result:=ResStr[i] ;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 Label1.caption:=constantentext(random(3));
 // oder einfach nur (ohne spez.Function constantentext) : Label1.caption:=ResStr[random(3)];
end;
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau
Online

Registriert seit: 1. Dez 2004
Ort: Köln
1.303 Beiträge
 
Delphi 12 Athens
 
#4

AW: Einen resourcestring über einen String ansprechen

  Alt 24. Jun 2011, 08:56
@himitsu: Danke für die Info. Ich habe es befürchtet

@ASM: Das wird mir nichts bringen. Ich möchte ja speziell über den Namen der Konstante auf den Inhalt zugreifen und nicht über eine (nichtssagende) Indexnummer. Letztendlich werde ich auf ca. 50.000 verschiedene Strings zugreifen müssen. Dazu setze ich mir den Namen aus einer Berechung als String zusammen (AA_10_10 sind z.B. 3 zusammengesetzte Teilbereiche) und über diesen Namen Greife ich auf den Ressourcenstring zu.
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#5

AW: Einen resourcestring über einen String ansprechen

  Alt 24. Jun 2011, 09:17
Bei 50.000 Resourcenstrings würde sich ja schon eher eine alternative Methode anbieten, wie eine Datenbank oder zumindest eine Key/Value Stringlist aus einer Text/XML-Datei.

Da wäre dann wenigsten auf einen Schlag die gewünschte Zugriffslogik ein Kinderspiel.
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau
Online

Registriert seit: 1. Dez 2004
Ort: Köln
1.303 Beiträge
 
Delphi 12 Athens
 
#6

AW: Einen resourcestring über einen String ansprechen

  Alt 24. Jun 2011, 13:14
Ich fand es bisher immer gut, daß diese Daten in der EXE-Datei vorhanden waren. Eine externe Datei kommt für mich erst mal nicht in Frage.

Bisher hatte ich alle Strings in eine Procedure gepackt. Aber mit DelphiXE gibt's nun ein Problem.

Siehe: http://www.delphipraxis.net/158048-e...en-fehler.html

Jetzt muss ich mir was anderes einfallen lassen.
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat
Antwort Antwort


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 15:48 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