Avatar billede jeppebecool Nybegynder
23. august 2000 - 12:06 Der er 3 kommentarer og
1 løsning

Classes

Mit projekt indeholder to classes som jeg har lavet. Den ene indeholder en TPaintBox med en \"onMouseDown-event\". Hvordan Kalder jeg en procedure i min anden klasse når der bliver klikket på min paintbox.

Avatar billede borrisholt Novice
23. august 2000 - 12:15 #1
Jeg er lige rendt tør for tid så i første omgang får du kun koden ingen forklaring ...

unit Unit1;

interface

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

type
  TMyClassType = class(TObject)
  public
    Procedure doSomeThing(p : Pointer);
  end;


  TForm1 = class(TForm)
    PaintBox1: TPaintBox;
    procedure PaintBox1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    MyClassType : TMyClassType;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}


{ TMyClassType }

procedure TMyClassType.doSomeThing(P : Pointer);
begin
  //
end;

{ TForm1 }

procedure TForm1.PaintBox1Click(Sender: TObject);
begin
  MyClassType.doSomeThing(Sender);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  MyClassType := TMyClassType.Create;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  MyClassType.Free;
end;

end.
Avatar billede jeppebecool Nybegynder
23. august 2000 - 13:05 #2
Jeg fik vist ikke forklaret det ordenligt.

Jeg har en MainForm og en MainUnit, som bruger to klasser :
Klasse1 fra Unit1, og Klasse2 fra Unit2.
Klasse1 indeholder en TPaintBox, med en onclickprocedure. Den Procedure skal kalde en procedure i Klasse2.

Venlig hilsen Jeppe
Avatar billede delphij Nybegynder
23. august 2000 - 18:41 #3
Umiddelbart & unden garanti:

I Unit1\'s Uses tilføjes Unit2 og i OnClickProceduren skrives:
Unit2.ProcedureFraKlasse2();

Husk at ProcedureFraKlasse2(); skal være deklareret i interface delen.
Altså:
Interface
Procedure ProcedureFraKlasse2();

Håber det hjælper.

Mvh.
J
Avatar billede jeppebecool Nybegynder
24. august 2000 - 09:38 #4
Jeg har selv fundet ud af det.
Jeg skulle bare erklære \"uses mainform\" if implementationsafsnittet i unit1 og unit2, istedet for interface afsnittet. Så kan jeg erklære Klasse1 og Klasse2 i interfaceafsnittet i min mainunit. Og så kan jeg kalde Klassernes procedure , fra en hvilken som helst unit, der bruger mainunit.

Men tak fordi i gad at skrive

Hilsen Jeppe
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