AGB  ·  Datenschutz  ·  Impressum  







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

Variablen in Variablen packen

Ein Thema von Njorl · begonnen am 30. Jun 2007 · letzter Beitrag vom 4. Jul 2007
 
Dax
(Gast)

n/a Beiträge
 
#2

Re: Variablen in Variablen packen

  Alt 30. Jun 2007, 20:02
Stellen wir uns vor, du hast zwei Integer-Variablen X und Y. Jetzt willst du eine Variable B, die von Button1 mit f(X) und von Button2 mit f(Y) belegt wird. ButtonB soll dann f(B) auf 2 setzen, sodass, wenn vorher Button1 gedrückt wurde, in X 2 steht, bei Button2 entsprechend in Y 2. Ist das richtig? Wenn ja, geht das so:

Delphi-Quellcode:
type PInteger = ^Integer;

var B: PInteger; X, Y: Integer;

procedure TForm1.Button1Click(Sender: TObject);
begin
  B := @X;
  Form2.Visible := True;
end;

procedure TForm2.ButtonBClick(Sender: TObject);
begin
  B^ := 2;
  Form2.Visible := False;
end;
Das ist das Konzept der "Zeiger". Statt eine Variable mit dem Wert einer anderen zu belegen, wird ihre Adresse gespeichert (das macht das @, es berechnet die Adresse einer Variable). Mit der Adresse selbst arbeitet man beim speichern in das Ziel (hier X) nicht, man dereferenziert und sagt damit: hier hin bitte. Das macht das ^ (es "wandelt den Zeiger in eine Variable um"). Zeiger brauchst du nur für simple Datentypen (Zahlen, Shortstrings, statische Arrays, Records), bei Typen, die an sich schon Zeiger sind (dynamische Arrays, normale Strings und Objekte (auch TStrings!)) musst du das nicht tun - da reicht das, was du schon geschrieben hast. VarB wäre eben vom Typ TStrings.
  Mit Zitat antworten Zitat
 


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 16:56 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