Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Problem sa šđ u "Regional i Language"

[es] :: Pascal / Delphi / Kylix :: Problem sa šđ u "Regional i Language"

[ Pregleda: 4057 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Brkic

Član broj: 55360
Poruke: 1222
*.dynamic.sbb.rs.



Profil

icon Problem sa šđ u "Regional i Language"27.02.2010. u 19:45 - pre 172 meseci
Problem je sledeći...
program automacki prebaci na Latiničnu tastaturu ako je neka druga...ali problem nastaje ako je u "Regional i Language" u Win XP u 1 kartici-"Regional options" u prvom delu "Standards and formats" promenjeno na Ćirilicu sa Latinice, onda piše Latinicom a dane koje pretvori iz datuma izbaci u nekim hiroglifima i još neke sitnije probleme sa šđčć napravi. Kada vratim nazan da Latinicu sve je OK.
Našao sam jednu komponentu koja menja sve živo u "Regional options" sem toga što meni treba.

Kako rešiti ovaj problem, da uvek u programu bude latinica i ispravno napiše dane kada ih pretvori iz datuma?



[Ovu poruku je menjao Brkic dana 28.02.2010. u 09:33 GMT+1]
 
Odgovor na temu

Brkic

Član broj: 55360
Poruke: 1222
*.dynamic.sbb.rs.



Profil

icon Re: Problem sa šđ u "Regional i Language"28.02.2010. u 08:32 - pre 172 meseci
Niko nikada nije naišao na ovakav problem ??
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Problem sa šđ u "Regional i Language"28.02.2010. u 17:08 - pre 172 meseci
> kartici-"Regional options" u prvom delu "Standards and formats" promenjeno na Ćirilicu sa Latinice, onda piše Latinicom a dane koje pretvori iz
> datuma izbaci u nekim hiroglifima i još neke sitnije probleme sa šđčć napravi.
> Kako rešiti ovaj problem, da uvek u programu bude latinica i ispravno napiše dane kada ih pretvori iz datuma?

Nisam shvatio šta ti je problem, razjasni malo podrobnije.
 
Odgovor na temu

Brkic

Član broj: 55360
Poruke: 1222
*.dynamic.sbb.rs.



Profil

icon Re: Problem sa šđ u "Regional i Language"28.02.2010. u 22:44 - pre 172 meseci
Problem je sledeći...
kada se prebaci navedena kartica u Win XP-u sa latinice u ćirilicu onda windows kada se klikne na sat u donjem desnom ćošku dane ispisuje ćirilicom "sreda" a kada je latinica onda dane ispisuje latinicom. I tu nastaje problem, kada je ćirilica tamo postavljena, u programu iz datuma 15.02.2010 umesto da izvuče ime dana "sreda" ili "sreda" program izbaci neke hiroglife (to se nekako i može srediti u programu) ali i sva slova ćčšđ iz baze isčita kao ćžšđ. A dok tamo stoji na latinici sve radi OK, i kada vratim sa ćirilice na latinicu opet radi OK stim da u bazi ostanu dani u hiroglifama koji su uneti u ćirilici. Trebalo mi 2 dana da otkrijem u čemu je caka.

Problem je što korisniku klinac stalno nešto petlja po Windows-u a i on sam pa ispada da program trokira.

Mislio sam ako se nekako može to definisati u programu bez obzira na win.
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Problem sa šđ u "Regional i Language"01.03.2010. u 02:13 - pre 172 meseci
> I tu nastaje problem, kada je ćirilica tamo postavljena, u programu iz datuma 15.02.2010 umesto da izvuče ime dana "sreda" ili "sreda" program
> izbaci neke hiroglife (to se nekako i može srediti u programu) ali i sva slova ćčšđ iz baze isčita kao ćžšđ.

Onda to izvlačenje, formiranje, prikazivanje ili smeštanje radiš pogrešno.

Evo ti jednostavan primer, otpočni novi projekat, na formu postavi jedan label (promeni mu font na Arial i charset na RUSSIAN_CHARSET) i jedan button i u OnClicku buttona upiši:

Code:

var
  Temp: string;
begin
  DateTimeToString(Temp, 'dddd, dd/mm/yyyy', Now);
  Label1.Caption := Temp;
end;


Dobićeš normalnu ćirilicu.

> radi OK stim da u bazi ostanu dani u hiroglifama koji su uneti u ćirilici.

Zašto u bazu uopšte smeštaš datum kao tekst, smesti ih kao datum a prilikom prikazivanja ga formatiraj po potrebi.

> Mislio sam ako se nekako može to definisati u programu bez obzira na win.

Da program koristi ista podešavanja? Može, pogledaj ShortDayNames, ShortDayFormat...
 
Odgovor na temu

Brkic

Član broj: 55360
Poruke: 1222
*.dynamic.sbb.rs.



Profil

icon Re: Problem sa šđ u "Regional i Language"01.03.2010. u 14:58 - pre 172 meseci
Datum u bazi definisem kao datum a ime dana kao string,

za dobijanje imena dana iz datuma koristim FormatDateTime('dddd',ulDatRes.Date);

koristim TNT komponente sa Palatino Linotype fontom i Central European script.

evo problema u slikama.

Mislio sam ili da se nekako definiše u programu da radi samo sa latinicom ili da iz programa mogu promenuti podešavanja iz Regional Options-a.


[Ovu poruku je menjao Brkic dana 01.03.2010. u 16:10 GMT+1]
Prikačeni fajlovi
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Problem sa šđ u "Regional i Language"01.03.2010. u 16:13 - pre 172 meseci
> Datum u bazi definisem kao datum a ime dana kao string,

Kao što rekoh ne vidim svrhu da čuvaš dan u bazi kao string, dovoljan je datum iz koga kasnije možeš dobiti naziv dana.

> koristim TNT komponente sa Palatino Linotype fontom i Central European script.

Ne znam taj font i da li ima sve znakove, u svakom slučaju probaj sa Arial. Ako već koristiš Unicode komponente onda moraš prosleđivati i ispravan Unicode string, što verovatno znači da moraš sam uraditi konverziju iz ćirilice u unicode.

Evo funkcije:
Code:


function AnsiStringToUnicode(const ACodePage: Integer; ASource: PChar; const ALen: Integer; ADest: PWideChar): PWideChar;
begin
  if ALen > 0 then
    ADest[MultiByteToWideChar(ACodePage, 0, ASource, ALen, ADest, ALen)] := #0;

  Result := ADest;
end;




> Mislio sam ili da se nekako definiše u programu da radi samo sa latinicom ili da

Napisao sam ti kako da forsiraš upotrebu samo latiničnih naziva, a ako hoćeš da potpuno zabraniš unos ćiriličnih znakova, možeš raditi neko filtiranje u edit kontrolama.

> iz programa mogu promenuti podešavanja iz Regional Options-a.

Program ne bi trebalo da menja sistemska podešavanja.

 
Odgovor na temu

Brkic

Član broj: 55360
Poruke: 1222
*.dynamic.isp.telekom.rs.



Profil

icon Re: Problem sa šđ u "Regional i Language"01.03.2010. u 18:53 - pre 172 meseci
Probao sam sa drugim fontom i isto,
stavio običan ComboBox i u njemu radi OK i kada je latinica i ćirilica. Znači problem je u TNT componenti.

u "neispravno2" ime dana vadim sa FormatDateTime('dddd',ulDatRes.Date) i ubacujem u "showmessage" i ispisuje te hiroglife, zašto ne ispiše ime dana onda ćirilicom ? Isti je postupak u "ispravno2" i tu lepo radi ? Tu nemama šta da promenim.
Code:

MessageDlg ('da li je ispravno - '+FormatDateTime('dddd',ulDatRes.Date) +' - ??', mtInformation,[mbNo, mbYes],0,dckScreen,mbNo) 



[Ovu poruku je menjao Brkic dana 01.03.2010. u 21:44 GMT+1]
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Problem sa šđ u "Regional i Language"01.03.2010. u 21:56 - pre 172 meseci
> stavio običan ComboBox i u njemu radi OK i kada je latinica i ćirilica. Znači problem je u TNT componenti.

TNT controle, provereno u bezbroj situacija, rade sasvim dobro, problem je u tvom kodu.

> u "neispravno2" ime dana vadim sa FormatDateTime('dddd',ulDatRes.Date) i ubacujem u "showmessage" i ispisuje te hiroglife, zašto ne
> ispiše ime dana onda ćirilicom ? Isti je postupak u "ispravno2" i tu lepo radi ? Tu nemama šta da promenim.

ShowMessage i MessageDlg koriste default charset i font, ili moraš sam napraviti odgovarajući dijalog koji će koristiti ispravan font i charset ili možeš koristiti unicode tekst i npr. WideShowMessage ili API poziv MessageBoxW.
 
Odgovor na temu

Brkic

Član broj: 55360
Poruke: 1222
*.dynamic.sbb.rs.



Profil

icon Re: Problem sa šđ u "Regional i Language"01.03.2010. u 22:49 - pre 172 meseci
Ok, hvala, probaću.
 
Odgovor na temu

tkaranovic
Tomislav Karanović
Beograd

Član broj: 220507
Poruke: 307



+18 Profil

icon Re: Problem sa šđ u "Regional i Language"02.03.2010. u 03:17 - pre 172 meseci
Da bi program, rađen sa Delphijem koji ne radi sa unikodom nego sa kodnim stranama, mogao da prikaže (u menijima, comboboxevima, showmessage ...) drugačiju kodnu stranu od podešavanja u win mora se u projektnom fajlu (ekstenzije dpr) promeniti screen fontovi pre Application.Initialize; Evo primer, koji je složen samo kao primer:
Code (delphi):

begin //program.dpr fajl
 ...
 if Pismo = latinica then begin
  Screen.MenuFont.Charset := EASTEUROPE_CHARSET;
  Screen.IconFont.Charset := EASTEUROPE_CHARSET;
  Screen.HintFont.Charset := EASTEUROPE_CHARSET;
 end else begin
  Screen.MenuFont.Charset := RUSSIAN_CHARSET;
  Screen.IconFont.Charset := RUSSIAN_CHARSET;
  Screen.HintFont.Charset := RUSSIAN_CHARSET;
 end;
 Application.Initialize;
 ...
 

Kodna strana se ne može menjati u toku izvršavanja programa (engleski: runtime) nego se mora program ponovo startovati sa drugačijom kodnom stranom, bez obzira šta je u reginalnim podešavanjima. Ne mogu sve vcl komponente da prikažu, različito pismo od reginalnih podešavanja, ali većina može.

Inače sam napisao "Delphi koji ne radi sa unikodom" jer je clx koncepcija bila neki surogat...
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Problem sa šđ u "Regional i Language"

[ Pregleda: 4057 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.