![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ИНДИ10, вопросы по синтаксису клиента
Pcrepair © (2011-06-23 21:25:00)Добрый день
Есть код процедуры подключения к серверу, отправки запроса серверу, получения файла, записи файла на диск, отображения файла. Все работает. но не совсем понятно как
Если кто в курсе, пожалуйста дайте комментарии
procedure TForm1.B_GetScrClick(Sender: TObject);//ПРОЦ по имени B_GetScrClick (запуск с Форма1.Кнопка - соответсвующая, событию с этим именем)
var //объявление локальной ПЕРЕМ
s:TFileStream; //ПЕРЕМ типа ФайлСтрим (поток для работы с файлами)
Bitmap: TBitmap; //ПЕРЕМ типа Битмап (графический файл типа BMP)
begin
connect_to_server; //вызов ПРОЦ подключения к серверу - это отдельно и тоже работает
IdTCPClient1.IOHandler.WriteLn('get_screen '); //Клиент дает команду серверу GET_SCREEN - запрос на получение графического файла
with IdTCPClient1 do
begin
if FileExists('C:\s.bmp') then DeleteFile('C:\s.bmp'); //Если на диске существует файл, тогда удалить этот файл
s := TFileStream.Create('C:\s.bmp',fmCreate); //присвоить ПЕРЕМ значение = создать поток, в потоке создать файл на диске - создание потока и файла на диске
while connected do //пока подключено к серверу сделать следующее
IdTCPClient1.IOHandler.ReadStream(s,-1,true); прочитать поток из клиента -ВОТ ТУТ НЕЯСНО
FreeAndNil(s); //обнулить ПЕРЕМ
Disconnect; // отключится
Image1.Picture:=nil; //обнулить картинку
Bitmap := TBitmap.Create; //создать и присвоить ПЕРЕМ это значение
try
Bitmap.LoadFromFile('C:\s.bmp'); //в ПЕРЕМ загрузить дата из файла на диске
Image1.Picture.Bitmap.Assign(Bitmap); //отобразить дата в Имедж1
finally
Bitmap.Free; // обнулить ПЕРЕМ
end;
end;
Неясно тут - (s,-1,true), что означают эти аргументы и как они влияют на результат работы
s - это имя ПЕРЕМ?
-1 или 0 - ????
true или false -???
Что то нигде не могу найти, нужно для изучения ДЕЛФИ, конкретно надо заменить TFileStream на TMemoryStream, чтобы избавится от постоянного дерганья изображения при перезаписи файлов на ЖД
Pcrepair (2011-06-25 20:07:00) [1]похоже что:
s - имя используемой переменной
-1 - размер куска int64 передаваеного из сервера в клиент, 64 байта данных
true - файл из сервера передается пока не закончится, то есть целиков
кто работал с ИНДИ? все ли верно?
(2) проблема во всем, когда только что то изучаешь
пример кода не привидешь? как будет выглядеть код, когда поток данных из сокета (графический файл бмп) помещается в ОЗУ в виде Глобал ПЕрем, затем берется из ГлобалПерем и отображается на Имидж1
vegarulez (2011-06-24 23:38:00) [2]>> s - это имя ПЕРЕМ?
>> s:TFileStream;
Сергей М. (2011-06-23 22:18:00) [3]
> конкретно надо заменить TFileStream на TMemoryStream
Ну и ?
В чем проблема-то ?
Игорь Шевченко (2011-06-23 21:43:00) [4]
> пожалуйста дайте комментарии
комментариев в коде уже много. Лишних.