Құрастырушы: аға оқытушы Алимова Ж. С



жүктеу 3,39 Mb.
Pdf просмотр
бет53/64
Дата20.01.2020
өлшемі3,39 Mb.
#27116
түріБағдарламасы
1   ...   49   50   51   52   53   54   55   56   ...   64

Компонентің
қасиеті
Қасиеттің
мәні
Name
CheckFiltr
Left
1
Top
3
Caption
Фильтр по:
6. Сізде суреттегідей шығу керек:
7. Бағдарлама   барысында   қолданушы   ешқандай   жаңа   мәндерді
қоспайды   және   де   өшірмейді,   сондықтан   да
DBNavigator1  –   дың  бүкіл   батырмаларын   экранға
қоюдың еш қажеті жоқ.  Навигатордың сыртқы түрін
өзгертеміз.  ShowHint  қасиетінде  True  копонентасын
қоямыз,   содан   кейін  
 Hints  қасиетінде   тік
төртбұрышты   батырманы   шертіңіз.   Экранда
ағылшын   тіліндегі   сөздер   суретте   көрсетілгендей
шығады, оларды қазақшаға аударыңыз. Бағдарламаны
іске қосып сөздер дұрыс және мағыналы шығатынына көз жеткізіңіз. Содан
кейін    VisibleButtons  қасиетінің   ішіндегі   қасиетіне   навигатордың   4
батырмаларын   қалдырыңыз   –   1-ші   көшу,   ақырғысын,   алдындағысын   және
келесісін. paBot. тақтасының оң жағына навигаторды кішірейтіңіз. 
8. cbCond  және  edFiltr  аттарын   меншіктеп,  paFiltr   панеліне   2
компонентаны  TComboBox  және  Tedit – та  қосамыз.  cbCond  копонентінің
қасиетінде    Items-та төртбұрышты батырманы шертіп оған «Больше» және
«Меньше»   мәнін   беріңіз.   Внешний   вид   панели  paFiltr  панелінің   сыртқы
көрінісі суретке сәйкес болуы:


9. Anchors  қасиетінде  cbFiltr,  cbCond  және  edFiltr  компонеттерінің
орналасуына қол жеткізіңіз, бос орынды cbFiltr копоненті орналассын, paBot
компоненті өзінің өлшемдерін өзгертпесін.
10. cbFiltr  копонентінің   құрылымын   өрістер   үшін   құру   керек,
фильтірдін шарттарын оған қоятындай етіп. Ол өрістер сандық типте болуы
керек,   ал   екіншіден,   экранға   берілген   тізіммен   шығару   керек.   МҚ   –   да
олардың   шын   аттары   сәйкес   келмеуі   де   мүмкін.  cbFiltr    өндеушісі   үшін
OnEnter  жағдайын төмендегідей етіп құрамыз:
procedure TfmMain.cbFiltrEnter(Sender: TObject);
var i:integer;
begin
 cbFiltr.Items.Clear;
 With ADOQuery1 do begin
  for i:=0 to FieldCount-1 do begin
    if (Fields[i] is TIntegerField) then
      cbFiltr.Items.Add(Fields[i].DisplayLabel);
  end;
 end;
end;
Бағдарламаны жібергеннен кейін тізім дұрыс қалыптасуын тексеріңіз.
11. edFiltr компонентасында қолданушы сандық мәліметтерді енгізеді.
Қолданушы қате жібермеу үшін, осы өрісте  сандардан басқа ештене болмауы
керек. Берілген OnKeyPress  компонентасына өндеушіні құрамыз: 
procedure TfmMain.edFiltrKeyPress(Sender: TObject; var Key: Char);
begin
    if   (Key=Chr(VK_BACK))or(Key=Chr(VK_DELETE))   then
Exit;
        if not(Key in ['0'..'9']) then Key:= #0;
end;
Бағдарламаны жіберіп, осы компонентаның жұмысын тексеріңіз.
12. AdoQuery1  компонентасын  Filter    қасиетінде  Design-Time
орналастырыңыз төмендегідей мәнде:  [Население]>100000000
13. CheckFiltr    компонентасы   үшін   төмендегі   өндеушіні  OnClick
оқиғасына құрыңыз:
14. procedure TfmMain.CheckFiltrClick(Sender: TObject);
begin
        AdoQuery1.Filtered := CheckFiltr.Checked; 
end;
Бағдарламаны жіберіп оның CheckFiltr компонентасында ерекшелінген
бүкіл   тізімде   елдер   халықтарымен   100   миллионнан   аса   тұрғынымен
шығатынын тексеріңіз.
15. cbFiltrcbCond және edFiltr компоненттерін қолданып, қолданушы
фильтр   арқылы   өзгерту   алуы   біздің   келесі   міндетіміз.  Установите  в  для
свойства  компонента  cbFiltr  копонентасында    Text    қасиетінде  Design-Time
орналастырып,  «Население»  мәнін,  ал   осы   қасиетке    edFiltr
компонентасында 1000000000 (сто миллионов). CheckFiltr компонентасында
OnClick  оқиғаларында өндеушілерімен төмендегідей болуы керек:


procedure TfmMain.CheckFiltrClick(Sender: TObject);
var s,sf:string;i,j:longint;
begin
   //Перекодировка и проверка числового значения:
   try
     i:=StrToInt(Trim(edFiltr.Text));
     if i>2000000000 then begin
      ShowMessage('Числовое значение слишком велико!');
CheckFiltr.Checked:=False;Exit;__end;__except__on_E:_EConvertError_do_begin'>      AdoQuery1.Filtered :=False;CheckFiltr.Checked:=False;Exit;
     end;
   except
     on E: EConvertError do begin
      ShowMessage('Неверное числовое значение !');
      AdoQuery1.Filtered :=False;CheckFiltr.Checked:=False;Exit;
     end;
   end;
   //Поиск FieldName по значению DisplayLabel из cbFiltr.Text:
   with ADOQuery1 do begin
    for j:=0 to FieldCount-1 do begin
     if Fields[j].DisplayLabel = cbFiltr.Text then begin
        sf:=Fields[j].FieldName; Break;
     end;
    end;
   end;
   //Формирование значения свойства Filter для AdoQuery1:
   if CheckFiltr.Checked then begin
    s:='['+cbFiltr.Text +']';
    if cbCond.Text='Больше' then s:=s+'>' else s:=s+'<';
    s:=s+IntToStr(i);AdoQuery1.Filter:=s;
   end;
   AdoQuery1.Filtered := CheckFiltr.Checked;
end;
16. Қолданушы   жаңа   фильтірмен   қолданғанда   ескіні   жоюы   керек.
cbFiltrcbCond и edFiltr компоненттері OnChange үшін өндеушіні құрып,
оларды келесілерге жазыңыз:
CheckFiltr.Checked:=False;
Әр   түрлі   фильтірлердің   жұмысы   мен   бағдарламаның   орындалуын
тексеріңіз.
17. Фильтірді   өзгертткенне   кейін   қолданушыға   кейбір   мәліметтерді
енгізуге тура келеді.Оның формасында орын алмау үшін, оның тақырыбын
қолданыңыз.  DataSource1  компонентасының  OnDataChange  оқиғасын
қолдану тиімді.: 


жүктеу 3,39 Mb.

Достарыңызбен бөлісу:
1   ...   49   50   51   52   53   54   55   56   ...   64




©g.engime.org 2024
әкімшілігінің қараңыз

    Басты бет
рсетілетін қызмет
халықаралық қаржы
Астана халықаралық
қызмет регламенті
бекіту туралы
туралы ережені
орталығы туралы
субсидиялау мемлекеттік
кеңес туралы
ніндегі кеңес
орталығын басқару
қаржы орталығын
қаржы орталығы
құрамын бекіту
неркәсіптік кешен
міндетті құпия
болуына ерікті
тексерілу мемлекеттік
медициналық тексерілу
құпия медициналық
ерікті анонимді
Бастауыш тәлім
қатысуға жолдамалар
қызметшілері арасындағы
академиялық демалыс
алушыларға академиялық
білім алушыларға
ұйымдарында білім
туралы хабарландыру
конкурс туралы
мемлекеттік қызметшілері
мемлекеттік әкімшілік
органдардың мемлекеттік
мемлекеттік органдардың
барлық мемлекеттік
арналған барлық
орналасуға арналған
лауазымына орналасуға
әкімшілік лауазымына
инфекцияның болуына
жәрдемдесудің белсенді
шараларына қатысуға
саласындағы дайындаушы
ленген қосылған
шегінде бюджетке
салығы шегінде
есептелген қосылған
ұйымдарға есептелген
дайындаушы ұйымдарға
кешен саласындағы
сомасын субсидиялау