Thema: Delphi Seltsame Pfadbearbeitung

Einzelnen Beitrag anzeigen

Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.186 Beiträge
 
Delphi 11 Alexandria
 
#1

Seltsame Pfadbearbeitung

  Alt 26. Nov 2019, 12:19
Delphi-Version: 10.3 Rio
Hi zusammen
Mit folgender Prozedur will ich eine Inidatei erstellen:
Delphi-Quellcode:
function TOpenFileFrame.ChangeFolderIcon(LDeskIniPath, LBmpFile: String; IconIndex: Integer): Boolean;
  var desktopini: TIniFile; LDesktopIniParent : String;
begin
  LDeskIniPath := IncludeTrailingPathDelimiter(LDeskIniPath);
  [B]LDesktopIniParent := ExtractFilePath(LDeskIniPath);[/B]
  ShowMessage('LDeskIniPath := ' + LDeskIniPath +sLineBreak+
              'LDesktopIniParent := ' + LDesktopIniParent +sLineBreak+
              '**************************************');
  try
    if DirectoryExists(LDesktopIniParent) then
    begin
      desktopini := TIniFile.Create(LDeskIniPath);
      try
        desktopini.WriteString('.ShellClassInfo', 'IconFile', LBmpFile);
        desktopini.WriteInteger('.ShellClassInfo', 'IconIndex', IconIndex);
      finally
        desktopini.Free;
        Result := true;
      end;
    end
    else
    begin
      Application.MessageBox('Error: The Foldericon could not change!' + #13#10 + 'Directory doesn''t exist!', 'Error', 16 + 0); // Warnkreuz + OK-Button
      Result := false;
      exit;
    end;
  except
    Application.MessageBox('Error: The Foldericon could not change!', 'Error', 16 + 0); // Warnkreuz + OK-Button
    Result := false;
    exit;
  end;
end;
Dabei liefert mir mein ShowMessage:
Delphi-Quellcode:
  ShowMessage('LDeskIniPath := ' + LDeskIniPath +sLineBreak+
              'LDesktopIniParent := ' + LDesktopIniParent +sLineBreak+
              '**************************************');
folgendes:
Zitat:
[Window Title]
HilfeTest-Projekt

[Content]
LDeskIniPath := F:\Embarcadero Project Corner\Delphi Tokio TestCorner\HTML-HelpCorner\HelpTestApp\desctop.ini\
LDesktopIniParent := F:\Embarcadero Project Corner\Delphi Tokio TestCorner\HTML-HelpCorner\HelpTestApp\desctop.ini\
**************************************

[OK]
Die erste Zeile ist korrekt, nicht aber die zweite. Denn die soll lediglich den Ordner angeben, in dem die Inidatei erzeugt werden soll/enthalten ist.

Diese Zeile:

LDesktopIniParent := ExtractFilePath(LDeskIniPath);

sollte, wenn ich die Help nicht komplett falsch verstanden habe, den Inhalt von LDesktopIniParent so setzen:
Zitat:
F:\Embarcadero Project Corner\Delphi Tokio TestCorner\HTML-HelpCorner\HelpTestApp\
Macht sie aber offensichtlich nicht. Was mache ich falsch?

Gruss
Delbor

PS: Die Funktion entstand aufgrund dieses Beispiels.
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch

Geändert von Delbor (26. Nov 2019 um 12:32 Uhr) Grund: Quelle hinzugefügt
  Mit Zitat antworten Zitat