نمایش نتایج 1 تا 10 از 10

نام تاپیک: استفاده ازکلیدهای تابعی

  1. #1
    کاربر دائمی آواتار amirkazem
    تاریخ عضویت
    تیر 1388
    محل زندگی
    استان گلستان
    پست
    393

    استفاده ازکلیدهای تابعی

    باسلام
    میخواهیم توی برنامه (توی فرمها)ازکلیدهای فانکشنال (f1,f2,f3,...) استفاده کنیم. مثلاً روی یک دکمه کپشن f2رابنویسیم که اگرکاربرکلیدf2را فشارداد، مثلاض تغییرات ذخیره بشن.یا مثلاض f3برای جستجو درفرمها و...
    دوستان لطفاً راهنمایی بفرمایید.

  2. #2

    نقل قول: استفاده ازکلیدهای تابعی

    راه ساده ش اینه که برای هر دکمه یک Action ایجاد کنید ( کامپوننت ActionList ) و به اون Action کلید میانبر دلخواه رو نسبت بدید
    راه دیگه اینه که خاصیت KeyPreview مربوط به فرم رو True کنید و در رویداد OnKeyPress مربوط به فرم، کلید فشرده شده رو چک کنید و متناسب با اون عملیات مورد نظر رو انجام بدید
    اگر قصد دارید کلیدها رو در سطح کل برنامه بررسی کنید، از کامپوننت TApplicationEvent استفاده کنید و در رویداد OnMessage این کامپوننت کلید ها رو چک کنید و عملیات مورد نظر رو انجام بدید
    مثال :

    procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
    var Handled: Boolean);
    begin
    if Msg.message = WM_KEYDOWN then
    begin
    case Msg.wParam of
    VK_F1 : ...;
    VK_F2 : ...;
    VK_F3 : ...;
    ...
    end;
    end;
    end;

  3. #3

    نقل قول: استفاده ازکلیدهای تابعی

    یکی دیگه از راهها که دست شما رو برای تغییر موردی هم باز می گذاره استفاده از MasterForm هست.
    توابع تبدیل تاریخ با دقت 5000 سال
    پذیرش پروژه، کامپوننت، آموزش برنامه نویسی (دلفی، اس کیو ال، ..) -> 09123780840

    دوستای گلم حمایت کنید : https://cafebazaar.ir/app/com.nikanmehr.marmarxword/


    نرم افزار پخش مویرگی

  4. #4
    کاربر دائمی آواتار amirkazem
    تاریخ عضویت
    تیر 1388
    محل زندگی
    استان گلستان
    پست
    393

    نقل قول: استفاده ازکلیدهای تابعی

    سلام، ضمن تشکرمجددازمدیران خوب بخش،
    منظورازاینکه کلیدهای تابعی هم پوشانی نباشند این هست که درسرتاسر (تمامی فرمها) مثلاً کلید(f3) کار سرچ رو انجام بده.البته این برداشت من هست.

    دوستان اگرنظری دارید، بفرمایید.

  5. #5

    نقل قول: استفاده ازکلیدهای تابعی

    یک راهش همون استفاده از ApplicationEvent هست البته روی فرم اصلی تون یا هر فرمی که از اول پروژه تا آخر اون حاضر باشه، مهم نیست نمایش داده می شه یا نه. مثلا روی دیتاماژول هم می تونید بگذارید.
    راه بهتر استفاده از سیستم مسترفرم هست که همه فرم هاتون رو از یکی از فرم های پروژه مشتق کنید و در فرم والد رویداد ها رو کنترل کنید. به این ترتیب می تونید بعضی از فرم ها رو استثنا کنید یا رفتارش رو در قبال کلید مورد نظر تغییر بدید یا کلا آف کنید.
    توابع تبدیل تاریخ با دقت 5000 سال
    پذیرش پروژه، کامپوننت، آموزش برنامه نویسی (دلفی، اس کیو ال، ..) -> 09123780840

    دوستای گلم حمایت کنید : https://cafebazaar.ir/app/com.nikanmehr.marmarxword/


    نرم افزار پخش مویرگی

  6. #6
    کاربر دائمی آواتار amirkazem
    تاریخ عضویت
    تیر 1388
    محل زندگی
    استان گلستان
    پست
    393

    نقل قول: استفاده ازکلیدهای تابعی

    باسلام،
    کدزیررابرای کلید(f1)درنظرگرفته ام ولی به درستی کارنمی کنه.دراصل بایدبره وآخرین رکوردراپیداکنه ویکی بهش اضافه کنه و(Adotable)رو (Insert)کنه ولی فقط آخرین رکورد رانمایش میده.
    البته همین کدرابرای رویداد(On Click)همین باتن نوشته ام که به درستی آخرین رکوردرا میگیره ویکی بهش اضافه میکنه وجدول را(insert)میکنه. ممنون میشم اگه راهنمایی بفرمایید!


    procedure TForm5.ApplicationEvents1Message(var Msg: tagMSG;
    var Handled: Boolean);


    //insert Record
    var a:integer;
    begin
    if Msg.message = WM_KEYDOWN then
    begin
    case msg.wParam of
    VK_F1:


    begin
    ADOTable1.Active :=true;
    if ADOTable1.isempty then
    ADOTable1.fieldbyname('code').asinteger := 1
    else
    begin
    ADOTable1.last;
    a := ADOTable1.fieldbyname('code').asinteger;
    ADOTable1.insert;
    ADOTable1.fieldbyname('code').asinteger := a + 1;

  7. #7

    نقل قول: استفاده ازکلیدهای تابعی

    کدتون ایراد داره.
    بعد از چک خالی بودن هنوز در مود اینسرت نرفتید دارید فیلد رو مقدار می دید.
    از طرفی مطمئنید که پست رو هم گذاشتید؟
    اگر بله، کد کامل رو بگذار بررسی کنم.
    توابع تبدیل تاریخ با دقت 5000 سال
    پذیرش پروژه، کامپوننت، آموزش برنامه نویسی (دلفی، اس کیو ال، ..) -> 09123780840

    دوستای گلم حمایت کنید : https://cafebazaar.ir/app/com.nikanmehr.marmarxword/


    نرم افزار پخش مویرگی

  8. #8
    کاربر دائمی آواتار amirkazem
    تاریخ عضویت
    تیر 1388
    محل زندگی
    استان گلستان
    پست
    393

    نقل قول: استفاده ازکلیدهای تابعی

    کدمربوط به (On Click) باتن:

    procedure TForm5.BitBtn1Click(Sender: TObject);
    var a:integer;
    begin
    ADOTable1.Active :=true;
    if ADOTable1.isempty then
    ADOTable1.fieldbyname('code').asinteger := 1
    else
    begin
    ADOTable1.last;
    a := ADOTable1.fieldbyname('code').asinteger;
    ADOTable1.insert;
    ADOTable1.fieldbyname('code').asinteger := a + 1;


    BitBtn2.Enabled :=true;
    DBEdit1.Enabled :=true;
    DBEdit1.ReadOnly :=false;




    DBEdit2.Enabled :=true;
    DBEdit2.SetFocus ;
    DBEdit3.Enabled :=true;
    DBEdit4.Enabled :=true;
    DBEdit5.Enabled :=true;
    DBEdit6.Enabled :=true;
    DBEdit7.Enabled :=true;
    DBEdit8.Enabled :=true;
    DBEdit9.Enabled :=true;
    DBEdit10.Enabled :=true;


    DBEdit2.ReadOnly :=false;
    DBEdit3.ReadOnly :=false;
    DBEdit4.ReadOnly :=false;
    DBEdit5.ReadOnly :=false;
    DBEdit6.ReadOnly :=false;
    DBEdit7.ReadOnly :=false;
    DBEdit8.ReadOnly :=false;
    DBEdit9.ReadOnly :=false;
    DBEdit10.ReadOnly :=false;


    end;
    end;





    کدمربوط به کلید(F1)



    procedure TForm5.ApplicationEvents1Message(var Msg: tagMSG;
    var Handled: Boolean);


    //insert Record
    var a:integer;
    begin
    if Msg.message = WM_KEYDOWN then
    begin
    case msg.wParam of
    VK_F1:


    begin
    ADOTable1.Active :=true;
    ADOTable1.Insert;
    if ADOTable1.isempty then
    ADOTable1.fieldbyname('code').asinteger := 1
    else
    begin
    ADOTable1.last;
    a := ADOTable1.fieldbyname('code').asinteger;
    ADOTable1.insert;
    ADOTable1.fieldbyname('code').asinteger := a + 1;


    BitBtn2.Enabled :=true;
    DBEdit1.Enabled :=true;
    DBEdit1.ReadOnly :=false;


    DBEdit2.Enabled :=true;
    DBEdit2.SetFocus ;
    DBEdit3.Enabled :=true;
    DBEdit4.Enabled :=true;
    DBEdit5.Enabled :=true;
    DBEdit6.Enabled :=true;
    DBEdit7.Enabled :=true;
    DBEdit8.Enabled :=true;
    DBEdit9.Enabled :=true;
    DBEdit10.Enabled :=true;


    DBEdit2.ReadOnly :=false;
    DBEdit3.ReadOnly :=false;
    DBEdit4.ReadOnly :=false;
    DBEdit5.ReadOnly :=false;
    DBEdit6.ReadOnly :=false;
    DBEdit7.ReadOnly :=false;
    DBEdit8.ReadOnly :=false;
    DBEdit9.ReadOnly :=false;
    DBEdit10.ReadOnly :=false;






    البته الان متوجه شدم، بااینکه 4مشتری توی جدول دارم، وبایدکدجدیدرااز5شروع کنه حتی باکلیک باتن هم میره وکدجدیدرا(3)نشون میده.

  9. #9

    نقل قول: استفاده ازکلیدهای تابعی

    خروجی شما سورت شده؟
    وقتی که اشکال پیش میاد در گرید مربوطه روی چه ردیفی قرار دارید؟ مثلا روی ردیف 4 هستید ولی به جای 5 عدد 3 پیشنهاد می شه؟
    توابع تبدیل تاریخ با دقت 5000 سال
    پذیرش پروژه، کامپوننت، آموزش برنامه نویسی (دلفی، اس کیو ال، ..) -> 09123780840

    دوستای گلم حمایت کنید : https://cafebazaar.ir/app/com.nikanmehr.marmarxword/


    نرم افزار پخش مویرگی

  10. #10

    نقل قول: استفاده ازکلیدهای تابعی

    این مشکل به استفاده از Button یا کلیدهای F مربوط نمیشه
    ...
    در کد اولی که قرار دادید، اگر جدول خالی باشه، چیزی درج نمیشه، چون بعد از شرط isEmpty جدول به حالت Insert نرفته، باید قبل از مقدار دهی به فیلد، جدول رو به حالت Insert یا Edit ببرید
    در کد دوم، Insert رو بالای شرط قرار دادید، اگر شرط برقرار نباشه یعنی جدول خالی نباشه، دوباره به مد Insert میره و یا در حالتی که در Insert هست، دستور Last اجرا میشه، Insert باید درون شرط isEmpty قرار بگیره
    مورد دیگه اینکه در کدهای بالا عمل Post انجام نمیشه
    نکته مهم اینکه باید جدول رو بر اساس فیلد Code مرتب سازی صعودی کنید تا فیلد آخر بیشترین مقدار Code رو داشته باشه، مثال :
    ADOTable1.IndexFieldNames = 'Code ASC'

تاپیک های مشابه

  1. پاسخ: 0
    آخرین پست: سه شنبه 05 اردیبهشت 1391, 07:28 صبح
  2. سوال: مشكل در استفاده تابعي از نوع ellipsis
    نوشته شده توسط HosseinProgrammer در بخش برنامه نویسی با MFC و ++Visual C
    پاسخ: 6
    آخرین پست: شنبه 04 آبان 1387, 20:56 عصر
  3. Only API هر کسی تابعی داره انجا مطرح کنه که همه استفاده کنن
    نوشته شده توسط mrkh1759 در بخش برنامه نویسی در Delphi
    پاسخ: 8
    آخرین پست: سه شنبه 15 فروردین 1385, 07:04 صبح
  4. تابعی که برای تبدیل تاریخ شمسی به میلادی استفاده میشه!
    نوشته شده توسط zeinab03 در بخش برنامه نویسی در Delphi
    پاسخ: 2
    آخرین پست: چهارشنبه 12 بهمن 1384, 03:38 صبح
  5. استفاده از کلیدهای تابعی F1,F2,...
    نوشته شده توسط vbstar در بخش برنامه نویسی در 6 VB
    پاسخ: 6
    آخرین پست: جمعه 21 آذر 1382, 11:35 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •