![]() |
dynamische Variablennamen
Hallo!
Ich habe ein mehrere Arrays von einem Record und möchte jetzt allen Variablen Werte zuweisen. Mein Record und meine Arrays sehen so aus.
Delphi-Quellcode:
TFragen = record
Frage : string; Antwort_A : string; Antwort_B : string; Antwort_C : string; Antwort_D : string; Richtig : string[1]; end;
Delphi-Quellcode:
Wenn ich jetzt einem Platz eines Array einen Wert zuweise sieht das so aus.
Kat1,kat2,Kat3,Kat4,Kat5,Kat6,Kat7,Kat8,Kat9,Kat10,Kat11,Kat12,Kat13,Kat14,Kat15 : Array[1..10] of TFragen;
Delphi-Quellcode:
So jetzt möchte ich nich alles selber schreiben sondern das über Findcomponent lösen.
Kat1[1].Frage := 'Test';
Habe das so probiert für das erste Beispiel.
Delphi-Quellcode:
Die Einsen werden hinterher natürlich durch Variablen aus for Schleifen ersetzt.
TFragen(FindComponent('Kat'+IntToStr(1)+'['+IntToStr(1)+'].Frage')) := 'test'
Es kommt aber immer ein Fehler: Ungültige Typumwandlung. Was mache ich falsch? Vielen Dank schonmal. |
Re: dynamische Variablennamen
mit FindComponent findest du nachfolger von TComponent, also (zB) Edits, Labels, ListBoxen, ...
TFragen ist aber ein Record, nicht mal ne Klasse Du versuchst also bei TFragen(FindComponent(..)) eine Klasse, abgeleitet von TComponent in ein Record zu casten. und da meckert er (zurecht!!!) |
Re: dynamische Variablennamen
statt:
Delphi-Quellcode:
kömnntest du auch:
Kat1,kat2,Kat3,Kat4,Kat5,Kat6,Kat7,Kat8,Kat9,Kat10,Kat11,Kat12,Kat13,Kat14,Kat15 : Array[1..10] of TFragen;
Delphi-Quellcode:
TFragenArray = array [1..10] of TFragen;
Kat: array [1..15] of TFragenArray; schreiben. |
Re: dynamische Variablennamen
FindComponent liefert eine Klasse zurück, die du zu einem Record casten willst. Das ist (logisch) unmöglich. Ausserdem würde das sowieso nicht funktionieren, da FindComponent nur Komponenten findet, die auf dem Form platziert wurden ;)
|
Re: dynamische Variablennamen
machs doch folgendermassen:
Delphi-Quellcode:
und dann steuerst du es über
type Kategorie = record
Fragen: array[1..10] of TFragen end; type TFragen = record Frage : string; Antwort_A : string; Antwort_B : string; Antwort_C : string; Antwort_D : string; Richtig : string[1]; end;
Delphi-Quellcode:
also
var Kategorien: array[1..10] of Kategorie;
Delphi-Quellcode:
Kategorien[x].Fragen[y].frage:='';
ist nicht getestet müsste aber vom Ansatz her so gehen ;) edit zZzzZ |
Re: dynamische Variablennamen
Ok dann werd ich Antigos Vorschlag nehmen. Vielen Dank an alle.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:53 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