AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Wert einer Variabelen zuweisen - dynamischer Variablenname
Thema durchsuchen
Ansicht
Themen-Optionen

Wert einer Variabelen zuweisen - dynamischer Variablenname

Ein Thema von seim · begonnen am 31. Mär 2009 · letzter Beitrag vom 31. Mär 2009
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von seim
seim

Registriert seit: 11. Nov 2007
83 Beiträge
 
#1

Wert einer Variabelen zuweisen - dynamischer Variablenname

  Alt 31. Mär 2009, 14:54
Hi,

ich bräuchte da so etwas in der Art:

Variablentyp(Variablenname) := Wert;
Also nehmen wir mal an ich will einen festen Wert in einen String schreiben und der Name der Variable (Typ string) steht im Edit1:

Edit1 Inhalt: 'str1'

String(Edit1.Text) := 'jo is drin'; so als würde ich quasi diesen Befehl ausführen:

str1 := 'jo is drin'; Nur das hier halt die Variable in die geschrieben werden soll variiert.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Wert einer Variabelen zuweisen - dynamischer Variablenna

  Alt 31. Mär 2009, 15:04
So ganz wirst du das nicht machen können. da wir die strenge Typprüfung von Delphi nicht mitmachen bzw. ist Delphi nicht dynamisch genug.

Für Properties von Klassen schau dir mal die Funktionen von TypInfo an. Damit wird auch das DFM-Streaming realisiert.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#3

Re: Wert einer Variabelen zuweisen - dynamischer Variablenna

  Alt 31. Mär 2009, 15:10
Die Namen der Variablen sind zudem nicht mehr im compilat (der exe Datei) enthalten.

Was möchtest du damit erreichen? Es gibt sicher andere Möglichkeiten dafür
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#4

Re: Wert einer Variabelen zuweisen - dynamischer Variablenna

  Alt 31. Mär 2009, 15:13
Abgesehn davon, daß Variablen nach dem Kompilieren keine Namen mehr haben.
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von seim
seim

Registriert seit: 11. Nov 2007
83 Beiträge
 
#5

Re: Wert einer Variabelen zuweisen - dynamischer Variablenna

  Alt 31. Mär 2009, 15:19
IniFiles sind recht nervig und jetzt wollte ich so eine Art XML-Ini Coden also quasi:

Code:
<data>
 <variable1 type="string">lala</variable1>
 <variable2 type="int">0815</variable2>
</data>
So dass der halt jedesmal komplett alle Daten aus der Datei ausliest und am Ende auch wieder speichert.. sowas in der Art

--

Und ja das hab' ich nicht bedacht, dass Assembler keine Namen kennt :/

Dachte nur weil sowas wie TButton(Sender).Tag kann man auch auslesen halt. Und auch sowas geht..
Edit1.Text := TButton(Sender).Name;
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#6

Re: Wert einer Variabelen zuweisen - dynamischer Variablenna

  Alt 31. Mär 2009, 15:30
Zitat von seim:
Dachte nur weil sowas wie TButton(Sender).Tag kann man auch auslesen halt. Und auch sowas geht..
Edit1.Text := TButton(Sender).Name;
das Sender ist schon das Object bzw. eine Variable
und TButton(Sender) ist nur eine Typkonvertierung

TButton('Edit1') geht da auch nicht.

TButton(FindComponent('Edit1')) geht zwar, aber das schaut in der übergeortneten Komponente (meißt was von TForm) sich alle da eingetragenen Komponenten an und sucht dort die mit dem passendem Namen.
eine Liste von Variablen gibt es aber nicht. (ja ich weiß, abgesehn bestimmter Debuginformationen)
$2B or not $2B
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#7

Re: Wert einer Variabelen zuweisen - dynamischer Variablenna

  Alt 31. Mär 2009, 15:55
Es gibt fertige Komponenten bei denen man zur Entwicklungszeit sagt welche Properties gespeichert und geladen werden sollen.
Die Komponente (FormStorage) kann ihre Daten in eine Ini-Datei oder in der Registry ablegen.
Neuere Komponenten können auch XML.
Wär' das was?
Miniaturansicht angehängter Grafiken
formstorage_174.gif  
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#8

Re: Wert einer Variabelen zuweisen - dynamischer Variablenna

  Alt 31. Mär 2009, 16:00
Hallo seim,

natürlich geht das, Du mußt nur mit Pointern arbeiten.
Damit begibst Du Dich natürlich auf ein Niveau auf dem auf eine Codezeile zwei Kommentarzeilen kommen.

Darum der gut gemeinte Rat, laß die Finger davon.

Übrigens wenn Du eine .INI auslesen willst, dann werden Werte über Namen zugeordnet. Wenn Du die INI einfach über die Zeilennummer auslesen willst, dann begibst Du Dich in Teufels Küche.

Gruß
K-H
  Mit Zitat antworten Zitat
guidok

Registriert seit: 28. Jun 2007
417 Beiträge
 
#9

Re: Wert einer Variabelen zuweisen - dynamischer Variablenna

  Alt 31. Mär 2009, 16:01
Leider hast du ja nicht geschrieben, was du überhaupt erreichen möchtest, aber vielleicht könnte dir die TStringList ja helfen?

Diese kann auch Namen=Wertepaare in der Art von Inifiles verwalten. Damit hättest du so eine Art dynamische Variablenliste.

So in der Art:

Delphi-Quellcode:
type
  VarList : TStringList;

Valist.Values[Edit1.Text] := 'jo is drin';
  Mit Zitat antworten Zitat
Benutzerbild von seim
seim

Registriert seit: 11. Nov 2007
83 Beiträge
 
#10

Re: Wert einer Variabelen zuweisen - dynamischer Variablenna

  Alt 31. Mär 2009, 16:13
Hmm Pointer auch so ein Begriff den ich bislang zu faul war nachzuschlagen.. mal gucken so wie ich das verstanden hab' ist das wohl nur eine Pseudo-Variable die auf den Speicher einer anderen var verweist.

Das Problem an Inis ist einfach:

Delphi-Quellcode:
Bild1_Filename:= IniFile.ReadString('Images', 'Bild1', Bild1_Filename);
Bild2_Filename:= IniFile.ReadString('Images', 'Bild2', Bild2_Filename);
Bild3_Filename:= IniFile.ReadString('Images', 'Bild3', Bild3_Filename);
//...
Bild100_Filename:= IniFile.ReadString('Images', 'Bild100', Bild3_Filename);
Ok schlechtes Beispiel weil ich das eh mit nem Array machen würde (und da wüsste ich auch das es auf jedenfall geht).. aber stellt euch ne Menge Variablen vor die nicht vom gleichen Typ sind; für jede brauch ich eine Zeile die die Ini ausliest..

LoadVarsFromXML('Project1.xml'); Und schon sind alle Variablen die auch in meinem Programm existieren mit dem Wert in der XML gefüllt und zwar unabhängig davon wie viele und ob ich nicht nachträglich selbst was in die XML hinzugefügt hab' ohne das dies im Programmcode steht.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 08:18 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