Просмотр кода
Идентификатор: 65ebaa60 Описание: Код загружен: 16 июля 2009, 13:18 (Roman Novikov)
unit Main; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, StdCtrls, ComCtrls, PlatformDefaultStyleActnCtrls, ActnList, ActnMan, ToolWin, ActnCtrls, ActnMenus, IdException; type TMainForm = class(TForm) StatusBar1: TStatusBar; ActionMainMenuBar1: TActionMainMenuBar; ActionManager1: TActionManager; CoolBar1: TCoolBar; ToolBar1: TToolBar; ToolButton1: TToolButton; ToolButton2: TToolButton; ToolButton3: TToolButton; RichEdit1: TRichEdit; IdTCPClient1: TIdTCPClient; Action1: TAction; Action2: TAction; Action3: TAction; procedure Action2Execute(Sender: TObject); procedure Action1Execute(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure Action3Execute(Sender: TObject); private { Private declarations } public { Public declarations } end; var MainForm: TMainForm; implementation {$R *.dfm} //Выход. procedure TMainForm.Action1Execute(Sender: TObject); begin if (IdTCPClient1.Connected) then try IdTCPClient1.Disconnect; RichEdit1.Lines.Append('Отключились от сервера'); Action2.Caption := 'Подключиться'; except RichEdit1.Lines.Append('Ошибка отключения от сервера'); end; Self.Close; end; //Подключение к серверу. procedure TMainForm.Action2Execute(Sender: TObject); begin if (IdTCPClient1.Connected) then try IdTCPClient1.Disconnect; RichEdit1.Lines.Append('Отключились от сервера'); Action2.Caption := 'Подключиться'; except RichEdit1.Lines.Append('Ошибка отключения от сервера'); end else try IdTCPClient1.Connect; RichEdit1.Lines.Append('Подключились к серверу'); Action2.Caption := 'Отключиться'; except RichEdit1.Lines.Append('Ошибка подключения к серверу'); end; end; //Отправка файла. procedure TMainForm.Action3Execute(Sender: TObject); var FileStream1: TFileStream; const FileName = 'BibleDelphi.pdf'; begin if (IdTCPClient1.Connected) then if (FileExists(FileName)) then try FileStream1 := TFileStream.Create(FileName, fmOpenRead); FileStream1.Position := 0; try RichEdit1.Lines.Append('Начали отправку файла'); IdTCPClient1.IOHandler.Write(FileStream1.Size, False); IdTCPClient1.IOHandler.Write(FileStream1, FileStream1.Size); RichEdit1.Lines.Append('Закончили отправку файла'); except on E: EIdException do begin RichEdit1.Lines.Append('Ошибка передачи файла'); ShowMessage('Ошибка передачи файла' + E.Message); end; on E: Exception do ShowMessage('Ошибка чтения файла' + E.Message); end; FileStream1.Free; except on E: Exception do ShowMessage('Ошибка чтения файла' + E.Message); end else ShowMessage('Файл с именем ''' + FileName + ''' не существует') else ShowMessage('Необходимо подключиться к серверу'); end; //Закрытие гл.формы. procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; end.