Главная страница
Навигация по странице:

  • Лабораториялық жұмыс № 5. ГРАФИКАЛЫҚ РЕДАКТОР

  • Лабораториялық жұмыс № 6. Анықтамалық қосымшалар жүйесін құрастыру.

  • Лабораториялық жұмыс № 7. МӘЛІМЕТТЕР БАЗАСЫМЕН ЖҰМЫС.

  • УМК ВП. казПОС. Пніні Оу программасы syllabus оытушы жнінде мліметтер


    Скачать 6.17 Mb.
    НазваниеПніні Оу программасы syllabus оытушы жнінде мліметтер
    АнкорУМК ВП. казПОС.doc
    Дата01.04.2018
    Размер6.17 Mb.
    Формат файлаdoc
    Имя файлаУМК ВП. казПОС.doc
    ТипДокументы
    #17493
    страница10 из 12
    1   ...   4   5   6   7   8   9   10   11   12

    Лабораториялық жұмыс № 4. Көпқұжатты қосымшаны құру (MDI)

    Жұмыстың мақсаты: көпқұжатты қосымшалы формалар іс-әрекетін және олардлың жалпы принциптерімен танысу.



    1. Негізге бөлім


    Көпқұжаты қосымша бір ған форманфы иемдене алады. Оның ішінде бірнеше дочерлің терезелер орналасуы мүмкін. Бас форма басқару элементтерінсіз болады. Оларға – жазбалар, кестелер, жолдар, өйткені олар дочерлік терезелерде көрінеді. Ал қалған клиенттік аймаз дочерлік терезелерде орын алады.

    FormStyle терезе түрін анықтайды. Бас формада FormStyle fsMDIForm мәніне ие. Ал дочерлік терезелер fsMDIChild мәніне ие.


    1. Тапсырма және оны орындау тәртібі


    Текстік файлдармен жұмыс жасайтын көпқұжаттық қосымша құрамыз.

    Алгоритмдер және қосымшаны құру этаптары


      1. Form1 бас формасына компоненттерді орналастыру:

    • Standard - MainMenu1

    • Dialogs – OpenDialog.

      1. Компоненттер құрамын анықтау (Object Inspector/ Properties).

    А) тышқанның көмегімен формада компонентті таңдау;

    Б) объект инспекторына көшу, онда компоненттін құрамы көрінеді;

    В) тышқан арқылы жолды таңдап, оны жойып оынң орнына жаңа мәтін беру;

    Form1 – FormStyle құрылымы үшін fsMDIForm беру.

    Window (MainMenu1) – GroupIndex құрылымы үшін 5-ті беру

      1. Form2 мұрагерлік формасына келесі компоненталарды орналастыру:

    • Win32 – RichEdit

    • Standard – MainMenu, PopupMenu

    • Dialogs – SaveDialog

      1. Компоненттер құрамын анықтау (Object Inspector/ Properties).

    Form2 – FormStyle құрылымы үшін fsMDIForm.

    RichEdit - Align үшін alClient

    Edit (MainMenu) - GroupIndex құрылымы үшін 1-ді орнату

    Format (MainMenu) -GroupIndex құрылымы үшін 1-ді орнату

      1. Оқиғаларды өңдеуішті орнату

    Компоненталардың оқиғаларсын өңдеуішті орнату үшін келесі операцияларды жүзеге асыру керек:

    А) компонентті таңдау;

    Б) объект инспекторына көшу (Events)-ті таңдау;

    В) таңдалған оқиғана үшін тышқанды 2 рет шерту.

    Г) шыққан процедураға код мәтінін жазу:
    type

    Tform1 = class(TForm)

    MainMenu1: TMainMenu;

    File1: TMenuItem;

    New1: TMenuItem;

    Open1: TMenuItem;

    N1: TMenuItem;

    Exit1: TMenuItem;

    Window1: TMenuItem;

    Tile1: TMenuItem;

    Cascade1: TMenuItem;

    Arrangeicons1: TMenuItem;

    OpenFileDialog: TOpenDialog;

    procedure Exit1Click(Sender: TObject);

    procedure New1Click(Sender: TObject);

    procedure Tile1Click(Sender: TObject);

    procedure Cascade1Click(Sender: TObject);

    procedure Arrangeicons1Click(Sender: TObject);

    procedure Open1Click(Sender: TObject);

    private

    { Private declarations }

    public

    { Public declarations }

    end;
    var

    Form1: Tform1;
    implementation

    uses unit2;
    {$R *.dfm}
    procedure Tform1.Exit1Click(Sender: TObject);

    begin

    Close;

    end;
    procedure Tform1.New1Click(Sender: TObject);

    var

    n:integer;

    begin

    form2:=Tform2.Create(self);

    for n:=0 to form1.MDIChildCount-1 do

    form1.MDIChildren[n].Caption:='Документ'+IntToStr(n);

    end;
    procedure Tform1.Tile1Click(Sender: TObject);

    begin

    Tile;

    end;
    procedure Tform1.Cascade1Click(Sender: TObject);

    begin

    Cascade;

    end;
    procedure Tform1.Arrangeicons1Click(Sender: TObject);

    begin

    ArrangeIcons;

    end;

    procedure TForm1.Open1Click(Sender: TObject);

    begin

    if OpenDialog1.Execute then

    form2.RichEdit1.Lines.LoadFromFile(OpenDialog1.FileName);

    end;

    end.
    Добавление обработчикoв событий для второй формы:

    type

    Tform2 = class(TForm)

    MainMenu1: TMainMenu;

    File1: TMenuItem;

    New1: TMenuItem;

    Open1: TMenuItem;

    Save1: TMenuItem;

    Saveas1: TMenuItem;

    Exit1: TMenuItem;

    Edit1: TMenuItem;

    Cut1: TMenuItem;

    Copy1: TMenuItem;

    Paste1: TMenuItem;

    Delete1: TMenuItem;

    N3: TMenuItem;

    Selectall1: TMenuItem;

    Format1: TMenuItem;

    Left1: TMenuItem;

    Right1: TMenuItem;

    Center1: TMenuItem;

    N4: TMenuItem;

    Wordwrap1: TMenuItem;

    N5: TMenuItem;

    Font1: TMenuItem;

    Editor: TRichEdit;

    PopupMenu1: TPopupMenu;

    Cut2: TMenuItem;

    Copy2: TMenuItem;

    Paste2: TMenuItem;

    SaveFileDialog: TSaveDialog;

    FontDialog1: TFontDialog;

    Close1: TMenuItem;

    procedure Exit1Click(Sender: TObject);

    procedure New1Click(Sender: TObject);

    procedure AlignClick(Sender: TObject);

    procedure Wordwrap1Click(Sender: TObject);

    procedure Cut1Click(Sender: TObject);

    procedure Copy1Click(Sender: TObject);

    procedure Paste1Click(Sender: TObject);

    procedure Selectall1Click(Sender: TObject);

    procedure Delete1Click(Sender: TObject);

    procedure Edit1Click(Sender: TObject);

    procedure Saveas1Click(Sender: TObject);

    procedure Save1Click(Sender: TObject);

    procedure Font1Click(Sender: TObject);

    procedure Close1Click(Sender: TObject);

    procedure FormClose(Sender: TObject; var Action: TCloseAction);

    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);

    procedure FormCreate(Sender: TObject);

    procedure Open1Click(Sender: TObject);

    private

    { Private declarations }

    PathName: string;

    public

    { Public declarations }

    procedure Open(const AFileName: string);

    end;

    var

    Form2: Tform2;

    const

    DefaultFileName = 'Документ';
    implementation

    uses Clipbrd, unit1;
    {$R *.dfm}
    procedure Tform2.Exit1Click(Sender: TObject);

    begin

    Form1.Exit1Click(Sender);

    end;
    procedure Tform2.New1Click(Sender: TObject);

    begin

    Form1.New1Click(Sender);

    end;

    procedure Tform2.Open1Click(Sender: TObject);

    begin

    Form1.Open1Click(Sender);

    end;
    procedure Tform2.AlignClick(Sender: TObject);

    begin

    Left1.Checked := False;

    Right1.Checked := False;

    Center1.Checked := False;

    with Sender as TMenuItem do Checked := True;

    with Editor.Paragraph do

    if Left1.Checked then

    Alignment := taLeftJustify

    else if Right1.Checked then

    Alignment := taRightJustify

    else if Center1.Checked then

    Alignment := taCenter;

    end;
    procedure Tform2.Wordwrap1Click(Sender: TObject);

    begin

    with Editor do

    begin

    WordWrap := not WordWrap; { toggle word wrapping }

    if WordWrap then

    ScrollBars := ssVertical

    else

    ScrollBars := ssBoth;

    WordWrap1.Checked := WordWrap; { set menu item check }

    end;

    end;
    procedure Tform2.Cut1Click(Sender: TObject);

    begin

    Editor.CutToClipboard;

    end;
    procedure Tform2.Copy1Click(Sender: TObject);

    begin

    Editor.CopyToClipboard;

    end;
    procedure Tform2.Paste1Click(Sender: TObject);

    begin

    Editor.PasteFromClipboard;

    end;
    procedure Tform2.Selectall1Click(Sender: TObject);

    begin

    Editor.SelectAll;

    end;
    procedure Tform2.Delete1Click(Sender: TObject);

    begin

    Editor.ClearSelection;

    end;
    procedure Tform2.Edit1Click(Sender: TObject);

    var

    HasSelection: Boolean;

    begin

    Paste1.Enabled := Clipboard.HasFormat(CF_TEXT);

    Paste2.Enabled := Paste1.Enabled;

    HasSelection := Editor.SelLength > 0;

    Cut1.Enabled := HasSelection;

    Cut2.Enabled := HasSelection;

    Copy1.Enabled := HasSelection;

    Copy2.Enabled := HasSelection;

    Delete1.Enabled := HasSelection;

    end;
    procedure Tform2.Open(const AFileName: string);

    begin

    PathName := AFileName;

    Caption := ExtractFileName(AFileName);

    with Editor do

    begin

    Lines.LoadFromFile(PathName);

    SelStart := 0;

    Modified := False;

    end;

    end;
    procedure Tform2.Saveas1Click(Sender: TObject);

    begin

    SaveFileDialog.FileName := PathName;

    if SaveFileDialog.Execute then

    begin

    PathName := SaveFileDialog.FileName;

    Caption := ExtractFileName(PathName);

    Save1Click(Sender);

    end;

    end;
    procedure Tform2.Save1Click(Sender: TObject);

    begin

    if PathName = DefaultFileName then

    SaveAs1Click(Sender)

    else

    begin

    Editor.Lines.SaveToFile(PathName);

    Editor.Modified := False;

    end;

    end;
    procedure Tform2.Font1Click(Sender: TObject);

    begin

    FontDialog1.Font := Editor.Font;

    if FontDialog1.Execute then

    Editor.SelAttributes.Assign(FontDialog1.Font);

    end;
    procedure Tform2.Close1Click(Sender: TObject);

    begin

    Close;

    end;
    procedure Tform2.FormClose(Sender: TObject; var Action: TCloseAction);

    begin

    Action := caFree;

    end;
    procedure Tform2.FormCloseQuery(Sender: TObject; var CanClose: Boolean);

    const

    SWarningText = 'Save changes to %s?';

    begin

    if Editor.Modified then

    begin

    case MessageDlg(Format(SWarningText, [PathName]), mtConfirmation,

    [mbYes, mbNo, mbCancel], 0) of

    idYes: Save1Click(Self);

    idCancel: CanClose := False;

    end;

    end;

    end;
    procedure Tform2.FormCreate(Sender: TObject);

    begin

    PathName := DefaultFileName;

    end;

    end.
    Лабораториялық жұмыс № 5. ГРАФИКАЛЫҚ РЕДАКТОР

    Жұмыс мақсаты: графикалық ақппараттарды енгізу процессі кезінде қолданылатын маңызды құрылғыларды және графикалық редактор жұмыстарына арналған компоненттерді оқып үйрену.

    1.НЕГІЗГІ БӨЛІМ
    Берілген Лабораториялық жұмыста, барлық Қосымшаң күрделі жұмыстарын қамтамасыз ететін Delphi программалау ортасының, графикалық үстемелерді құруды жеңілдететін мүмкіншіліктері бар.

    Графикалық редактор құрудың негізгі компоненттерін қарастырайық.



    TСanvas класы графикалық ақпараттарды бейнелнудің барлық мүмкіндіктерін иеленеді. Графикалық объектілерді түрлендіру,сақтау және құру кеңістіктерін қамтамасыз етеді.

    TСanvas Delfi-дің негізгі графикалықжүйесі болып табылады.

    TСanvas келесілерді қамтамасыз етеді:

    - графикалық бейнелерді сақтау және жүктеу;

    - жаңа бейнені құрастыру және сақталынған бейнелерді қалам,бояу жаққыш және қаріп көмегімен өзгертеді;

    - әртүрлі фигуралар,жолақтар және мәтіндерді бояу және суреттеу;

    - әртүрлі бенелерді құрамдастыру;

    TСanvas класының метафайлды объект құрастыруға және басқарушы элементтерді бейнелеуге көмектесетін екі Tcontrol Canvas және T Metafile Canvas кластары бар.

    Кластардың негізгі әдістерін атап шығайық:

    Draw әдісі (x,y; Integer; Graphic, TGraphic) жоғарғы сол жақ бөлігі x,y анықталатын Graphic парметрімен көрсетілген,объектіге кіретін бейненің суретін салады және бейненің бастапқы көлемін сақтайды.

    Line To (x,y: Integer) әдісі Den Pos қаламның ағымдағы позициясынан басталып, (x,y) нүктесімен аяқталатын тік жолақты сызады.

    Move To әдісі (x,y: Integer) берілген (x,y) нүктесінде Den Pos қаламының ағымдағы позициясын өзгертеді. Бұл Den Pos құрылғысына эквивалентті. Move To әдісімен қозғалған қалам сурет салмайды.

    TPicture класы –қолданушымен анықталынған графикалық объект типіндегі метафайлдық пиктограмма және битті матрица типіндегі графиалық объектілердің контейнері болып табылатын объекті жүйелеп көрсетеді,яғни типі Graphic құрылғысымен көрсетілетін кез-келген TGraphic графикалық объектінің контейнері болып табылады.

    T Picture объектісі объект типіне қарай автоматты түрде сәйкестендірілетін, Load From File және Save To File–ды жазбаланатын және файлдық оқытылатын әдістер бар.

    Сақталатын объектінің типіне байланысты битті матрицалар,пиктограммалар және метфайлдар Bitmap,Icon немесе Meta fileқұрылғыларына сәйкес анықталады. Бұл құрылғыларды қате қарастырғанда алдыңғы объект өшіріліп,жаңа бос объект ашылады. Бұл құрылғылардың орнына Graphic құрылғысы арқылы графикалық объектке рұқсат алуға болады. Егер,графикалық объект битті матрица болса,Image,Picture,Graphic және Image 1Picture Bitmap-на эквивалентті болады.

    TPicture объектісінің Clipboard буферіне ауысуы Assign әдісімен іске асады. T Clipboard класы-берілгендерді буфер арқылы ауыстыруға арналған операцияны орындайды. Объект буферін айырбастайтын модулі Clipboard сілтейді. Буфер айырбасы берілген шамаға әртүрлі форматты ұсынады,оған кіретін формат тізімі –Formats Index (Index: Integer) құрылғысы,форматтың жалпы саны-Format Count құрылғысы. Has Format Boolear функциясы Format параметрін сілтейтін, буфер алмасуына,сақталған форматты ажыратуға болатын не болмайтындығы туралы сауал жібереді. Clear әдісі –құрамындағы буферді тазартуға арналған. Copy To Clip Board және Cut To Clip Board әдісі буфер айырбасына берілген шаманы орналастырып,көшірме жасап бастапқы түрінен пішіндейді,ал Paste From Clip Board буферден мәтіндік фрагментті алып шығады. Assign (Sourse: TPersistent) буферден графикалық объектілерді ажыратып,буфер көшірме жасайды.

    Tgraphic класы – қолданушымен анықталынған, метафайлды, пиктограммалы, битті матрицалы типтегі графикалық объектілер үшін абстрактілі базалы класс. Өзінен тараған өзге кластарды сақтайды және графикалық объектілерді визуальдайды.

    Clip Board буфер айырбасымен және T Picture типті оюъектілер әдісімен жұмыс істейді.

    Tgraphic класының құрылғысы бейненің көлемі және күйі туралы ақпарат береді.

    Жұмыс жасалатын графиктің типі белгілі болғанда битті матрицаны,пиктограмма және метафайлды TMetafile немесе TCom,Bitmap кластарынан тараған объектілерге қолданады. Егер графика форматы белгісіз болса, Tgraphic-тен тарайтын кез-келген типті графикалық объектімен жұмыс істеуге қабілетті, T Picture класын қолдануға болады.

    Кез-кеген суретке TPen объектісінің қаламы,TPresh-тың қылбояғышы және TFont қаріпі кіреді.

    TPen типінің Pen объектісі сурет салу барысында жолақтар мен географиялық фигураларды қолдана отырып,қалам атрибуттарын анықтайды. Негізгі құрылымына: Color-қалам түсін басқару үшін, Style-салынатын жолақтың стилін нұсқайды; Келесі көрсетілімдерді қолдана алады:

    Ps Solid- біртегіс жолақ

    Ps Pash- Сызықша белгісіндегі жолақ

    Ps Pot- нүктелік жолақ

    Ps Dash Pot- қайталанатын нүкте мен сызықша жолақтары

    Ps Clear-көрінбейтін жолақтар

    Ps Inside Frame- тікбұрыштың ішкі жолақтары

    Width- салынатын жолақтың қалыңдығын пиксельде береді

    Mode - сурет салу барысындағы қаламның өзге пиксельдегі жолақтарын әсеріне сәйкес келктін әдісті көрсетеді

    Tb rush типінің B rush объектісі геометриялық фиграларды толтыруға арналған өрнектерді анықтайды. Толтырылған фигураларды қылбояғыштардың көмегімен басқаруға болады. Олардың негізгілеріне келесілер жатады:

    Color- қылбояғыштың түсін басқарады;

    Style- қылбояғышқа стиль беріп,келесі мәндерді қабылдайды:

    bs Solid- біртұтас бояу

    bs Clear- бояу кіріскен

    bs Horizontal- параллель көлденең жолақтар

    bs Vertical- параллель тік жолақтар

    bs FDiagonal- параллель,жоғары бағытталған диагональді жолақтар

    bs Cros- тік торша

    bs Diag Cross- қисық торша

    Bitmap- қылбояғыштың сапалы стилін қолданатын бейнені көрсетеді

    TFont типті объект, бейнеленетін мәтіндегі қаріп биіктігі,оның аты,атрибуттары т.б қолданып,көптеген сипаттамаларды анықтайды.
    Жұмыстың орындалу реті және тапсырмалар

    Қарапайым графикалық редактор құрастырайық. Қосымша екі формадан құралады: бірінші форма-жеке меншік редактор, екінші форма сурет көлемін қолданушымен шығару.

    Қосымша құрудың кезеңдері мен алгоритмі :

    1. Қосымшаның Form1 формасына компоненттер палитрасынан компоненттер енгізу:

    Standard бетінен- Main Menu 1, Edit1, Panel 1- Panel 3.

    Additiond бетінен- Scroll Box 1, Image 1, Speed Button 1-Speed Button 22

    Win бетінен- Up Down 1.

    Dialogs бетінен- Open Dialog 1, Color Dialog 1,Save Dialog 1;

    Меню пункті- File(опция: New Open Save. Save As Exit) және Edit (опция: Cut Copy Paste).

    Меню астындағы формаға үш құрал- сайманды панелін орналастырыңыз:

    Panel 1- 6 Speed Button-(тікбұрышты дөңгелек жолақ)

    Panel 2- 7 Speed Button-(түс қалыңдықты жолақ түрлері) (Edit 1+ Up Down 1))

    Panel 3- 9 Speed Button-(бояу түстерінің түрлері)

    Панелдермен қоса 5 Croll Box 1 және Image 1 орналастырылады.

    1. Компоненттер құрылғыларының анықтамалары (Object Inspector/ Properties)

    Барлық компоненттер үшін әрекеттердің бірінен соң бірінің орындалуы бірдей:

    а) тышқан көмегімен формаға компонент таңдау;

    б) берілген құрылғының компоненттері пайда болатын инспектор объектісіне өту;

    в) тышқан көмегімен қажет құрылғылы жолды таңдау, ағымдағы мәнді өшіріп жаңа мәнін енгізу.

    Scroll Bo1 үшін – al Client-қа Align құрылғысы

    Panel үшін al Top- қа Align құрылғысы

    Барлық Speed Button үшін Name құрылғысын сәйкесінше ауыстыру;

    Glyph құрылғысы батырмаға сәйкес бейнені орнатады.

    1. Form 2 қосымшалы формасына компоненттер палитрасынан компоненттер енгізу:

    Standard бетінен- Button 1, Button 2, Edit 1, Edit 2, Label 1, Label 2.

    1. Компоненттер құрылғыларының анықтамасы (Object Inspector Properties)

    Button 1 үшін- Caption құрылғысының Ok-ді басыңыз

    Button 2 үшін- Caption құрылғысына Cancel-ді

    Label 1 үшін- Caption құрылғысына & енгізу

    Label 2 үшін- Caption құрылғысына & биіктік

    Edit 1, Edit 2 үшін- Text құрылғысын тазарту

    1. Оқиға өңдегіштерді енгізу (Object Inspector Events) компоненттерге оқиға өңдегіштерді енгізу үшін міндетті түрде келесі әрекеттерді орындау қажет:

    а) тышқан көмегімен формаға компонент таңдау;

    б) инспектор объектісіне өту және берілген комноненттің (Events) оқиға қосқышын

    таңдау;

    в) тышқанмен таңдалған оқиғадан сол жақ бағананы екі рет шерту;

    г) пайда болған кодтар редакторына begin мен end сөздерінің арасында процедура

    денесінің кодын енгізу.

    Программа листингі:

    Unit unit1;

    Interface

    Uses

    SysUtils, Windows, Messages, Classes, Graphics, Controls, Forms, Dialogs,

    Buttons, ExtCtrls, ComCtrls, Menus;

    Type

    TDrawingTool = (dtLine, dtRectangle, dtEllipse, dtRoundRect);

    TForm1 = class ( TForm)

    Panel1: TPanel;

    LineButton: TSpeedButton;

    RectangleButton: TSpeedButton;

    EllipseButton: TSpeedButton;

    RoundRectButton: TSpeedButton;

    PenButton: TSpeedButton;

    BrushButton: TSpeedButton;

    PenBar: TPanel;

    BrushBar: TPanel;

    SolidPen: TSpeedButton;

    DashPen: TSpeedButton;

    DotPen: TSpeedButton;

    DashDotPen: TSpeedButton;

    DashDotDotPen: TSpeedButton;

    ClearPen: TSpeedButton;

    PenWidth: TUpDown;

    PenSize: TEdit;

    ScrollBox1: TScrollBox;

    Image: TImage;

    SolidBrush: TSpeedButton;

    ClearBrush: TSpeedButton;

    HorizontalBrush: TSpeedButton;

    VerticalBrush: TSpeedButton;

    FDiagonalBrush: TSpeedButton;

    BDiagonalBrush: TSpeedButton;

    CrossBrush: TSpeedButton;

    DiagCrossBrush: TSpeedButton;

    PenColor: TSpeedButton;

    BrushColor: TSpeedButton;

    ColorDialog1: TColorDialog;

    MainMenu1: TMainMenu;

    File1: TMenuItem;

    New1: TMenuItem;

    Open1: TMenuItem;

    Save1: TMenuItem;

    Saveas1: TMenuItem;

    N1: TMenuItem;

    Exit1: TMenuItem;

    Edit1: TMenuItem;

    Cut1: TMenuItem;

    Copy1: TMenuItem;

    Paste1: TMenuItem;

    OpenDialog1: TOpenDialog;

    SaveDialog1: TSaveDialog;

    procedure FormMouseDown(Sender: TObject; Button: TMouseButton;

    Shift: TShiftState; X, Y: Integer);

    procedure FormMouseUp(Sender: TObject; Button: TMouseButton;

    Shift: TShiftState; X, Y: Integer);

    procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,

    Y: Integer);

    procedure LineButtonClick(Sender: TObject);

    procedure RectangleButtonClick(Sender: TObject);

    procedure EllipseButtonClick(Sender: TObject);

    procedure RoundRectButtonClick(Sender: TObject);

    procedure PenButtonClick(Sender: TObject);

    procedure BrushButtonClick(Sender: TObject);

    procedure SetPenStyle(Sender: TObject);

    procedure PenSizeChange(Sender: TObject);

    procedure FormCreate(Sender: TObject);

    procedure SetBrushStyle(Sender: TObject);

    procedure PenColorClick(Sender: TObject);

    procedure BrushColorClick(Sender: TObject);

    procedure Exit1Click(Sender: TObject);

    procedure Open1Click(Sender: TObject);

    procedure Save1Click(Sender: TObject);

    procedure Saveas1Click(Sender: TObject);

    procedure New1Click(Sender: TObject);

    procedure Copy1Click(Sender: TObject);

    procedure Cut1Click(Sender: TObject);

    procedure Paste1Click(Sender: TObject);

    private

    { Private declarations }

    public

    { Public declarations }

    BrushStyle: TBrushStyle;

    PenStyle: TPenStyle;

    PenWide: Integer;

    Drawing: Boolean;

    Origin, MovePt: TPoint;

    DrawingTool: TDrawingTool;

    CurrentFile: string;

    procedure SaveStyles;

    procedure RestoreStyles;

    procedure DrawShape(TopLeft, BottomRight: TPoint; AMode: TPenMode);

    end;

    var

    Form1: TForm1;

    implementation

    uses unit2, Clipbrd;

    {$R *.dfm}
    procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;

    Shift: TShiftState; X, Y: Integer);

    begin

    Drawing := True;

    Image.Canvas.MoveTo(X, Y);

    Origin := Point(X, Y);

    MovePt := Origin;

    end;
    procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;

    Shift: TShiftState; X, Y: Integer);

    begin

    if Drawing then

    begin

    DrawShape(Origin, Point(X, Y), pmCopy);

    Drawing := False;

    end;

    end;
    procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,

    Y: Integer);

    begin

    if Drawing then

    begin

    DrawShape(Origin, MovePt, pmNotXor);

    MovePt := Point(X, Y);

    DrawShape(Origin, MovePt, pmNotXor);

    end;

    end;
    procedure TForm1.LineButtonClick(Sender: TObject);

    begin

    DrawingTool := dtLine;

    end;
    procedure TForm1.RectangleButtonClick(Sender: TObject);

    begin

    DrawingTool := dtRectangle;

    end;
    procedure TForm1.EllipseButtonClick(Sender: TObject);

    begin

    DrawingTool := dtEllipse;

    end;
    procedure TForm1.RoundRectButtonClick(Sender: TObject);

    begin

    DrawingTool := dtRoundRect;

    end;
    procedure TForm1.DrawShape(TopLeft, BottomRight: TPoint; AMode: TPenMode);

    begin

    with Image.Canvas do

    begin

    Pen.Mode := AMode;

    case DrawingTool of

    dtLine:

    begin

    Image.Canvas.MoveTo(TopLeft.X, TopLeft.Y);

    Image.Canvas.LineTo(BottomRight.X, BottomRight.Y);

    end;

    dtRectangle: Image.Canvas.Rectangle(TopLeft.X, TopLeft.Y, BottomRight.X,

    BottomRight.Y);

    dtEllipse: Image.Canvas.Ellipse(Topleft.X, TopLeft.Y, BottomRight.X,

    BottomRight.Y);

    dtRoundRect: Image.Canvas.RoundRect(TopLeft.X, TopLeft.Y, BottomRight.X,

    BottomRight.Y, (TopLeft.X - BottomRight.X) div 2,

    (TopLeft.Y - BottomRight.Y) div 2);

    end;

    end;

    end;
    procedure TForm1.PenButtonClick(Sender: TObject);

    begin

    PenBar.Visible := PenButton.Down;

    end;
    procedure TForm1.BrushButtonClick(Sender: TObject);

    begin

    BrushBar.Visible := BrushButton.Down;

    end;
    procedure TForm1.SetPenStyle(Sender: TObject);

    begin

    with Image.Canvas.Pen do

    begin

    if Sender = SolidPen then Style := psSolid

    else if Sender = DashPen then Style := psDash

    else if Sender = DotPen then Style := psDot

    else if Sender = DashDotPen then Style := psDashDot

    else if Sender = DashDotDotPen then Style := psDashDotDot

    else if Sender = ClearPen then Style := psClear;

    end;

    end;
    procedure TForm1.PenSizeChange(Sender: TObject);

    begin

    Image.Canvas.Pen.Width := PenWidth.Position;

    end;
    procedure TForm1.FormCreate(Sender: TObject);

    var

    Bitmap: TBitmap;

    begin

    Bitmap := nil;

    try

    Bitmap := TBitmap.Create;

    Bitmap.Width := 200;

    Bitmap.Height := 200;

    Image.Picture.Graphic := Bitmap;

    finally

    Bitmap.Free;

    end;

    end;
    procedure TForm1.SetBrushStyle(Sender: TObject);

    begin

    with Image.Canvas.Brush do

    begin

    if Sender = SolidBrush then Style := bsSolid

    else if Sender = ClearBrush then Style := bsClear

    else if Sender = HorizontalBrush then Style := bsHorizontal

    else if Sender = VerticalBrush then Style := bsVertical

    else if Sender = FDiagonalBrush then Style := bsFDiagonal

    else if Sender = BDiagonalBrush then Style := bsBDiagonal

    else if Sender = CrossBrush then Style := bsCross

    else if Sender = DiagCrossBrush then Style := bsDiagCross;

    end;

    end;
    procedure TForm1.PenColorClick(Sender: TObject);

    begin

    ColorDialog1.Color := Image.Canvas.Pen.Color;

    if ColorDialog1.Execute then

    Image.Canvas.Pen.Color := ColorDialog1.Color;

    end;
    procedure TForm1.BrushColorClick(Sender: TObject);

    begin

    ColorDialog1.Color := Image.Canvas.Brush.Color;

    if ColorDialog1.Execute then

    Image.Canvas.Brush.Color := ColorDialog1.Color;

    end;
    procedure TForm1.Exit1Click(Sender: TObject);

    begin

    Close;

    end;
    procedure TForm1.Open1Click(Sender: TObject);

    begin

    if OpenDialog1.Execute then

    begin

    CurrentFile := OpenDialog1.FileName;

    SaveStyles;

    Image.Picture.LoadFromFile(CurrentFile);

    RestoreStyles;

    end;

    end;
    procedure TForm1.Save1Click(Sender: TObject);

    begin

    if CurrentFile <> EmptyStr then

    Image.Picture.SaveToFile(CurrentFile)

    else SaveAs1Click(Sender);

    end;
    procedure TForm1.Saveas1Click(Sender: TObject);

    begin

    if SaveDialog1.Execute then

    begin

    CurrentFile := SaveDialog1.FileName;

    Save1Click(Sender);

    end;

    end;
    procedure TForm1.New1Click(Sender: TObject);

    var

    Bitmap: TBitmap;

    begin

    with Form2 do

    begin

    ActiveControl := WidthEdit;

    WidthEdit.Text := IntToStr(Image.Picture.Graphic.Width);

    HeightEdit.Text := IntToStr(Image.Picture.Graphic.Height);

    if ShowModal <> idCancel then

    begin

    Bitmap := nil;

    try

    Bitmap := TBitmap.Create;

    Bitmap.Width := StrToInt(WidthEdit.Text);

    Bitmap.Height := StrToInt(HeightEdit.Text);

    SaveStyles;

    Image.Picture.Graphic := Bitmap;

    RestoreStyles;

    CurrentFile := EmptyStr;

    finally

    Bitmap.Free;

    end;

    end;

    end;

    end;
    procedure TForm1.Copy1Click(Sender: TObject);

    begin

    Clipboard.Assign(Image.Picture);

    end;

    procedure TForm1.Cut1Click(Sender: TObject);

    var

    ARect: TRect;

    begin

    Copy1Click(Sender);

    with Image.Canvas do

    begin

    CopyMode := cmWhiteness;

    ARect := Rect(0, 0, Image.Width, Image.Height);

    CopyRect(ARect, Image.Canvas, ARect);

    CopyMode := cmSrcCopy;

    end;

    end;

    procedure TForm1.Paste1Click(Sender: TObject);

    var

    Bitmap: TBitmap;

    begin

    if Clipboard.HasFormat(CF_BITMAP) then

    begin

    Bitmap := TBitmap.Create;

    try

    Bitmap.Assign(Clipboard);

    Image.Canvas.Draw(0, 0, Bitmap);

    finally

    Bitmap.Free;

    end;

    end;

    end;

    procedure TForm1.SaveStyles;

    begin

    with Image.Canvas do

    begin

    BrushStyle := Brush.Style;

    PenStyle := Pen.Style;

    PenWide := Pen.Width;

    end;

    end;

    procedure TForm1.RestoreStyles;

    begin

    with Image.Canvas do

    begin

    Brush.Style := BrushStyle;

    Pen.Style := PenStyle;

    Pen.Width := PenWide;

    end;

    end;

    end.

    Unit unit2;

    Interface

    Uses

    Windows, Classes, Graphics, Controls, Forms, Buttons, ExtCtrls, StdCtrls;

    Type

    TForm2 = class (TForm)

    Ok :Tbutton;

    Cansel:Tbutton;

    Bevel1:Tbevel;

    Label1,label2: Tlabel;

    WidttEdit, HeightEdit:Tedit;

    End;

    Var

    Form2: TForm2;

    Implementation

    {$R *.DFM}

    end.


    2.36-сурет
    Тапсырма: қосымшаны тағы бір Form 3 формасына ауыстырыңыз, бұл үшін Border Style құрылғысын bs Size Tool Win немесе bs Tool Window-ға өзгерт. Форма түрі 1- суретте көрсетілген.
    Лабораториялық жұмыс № 6. Анықтамалық қосымшалар жүйесін құрастыру.

    Жұмыстың мақсаты: анықтамалық жүйені құру және қосымшаға анықтамалық файлды енгізу.

    1. Негізгі бөлім


    Кез-келген сапалы қосымша құрамына автоматты түрде басқанда немесе (Help) менюіне сәйкес пунктті таңдағанда шақырылатын,кеңейтілуі .HLP болатын анықтамалық файл кіреді. Анықтамалық жүені қосқанда автоматты түрде Win help.exe немесе Win blp 32.exe программасы орындалады. Анықтамалық жүйенің мәтін ретінде көп бөлімнен тұратын гипермәтінді айтуға болады.

    Анықтамалық жүйенің өңделуі Delphi-мен емес,Windows ортасымен іске асады. Оның көрсетілуі де Windows Win Help программасымен орындалады. Delphi тек анықтамалық жүйені үстемеге құруға мүмкіндік береді.

    Анықтамалық жүйені ұйымдастыру келесі кезеңдерден тұрады:

    • басқарушы элеметтердің формасы үшін анықтамалық жүйенің контекс нөмерін анықтау;

    • Редактор көмегімен мәтіндік файл құру;

    • арнайы компилятор көмегімен анықтамалық файл құру;

    • анықтамалық файлды үстемемен байланыстыру және оларды шақыру ұйымдары;

    Жұмыстың көрсетілген кезеңдерін қарастырайық. Microsoft Help Workshop 4 көмегімен NT және Windows 95 анықтамалығын құрудың методикасы қарастырылады. Сәйкес программалар Delphi [Help] Tools каталогында көрсетілген.

    Бірінші және соңғы кезеңдері Delphi ортасында орындалады. Контекст-берілген басқарушы элементтердің формасына сәйкес, анықтамалық жүйенің бөлімі анықталатын, HelpContext құрылғысының мәнімен анықталатын сан.

    Мәтіннің анықтамасын құруда жүйені толықтай ойластыру қажет. Терезе мен дене нұсқаушы қалай көрінетіндігін және қандай бөлімдерден тұратындығын ойластырып алу қажет. Негізгі терезеге қатысты, оның басында қандай батырма болатындығы, анықтаманың жалпы стилін ойластыру қажет. Қосымша терезелер жайында сауал шешкенде және негізгі және қосымша терезелер арасындағы функциялар таралуын көрсеткенде, қосымша терезелердің меню жолақтарының болмайтындығын көруге болады.

    Анықтама мәтінін құрғанда кез-келген мәтіндік редакторды, мысалы Microsoft Word-ты қолдануға болады. Әрбір тақырып басқа құрылғы қатарын және аталуын анықтайтын түсіндірмені қамтиды.

    Сол немесе басқа түсіндірмелерде қандай символдар қолданатынын қарастырайық.

    Түсіндірме # - әр түрлі тақырыптар жіберілетін тақырыпты бірегей сәйкестендіруші. Бұл сәйкестендірушіге берілген тақырыпқа қолданылатын үстеме анықтамасы жіберілетін номер қойылады.

    Түсіндірме К - егер тақырыптар тізімдегі “Пәндік көрсеткіш” бетіндегі анықтамалық жүйенің терезесінде жұмыспен бірге көрсетілсін десеңіз, оны кадрға қосады.
    ЖҰМЫСТЫҢ ОРЫНДАЛУЫ РЕТІ ЖӘНЕ ТАПСЫРМА


    1. Алғашқыда Сіз құрастырған қосымшалар ішінен үстеме таңдаңыз, негізгі менюге Help пунктін енгізіп, берілген қосымшаға анықтамалық файл құрыңыз. Анықтама келесілерден тұруы қажет:

    а) тақырыбы

    б) мәтін және графикалық бейнелер кіретін бірнеше бөлімдер (беттер)

    2. Кез-келген мәтіндік редакторге анықтама бөлімінің мәтінін енгізіңіз (Word).

    3. Бір файлға кез-келген шамада бөлімдер енгізуге болады. Әр бір бөлім басқаларынан беттері бойынша ажыратылады, яғни жаңа бетте рәсімделеді. Тақырып беріп, үш бөлімге бөліңіз.

    4. Түсіндірме режимінде бөлімдерге сәйкес белгілеулер енгізіңіз ( Қою меню пункті/Түсіндірме ). Нөмірлеу (нумерация) тобындағы сұхбатты терезеге Другая қайта қосқышын қосыңыз және өріске сәйкес келетін символ атрибутын енгізіңіз:

    # - контексті (# IDH_001 – тақырыбы үшін, # IDH_002- бірінші бөлім үшін, # IDH_003 – екінші бөлім үшін және т.б.;

    $ - басы ($ Мазмұны және т.б.);

    K – кілттік сөздер тізімі;

    + - бірінен соң бірі жалғасатын көрсетілімдері нөмері;

    ! – макрокоманда;

    * - тег компиляции.

    5. Белгіленген сөз- гиперсілтеу болып табылады, шерткенде басқа анықтаманың бөлімі өту орындалады. Мәтіннің көрінісін гипернұсқауы түрінде жасау үшін міндетті түрде келесі әрекеттерді орындау қажет:

    1) көрініс аяқталғаннан соң еш кедергісіз идентификатор бөлімін енгізіңіз, мысалы IDH_002 программасы жайлы;

    2) екі бөлімнің қаріпті рәсімдеуі екі түрліше болады (Формат меню пункті/Шрифт, Эффект терезесінің сұхбатты терезесі).

    Сызылған программа жөнінде (немесе қос жолақпен белгіленген).

    IDH_002 – жасырын.

    Бөлімнің қаріпін ажыратып көрсетіңіз.

    6. Құжат анықтамасының барлық бөлімі дайындалғаннан соң, .RTF форматында сақталады.

    7. Үстемеге анықтама мәтінін қолдануда ол .HLP форматындағы .RTF форматынан түрленуі қажет, осыны анықтамалық файлдың компиляциясы деп атайды. Компилятор– Microsoft Help Workshop – DELPHI\ HELP\TOOLS каталогындағы Hcrtf.exe орындалатын файлы компилятор терезесінде File->New (Файл.->Создать) командасы орындалады. Ашылған сұхбатты терезеде Help Proejct (Анықтамалық жүйенің проект - кеңейтілуі.HPJ) пунктін таңдаңыз. Ерте құрылған мәтіндік файлдың анықтамалық жүйе проектісіне қосылу үшін Files (Файлдар) батырмасын басады және пайда болған терезеде керекті .RTF формат файлын таңдайды. Save and Compile (Сақтау және құрастыру) батырмасын басқанда проект компиляциясы орындалады және анықтамалық файл пайда болады. Компиляция нәтижесі арнайы терезеде көрсетіледі. Қателік жөнінде хабарлама болмаса, анықтамалық файлда ақпарат болады.

    8. Құрылған файл– өңделген үстемедегі каталогқа көшіру керек. Delphi жүйесінде Project-> Options (Проект -> Параметрлер) командасы орындалады және Browse (Обзор) батырмасы көмегімен Help file (Файл справки) өрісінде Application (Қосымша) файлды таңдайды.

    9. Форма менюінде Help (Көмек) пунктін енгізіңіз және анықтаманы шақыру үшін келесі өңдегіштерді жазыңыз:

    Application.HelpCommand (Help_Contents,0) .

    Нәтижесінде қосылған файлдың бастапқы бөлімі шақырылады.

    procedure TForm1.help1Click(Sender: TObject);

    begin

    Application.HelpCommand(Help_Contents, 0);

    end;
    Лабораториялық жұмыс № 7. МӘЛІМЕТТЕР БАЗАСЫМЕН ЖҰМЫС.

    Жұмыс мақсаты: локальді мәліметтер базасымен ортасын және мүмкіншіліктерін оқып үйрену Delphi берілгендер фильтрациясы және іздністер жұмыстары.
    1. НЕГІЗГІ БӨЛІМ
    Мәліметтер базасы (МБ) құрылымды ақпараттарды сақтаудың қолайлы ортасы болып табылады. МББЖ – бұл МБ құруға, енгізуге және қолдануға арналған тілдік және программалық құралдар жиынтығы. Іздестіруді ыңғайлы ұйымдастыру және ақпаратты талдау, оны қолданудың эффективтілігін арттыруға қабілетті.

    Берілгенді сақтаушы ақпараттың сақталуын және оның қамтамасыз етілуіне жауапты. Реляционды МБ – сы өзара қарым – қатынасты кестелерден тұрады. Бизнес логикасы, Қосымшаң құрал – саймандық аймағының анықтамасының жиынтығын өткізеді, яғни ақпаратты өзгерту және толықтыру тәртібін. Қолданбалы бағдарламалар немесе үстеме МБ – сына кіретін берілгенді өңдеуге қатысады, берілгендерді қолданушы қол жетімді формаға енгізеді және бизнес логикасымен қарым – қатынаста болу үшін интерфейсті қамтамасыз етеді. Онда МБ – сының қосылуы Borland Database Engine (процессор доступа к базам данных или BDE) ортасымен іске асады. МБ – сымен жұмыс компоненттерін келесі топтарға бөлуге болады:

    - локальді немесе жойылған МБ ( DataSet) – на кіруге рұқсат етілген берілгендер жиынтығы;

    - берілгендермен байланысқан, қолданушымен бірге интерфейс ұйымдасуына қызмет ететін басқарушы элементтер (Data Controls беттері бар палитралы компоненттер);

    - бірінші екі компоненттермен байланысты қамтамасыз ететін берілгендер көзі (DataSource).


    Элементтер

    пайдаланушы

    интерфейсі



    BDE

    DataSet

    Components




    Form Data Module BDE Local DataBase
    Data Module басқа формалар секілді басқа объектілерді орналастыруға арналған, бірақ формадан айырмашылығы, мұнда интерфейс элементтерімен байланысты қамтамасыз ететін көрінбейтін компоненттер орналасқан. МБ – на кіруге рұқсат етілген компоненттер Data Access палитра компоненттерінің беттерінен табылады.

    МБ – мен басқарылатын жүйелерді келесі белгілеріне қарай классификациялауға болады.

    Берілген шамаларды сақтау типіне қарай:

    - файлдық;

    - серверлік;

    Файлдық сақтағыштар өзімен бірге бір директорияда орныққан, МБ сның кестелік файлының жиынын көрсетеді. Клиентті Қосымшаң файлдық жүйе деңгейіндегі кестелерге кіруге рұқсат ала алады.

    Серверлік – сақтағыш клиенттік Қосымшаң сауалы бойынша МБ –дағы ақпараттан ажыраған программаны көрсетеді.

    Қабат мөлшеріне қарай:

    - қос деңгейлі;

    - көп деңгейлі;

    Қос деңгейлі МББЖ клиентті үстемеге бизнес логикасын және қолданбалы функцияны көрсетеді. Мысалы жұмыс мынадай сақтаушыға берілгендерді жеткізетін, бақылайтын және тексеріс функциясын өткізетін және клиенттік үстеме қолданушыға берілгендерді кескіндейтін классикалық МББЖ үстемесінің сұлбасы болып табылады.

    Көп деңгейлі (әдетте, 3-еу) үстемесінің клиентті программадан басқа арнайы серверлік үстемесі болады. Серверлік үстеме, сауалдың дұрыстығын тексере отырып, сұрастырылған берілгендерді клиентті программаға жіберіп, сақтаушы кіруге рұқсат етілетін функцияны қарастырады.

    Delphi жүйесі МБ–лы операциясы үшін келесі құрал–сайманды әдістерді ұсынады:

    • Borland Database Engine (BDE) – Delphi үстемесінен МБ–на кіруге рұқсат етілетін ұйымды көрсететін кітапхана жиынтығын беретін МБ–на кіретін процессор;

    • BDE Administrator – BDE–ны реттегіш утилита. МБ–ның әр түрлі праметрлерін реттеуге мүмкіншілік туғызады;

    • Database Desktop – құруға арналған программа және SQL және QBE сауалын кестелерді редакциялау;

    • SQL Explorer – МБ–сының праметрлерін күйіне келтіретін МБ–ның таратушысы.

    • SQL Monitor – SQL-сауалын орындалу тәртібін қиындататын программа.

    • SQL Links – алыстатылған өндірістік МББЖ–не рұқсат етілетін драйвер (мысалы, MS SQL Server немесе Oracle);

    • Local InterBase Server – клиент сервердағы алыстатылған МБ–сымен жұмысқа арналған үстемеге қолданылатын SQL-сервердің Borland InterBase жергілікті нұсқасы екі бірмезгілде сервер бірігуіне сәйкес есептелінген.

    • InterBase Server for Windows – төрт бірмезгілді бірігуге сәйкес есептелінген SQL-сервера Borland InterBase көпшілік қолданбалы нұсқасы.

    TDataSet класының әмбебап әдістері. TDataSet класы МБ–на кіруге рұқсат етілген функцияның базалы виртуальді компоненттер класы. Оның көп әдістері ауқымды келеді. Оның берілген шаманы іздестіретін екі әдісі бар: Locate және Lookup. Айтылған әдістер берілген шартты қанағаттандыратын жазбаларды іздейді.

    function Locate(const KeyFields: string; const KeyValues: Variant; Options: TLocateOptions): Boolean; virtual;

    function Lookup(const KeyFields: string; const KeyValues: Variant; const ResultFields: string): Variant; virtual;.

    Бұлардың арасындағы айырмашылық, Locate функциясы жазбаны іздестіргенде табылған жазбаға курсорды орнықтырады, ал Lookup бұлай жасамайды. Егерде іздестіруге ұсынылған өріс үдетілген болса, онда іздестіруді тездететін индекс қолданылады.

    Бірнеше өріске іздестіру жүргізгенде, олардың барлығы Locate функциясының параметріне түгелденіп шығады.

    Ttable класының әдістері. TTable әдісі МБ–ның кестелерімен жұмыс жасауға арналған. Берілеген компонент МБ–ның қос деңгейлі үстемесіне қолданылады немесе МБ–ның үшдеңгейлі үстемесінің серверіне. Ttable бірден кестедегі барлық жазбаны шығаратындықтан, TQuery–ге қарағанда, Ttable–ді МБ–ның клиент–серверлік жұмысына қолдану айтарлықтай қолайлы. Ал, TQuery тек шарт сауалын қанағаттандырады.

    Компоненттер берілгендерді іздестірудің бірнеше өзгеше әдістерін иеленеді. Көрсетілген әдістер тек, индексирленген өрістер бойынша іздестіруге қолданылады (dBase және Paradox үшін минимум). Барлығыда екі топқа бөлінеді:

    - бір жазбаны іздестіру әдісі;

    - диапазон жазбасындағы іздестіру әдісі.

    Ең бірінші, бірінші әдістер тобын қарастырайық. Оларға GotoKey, FindKey, GotoNearest, FindNearest жатады. Бірінші екі әдіс күрделі сәйкестікті іздестіруге арналған, басқалары бөлшекті сәйкестікті іздейді.

    Tquery қолдану. TQuery компоненті берілгендерді SQL (Structured query language) тіл көмегімен ажыратуға арналған компонент үшдеңгейлі сервер үстемесіне және МБ–мен қос деңгейлі үстемеге арналған жұмыстарда қолданылады.

    TQuery компонентінің жазбаларды іздестірудің арнайы әдістері болмайды, бірақ іздестіру мүмкіншіліктері SQL тіліне қойылған. Select үстемесімен алынатын қарапайым берілгендер, where үстемесі көмегімен өткізіледі.

    Айтылған әдіс, іс–тәжірибеде қолданғанда қиындатылатын кемшіліктерді иеленеді:

    1) Қосымша қолданушы SQL тілінде талдай алуы қажет;

    2) сауал синтаксисін автоматты бақылайтын құралы бар;

    3) сауал мәтінін өлшегенде, ол әр уақыт сайын компилирленеді және талдау жасалынатын серверге жіберіледі;

    4) қолданушыға сауал генерациялағанда кестелер атын және МБ–ның өрісін міндетті түрде білу қажет.
    ЖҰМЫСТЫҢ ОРЫНДАЛУ АЛГОРИТМДЕРІ
    Жергілікті МБ–мен (Paradox, dBase, FoxPro) жұмыста үстеме құрудың негізгі кезеңдері:

    1) МБ–сын құру;

    2) МББЖ құру.

    МБ құру

    1. 1-кестеден нұсқа таңдаңыз, ұстазға МБ–ның алғашқы нұсқасынан қағаз беріңіз,

    онымен келісіп МБ–сын құрастырыңыз, кесте, өріс саны мен құрамы кестеде берілген, содан Қосымшаң электронды нұсқасын, яғни жұмысты МБ–сын жобалаудан бастаңыз.

    2. МБ–сын тіркемесі BDE Administrator утилиті көмегімен іске асады. Екі әдіспен шақыруға болады:

    • жұмыс үстелінен Пуск/Программы/BorlandDelphi6/BDE Administrator ;

    • Delphi ортасынан негізгі менюден DataBase/Explorer пунктін таңдаймыз.

    Негізгі менюдегі BDE Administrator терезесінен Object/New пунктін таңдаңыз және пайда болған терезеде құрылатын МБ–ның типін атсыз қалдырдырыңыз (Standard), ОК (2 сурет). Сол жақ терезеге МБ–ның лақап атын қалдырыңыз, ал оң жақтағысына МБ–сы орнығатын РАТН каталогына дұрыс жолды таңдаңыз.
    2
    .37–сурет. BDE Administrator терезесі
    3. Delphi жүйесінің негізгі менюіне Tools→ Database Desktop пунктін таңдаңыз, осының арқасында сіз МБ–ның кесте құруға арналған бағдарламасын шақыра аласыз (3–сурет).





    2.38–сурет. Database Desktop бағдарламасы
    Онда File/New/ Table командасы бойынша кесте құрылымының анықиама терезесі ашылады. Кесте құру үшін интерактивті режимде өтеді, бірінен соң бірі болатын әрекеттер орындалады: кесте форматын таңдаңыз (Paradox 7.0 үнсіздік бойынша), кесте құрылымын анықтайтын терезеде өрістер аты, типі және мөлшері, белгісіз өрістермен қосымша Table properties құрылымы анықталады, кесте құрылымы анықталғаннан соң оны міндетті түрде Save as... пен сактаған жөн, содан кейін, берілген мәндермен құрылған кестені толтырыңыз File/Open/Table командасымен немесе құрал–саймандар панеліндегі Open батырмасын басу арқылы.

    4. Құрылған кестеден МБ–сын құрылымдау. Міндетті түрде екінші текті индекса-цияның орындалуын орындау және «бірдің көпшілікке қатынасын» онату. Мұндай байланысты Master-Detail (негізгі кесте – көмекші кесте) деп атайды. File/Open/Table командасымен көмекші кестені ашыңыз, кесте құрылымын өзгертуде Table/Restructure командасын таңдаңыз. Төмен түсетін Table properties тізімінен Referential Integrity элементін танданыз және Define батырмасын басыңыз. Пайда болған сұхбатты Referential Integrity (3–сурет) терезесіне көмекші кестелер арасына байланыс орнатыңыз. Update rule қайта қосқышы негізгі кестедегі байланыс өрісінің мәні өзгергендегі кестенің сарқылмас әсерін анықтайды.

    - сascade – каскадты сарқылмас өзгеріс және бағыныңқы жазбаның көмекші кестелердегі жойылуы;

    - рrohibit –жазба жойылуы немесе байланыс аймағының өзгерісіне жол бермеу.






    2.39-сурет.
    МББЖ құру
    1. МББЖ проектін құру, яғни форма, құрамы, компоненттер тіркелуі және арасындағы байланыс тізімі.

    2. Жаңа үстеме құрудан бастаңыз. Негізгі менюден File/New Data Module пунктін таңдап, оған берілгендер модулін орнатыңыз. Онда барлық формалы үстемелер базасына кіруге рұқсат етілетін компоненттер орналасады. Егер үстеме бір ғана формадан тұрса, онда тікелей формаға қолданушының визуальды компоненттер интерфейсін орнатуға болады, сонымен қатар, МБ-на кіруге рұқсат етілетін визуальды емес компоненттер.

    3. МБ-на кіруге рұқсат етілетін компоненттер модуліне - TТable, TdataSource, олардың мөлшері жоғарыда көрсетілген МБ-сындағы кестелер мөлшерімен анықталады. Инспектор объектісінде бұл компоненттер құрылғысын реттеуге мына тізім қолданылады:

    Tтable – DataBaseName және TableName құрылғысы;

    TdataSource –DataSet құрылғысы.

    4. Интерфейс ұйымы. Палитралы компоненттер бетін ашыңыз және формаға керекті компоненттерді енгізіңіз. Мысалы, МБ-сының кестелері кестелер түрінде бейнеленетін компоненттер. Оларға DataSource құрылғысын орнату қажет. Егерде төмен түсетін түсетін тізім бос болса, онда форманы берілгендер модулімен байланыстырыңыз, File →Use Unit командасымен де орындауға болады. Енді компоненттер үшін DataSource құрылғысын орнатуға болады және оны таңдап алынған кестемен байланыстыруға болады. Берілген кестеге Active True құрылғысын орнатуды ұмытпаңыз.

    5. Тапсырыс берілетін форма құру QReport бетінің компоненттерін қолданып, жүйе жұмысының нәтижесін шығару үшін принтер немесе файлды сақтауға тапсырыс берілетін форма құрыңыз.

    Тапсырма: сіздің МБ қолданған жұмыс үшін экранды формадан тұратын, 1-ші кестеден таңдалған нұсқаға сәйкес құрылған үстеме мен жергілікті МБ-сын құрыңыз. Қарапайым тапсырысты, бір өріс бойынша құрылған мәліметтер базасының тапсырыс, анықталынған өрістегі фильтрі бар тапсырыстарды қарастыру.

    2.8 кесте

    Тапсырмалар тақырыбының нұсқалары


    №нұс
    Тақырып

    №нұс
    Тақырып

    1

    Деканат

    15

    Мекен-жай кітабы

    2

    Кафедра

    16

    Жаттығулардың турнирлік кестесі

    3
    Кітапхана

    17

    Кинотеатр

    4

    Кадр бөлімі

    18

    Қонақ үй

    5

    Бухгалтерия

    19

    Аэропорт (вокзал)

    6

    Салықтар

    20

    Дәріхана

    7

    Тестілік сынақ

    21

    Аурухана (емхана)

    8

    Үлгерім аттестациясы

    22

    Қоймалар

    9

    Сабақ кестесі

    23

    Дүкендер

    (кітап, азық-түлік.)

    10

    Компьютерлік ойындардың каталогы

    24

    Компьютерлер (микросхемалар)

    11

    Бейнетека (аудио)

    25

    Автокөліктер

    12

    Ұялы байланыс

    26

    Жылжымайтын мүлік

    13

    ALMA-TV

    27

    Туристік фирма

    14

    Телефон анықтамалығы

    28

    Сіздің нұсқаңыз
    1   ...   4   5   6   7   8   9   10   11   12


    написать администратору сайта