Russificatie van programma's is een belangrijke zaak, vooral voor gebruikers die geen vreemde talen spreken. Heel vaak vragen gebruikers van Delphi-programma's zich af hoe ze het kunnen russificeren.
instructies:
Stap 1
Het punt is dat de OEM- en ANSI-coderingen (waarin Delphi werkt) niet overeenkomen. Ze hebben verschillende posities van Cyrillische symbolen. ANSI heeft ook tekens met accenten, wat OEM niet heeft. Maar de tweede bevat pseudo-grafische symbolen, die onmisbaar zijn voor het weergeven van tabellen, hoewel hier niet veel vraag naar is. En toch is het vermeldenswaard dat deze tabellen over het algemeen uitwisselbaar zijn - ze hebben dezelfde mogelijkheden voor het weergeven van tekstinformatie.
Stap 2
Er zijn verschillende manieren om het probleem van russificatie op te lossen. De eerste werkt in de OEM-editor. U kunt in eerste instantie delen van de programmatekst voorbereiden die essentieel zijn voor de codetabel in een editor die werkt in de OEM-codering. Een vrij simpele, maar tegelijk effectieve oplossing. Dit geldt in het bijzonder voor het schrijven van lokale hulpprogramma's, waarbij de output van informatie niettemin zeer wordt gevraagd.
Stap 3
Wat betreft de tekortkomingen van deze methode, hier kun je werk aanwijzen buiten de IDE, dat voor velen bekend is, met zijn toeters en bellen die geweldig zijn in het leven, zoals: codering, compilatie, debuggen. En dit alles wordt gezegd, "in één fles." Bovendien, naarmate het project groeit, beginnen zich bepaalde problemen te manifesteren wanneer stringbronnen van derden die zijn gemaakt met ANSI-codering, worden gebruikt.
Stap 4
Als het project geen tekenreeksen bevat die rechtstreeks in de code zijn opgenomen (hard-coded), kunt u alle tekenreeksbronnen naar afzonderlijke modules verplaatsen en ze vervolgens lokaliseren naar de vereiste codering. Gelukkig zit het netwerk vol met hulpprogramma's die de codering van bestanden wijzigen.
Stap 5
Nu over het gebruik van filterprocedures. De Windows API bevat functies waarmee u ANSI- en OEM-coderingen naar elkaar kunt converteren. Dit zijn OemToChar en CharToOem. Ze worden gebruikt om tekst weer te geven met vervanging van fragmenten Writeln ('tekst '); in de volgende fragmenten:
procedure MyWriteln (const S: string);
var
NewStr: tekenreeks;
beginnen
SetLengtn (NewStr, Lengte (S));
CharToOem (Pchar (S), Pchar (NewStr));
Writeln (NewStr);
einde;
MijnWriteln ('tekst');
Stap 6
Wat betreft de nadelen van deze methode, het is de onmogelijkheid om de uitgebreide Write-syntaxis te gebruiken en de toepassingstekst vol te proppen met een oproep om procedures te filteren. Wanneer u een voltooide toepassing met meerdere aanroepen om te schrijven moet Russificeren, wordt dit een serieus probleem.
Stap 7
Last but not least, wijzig de consolecodepagina met behulp van de Windows API. Deze methode is trouwens gedocumenteerd. Het enige nadeel is dat de functie niet werkt in Windows 95 en 98. Als de toepassing echter uitsluitend op Windows NT draait, kunt u in dit geval de functie SetConsoleOutputCP (866) gebruiken.