Delphi, oklepaji in slovenska tipkovnica

Vse drugo, kar ne spada v nobeno zgornjo kategorijo.
Odgovori
G16
Prispevkov: 462
Pridružen: 11.02.2005 21:54:48

Delphi, oklepaji in slovenska tipkovnica

Odgovor Napisal/-a G16 » 24.04.2014 01:44:37

Hoj.

Vsakič ko sem nanovo instaliral Delphi (7), se je pojavil problem z oglatimi oklepaji.
Reštiev sem našel takorekoč v "naftalinu" - na stari spletni strani je bil en članek, kako odpraviti problem z oglatimi oklepaji. Da pa bi komu olajšal iskanje, sem se odločil, da članek prilimam tu.

Primer je narejen za Delphi 5 - zamenjaj številko z verzijo Delphija.
gandalf (03.08.2001 ) napisal/-a: Članek predstavlja odgovore na nekaj najbolj osnovnih problemov s katerimi se sreča vsakdo slej ali prej. Namenjen je začetnikom, ki še niso dovolj izkušeni, da bi sami lahko našli rešitve na opisane probleme. Marsikdo je prišel sam do zapisanih rešitev po dolgih urah iskanja napake. Namen članka je prihranit ta čas.


Kako odpraviti težave z tipkami [,],{ in } v IDE pri slovenski tipkovnici?

Delphi ima kot privzeto možnost vključene določene bližnjice, ki so dostopne preko kombinacije tipk Ctrl+Alt+črka. Vendar tipka AltGr na slovenski tipkovnici predstavlja v IDE prav kombinacijo Ctrl+Alt. Tako se med programiranjem, ko poskušamo recimo priti do znaka { za začetek komentarja pojavi seznam ťbreakpointovŤ.
Ena od rešitev je da pritisnete poleg AltGr+B še Shift tako, da potem dobite AltGr+Shift+B. Po mojem mnenju je to dokaj nepraktična rešitev saj zahteva od programerja še dodatne pritiske.
Druga rešitev h kateri se marsikdo zateče je da si nastavijo angleški razpored tipk na tipkovnici saj pri programiranju ne večinoma ne potrebujejo slovenskih znakov. Kasneje pa z preklopom tipkovnic (Levi Alt+Shift) izberejo slovensko, ko potrebujejo šumnike.
Uradna rešitev, ki je opisana v tudi v datoteki ReadMe.Txt je pa izklop bližnjic v IDE. Rešitev zahteva nastavitev ključa "NoCtrlAltKeys" v veji "HKEY_CURRENT_USER\SOFTWARE\Borland\Delphi\5.0\Editor\Options" na 1.
Prenesete si pa lahko tudi NoCtrlKeys.reg datoteko, ki bo to opravila namesto vas.


Nastavitev šumnikov v napisih v komponentah (TEdit,TButton, …)

Nastavite, da bo nabor znakov srednjeevropski (slika). Če boste nastavili nabor znakov že takoj na začetku na TForm bodo vse komponente, ki uporabljajo lastnost Font prevzele nastavljene vrednosti TForm.



Regionalne nastavitve

Naslednji izvor problemov se ponavadi prikaže, ko program prenesemo na drug računalnik, ki ima drugo jezikovno različico Oken od naše. Nenadoma pride do napak pri pretvorbi nizov v števila (StrToFloat), da pač ť12.5Ť ni mogoče pretvorit v števil. Toda na razvojnem računalniku je vse delovalo. Zakaj gre? Problem je v piki med 12 in 5. Na našem sistemu je pika decimalni simbol (decimal separator) medtem, ko je na drugem to verjetno vejica. Kakšne so vaše lokalne nastavitve si lahko pogledat v Control Panel|Regional Settings|Numbers/Nadzorna plošča|Področne nastavitve. Do podobnih težav lahko pride tudi pri uri in datumu. Različni sistemi različno zapisujejo ure (12:30,3pm,…) in datume (12.3,13.marec,12/4/01,..) Zadeva ni tako kritična kakor se zdi samo pravilno si morate nastavit okolje znotraj svojega programa. Prav tako morate paziti v kakšni obliki vam vračajo funkcije (ShortDate,LongDate,…) datum.
Seznam vseh spremenljivk. Dodaten opis vsake si lahko preberete v Delphi Pomoči pod poglavjem Currency and date/time formatting variables.


var CurrencyString: string;
var CurrencyFormat: Byte;
var NegCurrFormat: Byte;
var ThousandSeparator: Char;
var DecimalSeparator: Char;
var CurrencyDecimals: Byte;
var DateSeparator: Char;
var ShortDateFormat: string;
var LongDateFormat: string;
var TimeSeparator: Char;
var TimeAMString: string;
var TimePMString: string;
var ShortTimeFormat: string;

var LongTimeFormat: string;
var ShortMonthNames: array[1..12] of string;
var LongMonthNames: array[1..12] of string;
var ShortDayNames: array[1..7] of string;
var LongDayNames: array[1..7] of string;

var SysLocale: TSysLocale;
var EraNames: array[1..7] of string;
var EraYearOffsets: array[1..7] of Integer;
var TwoDigitYearCenturyWindow: Word = 50;

var TListSeparator: Char;


Seveda vam ni potrebno nastaviti vseh. Samo tiste, ki so pomembne za vaš program. Najboljše, da jih nastavite v dogodku TForm.OnCreate

Odgovori