PDA

View Full Version : اخطار به خاطر روشن بودن دکمه Caps Lock



fazel-d
دوشنبه 08 بهمن 1386, 14:31 عصر
با سلام
من می خواستم بر روی یک labeledEdit یا edit که خاصیت password آن * می باشد . وقتی که کاربر کپس لوک اش روشن است و بر روی این component که قرار می گیره یک پیغام سیستمی بدهد که caps lock روشن است و پسورد ممکن است اشتباه وارد شود

Valadi
دوشنبه 08 بهمن 1386, 15:30 عصر
این کد روشن و خاموش کردن سه کلید است

turn on/off Caps/Num/Scroll Lock?







type
TKeyType = (ktCapsLock, ktNumLock, ktScrollLock);

procedure SetLedState(KeyCode: TKeyType; bOn: Boolean);
var
KBState: TKeyboardState;
Code: Byte;
begin
case KeyCode of
ktScrollLock: Code := VK_SCROLL;
ktCapsLock: Code := VK_CAPITAL;
ktNumLock: Code := VK_NUMLOCK;
end;
GetKeyboardState(KBState);
if (Win32Platform = VER_PLATFORM_WIN32_NT) then
begin
if Boolean(KBState[Code]) <> bOn then
begin
keybd_event(Code,
MapVirtualKey(Code, 0),
KEYEVENTF_EXTENDEDKEY,
0);

keybd_event(Code,
MapVirtualKey(Code, 0),
KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP,
0);
end;
end
else
begin
KBState[Code] := Ord(bOn);
SetKeyboardState(KBState);
end;
end;

// Example Call:
// Beispielaufruf:

procedure TForm1.Button1Click(Sender: TObject);
begin
SetLedState(ktCapsLock, True); // CapsLock on
SetLedState(ktNumLock, True); // NumLock on
SetLedState(ktScrollLock, True); // ScrollLock on
end;

fazel-d
یک شنبه 14 بهمن 1386, 14:07 عصر
اقا به منظور من نزدیک نبود اما جای تشکر که به ما توجه دارید

Mahyaa
یک شنبه 14 بهمن 1386, 14:23 عصر
باید از GetKeyBordState استفاده کنید .
برای مورد CapsLock :


procedure TForm1.Edit1Click(Sender: TObject);
function CapsLockOn : Boolean;
begin
Result := 0 <> (GetKeyState(VK_CAPITAL) and $01);
end;
begin
if CapsLockOn then ShowMessage('Caps lock is on.');
end;

fazel-d
یک شنبه 14 بهمن 1386, 14:25 عصر
پیغام خطای سیستمی
اقا این عکس رو چه جوری میشه قرار داد تا
بهتر متوجه بشید چی میگم
دکمه عکس بالا رو انتخاب میکنم که HTTP:// رو داره .مسیر رو چه جوری بدم
http://barnamenevis.org/forum/C:%5CDocuments%20and%20Settings%5CFazel%5CMy%20Doc uments%5CMy%20Pictures%5Ccaps.jpg
http://C:%5CDocuments%20and%20Settings%5CFazel%5CMy%20Doc uments%5CMy%20Pictures%5Ccaps.png

dkhatibi
یک شنبه 14 بهمن 1386, 14:49 عصر
شما ابتدا حالت پیشرفته را انتخاب کنید و بعد در قسمت مدیریت ضمیمه ها فایل خود را از نوع عکس انتخاب کنید.

برای استفاده از دکمه ی بالا ی ویرایشگر باید عکس شما بر روی سرور دیگری وجود داشته باشه و آدرس اونو بدین.

Mahyaa
یک شنبه 14 بهمن 1386, 15:49 عصر
سوال کدوم یکی از ایناست ؟
1-چطوری Detect کنیم که CapsLock روشنه ؟
2- چطوری پیغام سیستمی بدیم ؟
...
1- جوابتون توی هر دو پست 2و 4 هست .
2-منظورتون از پیغام سیستمی چیه ؟

Tasnim
یک شنبه 14 بهمن 1386, 19:03 عصر
عزیز وقتی ادیتی رو در حالت پسورد قرار میدید سیستم بطور اتوماتیک اگه کپس لاک روشن باشه پیغام میده داداش

aserfg
یک شنبه 14 بهمن 1386, 19:40 عصر
خوب این کار رو می تونید با function آقای مهیا انجام بدین . این functionروشن بودن کپس لوک رو تشخیص می ده

fazel-d
پنج شنبه 18 بهمن 1386, 13:28 عصر
Tasnim به موضوع من خیلی نزدیک بود فکر کنم منظور من رو فهمیدی
لطفا بگین این اخطارو چه جوری فعال کنم
دیگه عکسو قرار دادم تا همه متوجه بشن
از اساتید درخواست می کنم یه کم زود تر

Amir_Safideh
پنج شنبه 18 بهمن 1386, 15:18 عصر
خو ب اگر منظورتون دقیقا این تصویریه که فرستادید بهترین و ساده ترین راه رو بهتون پیشنهاد میکنم شما اگر از دلفی هفت استفاده میکنید از تب Win32 یه کنترل XPManifest به فرم اصلی برنامتون اضافه کنید بعد از اجرای برنامه میبینید که اگر در ادیتی که حالت پسورد رو براش قرار دادید قرارداشته باشید و کسپ لاک روشن باشه این پیغامی که شما میخواهید نمایش داده میشه .
--------------------
موفق باشید

Tasnim
شنبه 20 بهمن 1386, 10:47 صبح
عزیز برای این کار باید کامپوننت XPManifest را روی فرمت قرار بدی
موفق باشی
یاعلی