Zrobiłem dynamiczne ładowanie filtrów do TOpenDialog i TSaveDialog z filtrów SynEdita (TSynCustomHighLighter.DefaultFilter) ... wygląda to tak:
dlgFileOpen.Filter := 'Dokumenty tekstowe (*.txt)|*.txt|';
dlgFileSave.Filter := 'Dokumenty tekstowe (*.txt)|*.txt|';
for i := 0 to Forma.ComponentCount - 1 do
begin
if (Forma.Components[i] is TSynCustomHighLighter) then
begin
dlgFileOpen.Filter := dlgFileOpen.Filter + (Forma.Components[i] as TSynCustomHighLighter).DefaultFilter + '|';
dlgFileSave.Filter := dlgFileSave.Filter + (Forma.Components[i] as TSynCustomHighLighter).DefaultFilter + '|';
end;
end;
dlgFileOpen.Filter := dlgFileOpen.Filter + 'Wszystkie pliki|*.*|';
dlgFileSave.Filter := dlgFileSave.Filter + 'Wszystkie pliki|*.*|';
Nazwy filtrów są trzymane w pliku SynEditStrConst.pas - mimo, że zmieniam nazwy im na polskie, to część z nich dalej zostaje po angielsku.. np:
SYNS_FilterHTML = 'Dokumenty HTML (.htm,.html)|.htm;.html';
Działa dobrze, ale już...
SYNS_FilterPHP = 'Pliki PHP (.php,.php3,.phtml,.inc)|.php;.php3;.phtml;.inc';
wywala w Dialogach: "PHP Files... itd" - nie wiedzieć dlaczego??? :(