ShortDayNames

5 отговора 112 прегледа
#1

ShortDayNames

Коя функция пълни този масив ShortDayNames[1..7] of string
Този масив съдържа дните от седмицата според локалните настройки на машината. Интересува ме как се инициализира според локалните настройки.
Същото ме интересува и за LongMonthNames[1..12] of String в който се съдържат имената на месеците.

Отговор
в отговор на turtle #2

Re: ShortDayNames

За какво го има тоя сорс, като не го гледате бе хора...
Това е част от SysUtils:

for I := 1 to 7 do
begin
Day := (I + 5) mod 7;
ShortDayNames[ i ] := LocalGetLocaleStr(LOCALE_SABBREVDAYNAME1 + Day,
I - Low(DefShortDayNames), DefShortDayNames);
LongDayNames[ i ] := LocalGetLocaleStr(LOCALE_SDAYNAME1 + Day,
I - Low(DefLongDayNames), DefLongDayNames);
end;

За какво ти трябва функцията, която пълни масивите? Тези масиви са сложени за да ползваш тях, а не да се ровиш по API-то...

Ако не успееш, опитай пак. Ако пак не успееш спри да се правиш на глупак!

ПП Ей, ама все забравям, че [ i ] не трябва да се поства в сорсовете тука :)

Редактирано от andrew_nikoloff на

Отговор
в отговор на andrew_nikoloff #3

Re: ShortDayNames

Трябва ми защото клетките на моя календар са тесни и не искам да ги правя широки(Правя си компонент календар като ползвам сорс от torry).Като пример: понеделник изисква доста широка клетка на грида. Аз искам да се изобразява само първата буква.И понеже този компонент може да се използва например на машини с различни Local Settings трябва да пипна тия масиви за да може да се изобразява първата буква само на деня от седмицата на съответната локация.Ако става въпрос само за BG лесна работа.
Например за USA локация трябва да се изобразява :
s m t w t f s

а за BG локация:
п в с ч п с н

и т.н.

Отговор
в отговор на turtle #4

Re: ShortDayNames

Аз продължавам да не разбирам защо са ти системните функции?! Какъв е проблема да си изкопираш само първите 1, 2 или колкото ти побере клетката букви и с какво викането на GetLocaleStr ще направи по-различни нещата (освен да те затрудни теб, но това не го броя)?

Ако не успееш, опитай пак. Ако пак не успееш спри да се правиш на глупак!
Отговор
в отговор на turtle #5

Re: ShortDayNames

Аз съм го пробвал с api-то за кратките имена и доколкото си спомням за бг. не се получи. Ако го правиш само за бг. можеш да си ги изрежеш сам до първия или третия символ
Венцислав Александрийски

Отговор
в отговор на andrew_nikoloff #6

Re: ShortDayNames

Работат стана по този начин:
var
index: integer;
DayLetter: array[1..7] of string[1];

begin
for index := 1 to 7 do begin
DayLetter[index] := ShortDayNames[index];
end;

След което вместо ShortDayNames иизползвам DayLetter.
Като се промени локацията всичко е ОК , т.е. изписват се първите букви на новата локация.

Благодаря за съветите.

Отговор