/ 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
Egne funktioner?
Fra : Steffen V Petersen


Dato : 08-12-02 19:00

Hej igen

Det er vist blevet lidt af en vane at stille spørgsmål til Jer, men I er
jo så go'e :)

Denne gang vil jeg gerne vide, hvorfor der her ikke virker:
function Test(Str: String): Boolean;
begin
Edit1.Text := Str;
end;

Den siger, at Edit1 er ikke er deklareret... og det fatter jeg ikke
rigtigt.

Hvad er forresten forskellen på function og procedure?

Jeg bruger Delphi 7.

--
Steffen V Petersen
Remove remove.



 
 
JM (08-12-2002)
Kommentar
Fra : JM


Dato : 08-12-02 19:46

Dette ligner vist Delphi 7 - for jeg forstår ikke et muk.





Peter Vrist (08-12-2002)
Kommentar
Fra : Peter Vrist


Dato : 08-12-02 19:20

Problemet er at du ikke har deklareret din function i samme klasse.

For at få din funktion til at virke skal du skrive "Form1.Edit1.Text" i
stedet for "Edit1.Text".

Jeg kan anbefale at du deklarere din funktion under f.eks. private. Din
function skal da se således ud :

function Form1.Test(Str: String): Boolean;
begin
Edit1.Text := Str;
end;

Her har du dog ikke noget at bruge en funktion til, da den ikke skal
retunere noget. En procedure havde været bedre. F.eks:

procedure Form1.Test(Str: String);
begin
Edit1.Text := Str;
end;

Køb dig en lærebog. Det fortryder du ikke.

Vedrørende dit andet spørgsmål:

En funktion returnere altid en værdi. Værdien er Result i funktionen, f.eks.

function biggest(x : Integer; y : Integer) : Integer;
begin
Result := Max(x, y);
end;

st := Biggest(100, 200);

//st = 200.

Hilsen

Peter Vrist


"Steffen V Petersen" <news01@swipe.remove.dk> skrev i en meddelelse
news:at01a5$j99$1@sunsite.dk...
> Hej igen
>
> Det er vist blevet lidt af en vane at stille spørgsmål til Jer, men I er
> jo så go'e :)
>
> Denne gang vil jeg gerne vide, hvorfor der her ikke virker:
> function Test(Str: String): Boolean;
> begin
> Edit1.Text := Str;
> end;
>
> Den siger, at Edit1 er ikke er deklareret... og det fatter jeg ikke
> rigtigt.
>
> Hvad er forresten forskellen på function og procedure?
>
> Jeg bruger Delphi 7.
>
> --
> Steffen V Petersen
> Remove remove.
>
>



Steffen V Petersen (08-12-2002)
Kommentar
Fra : Steffen V Petersen


Dato : 08-12-02 21:41

> Jeg kan anbefale at du deklarere din funktion under f.eks. private.
Din
> function skal da se således ud :
Mener du private under inteface, for det virker heller ikke :(

> procedure Form1.Test(Str: String);
> begin
> Edit1.Text := Str;
> end;
Er prøvet... Hvis den står under private (i inteface) siger den nu bare:
Undeclared identifyer: Form1

> Køb dig en lærebog. Det fortryder du ikke.
Ville jeg skam gerne, men det kun som valgfag på gym jeg har det, så at
spendere knaster på en bog her op til jul, holder en SU ikke til...

Kunne du ikke skære det helt ud i pap, for jeg fatter ikke ret meget, og
Delphis hjælp på dette område gør mig kun endnu mere forvirret... øv

På forhånd tak

--
Steffen V Petersen
Remove remove.



Simon Hiort-Lorenzen (09-12-2002)
Kommentar
Fra : Simon Hiort-Lorenzen


Dato : 09-12-02 00:44


"Steffen V Petersen" <news01@swipe.remove.dk> wrote in message
news:at0anm$due$1@sunsite.dk...
> > procedure Form1.Test(Str: String);
> > begin
> > Edit1.Text := Str;
> > end;
> Er prøvet... Hvis den står under private (i inteface) siger den nu bare:
> Undeclared identifyer: Form1

Du skal skrive TForm1 i implementation (men ikke i deklarationen). Her er
hele unit1, med en korrekt deklaration (lavet i D5):

-----

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;

type
TForm1 = class(TForm)
Edit1: TEdit;
private
{ Private declarations }
public
{ Public declarations }
function Test(Str : string) : boolean;
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

function TForm1.Test(Str : string) : boolean;
begin
Edit1.Text := Str;
end;

end.

----

I det her tilfælde skal du dog lave en procedure i stedet en funktion, for
du har ikke burg for at returnere noget. Du vil også få en advarsel der
siger 'Return value of function 'TForm1.Test' might be undefined' fordi du
ikke giver nogen returværdi i funktionen.


>
> > Køb dig en lærebog. Det fortryder du ikke.
> Ville jeg skam gerne, men det kun som valgfag på gym jeg har det, så at
> spendere knaster på en bog her op til jul, holder en SU ikke til...

Personligt synes jeg det er sjovere at lære ved at finde ud af hvad man
gerne vil lave, og så finde ud af hvordan, i stedet for at blive guidet
igennem noget som en forfatter synes man skal lave. Men det er jo smag og
behag.

Simon



Kurt Bilde (09-12-2002)
Kommentar
Fra : Kurt Bilde


Dato : 09-12-02 13:00

Hej Steffen !

Steffen V Petersen wrote:
> Ville jeg skam gerne, men det kun som valgfag på gym jeg har det, så at
> spendere knaster på en bog her op til jul, holder en SU ikke til...

Men der er der jo råd for... check lige:

http://www.marcocantu.com/epascal/default.htm
og
http://www.marcocantu.com/edelphi/default.htm

-Kurt


Søg
Reklame
Statistik
Spørgsmål : 177500
Tips : 31968
Nyheder : 719565
Indlæg : 6408518
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste