21. juni 2000 - 16:10Der er
37 kommentarer og 2 løsninger
Installe prog
Jeg er ved at lave et installe prog og nu skal jeg lave en Select Directory form hvor man med en DriveComboBox og DirectoryListBox skal kunne finde den mappe hvor proget skal være men hvordan kan man få de to ting til at køre sammen ?
Det skal være sådan at når man så klikker på OK skal den tilføje "Mappen" som man have "Selectet" til en Edit og hvordan får man den til det ?
Er der nogen som kan vise mig det ?
Form1 er Edit på.. Form2 to er så Select Directory..
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
i delphi er der en Select Directory dialog på samme måde som der er en open/save file dialog. Den er blot ikke en synlig ikon du kan droppe på din form, men en rutine du kan kalde:
if SelectDirectory(Dir, [sdAllowCreate, sdPerformCreate, sdPrompt], 0) then begin edit1.text := dir; end;
Du skal huske at have "filectrl" i formens uses clause.
Næææ sejersen, den kom du sq for let om ved. Objektivt set så indeholder SelectDirectory() den funktionalitet der bliver spurgt efter, men der er sq da ikke noget mere iriterende end at den stiller sig nede i højere hjørne. Jeg anbefaler istedet man laver sn egne browsefor dialogs ....
uses shlobj;
function BrowseForComputer(const winhandle : THANDLE; const title : string = ''): string; //Show a dialog box and return a string with the selected computer var BrowseInfo: TBrowseInfo; IDRoot: PItemIDList; Path: array[0..MAX_PATH] of Char; begin // Get the Item ID for Network Neighborhood SHGetSpecialFolderLocation(winHandle, CSIDL_NETWORK, IDRoot); ZeroMemory(@BrowseInfo, SizeOf(TBrowseInfo)); ZeroMemory(@path, MAX_PATH); BrowseInfo.hwndOwner := winhandle; BrowseInfo.pidlRoot := IDRoot; BrowseInfo.lpszTitle := PChar(title); BrowseInfo.pszDisplayName := @path; // Include this flag to show computer only BrowseInfo.ulFlags := BIF_BROWSEFORCOMPUTER;// or BIF_RETURNONLYFSDIRS ; // Show the browse dialog, get the Item ID for the selected item and convert it to a path SHBrowseForFolder(BrowseInfo); result := path; end;
function BrowseForFolder(hndl: HWND; msg: string=''): string; {hndl iscalling forms handle} var FolderName: string; GDir: string; PList: PItemIDList; bi: TBrowseInfo; begin FillChar(bi, SizeOf(TBrowseInfo), 0); FolderName:= StringOfChar(' ', MAX_PATH); GDir:= StringOfChar(' ', MAX_PATH);
with bi do begin hwndOwner:= hndl; pidlRoot:= nil; pszDisplayName:= PChar(FolderName); lpszTitle := PChar(msg); lpfn:= nil; ulFlags:= BIF_DONTGOBELOWDOMAIN or BIF_RETURNONLYFSDIRS or BIF_RETURNFSANCESTORS; end;
PList:= SHBrowseForFolder(bi); {<-- show the dialog}
if Plist<>nil then begin SHGetPathFromIDList(Plist, PChar(GDir)); setlength(GDir, pos(#0, gdir)-1); result:= GDir; end else result:= ''; end;
også lige et par knapper til at kalde dem ...
procedure TForm1.Button1Click(Sender: TObject); begin Caption := BrowseForFolder(Handle); end; procedure TForm1.Button2Click(Sender: TObject); begin Caption := BrowseForComputer(Handle); end;
hand, Nej jeg har ikke lavet Liquid sammen med commy. Hvad er Liquid og hvem/hvad er commy ?
Borrisholt, Du har da ret i at det er sjovere at lave sine egne, men når der nu er en i delphi, og behovet blot er at finde, og evt. skabe et dir, så er den jo fin nok.
Men.. jeg kan da godt se at noget skal man jo få tiden til at gå med når natten varer 6 måneder ;-)
Nej hand, den er også i D3, men du kan ikke finde den på paletten. Tilføj "filectrl" til din uses clause på din form, og lav et par linier sådan som jeg har vist, så er den hjemme !
procedure TForm1.button1click(sender: tobject); var dir : string; begin dir := 'c:\'; // eller hvor du nu vil starte if SelectDirectory(Dir, [sdAllowCreate, sdPerformCreate, sdPrompt], 0) then begin edit1.text := dir; end; end;
Problemet er ikke Delphi3, end sige mig men Eksperten hvis jeg skriver 2x' så bliver den ene slettet inden den bliver offenlig gjort men ja du kan finde det på http://borrisholt.com under win32AIp der skal du downloade browsefor ...
Og Sejersen her er ikke mørkt i 6 måneder kun 4 1/2. (November til primo Februar).
4 1/2 måned. Er det så virkeligt mørkt hele døgnet, eller ser i solen en time eller 2 i løbet af dagen ? Og hvis ikke hele døgnet er mørkt, hvor længe har I så dagslys ?
Jeg var engang i Nuuk, og mens vi ventede på en flyver i Søndre Strømfjord (2-3 timer) bemærkede jeg at solen lige nøjagtigt lå hen over bjergryggen, stort set i samme højde hele tiden. Det var midt i Februar mellem kl. 11.00 og 14.00. Men da var det da lyst nok, selvom det selvfølgeligt ikke var helt så lyst som hernede.
Sejersen > Der er HELT mørkt fra den 30/10 -2000 til og med den 10/2 2001. Den 11/2 ser vi solen i 11 minutter og der fra øger dagslyset med 20 minutter om dagen, til det fra sidst i maj er lyst døgnet rundt ....
Årets først solopgang er så står en begivenhed at folk samles på et bjerg uden for basen for at beundre solen de 11 minutter den er der. Det vel og mærke selv om tempraturen typisk vil være omkring -40 til -45 grader plus vindens afkølings faktor !!!!
Se iøvrigt følgende link : http://www.hia.nrc.ca/cgi-bin/HIA/sunmoon.pl. Thule ligger på 68 grader 32 minutter vest, og 76 grader 45 minutter nord. Og vi er 4 timer bagud for tids zonen ....
Hand > Prøv de steder hvor der kommer fejl at sætte et ekstra ' altså i fx linje 52 så skriv:
function BrowseForFolder(hndl: HWND; msg: string=' '): string; {hndl iscalling forms handle}
UDEN mellemru. Problemer er bare at hvis jeg skriver 2 ' så bliver det ene fjernet af eksperten ... Ellers så kan du finde det på http://borrisholt.com under win32AIp der skal du downloade browsefor ...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.