Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - arraynamen ändern
delphiUSER5 - Mi 01.02.12 21:18
Titel: arraynamen ändern
hi,
bin neu hier und hab nach INTENSIVER suche nix gefunden was mir hilft.
mein problem:
ich habe 3 arrays
Delphi-Quelltext
1: 2: 3:
| zahl1 : array of INTEGER; zahl2 : array of INTEGER; zahl3 : array of INTEGER; |
und
Delphi-Quelltext
1: 2:
| feld : TARRAYFIELD; t : STRING; |
ich möchte nun dass ich "feld" einen namen geben kann z.B.: " feld.Name := 'zahl1'; " sodass ich mit "feld" auf die arrays zugreifen kann. ich weiß nicht weiter, weil ich nicht " t := feld.Name " setzen kann! ich weiß nicht wieso ich den array-namen nicht in einen string schreiben kann
bitte um HILFE, dringend :D
DANKE
Moderiert von
Narses: Delphi-Tags hinzugefügt
jaenicke - Mi 01.02.12 21:22
Hallo und :welcome:
Was haben denn deine Integer-Arrays mit dem Datenbankfeld feld zu tun? :gruebel:
Ist dir denn klar was TArrayField eigentlich macht? Dass es für die Verwendung in Datenbankzugriffen ist?
Es wäre hilfreich, wenn du schreibst was du eigentlich erreichen willst...
delphiUSER5 - Mi 01.02.12 21:29
danke ;p
ja ich dachte dass ich mit Tarrayfield auf die arrays zugreifen kann und habe auch nichts anderes bei google etc. gefunden.
ich möchte eine variable haben, der ich einen string wert zuweisen kann und dann damit auf den array mit dem namen zugreifen;
vllt was kompliziert aber quasi so (nur als beispiel, funktioniert ggf ja garnicht bei delphi):
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| Var name1 : STRING; zahl1 : Array of Integer; variable_fuer_zugriff : Tiwas;
begin
setlength(zahl1,5); name1 := 'zahl1'; variable_fuer_zugriff.name := name1; variable_fuer_zugriff[1] := 16;
end; |
"variable_fuer_zugriff" ist also nur eine variable für "zahl1"
Moderiert von
Narses: Delphi-Tags hinzugefügt
jaenicke - Mi 01.02.12 21:43
Ich glaube ich weiß was dein eigentliches Problem ist. ;-) Meinst du vielleicht das?
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| type TIntegerArray = array of Integer; var zahl1: TIntegerArray; zahl2: TIntegerArray; zahl3: TIntegerArray; MeineZahl: TIntegerArray; begin ... MeineZahl := zahl1; MeineZahl[0]... ... MeineZahl := zahl2; ... |
Hintergrund:
Wenn du jede Zeile einzeln mit "array of integer" als Typ deklarierst, sind das für Delphi jeweils eigene Typen. Wenn du allen den selben Typen gibst wie hier, kannst du die auch untereinander zuweisen.
Einfache Alternative (das oben war vor allem zur Demonstration gedacht): ;-)
Delphi-Quelltext
1: 2: 3: 4:
| var zahl1, zahl2, zahl3, MeineZahl: array of Integer; begin MeineZahl := zahl1; |
delphiUSER5 - Mi 01.02.12 21:51
genau das, DANKE vielmals;
aber das hier läuft nich?!
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47:
| type TFIELD1 = ARRAY OF INTEGER;
TYPE Tvokabel = RECORD s : STRING; feld : TFIELD1; ort : TListBox; stelle, vocRank : INTEGER; end;
var FoVoc_ask: TFoVoc_ask; i, lines: Integer; pfad : STRING; Mgs: TMsg; zahl1 : ARRAY OF INTEGER; zahl2 : ARRAY OF INTEGER; zahl3 : ARRAY OF INTEGER; voc : ARRAY OF Tvokabel;
implementation
{$R *.DFM}
procedure TFoVoc_ask.setvoc; VAR j : INTEGER; begin SetLength(zahl1, LBoxSort1.Items.Count); SetLength(zahl2, LBoxSort1.Items.Count); SetLength(zahl3, LBoxSort1.Items.Count); SetLength(voc, LBoxSort1.Items.Count);
FOR j := 0 TO LBoxSort1.Items.Count-1 DO begin With voc[j] DO begin s := LBoxSort1.Items.Strings[j]; ort := LBoxSort1; feld := zahl1; end; end; end; |
beim rot markierten kommt: Inkompatible Typen
Moderiert von
Narses: Beiträge zusammengefasst
sry fehler gefunden : zahl1 : TFIELD1 !!!
DANKEE nochmals :D
Moderiert von
Narses: Delphi-Tags hinzugefügt
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!