Registriert: Di Dez 02, 2003 12:47 Beiträge: 300 Wohnort: Marburg
Ich würde gerne Variablen haben, die sich nicht mit Wertren eines Types sondern (Während der Laufzeit) mit einer "Adresse" auf eine Vorhandene Variable dieses Types belegen lassen.
(Hat das was mit Pointern zu tun (Function PTR(),ADDR()...)
Wenn ich dann auf diese Variable zugreife/ schreibe, soll immer automatisch auf die, in der Adresse enthaltene Variable zugegriffen werden.
Hab schon mit diversen Functionen rumprobiert aber naja...
_________________ Nothing, oh sweet nothing,
today we are doing nothing at all...
http://www.geo-progs.de
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Irgendwie verstehe ich die Problematik nicht ganz. Also das was genau vor hast. Bevor ich dir da jetzt irgendwas vom Pferd erzähle lasse ich es lieber. Wenn du noch mal beschreiben könntest was genau du vor hast, kann ich dir dann wahrscheinlich auch was dazu sagen.
Registriert: Di Dez 02, 2003 12:47 Beiträge: 300 Wohnort: Marburg
Also:
Ich hab nen Typen zb TBsp,
Und deklariere:
var
a: "Adresse zu" TBsp;
b: TBsp;
c: array[1..3] of TBsp;
Dann belege ich z.b. mit einem Button:
a:="Adresse zu" b; bzw a:="Adresse zu" c[2];
Wenn ich dann belege:
a:=Bsp Wert;
Wobei dann nicht a sondern b bzw c[2] diesen Wert annimmt!
So könnte ich zb wenn ein Timer eine Variable überwacht und anzeigt wehrend das programm läuft die überwachte variable ohne grossen Aufwand wechseln. usw.
Aber vieleicht gibt es ja auch eine gleichwertige völlig andere Lösung dieses Problemms?
_________________ Nothing, oh sweet nothing,
today we are doing nothing at all...
http://www.geo-progs.de
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Ah. Jetzt habe ich es auch verstanden.
Wenn es sich bei TBsp um eine Klasse handelt, dann könntest du auf die Pointer verzichten, da Klassen generell nur Pointer sind.
Wenn es sich aber eher um ein Record handelt (wovon ich mal ausgehe), dann wüsste ich so spontan nicht, was man daran ändern könnte/sollte. Mir würden bestimmt noch komplexere oder schwierigere Lösungen einfallen aber die wären auch alle langsamer. So wie es ist ist es schon ziemlich genial gelöst.
Die Adresse einer Variable bekommst du entweder mit der Funktion Addr oder mit @Variable.
Um einen Wert zu schreiben solltest du die Variable noch dereferenzieren. Ist zwar nicht immer erforderlich bietet sich aber immer an um zu sehen, dass es sich dabei um einen Pointer handelt. Das geht mit Variable^ := Wert; Oder anders herum um den Wert auszulesen.
Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.