Programmide venestamine on oluline küsimus, eriti nende kasutajate jaoks, kes ei oska võõrkeeli. Üsna sageli mõtlevad Delphi programmi kasutajad, kuidas seda venestada.
Juhised
Samm 1
Asi on selles, et OEM ja ANSI kodeeringud (milles Delphi töötab) ei ühti. Neil on kirillitsa sümbolite erinevad positsioonid. ANSI-l on ka täpitähed, mida OEM-il pole. Kuid teine sisaldab pseudograafilisi sümboleid, mis on tabelite kuvamiseks hädavajalikud, kuigi see pole eriti nõudlik. Ja siiski väärib märkimist, et üldiselt on need tabelid omavahel asendatavad - neil on tekstiteabe kuvamiseks samad võimalused.
2. samm
Venestamise probleemi lahendamiseks on mitu võimalust. Esimene töötab OEM-redaktoris. Esialgu saate programmiteksti kriitilise osa kooditabeli jaoks ette valmistada redaktoris, mis töötab OEM-kodeeringus. Üsna lihtne, kuid samas tõhus lahendus. See kehtib eriti kohalike utiliitide kirjutamise kohta, kus teabe väljastamine on siiski väga nõutav.
3. samm
Mis puudutab selle meetodi puudujääke, siis siin saate määrata töö, mis on väljaspool IDE-d, mis on paljudele tuttav, oma kellade ja viledega, mis on elus suurepärased, näiteks: kodeerimine, kompileerimine, silumine. Ja seda kõike öeldakse "ühes pudelis". Lisaks hakkavad projekti kasvades ilmnema teatud raskused, kui hakatakse kasutama ANSI-kodeeringut kasutades loodud kolmanda osapoole stringiressursse.
4. samm
Kui projekt ei sisalda stringi, mis on otseselt koodis (kõvakoodiga), saate kõik stringi ressursid teisaldada eraldi moodulitesse, lokaliseerides need nõutavasse kodeeringusse. Õnneks on võrk täis utiliite, mis muudavad failide kodeeringut.
5. samm
Nüüd filtreerimisprotseduuride kasutamise kohta. Windowsi API sisaldab funktsioone, mis aitavad teil teisendada ANSI ja OEM kodeeringuid. Need on OemToChar ja CharToOem. Neid kasutatakse teksti kuvamiseks fragmentide asendamisega Writeln (‘tekst’); järgmistesse fragmentidesse:
protseduur MyWriteln (const S: string);
var
NewStr: string;
algama
SetLengtn (NewStr, pikkus (S));
CharToOem (PChar (S), PChar (NewStr));
Writeln (NewStr);
lõpp;
MyWriteln (‘tekst’);
6. samm
Mis puutub selle meetodi puudustesse, siis on võimatu kasutada laiendatud kirjutamise süntaksit ja segamini ajada rakenduse teksti kutsega filtreerida protseduure. Kui peate viimistlema valmis rakenduse koos mitme kirjutamiskutsega, muutub see tõsiseks probleemiks.
7. samm
Lõpuks, muutke konsooli koodilehte Windowsi API abil. See meetod on muide dokumenteeritud. Ainus konks on see, et see funktsioon ei tööta Windows 95 ja 98 operatsioonisüsteemides. Kuigi kui rakendus töötab ainult Windows NT-s, saate sel juhul kasutada funktsiooni SetConsoleOutputCP (866).