Untitled

Lekkie poprawki
 avatar
user_6919294
pascal
9 months ago
3.1 kB
6
Indexable
// Hej Daria, ponieważ w INS nie można zmieniać wartości zdefiniowane przy użyciu dyrektywy #define
// To dodaj takie uproszczenie, bez wydziwień. Jak się za dużo kombinuje, później można pogubić się w kodzie ^_-

// Np coś takiego:

// ----------------------------------------------------------------------------------------------------------
const
  MaxIcons = 10;
  #ifdef DeleteGameSetings
  MaxDelSettingsFolder = 5;
  #endif

var
  DesktopIconNames: array[1..MaxIcons] of string;
  #ifdef DeleteGameSetings
  DelSettings: array[1..MaxDelSettingsFolder] of string;
  #endif

// Inicjalizacja tablic
procedure InitializeArrays;
begin
  DesktopIconNames[1] := '{#DesktopIconName1}';
  DesktopIconNames[2] := '{#DesktopIconName2}';
  DesktopIconNames[3] := '{#DesktopIconName3}';
  DesktopIconNames[4] := '{#DesktopIconName4}';
  DesktopIconNames[5] := '{#DesktopIconName5}';
  DesktopIconNames[6] := '{#DesktopIconName6}';
  DesktopIconNames[7] := '{#DesktopIconName7}';
  DesktopIconNames[8] := '{#DesktopIconName8}';
  DesktopIconNames[9] := '{#DesktopIconName9}';
  DesktopIconNames[10] := '{#DesktopIconName10}';
  // ... inicjalizacja pozostałych elementów w razie potrzeby

  #ifdef DeleteGameSetings
  DelSettings[1] := ExpandConstant('{#DelSetings1}');
  DelSettings[2] := ExpandConstant('{#DelSetings2}');
  DelSettings[3] := ExpandConstant('{#DelSetings3}');
  DelSettings[4] := ExpandConstant('{#DelSetings4}');
  DelSettings[5] := ExpandConstant('{#DelSetings5}');
  // ... inicjalizacja pozostałych elementów w razie potrzeby
  #endif
end;

function GetIconNamePatchValue(Index: Integer): string;
begin
  if (Index > 0) and (Index <= MaxIcons) then
    Result := ExpandConstant('{commondesktop}\' + DesktopIconNames[Index] + '.lnk')
  else
    Result := '';
end;

procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
var
  IconIndex: Integer;
  IconPath: string;
  SettingIndex: Integer;
  DelSaveConfig: string;
begin
  // Usuwanie ikon z pulpitu
  for IconIndex := 1 to MaxIcons do
  begin
    IconPath := GetIconNamePatchValue(IconIndex);
    if (IconPath <> '') and FileExists(IconPath) then
    begin
      if not DeleteFile(IconPath) then
        Log('Cannot be removed icon: ' + IconPath);
    end;
  end;
  
  // usuwanie ustawien, zapisow 
  #ifdef DeleteGameSetings
  if MsgBox('Do You Want To DELETE {#GameName} SAVE and CONFIGURATION Files?',
            mbConfirmation, MB_YESNO or MB_DEFBUTTON2) = IDYES then
  begin
    for SettingIndex := 1 to MaxDelSettingsFolder do
    begin
      DelSaveConfig := ExpandConstant(DelSettings[SettingIndex]);
      if DelSaveConfig = '' then
        // przerywamy, jezeli nazwa folderu jest NULL
        Break;
      if DirExists(DelSaveConfig) then
      begin
        if not DelTree(DelSaveConfig, True, True, True) then
          Log('Cannot be delete folder: ' + DelSaveConfig);
      end;
    end;
  end;
  #endif
end;
// ----------------------------------------------------------------------------------------------------------
Editor is loading...
Leave a Comment