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

  • Ход выполнения лабораторной работы.

  • Лабораторная работа №18.

  • Лабораторная работа №19. Создание приложения, реализующего часы

  • Современные сетевые технологии "Создание ЧАТа на основе компонентов TServerSocket и TCHentSocket" Задание 1 Компоненты TServerSocket

  • Для нормального взаимодействия этих двух программ, необходимо, чтобы свойство Port и у ServerSocket и у ClientSocket были одинаковы.

  • Информатика21-22. Методические указания по курсу Информатика Пятигорск 2020 Лабораторная работа 1


    Скачать 4.27 Mb.
    НазваниеМетодические указания по курсу Информатика Пятигорск 2020 Лабораторная работа 1
    Дата31.03.2022
    Размер4.27 Mb.
    Формат файлаdocx
    Имя файлаИнформатика21-22.docx
    ТипМетодические указания
    #431282
    страница12 из 12
    1   ...   4   5   6   7   8   9   10   11   12

    Лабораторная работа №17.


    Цель работы. Создание приложений интегрированных с офисными приложениями WORD. Описание работы.

    Для упрощения работы с приложениями Microsoft Office в Delphi заранее установлено несколько готовых компонентов оболочек интерфейса автоматизации этих серверов. Эти компоненты расположены на странице Servers палитры компонентов. В зависимости от требуемых задач возможны несколько разных реализаций разработки приложений интегрированных с офисными приложениями:

    • загрузка MS Office WORD из приложения реализованного в Delphi с открытием документа и передачи в него текста;

    • запуск MS Office WORD и работа с ней из приложения реализованного в Delphi;

    • запуск MS Office WORD и работа с ней из приложения, реализованного в Delphi, с применением OLE технологий.

    Рассмотрим каждую из приведенных возможностей работы с офисными приложениями (заметим, что приведены не все возможные реализации работы с офисными приложениями).

    1. Загрузка MS Office WORD из приложения реализованного в Delphi с открытием документа и передачи в него текста.

    Приведем пример реализации. Пусть необходимо загрузить редактор MS WORD, открыть документ c:\RUDN\MyDoc.doc, ввести в него строку «Лабораторная работа », затем сохранить его под именем MyLabDoc.doc и закрыть редактор.

    Создадим новый проект, разместим на нем компонент TWordApplication, ответственный за запуск редактора, и компонент TWordDocument, ответственный за обработку конкретного документа. Добавим также кнопку по щелчку на которой и будут выполнены описанные действия. Также разместим компоненту Edit 1, для того, чтобы редактировать передаваемую информацию.

    Свойствам AutoConnect (автоматический запуск сервера COM , в нашем случае редактора WORD ) и AutoQuit (автоматическое завершение работы сервера COM) компонента TWordApplication надо присвоить значение true. В свойстве ConnectKind (вид связи с сервером) остается значение по умолчанию ckRunningOrNew. Оно означает, что используется уже запущенный сервер COM. В противном случае автоматически запускается новый.

    Приведем текст кода , выполняемого по щелчку на кнопке:

    procedure TForm1.BitBtn1Click(Sender: TObject); var n:OleVariant; s:string;

    begin

    s:=Edit1.Text; n:='c:\RUDN\MyDoc.doc';

    WordApplication1.Documents.OpenOld(n,EmptyParam,EmptyParam, EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam, EmptyParam,EmptyParam); WordDocument1 .ConnectTo(WordApplication1 .ActiveDocument); WordApplication1.ShowMe; WordApplication1 .Selection.TypeText(s); { WordDocument1.PrintOut; } n:='C:\RUDN\MyLabDoc.doc'; WordDocument1.SaveAs(n); WordDocument1.Close;

    end;

    Если включен принтер, то можно добавить возможность печати как непосредственно с этого места, так и путем создания кнопки печати WordDocument1. PrintOut;

    На рисунке 1 показан предполагаемый вид формы




    Рисунок 1. Предполагаемый вид формы Form1.

    2. Запуск MS Office WORD и работа с ней из приложения реализованного в Delphi.

    Приведем пример реализации. Пусть необходимо загрузить редактор MS WORD, работат с ним и затем закрыть.

    Создадим новый проект, разместим на нем компонент TWordApplication, ответственный за запуск редактора. Добавим также кнопку по щелчку на которой и будут выполнены описанные действия.

    Свойствам AutoConnect (автоматический запуск сервера COM , в нашем случае редактора WORD ) и AutoQuit (автоматическое завершение работы сервера COM) компонента TWordApplication надо присвоить значение true.

    Приведем текст кода, а также вид формы на рисунке 2.:

    procedure TForm1.BitBtn1Click(Sender: TObject);

    begin

    WordApplication1.Visible:=True;

    WordApplication1.Documents.AddOld(EmptyParam,EmptyParam); end;


    If OleContainer1.InsertObjectDialog then OleContainer1.DoVerb(OleContainer1.PrimaryVerb );

    end;
    procedure TForm1.BitBtn4Click(Sender: TObject); begin

    OleContainer1.ObjectPropertiesDialog;

    end;

    Надо отметить, что такой подход дает возможность подключать не только Word, но и другие офисные приложения (аналогично вставке из Word объектов различного характера).

    Ход выполнения лабораторной работы.

    1. Ознакомиться с описанием лабораторной работы.

    1. Реализовать все три приведенные возможности подключения офисных приложений WORD.

    1. Оформить отчет


    Лабораторная работа №18.


    Цель работы. Создание приложений интегрированных с офисными приложениями EXEL. Описание работы.

    Для упрощения работы с приложениями Microsoft Office в Delphi заранее установлено несколько готовых компонентов оболочек интерфейса автоматизации этих серверов. Эти компоненты расположены на странице Servers палитры компонентов. В зависимости от требуемых задач возможны несколько разных реализаций разработки приложений интегрированных с офисными приложениями, приведем одну из них: загрузка MS Office EXEL из приложения реализованного в Delphi с открытием документа и передачи в него текста;

    Рассмотрим каждую из приведенных возможностей работы с офисными приложениями (заметим, что приведены не все возможные реализации работы с офисными приложениями).

    Пусть необходимо загрузить редактор MS EXEL, открыть файл MyTab.xls и записать текст в ячейку (1,1) текст «Ессентуки» и закрыть документ.

    Создадим новый проект, разместим на нем компонент TExelApplication, и компонент TExelWorkbook. Добавим также кнопку по щелчку на которой и будут выполнены описанные действия.

    Свойствам AutoConnect (автоматический запуск сервера COM , в нашем случае редактора Exel ) и AutoQuit (автоматическое завершение работы сервера COM) компонента TExelApplication надо присвоить значение true. В свойстве TExelWorkbook ConnectKind (вид связи с сервером) остается значение по умолчанию ckAttachToInterface.

    Приведем текст кода , выполняемого по щелчку на кнопке:

    procedure TForm1.BitBtn1Click(Sender: TObject);

    var n:OleVariant;

    begin


    n:='e:\mytab.xls'; ExcelApplication1.Workbooks.Add(n,0);

    ExcelWorkbook1 .ConnectTo(ExcelApplication1.ActiveWorkbook); ExcelApplication1.Cells.Item[1,1].Value:='npMBeT изЕссентуков'; ExcelWorkbook1 .Save; ExcelWorkbook1 .Close;

    end;

    Если включен принтер, то можно добавить возможность печати как непосредственно с этого места, так и путем создания кнопки печати ExcelWorkbook1 .PrintOut;

    На рисунке 1 показан предполагаемый вид формы



    Рисунок 1. Предполагаемый вид формы Form1. Ход выполнения лабораторной работы.

    1. Ознакомиться с описанием лабораторной работы.

    1. Реализовать все три приведенные возможности подключения офисных приложений WORD.

    1. Оформить отчет



    Лабораторная работа №19. Создание приложения, реализующего часы


    Цель работы. Ознакомление и обучение навыкам программирования приложений работающих в реальном времени, а также работа с графическими функциями.

    Описание работы.

    В данной лабораторной работе рассматриваются вопросы создания часов, как стрелочных так и цифровых.

    Создаем проект. Сохраняем его в своей папке как PrilTime. Параметры Forml устанавливаем следующие:



    На форме располагаем два компонента: TTimer из страницы System палитры компонентов и BitBtn из страницы Additional палитры компонентов. Параметры BitBtn1 устанавливаем следующие:



    Далее выделяем компоненту Timer1 и в Object Inspector на вкладке Events свойстве OnTimer два раза щелкаем

    Далее в открывшемся окне редактора набираем следующий код


    procedure TForm1.Timer1Timer(Sender: TObject);

    var

    DateTime:TDateTime;

    s,s1 ,s2,s3:string;

    I,k1,k2,k3:integer;

    a1,a2,a3:real; procedure timtim; begin

    if k1>11 then k1:=k1-12;

    a1:=(k1+k2/60)*2*pi/12;

    a2:=k2*2*pi/60;

    a3:=k3*2*pi/60;

    l:=canvas.Brush.Color; canvas.Brush.Color:=cl3dLight; Canvas.Pen.Color:=clRed; canvas.RoundRect(0,0,400,400,50,50); canvas.Font.Size:=48; canvas.TextOut(60,40,' Е ссентуки'); canvas.TextOut(120,110,'РУДН'); canvas.Font.Size:=20; {прорисовка часов}

    canvas.TextOut(220,220,s1 );canvas.TextOut(100,220,'Часы');

    canvas.Pen.Width:=10;

    canvas.moveto(200,200);

    canvas.lineto(round(200+140*sin(a1 )),round(200-140*cos(a1))); {прорисовка минут}

    canvas.TextOut(220,260,s2);canvas.TextOut(100,260,'Минуты');

    canvas.Pen.Width:=4;

    Canvas.Pen.Color:=clGreen;

    canvas.moveto(200,200);

    canvas.lineto(round(200+160*sin(a2)),round(200-160*cos(a2))); {прорисовка секунд}

    canvas.TextOut(220,300,s3);canvas.TextOut(100,300,'Секунды');

    canvas.Pen.Width:=2;

    Canvas.Pen.Color:=clBlue;

    canvas.moveto(200,200);

    canvas.lineto(round(200+180*sin(a3)),round(200-180*cos(a3))); canvas.Brush.Color:=l;

    end;

    begin

    DateTime:=Time; s:=TimeToStr(DateTime); if length(s)=7 then

    begin

    s1:=copy(s,1,1);s2:=copy(s,3,2);s3:=copy(s,6,2); k1 :=StrToInt(s1); k2:=StrToInt(s2);k3:=StrToInt(s3); TimTim; end else

    begin

    s1:=copy(s,1,2);s2:=copy(s,4,2);s3:=copy(s,7,2); k1 :=StrToInt(s1 );k2:=StrToInt(s2);k3:=StrToInt(s3); TimTim; end;

    end;



    Ход выполнения лабораторной работы.

    1. Ознакомиться с описанием лабораторной работы.

    2. Реализовать разработанный проект.

    3. Оформить отчет


    Лабораторная работа №20



    Современные сетевые технологии

    "Создание ЧАТа на основе компонентов TServerSocket и TCHentSocket"

    Задание 1

    Компоненты TServerSocket и TCIientSocket расположены на вкладке Internet палитры компонентов.

    Их взаимодействие основано на использовании виртуальных портов - сокетов и на основе протокола TCP/IP.

    Область использования этих компонентов достаточна широка, она начинается от простых программ обмена сообщениями и файлами до сетевых игр!

    Методы ClientSocket и ServerSocket схожи и позволяют обмениваться данными трех типов:

    1.Массив байтов

    2.Поток (для передачи файлов)

    3.Строка длиной до 256 символов(байт) ClientSockccl.Socket.Se



    Создание приложения Чат-сервера Создайте приложение с формой Forml, разместите на FormI следующие компоненты:



    1.ServerSocketl, в Objectlnspector в Properties установите свойство Port в

    значение 777.

    2.Memol

    3.Editl

    4.Label 1 s

    5.Три кнопки: Button 1, Button2 и Button3,
    измените свойства Caption на «Открыть чат», «Закрыть чат» и «Отослать» соответственно


    Выделите компонент ServerSocketl, в окне Objectlnspector на вкладке Events реакцией на событие OnClientRead напишите следующее:

    procedure TForml.ServerSocketlClieniRead(Sender: TObject;

    Socket: TCustomWinSocket);

    var

    s:string;

    integer;

    begin

    s:=lntToStr(Socket.SocketHandle)+'>>>>'+Socket.ReceiveText; //получить строку cообщения

    Memol.Lines.Add(s); //добавить сообщением многострочное поле

    for i:=0 to ServerSocketl.Socket.ActivcConnections-1 do

    begin

    if ServerSocketl.Socket.Connections[i].SocketHandle <> Sockct.SocketHandle then ServerSocketl.Socket.Connections[i].SendText(s); // отослать принятое сообщение остальным

    end; end;

    //Событие OnClientRead возникает при поступлении or ClientSocket сообщения или данных Для события ButtonI .OnClick:

    procedure TForml.Button1.Button1Click(Sender: TObject);

    begin

    Labell.Caption:='IP: '+ServerSocketl.Socket.LocalAddress; //IP-адрес компьютера

    ServerSocketl.Active:= True; //Включить серверный сокет

    end;

    Для события Button2.OnClick:

    procedure TForml.Butlon2Click(Sender: TObject);

    begin

    ServerSocket1.Active:=False; ServerSocketl.Close; //Завершение работы сокета

    end;

    Для события Button3.OnClick

    procedure TForml.Button3Click(Sender: TObject); var

    i:integer; begin

    for i:=0 to ServerSocketl.Socket.ActiveConnections-1 do

    ServerSocketl .Socket.Connections[i].SendText(Editl .Text); // отослать текст из Editl

    end;

    Откомпилируйте проект и сохраните в папке Server.

    При нажатии на кнопку «Открыть чат» если Ваш компьютер подключен к сети, на Label 1 высвечивается IP-адрес Вашего компьютера в сети, в таком режиме программа готова принимать и отсылать сообщения. Одна такая серверная программа способна обслуживать несколько тысяч клиентских программ

    Задание_2

    Для полноценной работы Чата необходимо сошать клиентское приложение, используя компонент ClientSocketl.

    Аналогично Чат-серверу создайте приложение Чат-клиент с формой Forml, разместите на Forml следующие компонент:

    1. ClientSocketl, в Objectlnspector в Properties ус :шовите свойство Port в

    значение 777 .

    2.Memol

    3.Editl

    4. Edit2

    5.Label 1

    6.Три кнопки: Button 1, Button2 и Button3,
    измените свойства Caption на «Подключиться», «Отключиться) и «Отослать» соответственно


    Добавился компонент Edit2 для ввода IP - адреса Чат-сервера.

    Выделите компонент ClientSocketl, в окне Objectlnspector на вкладке Events реакцией на событие OnRead нппишите следующее:

    //Событие OnRead возникает при поступлении от ServerSocket сообщения или данных

    procedure TForml.ClientSocketlRead(Sender: TObject;

    Socket: TCustomWinSocket);

    begin

    Memol.Lines.Add(Socket.ReceiveText);//пoлyчeнный текст добавить в Memol ]

    end;

    Для события Buttonl.OnClick:

    procedure TForml.ButtonlClick(Sender: TObject);

    begin

    if not ClientSocket1.Active then

    begin

    ClientSocketl Address:=Edit2.Text; //Задать IP-адрес из Edit2

    ClientSocketl.Active:=True; //начать работу end; end;

    Для события Button2.OnClick:

    procedure TForml.Button2Click(Sender: TObject);

    begin

    ClientSocketl.Active:=False;

    ClientSocketl.Close;

    end;

    Для события Button3.OnClick:

    procedure TForml.Button3Click(Sender: TObject);

    var

    s:string;

    begin

    ClientSocketl.Socket.SendText(Editl.Text);

    end;

    Откомпилируйте проект и сохраните в папке Client.

    Для теста запустите сначала оба приложения па одном компьютере.

    Сначала запустите Чат-сервер и нажмите кнопку «Открыть чат»,

    затем запустите Чат-Клиент с IP-aдресом 127.0.0.1 и нажмите кнопку «Подключиться».

    Чат-клиентов можно запустить сколько угодно даже па одном компьютере.

    Теперь можно обмениваться сообщениями, вводя текст сообщения в Editl и нажимая кнопку

    «Отослать».

    Чтобы запустить Чат по локальной сети,

    запустите на одном из компьютеров Чат-сервер и нажмите «Запустить чат», затем вам необходимо узнать IP-адрес Чат-сервера и ввести его в поле Edit2 Чат-клиента и нажать «Подключиться».

    Для нормального взаимодействия этих двух программ, необходимо, чтобы свойство Port и у ServerSocket и у ClientSocket были одинаковы.

    Дополнительное задание.

    Добавьте кнопку и назовите ее «Clear», чтобы при нажатии на нее вызывался метод Memol.Lines.Clear.

    1   ...   4   5   6   7   8   9   10   11   12


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