|
| Functioner Fra : Henning Madsen |
Dato : 16-02-08 23:19 |
|
Hjælp hertil ønskes, gerne skåret ud i meget tyk pap ??
Proceduren virker. Så mon ikke den er fejlfri ??
//============================================
PROCEDURE Tekst(T1,T2:String);
Begin
Form1.Edit3.Text := (T1 + T2);
End;
procedure TForm1.Button1Click(Sender: TObject);
begin
Tekst(Edit1.Text, Edit2.Text);
end;
//============================================
FUNCTION XXXXX (A,B:String):String;
Begin
Result := A + B; // Mener Result får tildelt resultatet af A + B og
sender det
// til den procedure der kalder FUNCTIONen er
det korekt??
End;
procedure TForm1.Button2Click(Sender: TObject);
begin
XXXXX(Edit4.Text,Edit5.Text); // Teksten Edit4 og Edit5 bliver tildelt
henholdsvis A og B
// i Functions hovedet er
det korekt ??
Edit6.Text := Result; // Her vises fejlen Undeclared identifier: 'Result'
// Hvorfor Kan Edit6 ikke tilføres
resultatet af A + B ????
end;
//============================================
end.
Noget har jeg opfattet forkert, håber der er en der kan forklare mig hvad.
MVH
Henning
| |
Michael Haase (17-02-2008)
| Kommentar Fra : Michael Haase |
Dato : 17-02-08 01:04 |
|
Henning Madsen skrev dette den 16-02-2008 23:18:
> Hjælp hertil ønskes, gerne skåret ud i meget tyk pap ??
>
> procedure TForm1.Button2Click(Sender: TObject);
> begin
> XXXXX(Edit4.Text,Edit5.Text);
> Edit6.Text := Result;
> end;
> //============================================
> end.
Det er her det går galt for dig.
Du skal istedet have:
Edit6.Text := XXXXX(Edit4.Text,Edit5.Text);
Result variablen i en funktion er lidt speciel, da det faktisk er en
slags alias for funktionen. Dvs det kommer ud på et om du skriver
FUNCTION XXXXX (A,B:String):String;
Begin
Result := A + B;
end;
eller
FUNCTION XXXXX (A,B:String):String;
Begin
XXXXX := A + B;
end;
Derudover kan du også som tommelfingerregel regne med, hvis et kald står
alene på en linje, og der ikke lagres noget i en variabel, så er det
en procedure og ikke en funktion.
--
Michael Haase
| |
|
|