Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Procedurparameter (https://www.delphipraxis.net/30667-procedurparameter.html)

blackyhb 27. Sep 2004 18:49


Procedurparameter
 
Hallo,

bisher habe ich als Anfänger keine Lösung für das Problem gefunden,
edit1.text in einen Procedureaufruf zu bekommen!? :shock:

Meine eigene Procedure hat den folgendem Code:

Delphi-Quellcode:
procedure TForm1.teste(mystring:string; var abc, ...:string);
begin
.
.
.
end;
Der eigentliche Proceduraufruf

Delphi-Quellcode:
teste(mystring,edit1.text, ...);
führte zur Fehlermeldung, daß die
tatsächlichen und formalen var-Parameter übereinstimmen müssen!

Über eine Lösung oder Infos würde ich mich freuen! :-D

blackyhb

SirThornberry 27. Sep 2004 18:51

Re: Procedurparameter
 
ist ganz einfach. Edit1.Text ist vom Typ TCaption und diesen kann man nur komplett setzen. Eine Lösung wäre
Delphi-Quellcode:
var LtmpString: String;
begin
  LtmpString := edit1.Text;
  teste(mystring,LtmpString, ...);
  edit1.text := LtmpString;
end;

blackyhb 27. Sep 2004 19:15

Re: Procedurparameter
 
Die Lösung ist okay, verlängert den Programmcode jedoch erheblich! :?

Ist eine Typumwandlung möglich oder
die Verwendung von TCaption in der Prozedur? 8)

Luckie 27. Sep 2004 19:16

Re: Procedurparameter
 
TCaption ist auch nur als String deklariert.

SirThornberry 27. Sep 2004 19:19

Re: Procedurparameter
 
das Problem ist das ".Text" ein Property ist was nur komplett gesetzt werden kann. Es ist also nicht möglich ".Text[1] := 'c'" zu schreiben eben weil eine Setmethode dahinter steht. Du musst eben wirklich einen var-parameter übergeben oder du änderst die funktion so ab das sie ein TEdit entgegennimmt, dann kannst du auch direkt die ".Text" eigenschaft ändern.

blackyhb 27. Sep 2004 19:36

Re: Procedurparameter
 
Wie kann ich die funktion denn ändern? :oops:

Hast du einen Beispielcode? :roll:

blackyhb

Nothine 27. Sep 2004 20:23

Re: Procedurparameter
 
Zitat:

Zitat von SirThornberry
oder du änderst die funktion so ab das sie ein TEdit entgegennimmt, dann kannst du auch direkt die ".Text" eigenschaft ändern.

Delphi-Quellcode:
procedure Foo(Edit: TEdit); //Prozedur, nimmt ein TEdit entgegen
begin
  Edit.Text := 'Foo'; //und greift direkt auf die Text-Eigenschaft zu
end;

Foo(Edit1); //Aufruf

blackyhb 27. Sep 2004 21:07

Re: Procedurparameter
 
Prima und vielen Dank für die Hilfe! :)

Den Code habe ich angepaßt und alles läuft perfekt! :wink:

Mfg

blackyhb :-D


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