Hi und erstmal herzlich Willkommen in der
DP
Was Deine Frage angeht, so muss man hier mehrere Fälle unterscheiden. An sich muss Du immer eine
Unit bekannt machen, bevor Du auf ihren Inhalt zugreifen kannst. Dazu wird sie einfach mit der Uses Klausel eingebunden. Erstellst Du ein neues leeres Formular und schaust Dir den Quelltext an, dann findest Du an dieser Stelle schon eine ganze Menge von Units, die aut. eingebunden wird. Die stehen einfach kommagetrennt hinter dem Schlüsselwort Uses.
Findet Delphi im Quelltext (unter Interface oder unter Implementation) eine solche Uses-Klausel, weiß es, dass es die entsprechende
Unit hier einbinden soll. Das wiederum heißt, dass Delphi wissen muss, was in dieser
Unit steht. Und hier sind wir an dem Punkt, an dem man eben verschiedene Dinge unterscheiden muss. So musst Delphi wissen, wo sich die
Unit befindet. Befindet sich die
Unit irgendwo (auf einer Festplatte oder gar im Netz) und Delphi müsste suchen, dann kann das bei heutigen Systemen sicherlich ein Weilchen dauern. Deshalb gibt es einen festen Plan, wo Delphi sucht und in welcher Reihenfolge. Der erste Sucherfolg liefert dann einfach die
Unit, die verwendet wird. Liegen also mehere Units mit gleichem Namen vor, wird Delphi die erste nehmen, die es findet.
Ja, ganz allgemein hast Du ja schon gesagt, man kann jedem Projekt Units hinzufügen. Hier speichert Delphi den Pfad zu diesen Units ab und weiß wo es suchen soll. Erstellst Du eine neue
Unit, während Du ein Projekt geöffnet hast, so sollte diese automatisch für Dich in das Projekt eingefügt werden und Du kannst die
Unit direkt benutzen.
Ist die Position nicht direkt bekannt, so muss Delphi suchen. Der erste Ort, an dem i.d.R. gesucht wird (bei Delphi bin ich mir nicht 100%ig sicher) ist eigentlich immer das gleiche Verzeichnis. Liegt eine
Unit im gleichen Verzeichnis, wie die Projektdatei, sollt diese Datei automatisch eingebunden werden. Desweiteren gibt es einen festen Suchpfad, den Du in den Optionen angeben kannst (der müsste Bibliothekspfad heißen). In allen Ordnern, die Du hier angibst wird Delphi dann nach Units suchen, die es nicht anders findet.
Möchtest Du nun auf eine fremde
Unit zugreifen, die noch nicht im Suchpfad liegt, so hast Du die Möglichkeit, dass Du
- Den Suchpfad erweiterst (macht eigentlich nur Sinn, wenn Du diese Unit wirklich häufiger, in verschiedenen Projekten benötigst)
- Die Unit dem Projekt hinzufügen
- Die Unit ins gleiche Verzeichnis kopieren (was aber schlecht ist, da Du dann viele Kopien hast und Änderungen für jede Kopie übernommen werden müssten)
Gruß Der Unwissende