/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
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

Søg
Reklame
Statistik
Spørgsmål : 177422
Tips : 31962
Nyheder : 719565
Indlæg : 6407886
Brugere : 218876

Månedens bedste
Årets bedste
Sidste års bedste