![]() |
var in functions deklaration funktionükelt nicht
also ich habe eine function folgendermassen deklariert:
Delphi-Quellcode:
wenn ich die jetzt so aufrufe:
function CountStrg(Start: integer; var Text: string): integer;
Delphi-Quellcode:
dann kommt ein fehler, und zwar folgender:
CountStrg(2, TEdit(Sender).Text);
Zitat:
ich versteh die welt grad nich mehr... |
Re: var in functions deklaration funktionükelt nicht
Ja: du musst den Text erst in eine Variable speichern, bevor du den der Funktion übergeben kannst, und dann wieder dem Edit zuweisen. Denn: die Property des ist keine Variable, sondern das sind eine Prozedur und eine Funktion in einen Namen zusammengepackt! Und Funktionen liefern nun mal Konstante Werte zurück :)
|
Re: var in functions deklaration funktionükelt nicht
hmm, klingt irgendwie logisch, aber wenn ich jetzt statt .Text ne echte konstante zu weise dann kommt das man keine Konstanten zuweisen kann, aber das kommt ja jetzt nit ... :?:
egal, jetzt gehts, danke dir vielmals |
Re: var in functions deklaration funktionükelt nicht
Zitat:
|
Re: var in functions deklaration funktionükelt nicht
achso, also wenn Caption vom Typ String wäre würde es gehen? oder is da einfach nur die prioritär höher so dass er wenn er sieht TCaption <> String abbricht bevor er 'bemerkt' das TCaption ja gar nicht variabel ist?
|
Re: var in functions deklaration funktionükelt nicht
Zitat:
Delphi-Quellcode:
Es liegt dran, das er versucht ne Property zu übergeben, was in einem get-Aufruf enden würde, der eine Konstante liefert, die damit keine Variable ist und damit auch nicht änderbar...
type
TCaption = type{!} string; |
Re: var in functions deklaration funktionükelt nicht
Du willst doch anscheinend nur was in CountStrg zählen?
Dann brauchst du doch eigentlich kein VAR. schonmal eines davon versucht?
Delphi-Quellcode:
function CountStrg(Start: integer; Const Text: string): integer;
function CountStrg(Start: integer; In Text: string): integer; function CountStrg(Start: integer; Const Text: TCaption): integer; function CountStrg(Start: integer; In Text: TCaption): integer; Ansonsten gäbe es dann auch noch sowas:
Delphi-Quellcode:
function CountStrg(Start: integer; Object: TObject): integer;
... TEdit(Object).Text CountStrg(2, Sender);
Delphi-Quellcode:
function CountStrg(Start: integer; Edit: TEdit): integer;
... Edit.Text CountStrg(2, Sender); |
Re: var in functions deklaration funktionükelt nicht
Zitat:
Zitat:
Code:
aus, wo er sonst ein
[Fehler] Unit1.pas(55): Die Typen der tatsächlichen und formalen Var-Parameter müssen übereinstimmen
Code:
bekommen würde. Und das liegt daran, dass der Compiler in diesem Fall TCaption nicht identisch mit string setzt.
[Fehler] Unit1.pas(54): Konstantenobjekt kann nicht als Var-Parameter weitergegeben werden
@himitsu: Habe ich was verpasst, oder seit wann unterstützt Delphi denn das in bei Parametern? |
Re: var in functions deklaration funktionükelt nicht
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:42 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