Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Objektreferenzen als Variable nutzen möglich ? (https://www.delphipraxis.net/157253-objektreferenzen-als-variable-nutzen-moeglich.html)

LimeBulls 5. Jan 2011 10:10

Objektreferenzen als Variable nutzen möglich ?
 
Hallo,

Beispielquelltext:

Delphi-Quellcode:
query.sql.text := 'Select ...';
query2.sql.text := 'Select...';
Nun möchte ich für "Query", welches eigentlich als TZQuery definiert ist einen Platzhalter/eine Variable einsetzen.

z.B.

Delphi-Quellcode:
type
query2 := TZQuery;

[...]
procedure xxx;
var
query_variable: String;
begin
query_variable := 'query2'
query_variable.sql.text := 'Select...';

Natürlich klappt das so nicht, da kein normaler String einfach als Objektreferenz dienen kann.

Wie kann ich mir aber eine Variable machen, welche ich dauerhaft ändern kann und quasi die "Objektreferenz verschieben" kann, je nachdem worauf die Variable gerade zeigt/gesetzt ist ?

Google habe ich bereits angeworfen, gab mir aber zum Überschriftentext keine passenden Ergebnisse und die Selbstversuche endeten nicht erfolgreich.

Danke im voraus.

DeddyH 5. Jan 2011 10:26

AW: Objektreferenzen als Variable nutzen möglich ?
 
Wenn es unbedingt ein String sein muss, kannst Du Dir FindComponent einmal anschauen.

Uwe Raabe 5. Jan 2011 10:27

AW: Objektreferenzen als Variable nutzen möglich ?
 
Delphi-Quellcode:
procedure xxx(query_variable: TZQuery);
begin
  ...
  query_variable.sql.text := 'Select...';
  ...
end;
Aufruf dann mit
Delphi-Quellcode:
xxx(query);
xxx(query2);
Alternativ (aber globale Variablen würde ich nicht empfehlen):

Delphi-Quellcode:
var
  query_variable: TZQuery;

procedure xxx;
begin
  ...
  query_variable.sql.text := 'Select...';
  ...
end;

query_variable := query;
xxx;

query_variable := query2;
xxx;

mkinzler 5. Jan 2011 11:11

AW: Objektreferenzen als Variable nutzen möglich ?
 
Am Besten übergibst du statt Namen eine Referenz.

Sonst .FindComponent()


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:53 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