SelectDirectory
Visar en dialogruta där användaren kan välja en katalog.
Unit
FileCtrl
function SelectDirectory(const Caption: string; const Root: WideString; out Directory: string): Boolean; overload; function SelectDirectory(var Directory: string; Options: TSelectDirOpts; HelpCtx: Longint): Boolean; overload;
Beskrivning
redigeraAnropa SelectDirectory då användaren bör välja en katalog. Den första funktionen ger en dialog med ett modern utseende, men saknar en del funktioner, exemplevis möjligheten att skapa en en ny katalog. Caption parametern anger titeln för fönstret och Root anger vilken katalog som användaren utgår från. Den valda katalogen sparas i variabeln Directory. När denna syntax används så ändras inte systemets nuvarande katalog.
Samma parameter kan inte användas till både Root och Directory. |
Oavsett vilken funktion som används så skickar SelectDirectory tillbaka True om användaren väljer OK och False om användaren väljer Cancel/Avbryt eller avbryter på annat sätt.
Endast den första syntaxen eller Exempel 1 visar en dialog med text på svenska, eller det språk som operativsystemet använder. |
Exempel 1
redigeraDetta exempel använder den första funktionen och koden ser ut så här:
procedure TForm1.Button1Click(Sender: TObject); var Rot, Dir: string; begin Dir := 'D:\'; Rot := 'D:\Delphi\'; if SelectDirectory('Programmera i Pascal',Rot,Dir) then Label1.Caption := Dir; end;
Resultatet som genereras med ovanstående kod ser ut så här:
Den andra funktionen ser ganska gammalmodig ut, men innehåller en hel del möjligheter som den tidigare saknar, exempelvis att skapa en ny katalog. Directory parametern som skickas till denna funktion blir den valda katalogen i dialogen, men kommer även att innehålla den katalog som användaren väljer i form av en textsträng. HelpCtx parametern anger det ID nummer i hjälpfilen som ska anropas. Options parametern kan vara sdAllowCreate, sdPerformCreate eller sdPrompt. sdAllowCreate visar en textruta där användaren kan ange en katalog som inte finns ännu, men den skapas inte utan ger programmet den möjligheten. sdPerformCreate i kombination med sdAllowCreate skapar även den katalog som angivits av användaren. sdPrompt ska bara användas ihop med sdAllowCreate, då denna parametern visar en meddelanderuta som talar om att katalogen inte finns och frågar om den skall skapas.
Exempel 2
redigeraI detta exempel så används den andra funktionen av SelectDirectory. Koden som används är:
procedure TForm1.Button1Click(Sender: TObject);
const
SELDIRHELP = 1000;
var
Dir: string;
begin
Dir := 'D:\Delphi\';
if SelectDirectory(Dir, [sdAllowCreate, sdPerformCreate, sdPrompt],SELDIRHELP) then
Label1.Caption := Dir;
end;
Resultatet av förgående exempel kan ses här:
Funktion och desigkvalitet är många gånger en ballansgång när det gäller programmering. För att undvika dessa val väljer många att tillverka consolprogram. |