Einzelnen Beitrag anzeigen

Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.336 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Komponenten merken und später zuweisen

  Alt 30. Sep 2008, 08:49
Ich will nochmal genauer fragen:

Das Beispiel zeigt, was ich ungefähr machen will. Hier blinkt Panel2. Durch den Schalterklick wird der Zeiger von Panel3 nun auch Panel2 zugewiesen.
Ab sofort blinkt Panel3, da die Instanzen von Panel2 und 3 jetzt identisch sind.

Delphi-Quellcode:
unit fPointertest;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls;
 
type
  TForm1 = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    Panel3: TPanel;
    Timer1: TTimer;
    Button1: TButton;
    procedure Timer1Timer(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
type
  PObject = ^TObject;
var
  F, T: PObject;
begin
  F := @Panel2;
  T := @Panel3;
  FreeAndNil(Panel2);
  F^ := T^;
end;
 
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Panel2.Visible := not Panel2.Visible;
end;
 
end.

Zu meinem Problem könnte ich mir das so vorstellen:

procedure GetCompenentPointer(var ReadComponent: TComponent; ....);
begin
...
end;

Wenn eine aktuelle Zuweisung einer gültigen Komponente momentan noch nicht möglich ist, merke ich mir dessen Adresse.
Wenn später ein Ergebnis vorliegt (wenn nämlich die Komponente eingelesen wird, auf die vorhin schon verwiesen wurde) weise ich der GemerktenAdresse^ := DenPointerDerJetztGefundenenKomponente^ zu.

Kann das so gehen - oder bin ich auf dem Holzweg?
Funktioniert das auch mit einer property, die Methoden als Getter und Setter verwendet?



Stahli
  Mit Zitat antworten Zitat