![]() |
Readln und Variant
Hallo dp'ler,
ich versuche gerade ein Programm mit ![]() Nun, da es mir bisher nicht gelungen ist, einen Pointer auf eine dieser Funktionen zu bekommen, versuche ich das ganze gerade mit callback-funktionen (also so proxy-artig). Soweit kein Problem, aber man kann ja natürlich den Funktionen nicht nur strings übergeben, sondern auch integer-, single-, usw. Variablen übergeben. Zuerst dachte ich, einfach die funktion überladen. Aber bei der "menge" an overloads fängt man dann schon an nach ner anderen methode zu suchen, und mir fiel dann auch der typ/die klasse variant ein. Bei Writeln funktioniert das auch ganz gut, aber der Compiler akzeptiert bei Readln keine variants, so bekomme ich immer die fehlermeldung: Fehler [Pascal Error] psd_main.pas(249): E2055 Illegal type in Read/Readln statement Nunja ... ich hoffe ihr habt mein Problem verstanden und könnt mir helfen. Aber zum überladen bin ich ehrlich gesagt zu faul ... ;) . Achja, und zur veranschaulichung noch die Callback-Funktion:
Delphi-Quellcode:
ciao & thx,
//Funktioniert nicht
procedure TForm1.sfRead(out t: variant); begin Read(t); end; //Funktioniert bestens ^^ procedure TForm1.sfWrite(t: variant); begin Write(t); end; Philipp |
Re: Readln und Variant
Versuch mal
1.) Untypisierten out-Parameter. 2.) Ersetze out durch var 3.) Umweg über lokale Variable |
Re: Readln und Variant
Zitat:
Zitat:
Zitat:
Also mit ner lokalen Variant-variable gehts auch ned ... ciao, Philipp |
Re: Readln und Variant
Die Idee mit readln muss wohl scheitern, denn:
Beim "normalen" read/readln wird eine typisierte Variable übergeben. Die read funktion weiss, welcher Datentyp verlangt wird und reagiert demsprechend. Durch die Verwendung von Variant als Out-Parameter geht diese Information verloren und kann auch nicht rekonstruiert werden. |
Re: Readln und Variant
Zitat:
ciao & thx, Philipp |
Re: Readln und Variant
Man könnte ein COM-Objekt für die Konsole erstellen.
Für .NET gibt es anscheinend schon eine Konsolenklasse. Es wäre günstig, wenn man die Methoden und Properties gleich wie bei .NET benamsen würde. Dieses COM-Objekt wäre dann ziemlich vielseitig einsetzbar: * für Pascalscript * für VB-Script * für JavaScript Wahrscheinlich gibt es schon so eine COM-Klasse irgendwo im Internet; man müsste es nur finden. |
Re: Readln und Variant
Zitat:
ciao & thx, Philipp |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:06 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