Angielski System i Polskie znaki

Angielski System i Polskie znaki
AB
  • Rejestracja: dni
  • Ostatnio: dni
0

Mam bardzo duży problem i nie wiem jak go rozwiązać.
Aplikacja którą napisałem dziwnie zachowuje się na Anglo języcznym systemie operacynym Win2000 serwer czyli po prostu brak jest Polskich znaków.
Ustawienia regionalne w systemie są ustawione na Polish klawiatura również.

Co powinienem dopisać do programu aby były polskie znaki ???
Dodam ponadto , że po odpaleniu programu wszystkie opisy zaszyte w programie nie mają polskich znaków a pisząc w TEdit polskie znaki są ale jak je zapisze do pliku to Polskie znaki niby są ale zapisywane jako krzaczki !!!

Pomóżcie co należy zrobić !!!

  • Rejestracja: dni
  • Ostatnio: dni
0
abj napisał(a)

Dodam ponadto , że po odpaleniu programu wszystkie opisy zaszyte w programie nie mają polskich znaków a pisząc w TEdit polskie znaki są ale jak je zapisze do pliku to Polskie znaki niby są ale zapisywane jako krzaczki

Skąd wiesz że te kszaczki są polskie. :-D

W xp jest możliwe ustawienie domyślnego języka dla okien nie obsługujących unicode - w 2000 pewnie też,
poszukaj w panelu sterow.
W 98 zmnieniasz CP wszystkich czcionek w ustawieniach pulpitu.

J1
  • Rejestracja: dni
  • Ostatnio: dni
0

Z tego co zrozumiałem chodzi ci o to ze nie masz polskich znkaków w delphi. Język masz ustawiony na polski programisty?? jak tak to spróbuj jeszce w rejestrze, lub tez moze chodzic o kodowanie znaków.

AB
  • Rejestracja: dni
  • Ostatnio: dni
0

Problem jest bardziej ciężki.

Serwery stoją poza granicami kraju a użytkownicy logują się przez pulpit zdalny więc mogę sobie pogrzebać po jajach a nie w rejestrze gdzie każdy USER ma zerowe uprawnienia.

Ta sytuacja jest bardzo wkurzająca ponieważ :
Aplikacja działa poprawnie po odpaleniu a np po odpaleniu za 1 lub kilka godzin nie ! Ponadto aplikacja która była odpalona wcześniej i działała poprawnie działa bez zarzutu a nowe odpalenie ma kiche !!! Czyli brak polskich znaków. Tyczy to się każdego oprogramowania napisanego w delphi.
Bardzo często widzę , że do serwera loguje się Administrator z innymi parametrami językowymi i klawiaturowymi i mam wrażenie , że cały system ustawienia lokalne nie są brane pod uwagę tylko parametry Administratora.

Powiem tylko tyle że oprogramowanie MS Office działa ok! Więc wina pewnie leży po stronie DELPHI tylko gdzie ???

Więc pytam się fachowców co należy dopisać do kodu programu w delphi aby niezależnie co się dzieje w systemie były zawsze Polskie Znaki.

  • Rejestracja: dni
  • Ostatnio: dni
0

Najlepiej to zrobić aplikację w unicode.

Nie robię w Delphi, ale powinna tam być opcja określania języka i typu aplikacji (ansi, czy unicode) - należy ustawić code page polski, a nie neutral, czy default lub coś w tym stylu.

Zasoby zawierające teksty muszą mieć określony język (teksty w menu, etykiety conrtols, resource strings, itp.), jeśli Delphi tego nie zrobi to jest użyty Neutral, czyli domyślny dla systemu (albo usera).

Jest funkcja SetThreadLocale - sprawdź...

AB
  • Rejestracja: dni
  • Ostatnio: dni
0
fr napisał(a)

Najlepiej to zrobić aplikację w unicode.

Nie robię w Delphi, ale powinna tam być opcja określania języka i typu aplikacji (ansi, czy unicode) - należy ustawić code page polski, a nie neutral, czy default lub coś w tym stylu.

Zasoby zawierające teksty muszą mieć określony język (teksty w menu, etykiety conrtols, resource strings, itp.), jeśli Delphi tego nie zrobi to jest użyty Neutral, czyli domyślny dla systemu (albo usera).

Jest funkcja SetThreadLocale - sprawdź...

Dzięki Fr !!!
Sprawdzę w domku czy jest jakaś opcja w Delphi.

Szkoda , że ludzie którzy piszą na codzień w delphi nie włączają sią aby rozwiązać problem tylko ludzie którzy niewiele mają z delphi do czynienia :-)
Programowanie to jedno a znajomość systemu operacynego to drugie.

Może jednak ktoś kto zna dobrze delphi podpowie gdzie należy te opcje ustawić ?

chesti
  • Rejestracja: dni
  • Ostatnio: dni
0

Użytwaj TNTControls. I zamieniaj wszystkie teksty na Unicode i upychaj do TNTControls jako WideStringi :P

AB
  • Rejestracja: dni
  • Ostatnio: dni
0
fr napisał(a)

Jest funkcja SetThreadLocale - sprawdź...

Tak i to jest rozwiązanie mojego problemu !!!
Czyli GetThreadLocale i SetThreadLocale

Jeszcze nie dokońca sprawdziłem ale napisałem prostą aplikację która sprawdza jake są Locale i okazuje się , że proces pobrał lokale 1030 a nie Polskie 1045 mimo , że są ustawione wszystkie parametry na Polskie łącznie z klawiaturą i formatem finansowym.
Mam nadzieje , że jak wstawie taki kod :

Kopiuj
if GetThreadLocale<>1045 then SetThreadLocale(1045);

To wszystko będzie ok

Pozdrawiam ABJ.

Po sprawdzeniu powyższy kod naprawia błąd :-)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.