![]() |
Constant Expressions
Hallo,
Ich habe hier einen Fehler, und er ist Einer der wenigen, deren Auftreten ich vollkommen verstehe, mir die Lösung jedoch unklar bleibt: Ich habe eine Liste von Strings(Benötigt für die Multilingualität des Programmes, es dürfen keine Resourcestrings sein, da man die afaik nicht zur Laufzeit verändern darf/kann). Jedoch will ein Array keinen dieser Strings annehmen(vorher wurde es mit Ressorcestrings geregelt), weil diese eben nicht Konstant sind. Folglich ergibt sich ein Fehler, einer der vollkommen verständlich ist, meine Frage lautet also: Gibt es eine Möglichkeit Resourcestrings zur Laufzeit zu verändern? Oder, gibt es eine Möglichkeit das Array dazu zu bringen die Nicht-Konstanten Strings anzunehmen? Danke, für die Aufmerksamkeit, das wars auch schon Gruß, Max |
Re: Constant Expressions
Du könntest versuchen die Strings zu Laufzeit z.B. im OnCreate Ereigniss zuzuweisen.
Florian |
Re: Constant Expressions
Ja, das mache ich ja sowieso, aber:
Resourcestrings sind afaik nicht zu verändern, Normale Strings(mit denen alles möglich wäre, was ich benötige) nimmt das array nicht Gruß, Max |
Re: Constant Expressions
Wieso nimmt das Array keine normalen Strings?
Einfach so deklarieren: LanguageArray: array [0..100] of string; Dann so die Strings zuweisen: LanguageArray[0] := 'Irgendein String'; Was für ein Fehler kommt denn bisher bei dir, wenn du normale Strings zuweisen willst? |
Re: Constant Expressions
Delphi-Quellcode:
Tja, er erwartet eine Konstante Expressions, jedoch ist sKeyNoCommand(welche ein String ist) keine.
Sci_KeyboardCommandMap: array[0..95] of TIdentMapEntry = (
(Value: SCI_Null; Name: sKeyNoCommand), Gruß, Max |
Re: Constant Expressions
Was wäre, wenn du das Array so deklarierst:
Delphi-Quellcode:
und dann beispielsweise im OnCreate Ereigniss folgendes machst:
Sci_KeyboardCommandMap: array[0..95] of TIdentMapEntry;
Delphi-Quellcode:
//Edit: Fällt mir grade noch ein: Das ganze kann nat. nicht gehen, wenn der Wert "Name" des TIdentMapEntry Konstrukts nicht als String deklariert wurde.
Sci_KeyboardCommandMap[0].Name := sKeyNoCommand;
Sci_KeyboardCommandMap[0].Value := SCI_Null; |
Re: Constant Expressions
Hmm, naja.
Ich schreibe gerade eine Komponente um die aus mehreren Units besteht und ich habe keine Ahnung wo ich das dann Füllen soll ;) Gibt's nicht vielleicht doch einen anderen Weg? Gruß, Max Btw, der Wert "Name" ist ein String. |
Re: Constant Expressions
Poste mal den Aufbau von TIdentMapEntry. Also in der Art sowas:
Delphi-Quellcode:
//Edit:
type
TIdentMapEntry = class(TObject) end; Zitat:
|
Re: Constant Expressions
Klar, kein Problem:
Delphi-Quellcode:
Das ganze befindet sich in der allseits bekannten Units Classes.
TIdentMapEntry = record
Value: Integer; Name: String; end; Gruß, Max |
Re: Constant Expressions
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:46 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-2025 by Thomas Breitkreuz