Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Reverser Arrayzugriff


eins.null - Do 12.07.07 13:45
Titel: Reverser Arrayzugriff
Hallo Leute

Ich bin neu hier und hoffe Ihr könnt mir helfen. Es kann auch sein, das die Frage schon beantwortet wurde, ich aber die falsche Suchanfrage gestellt habe.

Ich hab ein Konstantes Array erstellt, worüber ich über den Index die Namen darstellen lasse.


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
const
  ordner: array[0..39of string = (
  'Desktop',
  'Internet',
  'Startmenü Programme',
  'Systemsteuerung',
  'Drucker',
  'Eigene Dateien',
  'IE Favoriten',
...)


Soweit so gut. Jetzt möchte ich aber auch den Reversen Zugriff haben um durch die Eingabe des Namens den Index zu erhalten.


Abfrage in etwas so
ShowSpecialFolder(Handle,ordner='Papierkorb');


Ich hoffe die Fragestellung ist halbwegs verständlich.
Freue mich sehr über Hilfe.

Grüße
1.0

Moderiert von user profile iconmatze: Delphi-Tags hinzugefügt


alzaimar - Do 12.07.07 14:42

Dazu musst Du dein Array durchsuchen oder eine Klasse verwenden, die das schon mitbringt, z.B. die 'TStringList':


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
Var
  Ordner : TStringList;

<ProgrammCode>

initialization
  Ordner := TStringlist.Create;
  Ordner.Add('Desktop');
  Ordner.Add('Internet');
  ...
finalization
  Ordner.Free;
End.

Dann kannst Du so drauf zugreifen;

Delphi-Quelltext
1:
2:
  MyOrderString := Ordner[1];
  MyOrdnerIndex := Ordner.IndexOf ('Desktop');


eins.null - Do 12.07.07 15:07

Besten Dank

werde es gleich mal auf ne Stringlist umschreiben.

Jetzt muss diese Liste nur noch initialisiert werden. Kann das auch irgendwo im Kopf, ausserhalb eines Ereignisses (OnCreate) gemacht werden?

Nur der Übersicht halber.



Besten Dank

1.0


BenBE - Fr 13.07.07 11:25

Wenn Du diese Liste als Globale Variable hälst, kannst Du Dafür die Initialization- und Finalization-Abschnitte der Unit nutzen.