2. Для чего все надо: Memo, Edit и Button - думаю с этим все понятно. IdHTTP и Timer нужны для чтения чата с сервера ucoz, idFTP для отправки сообщений, в Label будем выводить сам чат (Visible должно быть False, чтобы пользователь не видел лишнего текста)
Если кто знает как выводить сразу в Memo, а не в Label то можете переделать))
3. Собственно сам код:
Код:
procedure TForm1.Timer1Timer(Sender: TObject);
var
HTTP:TIdHTTP;
s:string;
begin
HTTP:=TIdHTTP.Create(nil);
s:=HTTP.Get('http://site.ucoz.ru/Chat.txt');
Memo1.Clear;
Memo1.Lines[0] := s;
end;
Код:
procedure TForm1.Button9Click(Sender: TObject);
var
S: TStringList;
begin
S:=TStringList.Create;
S.Text:=Edit1.Text;
S.SaveToFile('Chat.txt');
Edit1.Clear;
IdFTP1.Username:= 'Login FTP';
IdFTP1.Password:= 'Pass FTP';
IdFTP1.Host:= 'Host FTP';
IdFTP1.Passive:= True;
if IdFTP1.Connected then
IdFTP1.Disconnect
else
try
IdFTP1.Connect(True);
except
on E : Exception do
ShowMessage('Îê: '+E.Message);
end;
if IdFTP1.Connected then
try
IdFTP1.Put('Chat.txt', 'Chat.txt', True);
except
on E : Exception do
ShowMessage('Íåà: '+E.Message);
end;
DeleteFile('Chat.txt');
IdFTP1.Disconnect;
end;
Вот в принципе и все, небольшие задержки только при отправке сообщений 1-2сек.
Последний раз редактировалось FarmHitman1; 26.04.2012 в 21:00.
Refresh в таймере работает... НО... после того как он делает обновление таргет с Edit слетает
Есть ли код для выбора в таргет Edit ?
Добавлено через 2 минуты
А не, все норм, главное на браузер не нажимать, но тут проблема в другом... Он русский язык не читает там шифровка не понятная на ucoze с русским языком
Добавлено через 4 минуты
Если руками вводить в чат по русски (файл на сервере) то он читает, а если отправлять сообщение то нет...
Последний раз редактировалось FarmHitman1; 21.04.2012 в 17:26.
Причина: Добавлено сообщение
Спасибо вам что исправили меня, просто нужно было бежать..
А теперь по теми.
На юкоз шифруетца только когда загружаеш файл на хост, если уже потом его редоктировать то будет все ок.
Я проверял вводил и все норм было, вводил текст он там появлялся..
Это даже чатом не назвать, просто так пишеш посты, и даже не видно кто пишет(т.е. ник неймы)
Правда чтоли?
[Ссылки могут видеть только зарегистрированные пользователи. ]
в мемо сразу вроде так memo1.Lines.LoadFromFile(IdHTTP1.Get('http://site.ucoz.ru/Chat.txt'))
ну а если не можешь зачем создавать лейбл если можно создать переменную типа string и сунуть туда
var
blabla:string
...
Memo1.Lines[0] := blabla;
...
Нашел небольшую ошибку, из-за которой сообщения отправляются 1 из 2...
Код:
procedure TForm1.Button9Click(Sender: TObject);
var
S: TStringList;
begin
S:=TStringList.Create;
S.Text:=Edit1.Text;
S.SaveToFile('Chat.txt');
Edit1.Clear;
IdFTP1.Username:= 'Login FTP';
IdFTP1.Password:= 'Pass FTP';
IdFTP1.Host:= 'Host FTP';
IdFTP1.Passive:= True;
if IdFTP1.Connected then
IdFTP1.Disconnect
else
try
IdFTP1.Connect(True);
except
on E : Exception do
ShowMessage('Îê: '+E.Message);
end;
if IdFTP1.Connected then
try
IdFTP1.Put('Chat.txt', 'Chat.txt', True);
except
on E : Exception do
ShowMessage('Íåà: '+E.Message);
end;
DeleteFile('Chat.txt');
IdFTP1.Disconnect
end;
Необходимо добавить данную строку, чтобы не было такой проблемы...
я вот только не пойму зачем разрывать соеденение а потом опять устанавливать? можно просто тупо сделать проверку на осуществление подключения
Код:
procedure TForm1.Button9Click(Sender: TObject);
var
S: TStringList;
begin
S:=TStringList.Create;
S.Text:=Edit1.Text;
S.SaveToFile('Chat.txt');
Edit1.Clear;
IdFTP1.Username:= 'Login FTP';
IdFTP1.Password:= 'Pass FTP';
IdFTP1.Host:= 'Host FTP';
IdFTP1.Passive:= True;
if IdFTP1.Connected then
begin
try
IdFTP1.Put('Chat.txt', 'Chat.txt', True);
except E : Exception do ShowMessage('Îê: '+E.Message);
IdFTP1.Disconnect;
end;
end
else
begin
IdFTP1.Connect(True);
try
IdFTP1.Put('Chat.txt', 'Chat.txt', True);
except
on E : Exception do
ShowMessage('Íåà: '+E.Message);
IdFTP1.Disconnect;
end;
end;
DeleteFile('Chat.txt');
end;
Последний раз редактировалось sasha-; 28.04.2012 в 17:46.
я вот только не пойму зачем разрывать соеденение а потом опять устанавливать? можно просто тупо сделать проверку на осуществление подключения
Код:
procedure TForm1.Button9Click(Sender: TObject);
var
S: TStringList;
begin
S:=TStringList.Create;
S.Text:=Edit1.Text;
S.SaveToFile('Chat.txt');
Edit1.Clear;
IdFTP1.Username:= 'Login FTP';
IdFTP1.Password:= 'Pass FTP';
IdFTP1.Host:= 'Host FTP';
IdFTP1.Passive:= True;
if IdFTP1.Connected then
begin
try
IdFTP1.Put('Chat.txt', 'Chat.txt', True);
except E : Exception do ShowMessage('Îê: '+E.Message);
IdFTP1.Disconnect;
end;
end
else
begin
IdFTP1.Connect(True);
try
IdFTP1.Put('Chat.txt', 'Chat.txt', True);
except
on E : Exception do
ShowMessage('Íåà: '+E.Message);
IdFTP1.Disconnect;
end;
end;
DeleteFile('Chat.txt');
end;
Так отправляет быстрее, но на IdFTP1.Disconnect; ругается везде) Я просто стер, пока что не знаю че получится)