![]() |
wie kann einFunktions-Rückgabewert im Text angezeigt werden?
Hallo zusammmen,
ich weiß nicht so recht wonach ich suchen soll/muss :oops: Ich habe eine Funktion, welche einen String-Rückgabewert hat. (Programmversion) Diesen Wert möchte ich zusätzlich zu einem Text anzeigen lassen, aber wie??? Zum Verständnis:
Delphi-Quellcode:
Danke schonmal vorab!
procedure TmyProg.ButtonClick(Sender: TObject);
begin ShellExecute(myProg.Handle, 'open', 'mailto:xxx.de'+'?subject=Email aus myPro generiert- ' + '*****und hier sollte zusätzlich das Ergebnis meiner Funktion stehen*****' + '&body=Hallo!', nil, nil, SW_SHOWNORMAL); end; |
Re: wie kann einFunktions-Rückgabewert im Text angezeigt wer
Delphi-Quellcode:
procedure TmyProg.ButtonClick(Sender: TObject);
begin ShellExecute(myProg.Handle, 'open', 'mailto:xxx.de'+'?subject=Email aus myPro generiert- ' + MeineFunktion + '&body=Hallo!', nil, nil, SW_SHOWNORMAL); end; |
Re: wie kann einFunktions-Rückgabewert im Text angezeigt wer
Delphi-Quellcode:
function meinefunktion:string;
begin result:='*****und hier sollte zusätzlich das Ergebnis meiner Funktion stehen*****'; end; procedure TmyProg.ButtonClick(Sender: TObject); begin ShellExecute(myProg.Handle, 'open', 'mailto:xxx.de'+'?subject=Email aus myPro generiert- ' +meinefunktion+ '&body=Hallo!', nil, nil, SW_SHOWNORMAL); end; |
Re: wie kann einFunktions-Rückgabewert im Text angezeigt wer
Hallo Tomsel,
dann bekomme ich diese Fehlermeldung: Zitat:
|
Re: wie kann einFunktions-Rückgabewert im Text angezeigt wer
Ah ja. Benutze eine Stringvariable. Weise dieser den Ganzen Text zu und übergebe diese mit pchar() an ShellExecute.
|
Re: wie kann einFunktions-Rückgabewert im Text angezeigt wer
also, ich bekomms net hin...
Ich hab jetzt komplett ein Brett vorm Kopf :wall: Ich bekomme der Variable "Programmversionsanzeige" nicht den Wert der Funktion "ProgrammVersion" zugewiesen...(siehe Fehler von Delphi im Kommentar des 2.Code-Blocks..) hier mal meine funktion:
Delphi-Quellcode:
wenn ich dann eine Variable vom Typ "String" anlege kann ich dieser den Wert der Funktion nicht zuweisen...
function ProgrammVersion : string;
const InfoNum = 1; InfoStr : array[1..InfoNum] of string = ('FileVersion'); var S: string; n, Len, i: DWORD; Buf: PChar; Value: PChar; begin S := Application.ExeName; n := GetFileVersionInfoSize(PChar(S), n); if n > 0 then begin Buf := AllocMem(n); GetFileVersionInfo(PChar(S), 0, n, Buf); for i := 1 to InfoNum do if VerQueryValue(Buf, PChar('StringFileInfo\040704E4\' + InfoStr[i]), Pointer(Value), Len) then result := result + Value; FreeMem(Buf, n); end; end;
Delphi-Quellcode:
procedure TmyProg.ButtonClick(Sender: TObject);
var Programmversionsanzeige: String; begin Programmversionsanzeige:= (ProgrammVersion); // hier erscheint Fehler: [Pascal Error] rechner.pas(1831): E2003 Undeclared identifier: 'ProgrammVersion' ShellExecute(myProg.Handle, 'open', 'mailto:xxx.de'+'?subject=Email aus myPro generiert-- ' + 'pchar(Programmversion)' + '&body=Hallo!', nil, nil, SW_SHOWNORMAL); |
Re: wie kann einFunktions-Rückgabewert im Text angezeigt wer
Nein. Nicht 'pchar(Bla)'. Dann hast du einen String, der 'pchar(Bla)' enthält.
Es muss heißen pchar(Bla) ohne die ' Dinger. |
Re: wie kann einFunktions-Rückgabewert im Text angezeigt wer
So ungefähr:
Delphi-Quellcode:
procedure TmyProg.ButtonClick(Sender: TObject);
var sCommandline:string; begin sCommandline := 'mailto:xxx.de'+'?subject=Email aus myPro generiert- ' + Programmversion + '&body=Hallo!'; ShellExecute( myProg.Handle, 'open', pchar(sCommandline), nil, nil, SW_SHOWNORMAL ); end; |
Re: wie kann einFunktions-Rückgabewert im Text angezeigt wer
Hallo Tomsel,
Delphi erkennt an dieser Stelle einfach meine Funktion "ProgrammVersion" nicht mehr....
Delphi-Quellcode:
Es kommt dort wo die Funktion aufgerufen wird wieder:
sCommandline := 'mailto:xxx.de'+'?subject=Email aus myPro generiert- ' +
Programmversion + //hier wird die Funktion gar nicht mehr erkannt... '&body=Hallo!'; [Pascal Error] rechner.pas(1831): E2003 Undeclared identifier: 'Programmversion' Gruß Jürgen |
Re: wie kann einFunktions-Rückgabewert im Text angezeigt wer
- ist die Unit, in der sich die Funktion befindet, eingebunden?
- wird die Funktion in ihrer Unit im Interface-Abschnitt aufgeführt? |
Re: wie kann einFunktions-Rückgabewert im Text angezeigt wer
Hallo Tomsel,
so, ich habs! Es musste ja an der Funktion liegen... Ich traus mir gar nicht zu sage :oops: Ich hatte diese Funktion unter FormCreate stehen.... Manchmal sieht man den Wald halt vor lauter Bäumen nicht. Interessant war für mich auf jeden Fall dein Code zur Umwandlung. Also vielen Dank für dein Geduld und Gute Nacht! Grüsse Jürgen |
Re: wie kann einFunktions-Rückgabewert im Text angezeigt wer
So etwas kann man umgehen, indem man eine Forward-Deklaration macht, oder seine Funktion einfach im Interface-Abschnitt ankündigt. Oder man entwickelt objektorientiert (und benutzt dann Methoden) ;)
|
Re: wie kann einFunktions-Rückgabewert im Text angezeigt wer
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:58 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 by Thomas Breitkreuz