Avatar billede hand Nybegynder
21. juni 2000 - 16:10 Der 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..
Avatar billede sjensen Nybegynder
21. juni 2000 - 16:56 #1
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.

Så er du fri for at kombinere 2 comboboxe.
Avatar billede hand Nybegynder
21. juni 2000 - 16:58 #2
Jeg prøver lige !

ps har du ikke lavet Liquid sammen med commy ???
Avatar billede borrisholt Novice
21. juni 2000 - 17:00 #3
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;


Jens B
Avatar billede borrisholt Novice
21. juni 2000 - 17:02 #4
Øøøj selvfølgelig dobbelt ' i funktions headderen
Avatar billede hand Nybegynder
21. juni 2000 - 17:05 #5
hmm hvaa ???

' '  ' '  hvaa mener du med det ???
Avatar billede hand Nybegynder
21. juni 2000 - 17:09 #6
borrisholt -> Jeg kan ikke få dit til at virke ...

Er det noget som er på din HP for så kan jeg jo lige prøve at dl'e det !
Avatar billede hand Nybegynder
21. juni 2000 - 17:12 #7
sjensen -> jeg kan ikke finde en Select Directory !!!
Kun en OpenDialog og OpenPictureDialog osv...

Er det fordi jeg bruger Delphi 3 ????
Avatar billede sjensen Nybegynder
21. juni 2000 - 17:14 #8
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 ;-)
Avatar billede sjensen Nybegynder
21. juni 2000 - 17:16 #9
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;

Så er den der
Avatar billede hand Nybegynder
21. juni 2000 - 17:23 #10
sjensen ->
Jeg to fejl det var ikke dig som har lavet Liquid men en som hedder Skringer og en der hedder commy.
Liquid er en slaks ICQ.

http://www.nettrip.dk/liquid/
dl det her hvis du vil se det
http://www.nettrip.dk/liquid/files/_liquid13.zip

PS den install som er til det er den måde jeg vil lave min Select Dir... Form..

Avatar billede borrisholt Novice
21. juni 2000 - 17:23 #11
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).
Avatar billede hand Nybegynder
21. juni 2000 - 17:29 #12
sjensen -> det er ikke sådan jeg vil lave det !
Avatar billede sjensen Nybegynder
21. juni 2000 - 17:34 #13
sjensen, borrisholt, sjensen. Ikke Sejersen !

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.

Hilsen herfra i øvrigt !
Avatar billede sjensen Nybegynder
21. juni 2000 - 17:36 #14
hand, det er fint nok at du fik det til at virke, og at du så ikke vil bruge det er også fint nok. Jeg ville bare fortælle dig at muligheden findes !

Avatar billede hand Nybegynder
21. juni 2000 - 17:40 #15
jaa oki sjensen

borrisholt -> der komme fejl når jeg vil compile.

i linie 52
function BrowseForFolder(hndl: HWND; msg: string=''): string; {hndl iscalling forms handle}

Fejl =
';' OR ')' expected but '=' found.

hvorfor
Avatar billede borrisholt Novice
21. juni 2000 - 18:19 #16
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 ...

jens B
Avatar billede borrisholt Novice
21. juni 2000 - 19:40 #17
Sejersen > Ikke "Søndre Strømfjord" der er det danske navn.. kan du sige  "Kangerlussuaq". :o) Nå lige meget .... Jeg ville bare lige drille lidt ...

Jens B
Avatar billede hand Nybegynder
21. juni 2000 - 21:24 #18
borrisholt  ->

Der vil komme fejl selv om jeg har ''''

function BrowseForFolder(hndl: HWND; msg: string=''''): string; {hndl iscalling forms handle}

Men når jeg sletter ='''' så dur det !
Avatar billede borrisholt Novice
21. juni 2000 - 21:27 #19
Aaah du bruger Delphi3 den under støtter ikke Default parametere .... Det må du sq undskylde den havde jeg ikke lige set ....

Jens B
Avatar billede hand Nybegynder
21. juni 2000 - 22:49 #20
det sq i orden ;)

Men det er nu ikke sådan jeg vil ha det til...

Jeg vil få dem her til at gå sammen hvis du forstår !

DriveComboBox og DirectoryListBox
Avatar billede hand Nybegynder
21. juni 2000 - 22:50 #21
og så selv med en OK og Cancel button
Avatar billede thomas-sp2k Nybegynder
22. juni 2000 - 12:53 #22
Hey hand

Jeg tror jeg har hvaa du kigger efter ...

Får jeg din mail så kan jeg lige sende den source til d3 ;)

/thomas
Avatar billede thomas-sp2k Nybegynder
22. juni 2000 - 12:53 #23
upz det skulle jo lige være et svar ;-)
Avatar billede hand Nybegynder
22. juni 2000 - 13:04 #24
Oki thomas-sp2k du kan prøve at sende det til denne adresse

tws@jubiipost.dk
Avatar billede borrisholt Novice
22. juni 2000 - 13:08 #25
Aaahh sådan en komponent dims der sidder på formen ... Sådan har jeg daogså i en noget pænere version end den af Borlands .. Jeg sender den lige ....

Jens
Avatar billede thomas-sp2k Nybegynder
22. juni 2000 - 13:09 #26
Det er nu send til din adresse..

håber du kan bruge det ;)
Avatar billede thomas-sp2k Nybegynder
22. juni 2000 - 13:15 #27
borrisholt -> Kan du ikke prøve at sende din igen for jeg kunne ikke dl'e den fra jubii !

måske i ZIP
Avatar billede hand Nybegynder
22. juni 2000 - 13:17 #28
thomas-sp2k ????????
hvaa !!!!
Avatar billede hand Nybegynder
22. juni 2000 - 13:18 #29
når nu forstår jeg ...

Kunne du ikke dl'e det fra det link jeg sende på ICQ ???
Avatar billede thomas-sp2k Nybegynder
22. juni 2000 - 13:20 #30
jaa det er det jeg mener hand

men hvaa synes du om min ???
Avatar billede thomas-sp2k Nybegynder
22. juni 2000 - 13:24 #31
borrisholt -> er det et komponent dit ?

Avatar billede hand Nybegynder
22. juni 2000 - 13:26 #32
thomas-sp2k dit er lige det jeg skal bruge men jeg vil lige prøve at se borrisholt's om jeg også kan bruge det ellers kan jeg jo bare splitte ;)
Avatar billede borrisholt Novice
22. juni 2000 - 13:29 #33
yeps
Avatar billede hand Nybegynder
22. juni 2000 - 13:29 #34
borrisholt -> når jeg vil installe dit kommer der en fejl men at file FileListView.dcu blev ikke fundet !
Avatar billede borrisholt Novice
22. juni 2000 - 13:37 #35
Så får du da bare den også
Avatar billede hand Nybegynder
22. juni 2000 - 13:38 #36
oki men jeg fik den lige fra din hp og nu er det en ande´n komponent som mangler imglist.dcu
Avatar billede borrisholt Novice
22. juni 2000 - 13:43 #37
Den er en del af Borlands VCL. Kig på din HD .. Jeg har også sendt den til dig
Avatar billede hand Nybegynder
22. juni 2000 - 13:45 #38
borrisholt jeg har fået dit til at virke...

Men jeg kan også godt bruge dit så jeg splitter pointne
Avatar billede thomas-sp2k Nybegynder
22. juni 2000 - 13:48 #39
;) tak
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester