Форум: "Начинающим";
Текущий архив: 2007.01.14;
Скачать: [xml.tar.bz2];
ВнизTClientSocket & TProgressBar Найти похожие ветки
← →
atas-sheriff © (2006-12-20 18:10) [0]Здраствуйте!
Я отправляю файл клиентом на сервер:
fs:=TFileStream.Create(FileEdit.Text,fmOpenread);
fs.Position:=0;
ClientSocket1.Socket.SendText("Size:"+IntToStr(fs.Size)+#0+"Name:"+ExtractFileName(OpenDialog.FileName)+#0);
ClientSocket1.Socket.SendStream(fs);
Как сюда "приделать" ProgressBar? Надо ж знать сколько осталось ждать
← →
Chuk & Gek © (2006-12-20 20:58) [1]Слушай а как ты отправляешь файл??? ищу не могу найти... Приведи код плиз!!!
← →
Джо © (2006-12-20 21:03) [2]> [1] Chuk & Gek © (20.12.06 20:58)
> Слушай а как ты отправляешь файл??? ищу не могу найти...
> Приведи код плиз!!!
Ггг. А в [0] не код, по-твоему? :D
← →
Chuk & Gek © (2006-12-20 21:05) [3]Извените, но это всё???
я думал там сложно...
← →
Chuk & Gek © (2006-12-20 21:06) [4]А в сервере что надо написать??? если, конечно, Вас не затруднит...:)
← →
atas-sheriff © (2006-12-20 21:50) [5]Вот здесь пример http://www.atas-sheriff.by.ru/downloads/transfer.rar А как нащот TProgressBar ктота чтота знает???
← →
Chuk & Gek © (2006-12-20 21:54) [6]Спасибо большое! буду изучать...
← →
Chuk & Gek © (2006-12-20 21:55) [7]А на счёт прогрессбара- сколько байтов отправил от общего размера считай...
← →
atas-sheriff © (2006-12-20 21:57) [8]Как туда приштопать ProgressBar??? Ну сказите ктота plizzzzzz
← →
Chuk & Gek © (2006-12-20 21:57) [9]Неее.... со "спасибо поторопился"...
Он не загружается, а открывает какую то страницу вот цитата:
Rar!Ћ•
[4Ё’ыЙ}фЁТr•"H%ґJ•/ъYXЫъ>ј¤ЪyaS‘?И"‚ncU~Qї№вЋ<Ды чcнRJ±Ґ‘j}nЕґЬWЇ)F(HіБ А|)[і†B}њcSIѓ-
IЈВ;ы‘Џ*«аqЬёщ]`п9б;=ѕГЮ1ыХЬЎuigo«mв©z¤r#…*†yпєьЉ}Ф„‘ЏкxkYЙx›°ЬВn°Є@n °&ЛхЋъЪvа=;џg{®
’хєN·eэќ‰ЅnЗЏI в“ј„†ф"с�*"wrъ<d,ТUЕрvѕ»|g Г9x0э+‹D$ЗҐ№Д хЪЧџ яНbќ|7›IЄГ_KЄ‡ЕrЅKйѕ,Г‹R’тЭТ4;Џ9•qЯKЩЉM4{Аы°w(gљл0ZШSuQ¬#¬[їeЧH§U¤cAЛЂ ЦB=шYk
щ;Ќ9ЦјС„7ў7Ћ№kЅ{ПЊµ-і+ЅWЎ=сђнмЖ7нБЯ7Ю&cwMvCЧчФ ъИkYРlpW:ШmfиЁ{ј@Ђ\TїИE
0—,В›ё©іT3ла}Ђ-ЂGЉM;ЃЙ;Дј=Sѕ0я›/?РOHк`зШ0‘ТfYАnтUЇMЈэ”|zє[Х
ѕ°:?™V‡ЭnУtVЅpНHXюZ›мЄј&‚wЄџ`чB§яј·x4j9eP„·эcцЃњ{еЅSЊљё0"MpєЙЮхњ{еЅWРмШjРЕ! ТТtґ ›а‹ь…№хЫµu†GgЛ%#+†Ж—
ЁevЗЭbhд%SЭХш Ёђ<sЯИcгї/тҐ~Cу;y)UєQЅNhџ#Аґћ\
›ЎЪ&;ѓђDrhуџK№|Б‚оєgС
¬_е)@ҐWs%¬GvЙб
эyCЦ
=„–]Ђ;|^Ї,ршЅTЪу§УЗщR«}Ю¦~+њџ4ИйгчwaЁ:ҐёеІ)k
лnЇЛЛѕв5м…WЙ"їѕФXcгу¦Ѓ№°ьфыПm†ыkЖсp‰–°h›%[3k…¶S1Ґ1Птw
ґтъU»do›T[ЧЄ-л~Е(ТЋqЅGЁнF^ЈНРєEђ #?X¤v;еqnЎ…·е6|{Ѕ
чGiЫVМ^ф¦mи|F>–#|йм)%7°ФxуvVщИЬ
·ўY$уS"<¬іьT{зї(ёДOЌѕMЌEлјШЌРчY’ўв(ЊOиr“TэёСp
ЌH№eі‡ЃўFШЦTј°ђ*
•>рхА3ф—втвсwЁмЮ
х‘y‘6ЭСЗYЏи2п5Uf?C’Kъ5V¬{xN
M™%М]пЪЇсс<3CЄъ”х я3Уя©бєЖr3
Пожалуйста выложите на www.slil.ru
← →
atas-sheriff © (2006-12-20 21:58) [10]Хе) Как??? Я немогу найти "сколько отправил")
← →
Chuk & Gek © (2006-12-20 22:00) [11]ну ты какнибудь в цикле..
← →
atas-sheriff © (2006-12-20 22:02) [12]Загрузка файла.
Вы запросили файл с сайта www.atas-sheriff.by.ru, размещённого на бесплатном хостинге BY.RU. Чтобы скачать запрошенный файл, пройдите по ссылке:
/downloads/transfer.rar Здесь нажимай ПРАВУЮ КНОПКУ МЫШи и "Сохранить обект как..."
Администрация BY.RU предупреждает вас, что испольняемые файлы, загруженные из непроверенных мест могут содержать вирусы и нанести вред вашему компьютеру. Будьте внимательны и осторожны.
Что ещё можно сделать?
Вы можете отказаться от загрузки и вернуться на предыдущую страницу.
Каталог и поиск помогут быстро получить нужную информацию: [AD]
← →
Chuk & Gek © (2006-12-20 22:04) [13]Всё спасибо скачал Opera рулит!
← →
atas-sheriff © (2006-12-20 22:07) [14]Ти там тоже подумай как ProgressBar приштопать)
← →
Джо © (2006-12-20 23:04) [15]> [9] Chuk & Gek © (20.12.06 21:57)
> Неее.... со "спасибо поторопился"...
> Он не загружается, а открывает какую то страницу вот цитата:
Правой кнопкой «Сохранить объект как...». Это архив rar.
← →
Джо © (2006-12-20 23:05) [16]Правой кнопкой «Сохранить объект как...». Это архив rar.
← →
Сергей М. © (2006-12-21 08:16) [17]
> Как сюда "приделать" ProgressBar?
К SendStream() - легко. Делаешь своего наследника TFileStream и перекрываешь в нем вирт.метод Read
← →
atas-sheriff © (2006-12-21 11:15) [18]А можно кодом? А то я непонял:(
← →
Сергей М. © (2006-12-21 11:36) [19]
> я непонял
Не понял конкретно что ?
← →
atas-sheriff © (2006-12-21 11:40) [20]Делаешь своего наследника TFileStream - 1 перекрываешь в нем вирт.метод Read - 2
← →
Сергей М. © (2006-12-21 11:48) [21]type
TProgressFileStream = class(TFilestream)
protected
procedure Read(var Buffer; Count: Longint): Longint; override;
end;
...
procedure TProgressFileStream.Read;
begin
Result := inherited Read(Buffer, Count);
MyProgressBar.StepBy(Result);
end;
...
fs:=TProgressFileStream.Create(FileEdit.Text,fmOpenread);
try
..
MyProgressBar.Min := 0;
MyProgressBar.Max := fs.Size;
MyProgressBar.Position := 0;
ClientSocket1.Socket.SendStream(fs);
except
fs.Free;
reise;
end;
← →
atas-sheriff © (2006-12-21 11:56) [22]ООООООООооо)). Спасибо!!!
← →
atas-sheriff © (2006-12-21 12:47) [23]Сергей а ти уверен что это работает???
← →
Сергей М. © (2006-12-21 12:50) [24]
> а ти уверен что это работает?
При условии, что ClientType = ctNonBlocking - куда оно денется)
← →
atas-sheriff © (2006-12-21 12:54) [25]Ну я вопше чтота делаю но невиходит. Немогу понять почему. Ну вопшем код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ScktComp, StdCtrls, ComCtrls, Buttons, XPman;
type
TForm1 = class(TForm)
FileEdit: TEdit;
Button1: TButton;
Button2: TButton;
ClientSocket1: TClientSocket;
OpenDialog: TOpenDialog;
Edit2: TEdit;
Button3: TButton;
Sizelabel: TLabel;
ProgressBar1: TProgressBar;
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure ClientSocket1Connect(Sender: TObject;
Socket: TCustomWinSocket);
procedure ClientSocket1Disconnect(Sender: TObject;
Socket: TCustomWinSocket);
procedure ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
fs :TFileStream;
implementation
{$R *.dfm}
procedure TForm1.Button2Click(Sender: TObject);
begin
if ClientSocket1.Active=true then
begin
if not FileExists(FileEdit.Text) then
Exit;
fs:=TFileStream.Create(FileEdit.Text,fmOpenread);
fs.Position:=0;
ClientSocket1.Socket.SendText("Size:"+IntToStr(fs.Size)+#0+"Name:"+ExtractFileName(OpenDialog.FileName)+#0);
ClientSocket1.Socket.SendStream(fs);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if OpenDialog.Execute then
begin
FileEdit.Text:=OpenDialog.FileName;
FS:=TFileStream.Create(OPenDialog.FileName,fmOpenRead);
SizeLabel.Caption:=IntToStr(Round(FS.Size/1024))+" КБ";
FS.Free;
end;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
Button3.Tag:=Button3.Tag + 1;
if not odd(Button3.Tag) then
begin
ClientSocket1.Active:=false;
Exit;
end;
ClientSocket1.Host:=Edit2.Text;
ClientSocket1.Active:=true;
end;
procedure TForm1.ClientSocket1Connect(Sender: TObject;
Socket: TCustomWinSocket);
begin
Button3.Caption := "Disconnect";
end;
procedure TForm1.ClientSocket1Disconnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
Button3.Caption := "Connect";
end;
procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
var
s:string;
begin
s:=Socket.ReceiveText;
if s="recived" then
MessageBox(0,"File recived!","Information",mb_iconinformation+mb_ok);
end;
end.
Напиши пожалуйста куда это прилипить)) НУ PLIZZZZZ)
← →
Сергей М. © (2006-12-21 12:59) [26]
> чтота делаю но невиходит
> Ну вопшем код
Я не вижу в этом коде никаких попыток выполнить мои рекомендации.
Показывай, как ты "что-то делал" и что конкретно при этом "невиходит"...
Будем разбирать пошагово твои действия ...
← →
atas-sheriff © (2006-12-21 13:08) [27]OK.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ScktComp, StdCtrls, ComCtrls, Buttons, XPman;
type
TForm1 = class(TForm)
FileEdit: TEdit;
Button1: TButton;
Button2: TButton;
ClientSocket1: TClientSocket;
OpenDialog: TOpenDialog;
Edit2: TEdit;
Button3: TButton;
Sizelabel: TLabel;
ProgressBar1: TProgressBar;
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure ClientSocket1Connect(Sender: TObject;
Socket: TCustomWinSocket);
procedure ClientSocket1Disconnect(Sender: TObject;
Socket: TCustomWinSocket);
procedure ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
private
{ Private declarations }
public
{ Public declarations }
end;
// А вот это куда)
type
TProgressFileStream = class(TFilestream)
protected
procedure Read(var Buffer; Count: Longint): Longint; override;// Вот здесь ошибка: "Procedure cannot have a result type"
end;
var
Form1: TForm1;
fs :TFileStream;
implementation
{$R *.dfm}
// И это
procedure TProgressFileStream.Read;
begin
Result := inherited Read(Buffer, Count);
Form1.ProgressBar1.StepBy(Result);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
if ClientSocket1.Active=true then
begin
if not FileExists(FileEdit.Text) then
Exit;
fs:=TFileStream.Create(FileEdit.Text,fmOpenread);
fs.Position:=0;
ClientSocket1.Socket.SendText("Size:"+IntToStr(fs.Size)+#0+"Name:"+ExtractFileName(OpenDialog.FileName)+#0);
ClientSocket1.Socket.SendStream(fs);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if OpenDialog.Execute then
begin
FileEdit.Text:=OpenDialog.FileName;
FS:=TFileStream.Create(OPenDialog.FileName,fmOpenRead);
ProgressBar1.Min := 0; //Вот
ProgressBar1.Max := fs.Size;//это
ProgressBar1.Position := 0; //сюда. Здесь вопросов НЕТ)
SizeLabel.Caption:=IntToStr(Round(FS.Size/1024))+" ÊÁ";
FS.Free;
end;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
Button3.Tag:=Button3.Tag + 1;
if not odd(Button3.Tag) then
begin
ClientSocket1.Active:=false;
Exit;
end;
ClientSocket1.Host:=Edit2.Text;
ClientSocket1.Active:=true;
end;
procedure TForm1.ClientSocket1Connect(Sender: TObject;
Socket: TCustomWinSocket);
begin
Button3.Caption := "Disconnect";
end;
procedure TForm1.ClientSocket1Disconnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
Button3.Caption := "Connect";
end;
procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
var
s:string;
begin
s:=Socket.ReceiveText;
if s="recived" then
MessageBox(0,"File recived!","Information",mb_iconinformation+mb_ok);
end;
end.
Да я знаю что я Ламер))
← →
Anatoly Podgoretsky © (2006-12-21 13:14) [28]> atas-sheriff (21.12.2006 13:08:27) [27]
Разобраться, что такое процедура и что такое функция.
← →
Сергей М. © (2006-12-21 13:18) [29]
> // А вот это куда)
Никуда. Оно на своем месте.
> // И это
И это тоже.
> fs:=TFileStream.Create(FileEdit.Text,fmOpenread);
Найди хотя бы одно отличие от моего кодаfs:=TProgressFileStream.Create(FileEdit.Text,fmOpenread);
Понимаю, нахождение и осознание различий - задача тяжелая, но за тебя ее никто не решит)
← →
atas-sheriff © (2006-12-21 13:22) [30]а про ошибку??
TProgressFileStream = class(TFilestream)
protected
procedure Read(var Buffer; Count: Longint): Longint; override;// Вот здесь ошибка: "Procedure cannot have a result type"
end;
← →
Anatoly Podgoretsky © (2006-12-21 13:23) [31]> atas-sheriff (21.12.2006 13:22:30) [30]
Еще раз надо написать?
← →
atas-sheriff © (2006-12-21 13:25) [32]Но Сергей мне написал в [21]
← →
atas-sheriff © (2006-12-21 13:34) [33]Кароче)) Я всьо понял. Всьо работает. И очень БОЛЬШОЕ БОЛЬШОЕ СПАСИБО Сергею и Анатолию :)
← →
Сергей М. © (2006-12-21 13:34) [34]
> Но Сергей мне написал в [21]
TProgressFileStream = class(TFilestream)
protected
function Read(var Buffer; Count: Longint): Longint; override;
end;
Неужели так сложно дотумкать самому ?)
← →
Anatoly Podgoretsky © (2006-12-21 13:35) [35]> atas-sheriff (21.12.2006 13:25:32) [32]
Мало ли что он тебе написал, ты в учебник погляди, что такое функция, а что такое процедура.
← →
atas-sheriff © (2006-12-21 13:36) [36]ДА ПОНЯЛ Я))) И нашо ты писал procedure???
← →
Сергей М. © (2006-12-21 13:37) [37]
> Всьо работает
Как только изменишь ClientType с ctNonBlocking на ctBlocking, это "кароче все" работать перестанет, имей ввиду)
Любая карета, полученная нахаляву, рано или поздно станет тыквой)
← →
Anatoly Podgoretsky © (2006-12-21 13:38) [38]> atas-sheriff (21.12.2006 13:36:36) [36]
Ответь, почему ты написал procedure :-)
← →
Сергей М. © (2006-12-21 13:40) [39]
> нашо ты писал procedure?
Все претензии - к Кофи Аннену)
Код был дан тебе в кач-ве иллюстрации концепции решения !
А не для слепого передирания и последующего хныка, мол, "не пашет" ...
И голова, понимаешь ли, дана программеру отнюдь не для жевания)
← →
atas-sheriff © (2006-12-21 13:43) [40]Ок. Я тебе слепо верил))). А и ёщо какая разница ctNonBlocking и ctBlocking
Страницы: 1 2 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.01.14;
Скачать: [xml.tar.bz2];
Память: 0.56 MB
Время: 0.013 c