Einzelnen Beitrag anzeigen

MrKnogge

Registriert seit: 9. Jun 2003
Ort: Pforzheim
2.458 Beiträge
 
Delphi 2007 Professional
 
#1

Dialog zum Auswählen von Computern im Netzwerk anzeigen

  Alt 6. Mai 2006, 20:23
marabu hat hier ein Beispiel gepostet, wie man einen "Computer auswählen"-Dialog anzeigen kann. Ich hab mir erlaubt, eine Zeile zu bearbeiten.

Delphi-Quellcode:
uses ShlObj, ActiveX;

...

function FindComputer(sPrompt: string; csidl: word; var sComputer: string): boolean;
const
  eMsg = 'Suchdialog konnte nicht geöffnet werden.';
var
  bi: TBrowseInfo;
  ca: array [0..MAX_PATH] of char;
  pidl, pidlSelected: PItemIDList;
  m: IMalloc;
begin
  if Failed(SHGetSpecialFolderLocation(Application.Handle, csidl, pidl)) then
    raise Exception.Create(eMsg);
  try
    FillChar(bi, SizeOf(bi), 0);
    with bi do begin
      hwndOwner := Application.Handle;
      pidlRoot := pidl;
      pszDisplayName := ca;
      lpszTitle := PChar(sPrompt);
      ulFlags := BIF_BROWSEFORCOMPUTER;
    end;
    pidlSelected := SHBrowseForFolder(bi);
    Result := Assigned(pidlSelected);
    if Result then
      sComputer := String(ca);
  finally
    if Succeeded(SHGetMalloc(m)) then
      m.Free(pidl);
  end;
end;
Aufgerufen wird das ganze dann folgendermaßen:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  sMachine: string;
begin
  if FindComputer('Wählen Sie einen Computer aus:', CSIDL_NETWORK, sMachine) then
    Edit1.Text := sMachine;
end;
gruss

[edit=CalganX]Titel angepasst. Mfg, CalganX[/edit]
Christian Bootz
Einstein ist tot, Newton ist tot,
und mir ist auch schon ganz schlecht...
  Mit Zitat antworten Zitat