Hi,
du solltest Units nur so nutzen, wie du sie benötigst. Brauchst du sie also nur im Implementation-Abschnitt, so solltest du sie dort deklarieren.
Beispiel:
Delphi-Quellcode:
...
implementation
uses
inifiles;
procedure TForm1.FormCreate(Sender: TObject);
var
Ini: TIniFile;
begin
Ini := TIniFile.Create(...);
try
...
finally
Ini.Free;
end;
end;
Wenn du sie jedoch bereits im Interface-Abschnitt (für Typdeklarationen oder globale Variablen) benötigst, so muss sie dort hinter uses einfügen:
Delphi-Quellcode:
unit MyGrasphic;
uses
SysUtils, Graphics;
type
EMyGraphic =
class(
Exception);
//Exception aus SysUtils
TMyGraphic =
class(TGraphic)
//TGraphic aus Graphics
...
public
procedure foo;
end;
interface
uses
MyGraphicConsts;
procedure TMyGraphic.Foo;
begin
raise EMyGraphic.CreateFmt(StrEMyGraphicFoo, ['
bar']);
//StrEMyGraphicsFoo aus MyGraphicConsts nur hier benötigtbenutzt
end;
...
Übrigens gibts da ein Tool (
Icarus Uses List Analyzer), dass deine uses-Liste überprüft und die empfdehlungen ausgibt, ob du eine
Unit überhaupt benötigst oder ob du sie nach implementation verschieben kannst...
Mfg
FAlter