• OnEnter hodisasi
  • OnKeyDown va OnKeyUp hodisalari




    Download 0.69 Mb.
    bet10/10
    Sana01.06.2023
    Hajmi0.69 Mb.
    #68552
    1   2   3   4   5   6   7   8   9   10
    Bog'liq
    Borland C Builder 6 tizimi
    Tizimlar va signallarni qayta ishlash fanidan Labaratoriya ishi
    OnKeyDown va OnKeyUp hodisalari ASCII - kodlarga ega bo'lmagan klaviatura boshqaruv tugmalarini qayta ishlash uchun aniqlangan.
    Bu hodisalar TKeyEvent turida:
    Type TKeyEvent=procedure(Sender : TObject ; var Key:word ; Shift:TShiftState) of Object ;
    Bu hodisalar , , va boshqa tugmalar holatini tahlil qilishda ishlatiladi . OnKeyPress hodisasidan farqli ravishda Key parametri Char turida emas , Balki word turida shu sababli tugmasa mos keluvchi tugmani aniqlash uchun Chr( ) funksiyasini ishlatish mumkin .
    Boshqaruv va alfavit-raqam tugmalari bosilgan holatini qayta ishlash.
    Procedure TForm1.Edit2KeyDown(Sender:TObject ; var Key:Word ; Shift:TShiftState);
    Begin
    if (Shift=[SsCtrl])and(chr(Key)='c')then
    MessageDlg('''Ctrl-C'' tugmalari bosildi ' , mtconfirmation, [mbOk],0 );
    End;
    Agar Edit2 komponentasi qiymat kiritish formulasida bo'lsa , < Ctrl> va tugmalari birgalikda bosilsa Confirm dialog darchasi ' Ctrl - C tugmalari bosildi ' xabari bilan ekranda paydo bo'ladi .
    Ayrim tugmalar o'ziga xosliklarga ega , masalan tugmasi bosilganda OnKeyPress va OnKeyUp hodisalari yuz bermaydi.
    OnEnter hodisasi boshqaruv elementlari fokus olgansda yuz beradi ( sichqoncha yoki tugmasi yordamida)
    OnExit hodisasi darcha boshqaruv elementi fokusni yuqotganda yuz beradi .
    Boshqaruv elementi fokus olgandagi yoki fokusni yuqotgandagi hodisalarni qayta - ishlash proceduralari:
    Procedure TForm1.Edit1.Enter(Sender:TObject);
    Begin
    Label5.Caption:=(Sender as TControl).Name +'aktivlashdi');
    End;
    Procedure TForm1.Edit1.Exit(Sender:TObject);
    Begin
    Label5.Caption:=TEdit(Sender).Name + ' aktiv emas');
    End;
    Label5 yozuvi sarlohasida Edit1 tahririning aktivligi yoki aktiv emasligi aniqlanadi . Bu yerda Name xossasiga murojaat ikki xil usulda amalga oshirilgan . Birinchi protsedurada Sender parametri oshkormas ravishda TControl turiga olib kelingan bo'lsa ,ikkinchi protsedurada Sender oshkor ravishda TEdit turiga keltirilgan .
    Drag - and - Drop ( ko'chirish va qoldirish ) texnalogiyasi foydalanuvchiga turli ob'ektlar ko'chirish imkoniyatini beradi , masalan , bitta ruyhat elementlarini ikkinchisiga ko'chirish . Bunda ikkita boshqaruv elementi ishlatiladi : Manba va qabul qiluvchi
    Manba ko'ruvchi obektni o'z ichga olsa, qabul qiluvchiga esa ko'chiriluvchi obektni oluvchi boshqauv elementlari hisoblanadi. Obektlarni ko'chirish bilan qo'yidagi hodisalar bog'langan:
    OnStartDrag hodisasi manba tomonidan obektni ko'chirish boshlanganda yuzaga keltiriladi. Hodisani qayta -ishlovchisiga qo'yidagilar beriladi: obekt - manba Sourse (Tobject turida) va ko'chirish amali adresati - DragObjecr (TDragObject turida).
    OnDragOver (TDragOverEvenf turida) hodisasi qabul qiluvchi tomonidan ko'chirilayotgan
    obekt uning ustida bo'lganda yuzaga keltiriladi. Hodisa qayta ishlovchisiga qo'yidagi parametrlar
    uzatiladi: Sender - obekt manba Sender - obekt qabul qiluvchi sichqoncha ko'rsatkichini X va Y
    koordinatalari State- ko'chirish holati va ko'chirish amalini tasdiqlovchi Boolean turidagi Accept turidagi . State parametri ko'chiriluvchi obekt qabul qiluvchi sohasiga kirdimi, bu sohada u harakatlanmoqdami, uni bari etgin yoki yo'qligini bildiradi. Uzatilgan parametrlar taxlili Qabul qiluvchi ko'chirish amalini qabul qilish yoki inkor qilish (Accert=False) imkonini beradi.
    OnDragdrop (TDragOverEvenf turida) hodisasi qabul qiluvchi tomonidan obekt unga
    joylashtirilganda ro'y beradi. Hodisa qayta - ishlovchisiga qo'yidagi ma'lumotlar jo'natiladi; Sourse - joylashuvchi obekt, Sender - Qabul qiluvchi obekt, X va Y - sichqancha ko'rsatkich ikoordinatalari.
    OnEndDrag hodisasi manba tomonidan ko'chirish amali tugaganda hosil qilinadi. Hodisa qayta - ishlovchisiga Target - Qabul qilgan obekt, Sender ko'chirilgan obekt va unuig yangi X , Y koordinatalari.
    Eslatib utish kerakki, OnDragDrop va OnDragOver hodisalari uchun Sender manba,
    OnEndDrag hodisasi uchun Sender - ko'chiriluvchi obekt.
    Ko'chirishni amalga oshirish uchun ko'rsatilgan hodisalarning qayta - ishlovchisini ( prosedurasini) yoish kerak. Odayda OnDragDrap va OnDragOver hodisalarini qayta ishlash etarli.
    Ko'chiriluvchi obektning DragMode xossasiga dmAvtomatic qiymatini berush zarur . Bunda kuchirish amali avtomatik ravishda amalga oshadi, aks xolda pragrammaviy yo'l bilan Begin Drag metodini chaqirish kerak bo'ladi.
    Misol Lavil1 yozuvini formula chegarasida kuchirishi .
    // Label1 . yozuvi=DragMode xossasiga dmAvtomatic qiymatini berish kerak .
    Procedure TForm1. FormDragOver(SenderSourse: Tobject:X,Y: Integer; State: TDargState: Var Accept:Boolean);
    Begin
    If Sourse=Lable1 then Accept :=then else Accept:=False;
    end;
    Procedure TForm1.FormDragDrop(Sender, Sourse:Tobject ; X,Y:Integer);
    Begin
    Label1.Left:=X ; Label1.top:=Y;
    end;
    Qo'yidagi misolda kompanentaning tanlangan elementlarini ko'chirishga misol keltirilgan.
    Misol. Ro'yxat elementlarini bir ro'yhatdan ikkinchisiga ko'chirish
    // ListBox1 ro'yhati= DragMode hossasining qiymati dnAutomatic berish kerak.
    Procedure TForm1.ListBox2DragOver(Sender, Sourse: Tobject; X,Y:Integer; State:TDragState; Var Accept:Boolean);
    Begin
    if Sourse=ListBox1 the Accept:=True else Accept:=False;
    end;

    Download 0.69 Mb.
    1   2   3   4   5   6   7   8   9   10




    Download 0.69 Mb.