PDA

View Full Version : language bar



سعید قدیری مقدم
سه شنبه 20 بهمن 1383, 20:25 عصر
سلام دوستان
من با یک مشکل بر خورد کردم ::نوشتن:: :گیج:
می خوام من تو فرم برنامه خودم Languge bar ویندوز را داشته باشم یعنی کاربر از طریق برنامه من بتونه زبان رو تغییر بده- البته بیشتر منظورم اینه که مثل language bar یک کادر تو برنامه باشه و نشون بده زبان فعال چیه
مثل همونی که تو office یا اینکه تو پنجره درود به ویندوز 2000 جلوی کلمه عبور هست
ممنون از راهنمایی شما :flower:

mohsengrisly
سه شنبه 20 بهمن 1383, 23:44 عصر
سلام
راههای زیادی واسه این کار هستش شما کدومشو می خواهین
چه جور مدلشو اخه من حد اقل ده جور کار بلدم که زبان را مشخص می کنه :mrgreen:
برای کجا می خواهی استفاده کنی تا بگم

حامد مصافی
سه شنبه 20 بهمن 1383, 23:49 عصر
سلام ، به کمک یه API می تونین حالت صفحه کلید رو عوض کنین


Private KL_NEXT = 1
Private KL_PREV = 0

Private Declare Function ActivateKeyboardLayput Lib "user32.dll" (ByVal HKL As Long , ByVal Flags As Long) As Long


KL_NEXT : زبان بعدی را اعمال می کند
KL_PREV : زبان قبلی را اعمال می کند

Hamedm
چهارشنبه 21 بهمن 1383, 07:46 صبح
به کمک یه API می تونین حالت صفحه کلید رو عوض کنین

البته تابع API زیر هم کد زبان را میگیره و زبان وبندوز رو به ربان داده شده تغییر میده:


Declare Function LoadKeyboardLayout Lib "user32" Alias "LoadKeyboardLayoutA" (ByVal pwszKLID As String, ByVal flags As Long) As Long
pwszKLID: مقدار این متغیر شماره ID زبان جدید میباشد.
Flags: برای سهولت در کار بهتر ایت مقدار این متغیر را KLF_Activate قرار دهیم.

بوسیله تابع API زیر نیز میتوانیم نام زبان را بدست آوریم:


Declare Function VerLanguageName Lib "kernel32" Alias "VerLanguageNameA" (ByVal wLang As Long, ByVal szLang As String, ByVal nSize As Long) As Long
wLang: کد زبان میباشد.
szLang: طول بافر است که توسط تابع مقدار دهی میشود و حاوی نام زبان است.
nSize: طول بافر است.
توجه: طول بافر را به اندازه کافی بگیرید.

موفق باشید و پرتوان

حامد مصافی
چهارشنبه 21 بهمن 1383, 11:38 صبح
توجه: طول بافر را به اندازه کافی بگیرید.

9 کاراکتر



Flags : برای سهولت در کار بهتر ایت مقدار این متغیر را KLF_Activate قرار دهیم.

ظاهراً یادت رفته اینو بنویسی


Const KLF_Activate = &H1

Hamedm
چهارشنبه 21 بهمن 1383, 12:37 عصر
ظاهراً یادت رفته اینو بنویسی


Const KLF_Activate = &H1

آخ. یادم رفته بود ثابت هایش را نیز بگم. شرمنده :oops: .

موفق باشید و پرتوان

سعید قدیری مقدم
چهارشنبه 21 بهمن 1383, 13:11 عصر
سلام بر دوستان عزیز
من فکر کنم داخل مطلبی که گذاشتم اشاره کردم دنبال چی میگردم اما خوب برای اینکه واضح تر بیان کنم تو عکس نشون دادم چی می خوام.
لطفا در این ظمینه منو راهنمایی کنید ممنون میشم
http://www.afsoongar.com/Files/1.JPG
من دنبال اون کادر آبی رنگ هستم :oops:

سعید قدیری مقدم
چهارشنبه 21 بهمن 1383, 20:31 عصر
خوب من بالاخره تونستم با راهنمایی هایی که دوستان کرده بودند مشکلم رو رفع کنم
به همین خاطر من برنامه رو در قالب یک OCX نوشتم تا هر زمان که بهش نیاز دارم به راحتی از اون استفاده کنم . این OCX رو من میزارم اینجا واسه دانلود تا اگه دوستان دیگه هم به ایم مشکل برخورد کردند بتونن از اون استفاده کنند
باز هم از دوستان متشکرم :flower:

دوستان فایل رو از این جا برداشتم و نسخه جدیدشو تو صفحه 2 گذاشتم واسه دانلود برید به صفحه 2

Hamedm
چهارشنبه 21 بهمن 1383, 20:35 عصر
به همین خاطر من برنامه رو در قالب یک OCX نوشتم تا هر زمان که بهش نیاز دارم به راحتی از اون استفاده کنم .

دوست عزیز کمتر سعی کن از OCX استفاده کنی. سعی کن از سورس OCX استفاده کنی. هرچقدر برنامه ات وابسته با فایلها کمتری باشه بهتره.

موفق باشید و پرتوان

سعید قدیری مقدم
چهارشنبه 21 بهمن 1383, 21:47 عصر
دوست عزیز میشه دلیلشو بگین

Hamedm
پنج شنبه 22 بهمن 1383, 07:50 صبح
این هم دلیلش:

هرچقدر برنامه ات وابسته به فایلها کمتری باشه بهتره

موفق باشید و پرتوان

سعید قدیری مقدم
پنج شنبه 22 بهمن 1383, 13:58 عصر
ویژوال بیسیک یک زبان شی گرا هست شما حتی وقتی از یک Textbox استفاده میکنید از اشیا مختلفی استفاده میکنید.
بنظر من استفاده از یک ocx اولا خوبیش این هست که برنامه نویس های دیگه هم میتونن از تجربیات ما به راحتی استفاده کنن و یک دعایی به جانمون بکنن (یک چیزایی تو مایه های open source البته نه کاملا :wink: ) و در ثانی تو آپ دیت کردن برنامه های خودمون کمک شایانی میکنه و همچنین به عنوان یک کتابخانه برای خود برنامه نویس (البته از ماجول ها هم به این عنوان میشه استفاده کرد) تو استفاده های بعدی.

تازه یک چیز جالب هم بگم که این موضوع رو خودم تست کردم . تو برنامه های بزرگ که موقع اجرا احتیاج هست پنجره ای به تعداد های نا معلوم فراخوانی بشه و بعد از گذشت یک مدت زمان از اجرای برنامه بصورت تصاعدی حافظه رو اصطلاحا می خوره شما میتونید سورس برنامه خودتون رو بصورت جدا در قالب ocx ایجاد کنید و هر وقت نیاز به اون داشتید اونو فراخوانی کنید این کار جلوی اشغال شدن بیش از حد حافظه رو میگیره. برای مثال شما به بخش voice تو یاهو مسنجر و یا بخش Webcam و پنجره گفتگو داخل paltalk دقت کنید.

البته یک اشکال کوچولو داره که اون فعلا بمانند :wise1:

راستی من یک تغییرات کوچیک تو همون ocx دادم که بنظرم لازم بود و دوباره میزارم اگه دوستان خواستن دانلودش کنند

R_BABAZADEH
پنج شنبه 22 بهمن 1383, 14:52 عصر
حرف هر دوی شما درسته
استفاده از ocxزمانی خوبه که نخواهیم کد زیاد در برنامه نوشه بشه یا زمانی که از یک ابزار به تعداد زیاد استفاده کنیم مانند textbox ولی ابزارهایی که فقط یک بار استفاده شده در برنامه بهتره کد نویسی بشه .
ابزارهای پیش فرض vb درون windows قرار دارند یعنی اگر شما فقط از این ابزارها استفاده کنید و بعد برنامه خود رو exe کنید می توانید به راحتی در کامپیوتر های دیگه هم استفاده کنید ولی اگر یک ocx غیر پیش فرض استفاده کنید برای انتقال به دستکاه دیگر نیاز به setuper دارید

موفق باشید