Polskie znaki na Win2003

0

Witam

Mam problem z Polskimi znakami w aplikacji. po prostu są jakieś krzaczki w systemie win 2003 server
W pozostałych systemach czyli win2k i win2k server i XP wszystko jest ok a na Win2003 server jest już kicha czy może ktoś wie w czym jest problem ?
user image

Z góry dzięki za podpowiedź

0

Na moje oko, to brakuje czcionki z prawidłowymi znakami.

0

Używam Font.Name = 'MS Sans Serif'
Myślisz , że tej czcionki nie ma w Win2003 server ?

0

Czcionka może i mieć, ale pytanie, jaki włączyłeś zestaw znaków:

Font.Charset:=DEFAULT_CHARSET;
//lub EASTEUROPE_CHARSET
0
Szczawik napisał(a)

Czcionka może i mieć, ale pytanie, jaki włączyłeś zestaw znaków:

Font.Charset:=DEFAULT_CHARSET;
//lub EASTEUROPE_CHARSET

W całym projekcie jest :
Font.Charset = DEFAULT_CHARSET
przykład 1 labelka :

           object Label1: TLabel
              Left = 4
              Top = 17
              Width = 48
              Height = 13
              Caption = 'Nr klienta:'
              Font.Charset = DEFAULT_CHARSET
              Font.Color = clWindowText
              Font.Height = -11
              Font.Name = 'MS Sans Serif'
              Font.Style = []
              ParentFont = False
            end

Napisałem program testowy i tak szczerze mówiąc nie wiem co takiego zrobił Microsoft.
testuję ciąg znaków : ąćęłńóśżź = ĄĆĘŁŃÓŚŻŹ
Na pewno czcionka w systemie jest !!!

user image
Na załaczonym obrazku w memo :

  memo1.Lines.Add(edit1.Text);
  memo1.Lines.Add(uppercase(edit1.Text));
  memo1.Lines.Add('');
  memo1.Lines.Add(label1.caption);
  memo1.Lines.Add(uppercase(label1.caption));
  memo1.Lines.Add('');
  memo1.Lines.Add(edit1.Text);
  memo1.Lines.Add(ansiuppercase(edit1.Text));
  memo1.Lines.Add('');
  memo1.Lines.Add(label1.caption);
  memo1.Lines.Add(ansiuppercase(label1.caption));
  memo1.Lines.Add('');
  memo1.Lines.Add(finddialog1.FindText);

Niestety działa to dramatycznie !!!

Może coś należy ustawić w kompilatorze Delphi 7 bo niestety np. FindDialog jak wpiszemy polskie znaki to zwraca nam bez polskich znaków ! ostatnia linijka w memo

Może ktoś wie co z tym fantem zrobić ?

No właśnie dotarłem co jest przyczyną braku Polskich znaków w Win 2003 Server.
Przyczyną jest UNICODE
Wszystkie komponenty w Delphi 7 są pisane w Ansi a nie Unicode.
Jedynie Tlabel obsługuje UNICODE a TlistView TTreeView Tbutton TFindDialog nie.

Potrzebuję komponent do D7 TlistView TTreeView Tbutton w UNICODE
TFindDialog znalazłem komponent.

0

Należy włączyć w systemie aby używał polskiego języka dla programów nie wykorzystujących Unicode. Jest taka opcja w "Opcjach regionalnych i językowych". I to nie jest tylko sprawa akurat Windows 2003, ale każdego nie-polskiego systemu.

Albo komponenty TNTControls, używające Unicode, albo poczekanie na następne Delphi, które ma wreszcie Unicode do VCL wprowadzić standardowo.

0
Ktos napisał(a)

Należy włączyć w systemie aby używał polskiego języka dla programów nie wykorzystujących Unicode. Jest taka opcja w "Opcjach regionalnych i językowych". I to nie jest tylko sprawa akurat Windows 2003, ale każdego nie-polskiego systemu.

user image
W win2003 server jako user nie mam tej zakładki a servery stoją poza granicami kraju dlatego są w języku angielskim. Patrząc na to z innej strony to jednak wyświetlane są polskie znaki w TMemo TEdit i TLabel więc ustawienia tam muszą być ustwione . Brak polskich znaków jest w TListView, TTreeView, TFindDialog, TOpenDialog, TButton
Instrukcja dla Win 2000 server : http://www.microsoft.com/globaldev/handson/user/2kintlsupp.mspx Tu wszystko działa OK !
Instrukcja dla Win 2003 server : http://www.microsoft.com/globaldev/handson/user/xpintlsupp.mspx TU NIC NIE DZIAŁA !!!
http://blogs.msdn.com/michkap/articles/279998.aspx

user image
To dziwne ale testując dalej server zaglądam w tekst przycisku i wszystko jest ok tylko źle jest wyświetlane.

Ktos napisał(a)

Albo komponenty TNTControls, używające Unicode, albo poczekanie na następne Delphi, które ma wreszcie Unicode do VCL wprowadzić standardowo.

Tak widziałem ten komponent ale ...
Nie chce pisać całego projektu od początku. Zwłaszcza , że od 3 września przechodzimy na Win 2003 server a projekt był pisany przez prawie rok i jest olbrzymi.

Może wiesz gdzie znajde rozwiązanie ?
Napisałem test :

procedure TForm1.Button1Click(Sender: TObject);
var
W:array[0..255]of wchar;
begin
  stringtowidechar(edit1.Text,w,length(edit1.Text)+1);
  SetWindowTextW(button1.Handle,w);
end;

Niestety też nie pomógł ale jest lepiej bo nie ma krzaczków tylko zamiast polskich znaków
ąćęłńóśżź = ĄĆĘŁŃÓŚŻŹ
mamy coś takiego
acelnószz = ACELNÓSZZ

Może ktoś ma jakiś pomysł aby jednak na przycisku wyświetliły się Polskie znaki ?

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