Rejestracja rozszerzenia: ikona

0

Jak to jest z tą ikoną przy rejestracji rozszerzenia? Mam taki kod:

[code]
// to przykład z programu
procedure TMainForm.Button1Click(Sender: TObject);
var
Reg: TRegistry;
begin
Reg := TRegistry.Create; // otworz rejestr
try
try
Reg.RootKey := HKEY_CLASSES_ROOT; // odpowiedni klucz otworz :)
Reg.OpenKey( // Utworz klucz
'.rzi', True);
Reg.WriteString('', 'RziFile'); // dodaj typ klucza
Reg.CloseKey; // zamknij klucz
Reg.OpenKey( // stworz klucz oznaczajacy ikone
'rzifile\DefaultIcon', True);
Reg.WriteString('', Application.ExeName + ',1');
Reg.CloseKey;
Reg.OpenKey( // stworz kolejny...
'rzifile\shell\open\command', True); // akcja po nacisnieciu
Reg.WriteString('','"'+Application.ExeName+'" "%1"');// wpisz sciezke programu
Reg.CloseKey;
Reg.OpenKey(
'rzifile\shell\Edytuj', True); // stworz nowe pozycje - Edyuj
Reg.WriteString('', 'Otwórz w programie...'); // tekst pozycji
Reg.CloseKey;
Reg.OpenKey( // stworz akcje po nacisnieciu
'rzifile\shell\Edytuj\command', True);
Reg.WriteString('', '"' + Application.ExeName + '" "%1"'); // dopisz sciezke programu
except
raise Exception.Create('Błąd! Wystąpił błąd wzwiązany z rejestrem!');
end;
finally
Reg.Free;
end;
Application.MessageBox('Rejestracja udała się! Stwórz teraz jakiś plik z rozszerzeniem *.rzi', 0);
end;[/code]

No i ok, gdzie tu w kodzie ustawić ikone dla tego rozszerzenie? Znaczy sie podać ścieżke do pliku z ikoną [stuk] albo coś...

0

Popatrz, jak to jest zrobione sdla innych rozszerzeń. Jakiś klucz DefaultIcon to był :)

0
Reg.OpenKey( // stworz klucz oznaczajacy ikone
'rzifile\DefaultIcon', True);
Reg.WriteString('', Application.ExeName + ',1');

Ikonką będzie ikona twojego programu..
Jeśli tak bardzo ci się ona nie podoba zmień scieżkę "Application.ExeName + ',1'" na dowolną ikonkę z dysku.

0

Reg.WriteString('', Icon.LoadFromFile('Flash.ico') + ', 1');
wywala błąd że są złe typy danych czy coś takiego, i hate rejestr....

0

za dużo kombinujesz.. :)
Reg.WriteString('', 'Flash.ico');

a ja za bardzo skracam :) (zapomniałem o pełnej scieżce)

Reg.WriteString('', extractFilePath(paramstr(0))+'Flash.ico');

1 użytkowników online, w tym zalogowanych: 0, gości: 1