einem string einen Wert zuweisen (bzw. schnell suchen)

Für Fragen von Einsteigern und Programmieranfängern...
Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: einem string einen Wert zuweisen (bzw. schnell suchen)

Beitrag von theo »

PascalDragon hat geschrieben:
Fr 12. Aug 2022, 16:05
Du musst ein TObjectDictionary<,>, statt nur TDictionary<,> verwenden und dann im Konstruktor [doOwnsValues] als Parameter übergeben.
Danke, werde ich morgen ausprobieren.

Nicht gerade hilfreich ist auch, dass die IDE (Code Insight) mit Generics.Collections nicht wirklich hinterher kommt, zumindest nicht in meiner Trunk Version vom 24.6.22
Lazarus 2.3.0 (rev main-2_3-1628-g6b107a3e45) FPC 3.2.2 x86_64-linux-gtk2

Also ohne ausführliche Doku (habe ich jedenfalls nicht gefunden) und ohne Code Insight ist es schon etwas hart. :wink:

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: einem string einen Wert zuweisen (bzw. schnell suchen)

Beitrag von theo »

Ja, stimmt. So geht es:

Code: Alles auswählen

type
TVokabelDict = class(specialize TObjectDictionary<string, TVokabelInfo>); 
...
procedure TForm1.Button1Click(Sender: TObject);
var
  VokDict: TVokabelDict;
begin
  VokDict := TVokabelDict.Create([doOwnsValues]);
  VokDict.Add('eins', TVokabelInfo.Create('Test_1'));
  VokDict.Add('zwei', TVokabelInfo.Create('Test_2'));
  ShowMessage(VokDict.Items['zwei'].Test);
  VokDict.Free;
end;    

PascalDragon
Beiträge: 825
Registriert: Mi 3. Jun 2020, 07:18
OS, Lazarus, FPC: L 2.0.8, FPC Trunk, OS Win/Linux
CPU-Target: Aarch64 bis Z80 ;)
Wohnort: München

Re: einem string einen Wert zuweisen (bzw. schnell suchen)

Beitrag von PascalDragon »

theo hat geschrieben:
Fr 12. Aug 2022, 16:50
Also ohne ausführliche Doku (habe ich jedenfalls nicht gefunden) und ohne Code Insight ist es schon etwas hart. :wink:
Da Generics.Collections Delphi-kompatibel ist, kann man notfalls auch die Delphi Doku hernehmen ;)
FPC Compiler Entwickler

Antworten