[Delphi] Snel vraagje: InitialDir

Pagina: 1
Acties:

  • Chimera
  • Registratie: December 2001
  • Laatst online: 17-07 11:24
Hoe stel ik de InitialDir van m'n OpenDialog in op My Computer, zodat ik A:, C:, D:, E:, F:, G: en H: en nog wat andere dingetjes zie :?

[16:19] <WhizzCat> de zon heeft nog maar 5 miljard jaar te leven naar het schijnt
[16:19] <WhizzCat> dus schiet op met dat protocol Chimera :p


Verwijderd

Dit kun je niet echt zo instellen. Ik heb wel wat gevonden met Google. Moet je maar even doorkijken. http://groups.google.com/groups?q=opendialog1.InitialDir+delphi+%22My+Computer%22&hl=nl

  • MisterE
  • Registratie: April 2002
  • Laatst online: 21:28
ff snel antwoordje.
wat bij elkaar geraapt. beetje bijwerken

function GetSpecialFolder(FolderID : longint) : string;
var
Path : pchar;
idList : PItemIDList;
begin
GetMem(Path, MAX_PATH);
SHGetSpecialFolderLocation(0, FolderID, idList);
SHGetPathFromIDList(idList, Path);
Result := string(Path);
FreeMem(Path);
end;


en deze sleutel heb jij nodig (CSIDL_PERSONAL)
veel plezier....

  • chris
  • Registratie: September 2001
  • Laatst online: 11-03-2022
Ja, je moet eerst de locatie van 'My Computer' bepalen (met de registry) en dan deze als initialdir opgeven.

  • Paul
  • Registratie: September 2000
  • Laatst online: 17:33
Op zondag 05 mei 2002 16:19 schreef Chimera2k2 het volgende:
Hoe stel ik de InitialDir van m'n OpenDialog in op My Computer, zodat ik A:, C:, D:, E:, F:, G: en H: en nog wat andere dingetjes zie :?
Create en free je je TOpenDialog zelf, of heb je hem al in de designer?
In de designer kun je hem meen ik gewoon via een dropdownlist op de destktop of op my computer zetten.
Heb momenteel geen Delphi bij de hand, maar ik meen dat het zo was.

"Your life is yours alone. Rise up and live it." - Richard Rahl
Rhàshan - Aditu Sunlock


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 04-09 14:38

curry684

left part of the evil twins

Op zondag 05 mei 2002 20:57 schreef MisterE het volgende:
ff snel antwoordje.
wat bij elkaar geraapt. beetje bijwerken

function GetSpecialFolder(FolderID : longint) : string;
...
Dit gaat dus niet werken daar My Computer een pure virtual folder is. Er is wel een file-system representatie van (de Desktop folder in je Profile dir) maar die bevat alleen de files op je desktop niet de devices (logischerwijs).

Professionele website nodig?


  • Kool
  • Registratie: September 1999
  • Niet online
Het zou met de (overigens al eerder genoemde) functie moeten werken:

function GetSPecialWIndowsFolder(const Which: integer): string;
var
Path: PChar ;
IDList: PItemIDList ;
begin
GetMem(Path, MAX_PATH);
try
SHGetSpecialFolderLocation(0, Which, idList);
SHGetPathFromIDList(idList, Path);
Result := string(Path);
finally
FreeMem(Path);
end;
end;

De indentifier CSIDL_DRIVES is de sleutel die jij nodig hebt, het probleem is dat die aanroep hier bij mij een lege string oplevert. Als ik b.v. CSIDL_DESKTOP opgeef werkt het wel. :? Ik draai win 2k.

Als deze functie met CSIDL_DRIVES bij iemand wel werkt meld dan hier dan even.

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 04-09 14:38

curry684

left part of the evil twins

Op maandag 06 mei 2002 11:40 schreef Kool het volgende:
De indentifier CSIDL_DRIVES is de sleutel die jij nodig hebt, het probleem is dat die aanroep hier bij mij een lege string oplevert. Als ik b.v. CSIDL_DESKTOP opgeef werkt het wel. :? Ik draai win 2k.

Als deze functie met CSIDL_DRIVES bij iemand wel werkt meld dan hier dan even.
Fijn dat er mensen nog naar me luisteren... CSIDL_DESKTOP bestaat wel fysiek maar klopt niet voor dit doel, dat is iets van:
C:\Document and Settings\Pietje\Desktop

De echte My Computer folder (CSIDL_DRIVES) bestaat niet fysiek en kun je dus niet een pad voor opgeven.

Ik kan overigens ook niet vinden in MSDN hoe het wel zou moeten moet ik bekennen.

Professionele website nodig?

Pagina: 1