Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi einer variable eine adresse zuweisen (https://www.delphipraxis.net/38099-einer-variable-eine-adresse-zuweisen.html)

c113plpbr 14. Jan 2005 16:58


einer variable eine adresse zuweisen
 
Ist es möglich einer variable eine andere adresse zuzuweisen? Wenn ja, wie?
Ich will also quasi eine Variable, mit zwei Namen ... hört sich komisch an, macht aber in meinem Fall durchaus sinn ...

ciao & thx, Philipp

PierreB 14. Jan 2005 17:00

Re: einer variable eine adresse zuweisen
 
Vielleicht mittels eines Array's ?
Oder du machst einfach 2 Variablen mit gleichem Inhalt.

c113plpbr 14. Jan 2005 17:02

Re: einer variable eine adresse zuweisen
 
Zitat:

Zitat von delphman
Vielleicht mittels eines Array's ?

Wie meinst du das? Ich möchte zwei Variablen, die auf die selbe Speicheradresse zugreifen ... ein array passt da nicht
Zitat:

Zitat von delphman
Oder du machst einfach 2 Variablen mit gleichem Inhalt.

Das will ich vermeiden ...

ciao, Philipp

jfheins 14. Jan 2005 17:03

Re: einer variable eine adresse zuweisen
 
Vielleicht geht das mit pointern, also einer Variable und einer Variable, die darauf zeigt. dann kannst du über beide den gleichen Inhalt erreichen ...

PierreB 14. Jan 2005 17:05

Re: einer variable eine adresse zuweisen
 
Zitat:

Wie meinst du das? Ich möchte zwei Variablen, die auf die selbe Speicheradresse zugreifen ... ein array passt da nicht
Ups, sorry. Ich hatte wohl erst nicht so ganz verstanden was du eigentlich machen willst. ;) Wieso willst du denn nicht einfach 2 Variablen mit gleichem Inhalt nehmen?

Sprint 14. Jan 2005 17:07

Re: einer variable eine adresse zuweisen
 
Zitat:

Zitat von c113plpbr
Ich will also quasi eine Variable, mit zwei Namen ... hört sich komisch an, macht aber in meinem Fall durchaus sinn

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  ValueA: Integer;
  ValueB: PInteger;
begin

  ValueB := @ValueA;

  ValueA := 12;
  ShowMessage(IntToStr(ValueB^));

  ValueB^ := 21;
  ShowMessage(IntToStr(ValueA));

end;

c113plpbr 14. Jan 2005 17:11

Re: einer variable eine adresse zuweisen
 
Zitat:

Zitat von Sprint
Zitat:

Zitat von c113plpbr
Ich will also quasi eine Variable, mit zwei Namen ... hört sich komisch an, macht aber in meinem Fall durchaus sinn

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  ValueA: Integer;
  ValueB: PInteger;
begin

  ValueB := @ValueA;

  ValueA := 12;
  ShowMessage(IntToStr(ValueB^));

  ValueB^ := 21;
  ShowMessage(IntToStr(ValueA));

end;

Ist mir bekannt, aber ich will sowas wie ValueB^ vermeiden, denn ich denke, dass es doch möglich sein muss einer anderen (in diesem fall) integer-variable die selbe adresse unterzuschieben, ohne dass man einen pointer auf die selbe adresse hat, und diesen dann immer wieder dereferenziert.

[edit]dereferenziert, nicht referenziert ... hrmpf[/edit]

ciao, Philipp

Sprint 14. Jan 2005 17:22

Re: einer variable eine adresse zuweisen
 
Zitat:

Zitat von c113plpbr
Ist mir bekannt, aber ich will sowas wie ValueB^ vermeiden, denn ich denke, dass es doch möglich sein muss einer anderen (in diesem fall) integer-variable die selbe adresse unterzuschieben, ohne dass man einen pointer auf die selbe adresse hat, und diesen dann immer wieder dereferenziert.

Delphi-Quellcode:
type
  TForm1 = class(TForm)
  ...
  private
    { Private-Deklarationen }
    FValue: Integer;
  public
    { Public-Deklarationen }
    property ValueA: Integer read FValue write FValue;
    property ValueB: Integer read FValue write FValue;
  end;
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin

  ValueA := 12;
  ShowMessage(IntToStr(ValueB));

end;

c113plpbr 14. Jan 2005 17:46

Re: einer variable eine adresse zuweisen
 
@Sprint: Das wäre ne idee ... aber bevor ich sowas mache, nehme ich lieber die pointer-dereferenzier-methode ... ^^

Nun, vielleicht ein paar "erklärungen" zu dieser Problemstellung:
Ich bringe (m)eine DLL in den Speicher einers (fremden) Prozesses, um dort Funktionen aufzurufen, und Variablen zu verändern. Funktionsaufrufe sind relativ einfach, wenn man die Funktionen "deklariert" hat:
Delphi-Quellcode:
var
  ProcABC : procedure(abc : DWORD); stdcall = pointer($01001234);
...

ProcABC(12345);
Nun wäre es natürlich sehr praktisch, wenn es mit Variablen genauso gehen würde. Es geht zwar, über (wie oben genannt) Dereferenzierung von Pointern, aber es wäre natürlich praktisch, wenn man z.B. vorhandenen code, ohne bei jeder variable darauf achten zu müssen ein ^ anzuhängen, kopieren könnte. Außerdem sieht es gleich unkomplizierter aus ... ^^

ciao, Philipp

Chewie 14. Jan 2005 17:51

Re: einer variable eine adresse zuweisen
 
Vielleicht hilft dir Delphi-Referenz durchsuchenabsolute weiter.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:04 Uhr.
Seite 1 von 4  1 23     Letzte »    

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