/ 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
Lidt Hjælp
Fra : Henning Madsen


Dato : 03-02-06 23:13

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 ??

Function Produkt(H, K: Integer) : Integer;
begin
Result := H * K;
Form1.Edit6.Text := IntToStr(Result); //Ok
end;

Procedure TForm1.Button3Click(Sender: TObject);
var
H, K : Integer;
begin
H := 10;
K := 20;
Produkt(H, K);
// Edit7.Text := IntToStr(Result); //Dette må da være det kallende sted??
end;
Bruger Delphi 7 (men burde nok bruge Delphi1) og XP
En lille uddybning ville være dejlig.

mvh
Henning




 
 
René Jensen (03-02-2006)
Kommentar
Fra : René Jensen


Dato : 03-02-06 23:43

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

Søg
Reklame
Statistik
Spørgsmål : 177438
Tips : 31962
Nyheder : 719565
Indlæg : 6408046
Brugere : 218879

Månedens bedste
Årets bedste
Sidste års bedste