Avatar billede jens123 Nybegynder
19. oktober 2000 - 22:25 Der er 3 kommentarer og
1 løsning

procedure

Hvis man foreksempel selv laver en procedure, hvad skal man gøre for at man kan bruge en komponent i den, foreksempel :

procedure test;
begin
memo1.lines.add(\'test\');
end;

Dette virker ikke.
Avatar billede snowball Novice
19. oktober 2000 - 22:30 #1
Se nedenstående eksempel:

unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Button1: TButton;
    procedure test;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.test;
begin
  memo1.lines.add(\'test\');
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  test;
end;

end.

Snowball
Avatar billede moa Nybegynder
19. oktober 2000 - 22:32 #2
Det er fordi den memo-box du referer til fra din procedure er indlejret i en TForm-klasse (den er en komponent inden i denne). Derfor bliver du nød til at referere til den form-variabel, der indeholder en reference til dit TForm-objekt. - hvis du ikke har ændret name for din form burde følgende virke:

procedure test;
begin
  form1.memo1.lines.add(\'test\');
end;

/moa
Avatar billede moa Nybegynder
19. oktober 2000 - 22:38 #3
Snowball -> Okay, jeg så ikke dit svar inden jeg submittede. Sorry.

jens123 -> Det Snowball gør er at han laver din operation om til en operation på TForm-klassen istedetfor at det er en global operation. Derfor kan operationen referere til de andre komponenter i klassen og behøves ikke prefixed \"form1\".

Snowball\'s metode med klasse-operationer er (måske med ganske få undtagelser) afgjort måden at gøre det på! Så pointene bør afgjort tilfalde ham!

/moa
Avatar billede jens123 Nybegynder
19. oktober 2000 - 22:51 #4
tak for det, jeg skulle lige have det repeteret igen.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester