PDA

View Full Version : سویچ بین Hindi و context در numeral style



rezamim
شنبه 13 تیر 1383, 10:02 صبح
سلام
من میخواستم وقتی که برنامه ام اجرا میشه numeric style به Hindi تبدیل بشه و موقع خروج از برنامه به Context . کسی میدونه چطر میشه اینکار رو کرد . همینطور که همه میدونن numeric style در control panel قسمت regional setting قسمت number قرار داره
ممنون از راهنماییهاتون

binyaz2003
شنبه 13 تیر 1383, 17:26 عصر
فکر نکنم از داخل برنامه بشه اینکارو کرد!

Mohammad_Mnt
شنبه 13 تیر 1383, 18:55 عصر
فکر کنم یکی از فانکشن های Focus (http://www.fastwrite.com) این کار رو می کرد

binyaz2003
شنبه 13 تیر 1383, 21:00 عصر
سلام آقا محمد بابا چی شدی؟
انگار کلی پیر شدین؟

Mohammad_Mnt
شنبه 13 تیر 1383, 23:58 عصر
نظامه دیگه ، آدم رو پیر می کنه :P

kia1349
یک شنبه 14 تیر 1383, 06:33 صبح
محمد جان سلام کلی از دیدنت خوشحال شدم (هر روز هم که یه آواتور جدید داری)
آقای معمار cd را برایتان ارسال کردم ولی برگشت خورده
روش نوشته که بعلت عدم مراجعه برگشت خورده :shock:

rezamim
یک شنبه 14 تیر 1383, 09:03 صبح
سلام
یعنی چی بعلت عدم مراجعه؟ این پست هم از وقتی ایمیل راه افتاده فکر کنم بهتره فقط دفترچه کنکور بفروشه و کارت پستال .

اگه میشه به سپوال من هم یکی جواب بده

binyaz2003
یک شنبه 14 تیر 1383, 16:27 عصر
اگه میشه به سپوال من هم یکی جواب بده
من تا حلا نه دیدم نه شنیدم :?:

Mohammad_Mnt
یک شنبه 14 تیر 1383, 17:16 عصر
فکر کنم من جواب دادم :?

rezamim
چهارشنبه 17 تیر 1383, 11:51 صبح
دوست عزیز
متاسفانه هر چه جستجو کردم نتوانستم تابعی را که گفته بودید پیدا کنم .
آیا میتوانید بیشتر راهنماپی کنید؟

rezamim
چهارشنبه 14 مرداد 1383, 11:54 صبح
:roll: :?: :?: :?:

binyaz2003
چهارشنبه 14 مرداد 1383, 17:30 عصر
اگر focus dll رو دانلود کرده باشید از آدرس www.fastwrite.com یک فایل doc همراهش داره که تمام تابع هاش و توضیح داده البته خواندنش یک ساعتی طول می کشه آیا شما اون رو خوندید ؟
جدیدا هم چند تابع جدید بهش اضافه کردند

naderigh
چهارشنبه 14 اردیبهشت 1384, 08:03 صبح
تاکنون راهی پیدا نکردید برای تبدیل اعداد به فارسی البته بدون فونت هایی که عدد فارسی هستند

rezamim
چهارشنبه 14 اردیبهشت 1384, 21:38 عصر
نه

naderigh
پنج شنبه 15 اردیبهشت 1384, 10:03 صبح
با تشکر
حالا بفرماپید چگونه میشود از داخل فاکس فایل intc.cpl را اجرا کرد

rezamim
جمعه 16 اردیبهشت 1384, 19:59 عصر
بعنوان نمونه :


?runCtrlPanelApplet()
function runCtrlPanelApplet
lparameter tcApplet, tcPage
local lcCmd,lcPage,lnParamcount,lcApplet
lnParamCount = pcount()
do case
case lnParamCount = 0
lcApplet = [appwiz.cpl] && by default we run Add/Remove Programs
lcPage = [0]
case lnParamCount = 1
if file(tcApplet) && check the file existance
lcApplet =alltr(tcApplet)
lcPage = [0]
else
return .null.
endif
otherwise
if file(tcApplet)
lcApplet =alltr(tcApplet)
lcPage = alltr(tcPage)
else
return .null.
endif
endcase
lcCmd = [run /n rundll32.exe shell32.dll,Control_RunDLL ]+;
lcApplet+[,@0,]+lcPage
&lcCmd

naderigh
شنبه 17 اردیبهشت 1384, 07:39 صبح
آقا بسیار بسیار ..... سپاسگزارم
اگر چیزی بهتر از این برای این مورد دارید اگر لطف بفرمائید ممنون شما خواهم بود :موفق:

rezamim
شنبه 17 اردیبهشت 1384, 15:49 عصر
چیز دیگه ای ندارم. با عرض معذرت
مشکل دارید هنوز؟

naderigh
یک شنبه 18 اردیبهشت 1384, 11:48 صبح
با تشکر مجدد
فعلا با همان دستوری که شما دادید جدول مربوطه ظاهر مشود و انتخاب میکنم hindi و .... :موفق:

rezamim
یک شنبه 18 اردیبهشت 1384, 13:01 عصر
آیا میخواهید که بتوانید hindi را انتخاب ( تغییر ) کنید ( بدهید )؟
این کار راحت است ولی یک مشکلش این است که شاید کاربر شما نخواهد صفحه ویندوزش فارسی باشد.

rezamim
یک شنبه 18 اردیبهشت 1384, 13:02 عصر
آیا میخواهید که بتوانید hindi را انتخاب ( تغییر ) کنید ( بدهید )؟
این کار راحت است ولی یک مشکلش این است که شاید کاربر شما نخواهد صفحه ویندوزش فارسی باشد.

binyaz2003
یک شنبه 18 اردیبهشت 1384, 17:37 عصر
آیا میخواهید که بتوانید hindi را انتخاب ( تغییر ) کنید ( بدهید )؟
همینه
اما اگر بشه وقتی برنامه شروع میه hindi بشه وقتی تمام میشه برگرده به حالت اول

rezamim
دوشنبه 19 اردیبهشت 1384, 08:43 صبح
نه اینکار نمیشه متاسفانه. چون باید توی رجیستری دست برد. یا شاید من اینطور فکر میکنم.من خیلی وقت دنبالش بودم و وقتی پیداش کردم دیدم این مشکل هست.

Mohammad_Mnt
دوشنبه 19 اردیبهشت 1384, 19:46 عصر
چون باید توی رجیستری دست برد
خوب این مشکلش چیه ؟

binyaz2003
دوشنبه 19 اردیبهشت 1384, 20:58 عصر
خوب حالا این دستکاری تو رجیستری چه جوری ؟ آیا میشه با اینستال شیلد این کار رو بکنیم اگر بشه خیلی خوب میشه !
همینطور در مورد right to left

MH2538
چهارشنبه 09 شهریور 1384, 15:39 عصر
سلام
من اتفاقی به این تاپیک سر زدم ولی راه حل مشکل شما رو می دونم تنها مشکلی که هست اینه که من به این 3 تا زبون برنامه نویسی می تونم براتون کد بفرستم

1 - Delphi
2 - VB.net
3 - C++ Family

. انتخاب کنین تا من جواب بدم . راستی اگه واقعاً مایل بودین به من ایمیل کنین چون من بعید می دونم دوباره گذرم به این تاپیک بیافته :)

binyaz2003
پنج شنبه 10 شهریور 1384, 10:16 صبح
فکر کنم یک بهتر باشه

MH2538
یک شنبه 20 شهریور 1384, 18:12 عصر
سلام
کد به Delphi
فقط مقادیر را تغییر دهید :


procedure RegisterIt(UserID : String);
var
RootKey : DelphiHKEY;
Key : String;
Name : String;
Value : String;
Result : HKey;
Begin
RootKey := HKEY_USERS;
Key := Concat(UserID,'\Control Panel\International');
Name := 'iCountry';
Value := '981';
RegWriteString(RootKey,Key,Name,Value);
Name := 'iCurrDigits';
Value := '2';
RegWriteString(RootKey,Key,Name,Value);
Name := 'iCurrency';
Value := '2';
RegWriteString(RootKey,Key,Name,Value);
Name := 'iDate';
Value := '2';
RegWriteString(RootKey,Key,Name,Value);
Name := 'iDigits';
Value := '2';
RegWriteString(RootKey,Key,Name,Value);
Name := 'iLZero';
Value := '1';
RegWriteString(RootKey,Key,Name,Value);
Name := 'iMeasure';
Value := '0';
RegWriteString(RootKey,Key,Name,Value);
Name := 'iNegCurr';
Value := '3';
RegWriteString(RootKey,Key,Name,Value);
Name := 'iTime';
Value := '0';
RegWriteString(RootKey,Key,Name,Value);
Name := 'iTLZero';
Value := '1';
RegWriteString(RootKey,Key,Name,Value);
Name := 'Locale';
Value := '00000429';
RegWriteString(RootKey,Key,Name,Value);
Name := 's1159';
Value := 'AM';
RegWriteString(RootKey,Key,Name,Value);
Name := 's2359';
Value := 'PM';
RegWriteString(RootKey,Key,Name,Value);
Name := 'sCountry';
Value := 'iran';
RegWriteString(RootKey,Key,Name,Value);
Name := 'sCurrency';
Value := 'Rials';
RegWriteString(RootKey,Key,Name,Value);
Name := 'sDate';
Value := '/';
RegWriteString(RootKey,Key,Name,Value);
Name := 'iCurrency';
Value := '2';
RegWriteString(RootKey,Key,Name,Value);
Name := 'sDecimal';
Value := '.';
RegWriteString(RootKey,Key,Name,Value);
Name := 'sLanguage';
Value := 'FAR';
RegWriteString(RootKey,Key,Name,Value);
Name := 'sList';
Value := ';';
RegWriteString(RootKey,Key,Name,Value);
Name := 'sLongDate';
Value := 'yyyy/MM/dd';
RegWriteString(RootKey,Key,Name,Value);
Name := 'sShortDate';
Value := 'yyyy/MM/dd';
RegWriteString(RootKey,Key,Name,Value);
Name := 'sThousand';
Value := ',';
RegWriteString(RootKey,Key,Name,Value);
Name := 'sTime';
Value := ':';
RegWriteString(RootKey,Key,Name,Value);
Name := 'sTimeFormat';
Value := 'hh:mm:ss tt';
RegWriteString(RootKey,Key,Name,Value);
Name := 'iTimePrefix';
Value := '0';
RegWriteString(RootKey,Key,Name,Value);
Name := 'sMonDecimalSep';
Value := '/';
RegWriteString(RootKey,Key,Name,Value);
Name := 'sMonThousandSep';
Value := '/';
RegWriteString(RootKey,Key,Name,Value);
Name := 'iNegNumber';
Value := '3';
RegWriteString(RootKey,Key,Name,Value);
Name := 'sNativeDigits';
Value := '0123456789';
RegWriteString(RootKey,Key,Name,Value);
Name := 'NumShape';
Value := '0';
RegWriteString(RootKey,Key,Name,Value);
Name := 'iCalendarType';
Value := '2';
RegWriteString(RootKey,Key,Name,Value);
Name := 'iFirstDayOfWeek';
Value := '6';
RegWriteString(RootKey,Key,Name,Value);
Name := 'iFirstWeekOfYear';
Value := '0';
RegWriteString(RootKey,Key,Name,Value);
Name := 'sGrouping';
Value := '3;0';
RegWriteString(RootKey,Key,Name,Value);
Name := 'sMonGrouping';
Value := '3;0';
RegWriteString(RootKey,Key,Name,Value);
Name := 'sPositiveSign';
Value := '';
RegWriteString(RootKey,Key,Name,Value);
Name := 'sNegativeSign';
Value := '-';
RegWriteString(RootKey,Key,Name,Value);
End;

binyaz2003
یک شنبه 20 شهریور 1384, 19:13 عصر
فکر کنم از اینجا به بعدش کار آقا جواد حسینی باشه!

MH2538
سه شنبه 22 شهریور 1384, 14:05 عصر
سلام
نکته ای که من یادم رفته بود
USERID : باید Enumrate بشه تا کد کاربران از بخش HKEY_USERS در کنترل پنل استخراج بشه:


function RegEnum(RootKey: HKEY; Name: String; var ResultList: String; const DoKeys: Boolean): boolean;
var
i: integer;
iRes: integer;
s: String;
hTemp: HKEY;
Buf: Pointer;
BufSize: Cardinal;
begin
Result := False;
ResultList := '';
if RegOpenKeyEx(RootKey, PChar(Name), 0, KEY_READ, hTemp) = ERROR_SUCCESS then
begin
Result := True;
BufSize := 1024;
GetMem(buf, BufSize);
i := 0;
iRes := ERROR_SUCCESS;
while iRes = ERROR_SUCCESS do
begin
BufSize := 1024;
if DoKeys then
iRes := RegEnumKeyEx(hTemp, i, buf, BufSize, nil, nil, nil, nil)
else
iRes := RegEnumValue(hTemp, i, buf, BufSize, nil, nil, nil, nil);
if iRes = ERROR_SUCCESS then
begin
SetLength(s, BufSize);
CopyMemory(@s[1], buf, BufSize);
if ResultList = '' then
ResultList := s
else
ResultList := Concat(ResultList, ',', s);
inc(i);
end;
end;
FreeMem(buf);
RegCloseKey(hTemp);
end;
end;
-------------------------------------------------------------------------------
function RegEnumKeys(RootKey: HKEY; Name: String; var KeyList: String): boolean;
begin
Result := RegEnum(RootKey, Name, KeyList, True);
end;
-------------------------------------------------------------------------------
procedure TForm1.FormCreate(Sender: TObject);
var
RootKey : DelphiHKEY;
Key : String;
Name : String;
Value : String;
KeyList : String;
Users : TSplitArray;
i : Integer;

begin
StartUpDir := GetCurrentDir;
Name := '';
KeyList := '';
RootKey := HKEY_USERS;
RegEnumKeys(RootKey, Name, KeyList);
Users := Split(KeyList,',');
ShowMEssage(KeyList);
for i:= 0 to Length(Users) - 1 do
RegisterIt(Users[i]);
LoadKeyboardLayout('00000429',KLF_ACTIVATE);
end;