AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Foldericon anpassen

Ein Thema von sakura · begonnen am 4. Jul 2003 · letzter Beitrag vom 5. Jul 2003
Antwort Antwort
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#1

Foldericon anpassen

  Alt 4. Jul 2003, 10:26
So, damit ich den Code nicht verliere, kommt der gleich mal in die CodeLibrary 8)

Ihr kennt bestimmt alle den Bilder-Ordner, Favoriten-Ordner und andere, welche sich im Explorer gesondert darstellen. Dieser Code zeigt lediglich, wie man das Icon ändern kann und einen Info-Tipp anzeigt. Es ist kein Beispiel für eine andere Dateiansicht, dazu wird die Datei folder.htt gebraucht, und das habe ich noch nicht getan.

Im Verzeichnis, welches sich gesondert darstellen soll, muss ein Datei desktop.ini enthalten sein. Diese sollte die Attribute faHidden und faSysFile haben. Der Aufbau ist denkbar einfach.
Code:
[.ShellClassInfo]
IconFile=folder.ico
IconIndex=0
InfoTip=Mein schöner Folder.
Hier wird die Datei folder.ico fürs Icon genutzt. Da nur der Dateiname angegeben wurde, wird die Datei auch im entsprechenden Verzeichnis erwartet. Auch hier sollten die Attribute analog zu denen der desktop.ini gesetzt sein.

Damit der Windows-Explorer die desktop.ini auch lädt, muss dieses dem System mitgeteilt werden. Dazu gibt es die Funktion PathMakeSystemFolder, welche durch Delphi nicht bereitgestellt wird und daher separat importiert werden muss. Verfügbar ist die ab dem IE 4.0.
Delphi-Quellcode:
function PathMakeSystemFolder(pszPath: LPSTR): BOOL; stdcall; external
    'shlwapi.dllname 'PathMakeSystemFolderA';
Windows bietet für diese Funktion keine Gegenfunktion , deshalb muss man das durch das korrigieren der Verzeichnisattribute von Hand erledigen.

Die folgende Funktion ermöglicht es, diese erweiterte Darstellung an- und auszuschalten. Sie erwartet als ersten das Verzeichnis, dessen Attribute angepasst werden sollen und als zweiten Parameter True für die spezielle Ansincht, ansonsten False.
Delphi-Quellcode:
procedure SetDesktopIni(Path: String; ShowSpecialSettings: Boolean);
var
  pPath: array[0..MAX_PATH] of Char;
begin
  if AnsiLastChar(Path)^ = '\then
    SetLength(Path, Pred(Length(Path)));
  StrPCopy(pPath, Path);
  if ShowSpecialSettings then
  begin
    PathMakeSystemFolder(pPath);
  end else begin
    SetFileAttributes(pPath, GetFileAttributes(pPath) and (
        not (faSysFile or faReadOnly)));
  end;
end;
......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Gast
(Gast)

n/a Beiträge
 
#2
  Alt 5. Jul 2003, 17:07
Weißt du auch, wie man eine HTML zuweist? Wäre interessant.

Als Antwort auf den Beitrag darunter: Danke

(Will ja hier keine Posts kassieren für Sinnloses)
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#3
  Alt 5. Jul 2003, 17:43
Daran forsche ich noch. Ich bin schon recht weit. Ich lasse es Dich wissen, sobald es funktioniert

......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Antwort Antwort

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:43 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz