Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi type überprüfung (https://www.delphipraxis.net/28957-type-ueberpruefung.html)

day 1. Sep 2004 20:06


type überprüfung
 
hallo

ich übergebe einer Funktion eine TQuery. Wie kann ich überprüfen ob es sich beim übergebenen objekt wirklich um eine TQuery handelt?

alcaeus 1. Sep 2004 20:11

Re: type überprüfung
 
Hi day!

Mit
Delphi-Quellcode:
if <Variable> is TQuery then
bla;
Greetz
alcaeus

sakura 1. Sep 2004 20:11

Re: type überprüfung
 
Sagen wir mal das Objekt heisst: ShouldBeQuery dann:
Delphi-Quellcode:
if ShouldBeQuery is TQuery then
begin
  // yeah!
  [...]
end
else
begin
  ShowMessage(ShouldBeQuery.ClassType.ClassName);
end;
...:cat:...

day 1. Sep 2004 20:21

Re: type überprüfung
 
Ich mache diese Abfrage im Konsturktor. Folglich kann ich keinen rückgabewert zurückgeben falls es keine TQuery ist. Hat jemand eine Idee wie ich das lösen könnte. Dachte da an eine Exception. Wie kann ich die werfen?

Chewie 1. Sep 2004 21:42

Re: type überprüfung
 
Zitat:

Zitat von day
Dachte da an eine Exception. Wie kann ich die werfen?

Ja, Exception ist perfekt in diesem Fall, da für das Objekt reservierter Speicher dann freigegeben wird. Erzeugen der Exception mit
Delphi-Quellcode:
raise <Exceptiontyp>.Create(<optionale Parameter>);

Stevie 2. Sep 2004 08:19

Re: type überprüfung
 
Zitat:

Zitat von Chewie
Ja, Exception ist perfekt in diesem Fall, da für das Objekt reservierter Speicher dann freigegeben wird.

Noch besser ist Assert (Löst auch eine Exception aus, wenn der Ausdruck nicht true ist!), weil sich die Sache auf eine Zeile beschränkt:
Delphi-Quellcode:
Assert(MyQuery is TQuery, Format('TQuery-Objekt erwartet, %s-Objekt gefunden!', [MyQuery.ClassName]));


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:59 Uhr.

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