[ rankez @ 07.12.2006. 11:40 ] @
Koristim Delphi6 i kada promenim jezik sa English (United States) na Serbian (Cyrillic), prilikom bilo kakvog unosa podataka (npr. edit polje) dobijam set nerazumljivih karaktera. Cirilicu na taj nacin dobijam jedino kada u svojstvima forme Font/Charset postavim RUSSIAN_CHARSET. Kada takve podatke unesem u access bazu tada u accessu dobijam set nerazumljivih karaktera. Moja pitanja su:
1. Da li su ovako dobijeni podaci kompatibilni sa drugim aplikacijama koje bi ih potencijalno koristile. Mislim na access bazu koja je kreirana na ovaj nacin?
2. Da li postoji neki univerzalniji nacin da dobijem cirilicu u Delphiu 6 i da li ovaj problem figurise u novijim verzijama Delphija?
[ savkic @ 07.12.2006. 13:14 ] @
> 1. Da li su ovako dobijeni podaci kompatibilni sa drugim aplikacijama koje bi
> ih potencijalno koristile. Mislim na access bazu koja je kreirana na ovaj nacin?
> 2. Da li postoji neki univerzalniji nacin da dobijem cirilicu u Delphiu 6 i da li
> ovaj problem figurise u novijim verzijama Delphija?

Delphi za Win32 nema Unicode kontrole tako da se koristi ANSI string, a jezik se određuje preko dva parametra, charseta i ASCII vrednosti karaktera. Varijante su ti da nastaviš kao do sada ali da vodiš računa o charsetu, da pređeš na Unicode kontrole (TNT biblioteka), da pređeš na Delphi .NET. Kod podešavanja charseta to ne moraš raditi na nivou forme već možeš i na nivou pojedinačne kontrole.
Kompatibilnost tako unetog teksta sa drugim aplikacijama zavisi, ako one isto koriste ANSI string i u njima se mora navesti tačan charset. Ako koriste Unicode, onda se mora uraditi konverzija ansi stringa u Unicode prema kodnoj strani unetog teksta. Access valjda smešta tekst kao Unicode, nedavno je bilo reči o sličnoj stvari, Access baza i unos teksta u Delphi aplikaciji, potraži.
[ rankez @ 07.12.2006. 14:20 ] @
OK, postoji li bilo kakav nacin da Caption svojstvo forme bude ispisano cirilicom u Delphi6?
Ovaj nacin ispisa cirilice radi u svim komponentama i u printanju, samo ne mogu naziv forme da prebacim u cirilicu. Ima li neko resenje?
[ rankez @ 07.12.2006. 14:39 ] @
Tacnije ni u jednom Caption svojstvu (ne samo od forme vec od bilo koje komponente) ne mogu da dobijem cirilicu.
[ morlic @ 07.12.2006. 18:02 ] @
Mora se podesiti u regional settings-u Windows XP sistema podrska za srpsku cirilicu, znaci instalirati Serbian(cyrilic) tastaturu i postaviti isto to za default non unicode programe.

Topla preporuka da radis sa tnt kontrolama:

http://www.tntware.com/delphicontrols/unicode/

Uradi pretragu jos se raspravljalo na ovu temu po forumu
[ savkic @ 07.12.2006. 20:24 ] @
> Tacnije ni u jednom Caption svojstvu (ne samo od forme vec od bilo koje komponente) ne mogu da dobijem cirilicu.

Odakle ti ideja da ne može ni jedan caption? Tamo gde se može podesiti charset može se dobiti i ćirilica, TLabel, TEdit i slično sasvim normalno radi. Za TitleBar važe posebna pravila, ćirilicu možeš dobiti ako podesiš sistemski jezik ili ako sam preuzmeš iscrtavanje.
[ Nemanja Avramović @ 07.12.2006. 21:15 ] @
Ma samo TNT kontrole i teraj. Meni na D6 rade odlično
[ rankez @ 13.12.2006. 15:48 ] @
@morlic
>Mora se podesiti u regional settings-u Windows XP sistema podrska za srpsku cirilicu, znaci instalirati Serbian(cyrilic) tastaturu i postaviti isto to za default non unicode programe.

Kada uradim ovo sto morlic kaze (konkretno mislim na podesavanje za default non unicode programe), imam cirilicu u apsolutno svim komponentama Delphia6 sa setovanjem Fonta na Russian_Charset, kao i u Access tabelama. Instalirao sam i TNT kontrole ali ne radim preko njih nego preko standardnih komponenata tako da mi nije jasan njihov dublji smisao.

Na koji nacin mogu startovanjem programa da promenim tastaturu sa English (default keyboard) na Serbian (cyrilic)? Resenje sa postavljanjem default vrednosti za Serbian (cyrilic) tastaturu u Control panelu mi nije zadovoljavajuce.
[ dogriz @ 15.12.2006. 07:35 ] @
Citat:
rankez:Na koji nacin mogu startovanjem programa da promenim tastaturu sa English (default keyboard) na Serbian (cyrilic)? Resenje sa postavljanjem default vrednosti za Serbian (cyrilic) tastaturu u Control panelu mi nije zadovoljavajuce.


Npr. u OnCreate glavne forme dodaj

Code:

LoadKeyboardLayout(PChar('00000C1A'), KLF_ACTIVATE); // ucitavanje nase kodne stranice - Serbian Cyrilic
                                                                              // 0000081A - Serbian Latin