Delphi-int.ru: портал программистов

Вход Регистрация | Забыли пароль?

Просмотр кода

Идентификатор: 65ebaa60 Описание: Код загружен: 16 июля 2009, 13:18 (Roman Novikov)

  1. unit Main;
  2.  
  3. interface
  4.  
  5. uses
  6. Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  7. Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, StdCtrls,
  8. ComCtrls, PlatformDefaultStyleActnCtrls, ActnList, ActnMan, ToolWin,
  9. ActnCtrls, ActnMenus, IdException;
  10.  
  11. type
  12. TMainForm = class(TForm)
  13. StatusBar1: TStatusBar;
  14. ActionMainMenuBar1: TActionMainMenuBar;
  15. ActionManager1: TActionManager;
  16. CoolBar1: TCoolBar;
  17. ToolBar1: TToolBar;
  18. ToolButton1: TToolButton;
  19. ToolButton2: TToolButton;
  20. ToolButton3: TToolButton;
  21. RichEdit1: TRichEdit;
  22. IdTCPClient1: TIdTCPClient;
  23. Action1: TAction;
  24. Action2: TAction;
  25. Action3: TAction;
  26. procedure Action2Execute(Sender: TObject);
  27. procedure Action1Execute(Sender: TObject);
  28. procedure FormClose(Sender: TObject; var Action: TCloseAction);
  29. procedure Action3Execute(Sender: TObject);
  30. private
  31. { Private declarations }
  32. public
  33. { Public declarations }
  34. end;
  35.  
  36. var
  37. MainForm: TMainForm;
  38.  
  39. implementation
  40.  
  41. {$R *.dfm}
  42.  
  43.  
  44. //Выход.
  45. procedure TMainForm.Action1Execute(Sender: TObject);
  46. begin
  47. if (IdTCPClient1.Connected) then
  48. try
  49. IdTCPClient1.Disconnect;
  50. RichEdit1.Lines.Append('Отключились от сервера');
  51. Action2.Caption := 'Подключиться';
  52. except
  53. RichEdit1.Lines.Append('Ошибка отключения от сервера');
  54. end;
  55. Self.Close;
  56. end;
  57.  
  58. //Подключение к серверу.
  59. procedure TMainForm.Action2Execute(Sender: TObject);
  60. begin
  61. if (IdTCPClient1.Connected) then
  62. try
  63. IdTCPClient1.Disconnect;
  64. RichEdit1.Lines.Append('Отключились от сервера');
  65. Action2.Caption := 'Подключиться';
  66. except
  67. RichEdit1.Lines.Append('Ошибка отключения от сервера');
  68. end
  69. else
  70. try
  71. IdTCPClient1.Connect;
  72. RichEdit1.Lines.Append('Подключились к серверу');
  73. Action2.Caption := 'Отключиться';
  74. except
  75. RichEdit1.Lines.Append('Ошибка подключения к серверу');
  76. end;
  77.  
  78. end;
  79.  
  80. //Отправка файла.
  81. procedure TMainForm.Action3Execute(Sender: TObject);
  82. var
  83. FileStream1: TFileStream;
  84. const
  85. FileName = 'BibleDelphi.pdf';
  86. begin
  87. if (IdTCPClient1.Connected) then
  88. if (FileExists(FileName)) then
  89. try
  90. FileStream1 := TFileStream.Create(FileName, fmOpenRead);
  91. FileStream1.Position := 0;
  92. try
  93. RichEdit1.Lines.Append('Начали отправку файла');
  94. IdTCPClient1.IOHandler.Write(FileStream1.Size, False);
  95. IdTCPClient1.IOHandler.Write(FileStream1, FileStream1.Size);
  96. RichEdit1.Lines.Append('Закончили отправку файла');
  97. except
  98. on E: EIdException do
  99. begin
  100. RichEdit1.Lines.Append('Ошибка передачи файла');
  101. ShowMessage('Ошибка передачи файла' + E.Message);
  102. end;
  103. on E: Exception do ShowMessage('Ошибка чтения файла' + E.Message);
  104. end;
  105. FileStream1.Free;
  106. except
  107. on E: Exception do ShowMessage('Ошибка чтения файла' + E.Message);
  108. end
  109. else ShowMessage('Файл с именем ''' + FileName + ''' не существует')
  110. else ShowMessage('Необходимо подключиться к серверу');
  111.  
  112. end;
  113.  
  114. //Закрытие гл.формы.
  115. procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction);
  116. begin
  117. Action := caFree;
  118. end;
  119.  
  120. end.

Ссылка на данный код:

На главную страницу сервиса обмена кодом »