Bilindiği üzere MessageDlg daki ibareler ingilizce.Nasıl türkçeleştirebiliriz. Forumda da baktığım pas dosyasını düzenleyerek çözüme ulaşanları gördüm.Bu da benim çözümüm. Biraz uğraştırdı ama uğraşmaya değer...Ana Formunuza bir tane TApplicationEvents nesnesi bırakın.
private
{ Private declarations }
procedure ConvertToTurkish(H: HWND);
procedure TfrmMain.ConvertToTurkish(H: HWND);
begin
if FindWindowEx(H, 0, 'TButton', '&Yes') <> 0 then
begin
SendMessage(FindWindowEx(H, 0, 'TButton', '&Yes'), WM_SETTEXT, 0,
Integer(PCHAR('Evet')));
end;
if FindWindowEx(H, 0, 'TButton', '&No') <> 0 then
begin
SendMessage(FindWindowEx(H, 0, 'TButton', '&No'), WM_SETTEXT, 0,
Integer(PCHAR('Hayır')));
end;
if FindWindowEx(H, 0, 'TButton', 'OK') <> 0 then
begin
SendMessage(FindWindowEx(H, 0, 'TButton', 'OK'), WM_SETTEXT, 0,
Integer(PCHAR('Tamam')));
end;
if FindWindowEx(H, 0, 'TButton', 'Cancel') <> 0 then
begin
SendMessage(FindWindowEx(H, 0, 'TButton', 'Cancel'), WM_SETTEXT, 0,
Integer(PCHAR('İptal')));
end;
if FindWindowEx(H, 0, 'TButton', 'Abort') <> 0 then
begin
SendMessage(FindWindowEx(H, 0, 'TButton', 'Abort'), WM_SETTEXT, 0,
Integer(PCHAR('Durdur')));
end;
if FindWindowEx(H, 0, 'TButton', 'Retry') <> 0 then
begin
SendMessage(FindWindowEx(H, 0, 'TButton', 'Retry'), WM_SETTEXT, 0,
Integer(PCHAR('Tekrar')));
end;
if FindWindowEx(H, 0, 'TButton', 'Ignore') <> 0 then
begin
SendMessage(FindWindowEx(H, 0, 'TButton', 'Ignore'), WM_SETTEXT, 0,
Integer(PCHAR('Umursama')));
end;
if FindWindowEx(H, 0, 'TButton', 'All') <> 0 then
begin
SendMessage(FindWindowEx(H, 0, 'TButton', 'All'), WM_SETTEXT, 0,
Integer(PCHAR('Hepsi')));
end;
if FindWindowEx(H, 0, 'TButton', 'N&o to All') <> 0 then
begin
SendMessage(FindWindowEx(H, 0, 'TButton', 'N&o to All'), WM_SETTEXT, 0,
Integer(PCHAR('Tümünü Hayır')));
end;
if FindWindowEx(H, 0, 'TButton', 'Yes To &All') <> 0 then
begin
SendMessage(FindWindowEx(H, 0, 'TButton', 'Yes To &All'), WM_SETTEXT, 0,
Integer(PCHAR('Tümünü Evet')));
end;
if FindWindowEx(H, 0, 'TButton', '&Close') <> 0 then
begin
SendMessage(FindWindowEx(H, 0, 'TButton', '&Close'), WM_SETTEXT, 0,
Integer(PCHAR('Kapat')));
end;
end;
Daha sonra TApplicationEvent nesnesinin OnMessage Eventine.
procedure TfrmMain.ApplicationEventsMessage(var Msg: tagMSG;
var Handled: Boolean);
var
H: HWND;
begin
H := FindWindow('TMessageForm', 'Information');
if H <> 0 then
begin
SendMessage(H, WM_SETTEXT, 0, Integer(PCHAR('Bilgi')));
ConvertToTurkish(H);
exit;
end;
H := FindWindow('TMessageForm', 'Warning');
if H <> 0 then
begin
SendMessage(H, WM_SETTEXT, 0, Integer(PCHAR('Dikkat')));
ConvertToTurkish(H);
exit;
end;
H := FindWindow('TMessageForm', 'Error');
if H <> 0 then
begin
SendMessage(H, WM_SETTEXT, 0, Integer(PCHAR('Hata')));
ConvertToTurkish(H);
exit;
end;
H := FindWindow('TMessageForm', 'Confirm');
if H <> 0 then
begin
SendMessage(H, WM_SETTEXT, 0, Integer(PCHAR('Onay')));
ConvertToTurkish(H);
exit;
end;
end;
Hiç yorum yok:
Yorum Gönder