AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

dynamische Variablennamen

Ein Thema von hummer · begonnen am 31. Mär 2005 · letzter Beitrag vom 31. Mär 2005
Antwort Antwort
Benutzerbild von hummer
hummer

Registriert seit: 27. Mai 2003
Ort: Hattingen
437 Beiträge
 
Delphi 7 Enterprise
 
#1

dynamische Variablennamen

  Alt 31. Mär 2005, 20:06
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;
  Kat1,kat2,Kat3,Kat4,Kat5,Kat6,Kat7,Kat8,Kat9,Kat10,Kat11,Kat12,Kat13,Kat14,Kat15 : Array[1..10] of TFragen; Wenn ich jetzt einem Platz eines Array einen Wert zuweise sieht das so aus.
Kat1[1].Frage := 'Test'; So jetzt möchte ich nich alles selber schreiben sondern das über Findcomponent lösen.
Habe das so probiert für das erste Beispiel.
TFragen(FindComponent('Kat'+IntToStr(1)+'['+IntToStr(1)+'].Frage')) := 'test' Die Einsen werden hinterher natürlich durch Variablen aus for Schleifen ersetzt.
Es kommt aber immer ein Fehler: Ungültige Typumwandlung. Was mache ich falsch?
Vielen Dank schonmal.
Manuel
unser Infolehrer -> Wissen ist Macht. Wir wissen nichts. Macht nichts.
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#2

Re: dynamische Variablennamen

  Alt 31. Mär 2005, 20:11
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!!!)
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#3

Re: dynamische Variablennamen

  Alt 31. Mär 2005, 20:11
statt:

Kat1,kat2,Kat3,Kat4,Kat5,Kat6,Kat7,Kat8,Kat9,Kat10,Kat11,Kat12,Kat13,Kat14,Kat15 : Array[1..10] of TFragen; kömnntest du auch:

Delphi-Quellcode:
TFragenArray = array [1..10] of TFragen;
Kat: array [1..15] of TFragenArray;

schreiben.
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#4

Re: dynamische Variablennamen

  Alt 31. Mär 2005, 20:11
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
  Mit Zitat antworten Zitat
Antigo

Registriert seit: 14. Mär 2005
274 Beiträge
 
#5

Re: dynamische Variablennamen

  Alt 31. Mär 2005, 20:12
machs doch folgendermassen:
Delphi-Quellcode:
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;
und dann steuerst du es über

var Kategorien: array[1..10] of Kategorie; also
Kategorien[x].Fragen[y].frage:='';
ist nicht getestet müsste aber vom Ansatz her so gehen


edit zZzzZ
Michael
"How should I know if it works? That's what beta testers are for. I only coded it."
  Mit Zitat antworten Zitat
Benutzerbild von hummer
hummer

Registriert seit: 27. Mai 2003
Ort: Hattingen
437 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: dynamische Variablennamen

  Alt 31. Mär 2005, 20:25
Ok dann werd ich Antigos Vorschlag nehmen. Vielen Dank an alle.
Manuel
unser Infolehrer -> Wissen ist Macht. Wir wissen nichts. Macht nichts.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:48 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz