Henning Madsen wrote:
> Prøver at forstå oplysningerne med en FUNCTION fra Per Amdal Steffensen's
> bog
> Delphi programmering (som jeg varmt kan anbefale)
> Der skrives at en function returnerer værdien til det kallende sted,
> hvorfor kan jeg så ikke udlæse Result i Edit7 ??
Du har misforstået brugen af funktioner i Delphi. Jeg har rettet i din
kode, og så kommer forklaringen bagefter:
function Produkt(H, K: Integer) : Integer;
begin
Result := H * K;
end;
procedure TForm1.Button3Click(Sender: TObject);
var
H, K: Integer;
begin
H := 10;
K := 20;
Edit7.Text := IntToStr(Produkt(H, K));
end;
En funktion kan sammenlignes med en funktionsmaskine (taget fra
matematikken), hvor man putter noget ind, og så for man et result ud i
den anden ende. Altså:
10 * 20 -> din funktionen -> 200
Inputtet svarer til din parameter som du angiver til din funktion (i
dette tilfælde funktionen Produkt), og outputtet er den værdi som du
tildeler Result (i dette tilfælde resultatet af H * K).
Grunden til at man ikke angiver værdier direkte til et objekt (i dette
tilfælde Edit7), så er det fordi en funktionen kan bruge mange
forskellige steder i ens kildetekst, og man slipper således for at
skrive samme kode igen for at lave en beregning. Nu er din beregning, i
funktionen Produkt, ret simpelt, men i andre tilfælde så kan en funktion
lave mere advancerede beregninger, f.eks. beregning af ens
skatteprocent, som varierer af ens indkomst, kommune, privat formue osv.
Du bruger ellers en prædefineret funktion korrekt i din kildetekst -
nemlig IntToStr, som tager et heltal, og konverterer dette til en
streng-baseret repræsentation.
Du skal se en funktion, som dynamisk værdi, som kan indeholde
forskellige værdier alt afhængig af hvilke parametre man angiver med
funktionskaldet. Dvs. at IntToStr(10) og IntToStr(20) indeholder to
forskellige strenge, nemlig '10' og '20'.
Håber det gav lidt lys over tingene.
Med venlig hilsen,
René Jensen
|