Registriert seit: 21. Apr 2006
88 Beiträge
FreePascal / Lazarus
|
Re: Prozeduren aus einer 2. Unit nutzten
3. Jun 2007, 23:16
Zitat von guitar1:
Delphi-Quellcode:
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, unit1,
Dialogs, ExtCtrls, StdCtrls, Menus, ComCtrls, Buttons, Grids, ImgList, Registry;
type
Auswaehlen = class(TObject)
public //
procedure auswahl0leave(Sender: TObject);
private //
...
end;
var
auswahl: Array of Timage;
implementation
procedure Auswaehlen.auswahl0leave(Sender: TObject);
begin
form1.Statusbar.Panels[0].Text:= ' Fertig';
form1.Statusbar.Panels[2].Text:= ' ';
auswahl[0].Transparent:=true;
auswahl[0].OnClick:= form1.MachWas;
end;
end.
Du solltest private/public/published benutzen um herauszustellen welche funktionen,prozeduren und variablen wie zu behandeln sind.
Auserdem solltest du constructor und destructor definieren damit die einzelnen teile flexibel erstellt werden können...
jedoch sollte es meines wissens auch so gehen:
Aufruf in der 1. Unit:
Delphi-Quellcode:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, Menus, ComCtrls, Buttons, Grids, ImgList, Registry;
type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
end;
implementation
uses unit2;
procedure TForm1.NotenAuswahlEnter(Sender: TObject);
begin
ton[0].Parent := ScrollBox1;
ton[0].OnMouseEnter := Auswaehlen.auswahl0enter; // <-- hier kommt der Fehler <-- Du musst zu erkennen geben wo die prozedur enthalten ist
ton[0].OnMouseLeave := Auswaehlen.auswahl0leave; // <-- hier auch
end;
end.
|
|
Zitat
|