Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - unit benutzen ???


hibbert - Di 27.08.02 16:21
Titel: unit benutzen ???
hi,
eine anfänger frage:
ich habe ein neues delphi projeckt geöffnet und eine .pas datei hinzugefügt.
wenn ich auf einen button klicke, soll das programm die neu eingefügte unit ausführen, aber wie?
Jetzt schonmal DANKE !


bis11 - Di 27.08.02 16:31

Hi,

den Unit-Namen in die Uses-Klausel aufnehmen. Und dann kannste die zweite Unit mir Form2.Show aufrufen.


Klabautermann - Di 27.08.02 17:16

Hallo,

Units werden nicht ausgeführt. Units sind lediglich Container für Constanten, Variablen, Typen, Procedure, funktion, Objekte ...
Wenn du eine Unit eingebunden hast dann kannst du ihre Inhalte aufrufen.
Du musst also den Unit Namen in die uses Klausel aufnehmen.

Danach kannst du auf die z.B. Proceduren in der zweiten Unit zugreifen.

Gruß
Klabautermann


hibbert - Mi 28.08.02 13:14

ok, aber wie kann ich aus einer unit eine rotine aufrufen?


Tino - Mi 28.08.02 13:56

hibbert hat folgendes geschrieben:
ok, aber wie kann ich aus einer unit eine rotine aufrufen?
Genauso wie jede andere Methode innerhalb der Unit auch: Über den Namen!


Klabautermann - Mi 28.08.02 13:57

Hallo,

angenommen das ist deine Unit:

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
unit Zeit;
interface
  CONST
    Stunde = 1/24;
    Minute = Stunde / 60;
    Sekunde = Minute / 60;

  function Zeitdifferenz(Zeit1, Zeit2 : tDateTime) : tDateTime;

implementation

  function Zeitdifferenz(Zeit1, Zeit2 : tDateTime) : tDateTime;
  BEGIN
    Result := Zeit2 - Zeit1;
  END;

end.


dann kanst du den Inhalt der Unit aus einer anderen Aufrufen nachdem du sie unter uses Eingetragen hast. Hier ein Beispiel für die Zeit unit:


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
unit ufrmMain;

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    DateTimePicker1: TDateTimePicker;
    DateTimePicker2: TDateTimePicker;
    Label1: TLabel;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

USES
  Zeit;

procedure TForm1.Button1Click(Sender: TObject);
begin
  DateTimePicker1.DateTime
  Label1.Caption := 'Die differnz zwischen den Beiden Werten beträgt ca. ' +
                    IntToStr(Trunc(Zeitdifferenz(DateTimePicker1.DateTime,
                    DateTimePicker1.DateTime) / Minute)) + ' Minuten.';)
end;

end.


Gruß
Klabautermann