Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Закрытая темаСоздание новой темы Создание опроса
> СlientSocket есть маденькая проблемма 
:(
    Опции темы
Alex103
Дата 1.4.2005, 00:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 416
Регистрация: 5.1.2005
Где: Украина, г. Харьк ов

Репутация: нет
Всего: нет



Короче говоря мне нужно сделать так чтобы
Код

ClientSocket1.port:= // а здесь нужно сделать так чтобы порт можно было где нмбуть вводить 

ВВодить можно или в edit или в чем нибудь другом но проблемма в том что
Код

ClientSocket1.port:= edit1.// а тут Text не появляеться

Я так подумал и понял что нет Text из-за того что Text это String а а портом может быть только Integer потом я сделал следующее
Код

var port:integer;
begin
port:= StrToInt(edit1.text);
ClientSocket1.port:= port;
end;

но при этом хотя компилятор и не выдавал ошибок но ничего не сработало. Помогите мне. В том как можно порт ввести где-то но при этом что-бы это работало.


--------------------
Мой адресс не дом и не улица, мой адресс WWW
PM MAIL WWW ICQ YIM   Вверх
FRAGNATIC
Дата 1.4.2005, 01:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


..::Свирепый Кодер::..
**


Профиль
Группа: Участник
Сообщений: 901
Регистрация: 17.10.2004
Где: ICQ

Репутация: 6
Всего: 11



Код

var port:integer;
begin
port:= StrToInt(edit1.text);
ClientSocket1.port:= port;
end;

для начала можно и просто так сделать
Код

begin
ClientSocket1.port:= StrToInt(edit1.text);
end;


Добавлено @ 01:05
я не знаю чё у теюя там не сработало но значение порту 100% присваивается
Код

procedure TForm1.Button1Click(Sender: TObject);
begin
  ClientSocket1.Port:=StrToInt(edit1.text);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  SHowMessage(IntToStr(ClientSocket1.Port));
end;

на бутон один жму на бутон два показывает мне новое значение порта) значит всё ок
PM MAIL   Вверх
Alex103
Дата 1.4.2005, 01:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 416
Регистрация: 5.1.2005
Где: Украина, г. Харьк ов

Репутация: нет
Всего: нет



С этим я разобрался!!! Но есть еще одна проблемма!! Я думаю модераторы ничего не будут иметь против так как в теме сказано что есть маленькая проблемка а она может быть не одна. Так вот мне нужно что-бы при нажатии на кнопку если происходит соеденение в Сервером кнопка становилась недоступной а если же не соеденялись или происходила ошибка соеденения то кнопка была доступной!!! Я делал это так но ничего не вышло.
Код

if ClientSocket1.Active=true then
button1.Enabled:=false;



--------------------
Мой адресс не дом и не улица, мой адресс WWW
PM MAIL WWW ICQ YIM   Вверх
Alex103
Дата 1.4.2005, 01:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 416
Регистрация: 5.1.2005
Где: Украина, г. Харьк ов

Репутация: нет
Всего: нет



Цитата(FRAGNATIC @ 1.4.2005, 01:00)
[code=delphi]
var port:integer;
begin
port:= StrToInt(edit1.text);
ClientSocket1.port:= port;
end;

А теперь пожалуйста помоги проделать это с адресом.


--------------------
Мой адресс не дом и не улица, мой адресс WWW
PM MAIL WWW ICQ YIM   Вверх
FRAGNATIC
Дата 1.4.2005, 01:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


..::Свирепый Кодер::..
**


Профиль
Группа: Участник
Сообщений: 901
Регистрация: 17.10.2004
Где: ICQ

Репутация: 6
Всего: 11



а ещё лучше делай так
Код

var
   cPort:Longint;
begin
   cPort:=StrToIntDef(Trim(Edt1.Text),-1);
   if (cPort <= 0) or (cPort > 65535) then
   begin
      ShowMessage('Please, enter an valid port(1 to 65535)...');
      Exit;
   end;
 ....
//тут типа конектся
end;

насчёт второго ща гляну) просто не когда не работал с этим компонентом)
Добавлено @ 01:51
Цитата
А теперь пожалуйста помоги проделать это с адресом.

а можно по точнее?
PM MAIL   Вверх
Alex103
Дата 1.4.2005, 01:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 416
Регистрация: 5.1.2005
Где: Украина, г. Харьк ов

Репутация: нет
Всего: нет



Цитата(Alex103 @ 1.4.2005, 01:46)
Цитата(FRAGNATIC @ 1.4.2005, 01:00)
[code=delphi]
var port:integer;
begin
port:= StrToInt(edit1.text);
ClientSocket1.port:= port;
end;

А теперь пожалуйста помоги проделать это с адресом.

Здесь я тоже все понял!!


--------------------
Мой адресс не дом и не улица, мой адресс WWW
PM MAIL WWW ICQ YIM   Вверх
FRAGNATIC
Дата 1.4.2005, 01:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


..::Свирепый Кодер::..
**


Профиль
Группа: Участник
Сообщений: 901
Регистрация: 17.10.2004
Где: ICQ

Репутация: 6
Всего: 11



насчёт кнопок)
вообщем если тебе надо что бы когда происходит дисконект становилась кнопка конекта активной то у компонента есть событие ондисконект
на событие онконект делай ей не активно
насчёт
Код

if ClientSocket1.Active=true then
button1.Enabled:=false;

ты это где проверяеш?
в любом случаи пральней будет
Код

if ClientSocket1.Active then
button1.Enabled:=false
else
button1.enabled:=true;


Это сообщение отредактировал(а) FRAGNATIC - 1.4.2005, 02:07
PM MAIL   Вверх
Alex103
Дата 1.4.2005, 01:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 416
Регистрация: 5.1.2005
Где: Украина, г. Харьк ов

Репутация: нет
Всего: нет



Цитата(FRAGNATIC @ 1.4.2005, 01:50)
а ещё лучше делай так
Код

var
   cPort:Longint;
begin
   cPort:=StrToIntDef(Trim(Edt1.Text),-1);
   if (cPort <= 0) or (cPort > 65535) then
   begin
      ShowMessage('Please, enter an valid port(1 to 65535)...');
      Exit;
   end;
 ....
//тут типа конектся
end;

насчёт второго ща гляну) просто не когда не работал с этим компонентом)
Добавлено @ 01:51
Цитата
А теперь пожалуйста помоги проделать это с адресом.

а можно по точнее?

Но по моему это просто говорит человеку что нужо ввести порт от 1 до 65535 только в том случае если человек не ввел имя порта. А как сделать так что-бы выдавалось сообщение если конект не прошел!!!!!


--------------------
Мой адресс не дом и не улица, мой адресс WWW
PM MAIL WWW ICQ YIM   Вверх
FRAGNATIC
Дата 1.4.2005, 02:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


..::Свирепый Кодер::..
**


Профиль
Группа: Участник
Сообщений: 901
Регистрация: 17.10.2004
Где: ICQ

Репутация: 6
Всего: 11



у компонента есть событие онэрор)
Добавлено @ 02:02
Цитата
Но по моему это просто говорит человеку что нужо ввести порт от 1 до 65535 только в том случае если человек не ввел имя порта

ну вопервых от ошибок лишних во вторых у порта не имя а номер)

Добавлено @ 02:05
Код

   if ErrorEvent = eeConnect then
   begin
      ShowMessage('Can''t connect to ' + ClientSocket1.Address + '...');
    //ну и кнопку свою здесть включай или выключай
   end;
   ErrorCode:=0;

это пиши на онэрор

Это сообщение отредактировал(а) FRAGNATIC - 1.4.2005, 02:07
PM MAIL   Вверх
Alex103
Дата 1.4.2005, 02:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 416
Регистрация: 5.1.2005
Где: Украина, г. Харьк ов

Репутация: нет
Всего: нет



Цитата(FRAGNATIC @ 1.4.2005, 02:01)
у компонента есть событие онэрор)
Добавлено @ 02:02
Цитата
Но по моему это просто говорит человеку что нужо ввести порт от 1 до 65535 только в том случае если человек не ввел имя порта

ну вопервых от ошибок лишних во вторых у порта не имя а номер)

Добавлено @ 02:05
Код

   if ErrorEvent = eeConnect then
   begin
      ShowMessage('Can''t connect to ' + ClientSocket1.Address + '...');
    //ну и кнопку свою здесть включай или выключай
   end;
   ErrorCode:=0;

это пиши на онэрор

А вот сообщенпие о том что подключено успешно не вылетает!!!!


--------------------
Мой адресс не дом и не улица, мой адресс WWW
PM MAIL WWW ICQ YIM   Вверх
FRAGNATIC
Дата 1.4.2005, 02:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


..::Свирепый Кодер::..
**


Профиль
Группа: Участник
Сообщений: 901
Регистрация: 17.10.2004
Где: ICQ

Репутация: 6
Всего: 11



так это сообщение если не удачно подключино!!! ты даж почитай что в сообщение написано каннот ) а сообщение об удачном подключении надо писать на онконект
Добавлено @ 02:21
Цитата
А как сделать так что-бы выдавалось сообщение если конект не прошел!!!!!

был вопрос если НЕ прошёл конект я те дал на него ответ)
вообщем так
онконект - законектились всё ок там пиши чё хош
он дисконект произошло разъединение (не обезательно по ошибке )
онерор - произошла ошибка не удалось законектится или ещё чёнить типа разъединение (посмотри в справке виды эрорэвентов
PM MAIL   Вверх
Alex103
Дата 1.4.2005, 02:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 416
Регистрация: 5.1.2005
Где: Украина, г. Харьк ов

Репутация: нет
Всего: нет



Цитата(FRAGNATIC @ 1.4.2005, 02:18)
так это сообщение если не удачно подключино!!! ты даж почитай что в сообщение написано каннот ) а сообщение об удачном подключении надо писать на онконект
Добавлено @ 02:21
Цитата
А как сделать так что-бы выдавалось сообщение если конект не прошел!!!!!

был вопрос если НЕ прошёл конект я те дал на него ответ)
вообщем так
онконект - законектились всё ок там пиши чё хош
он дисконект произошло разъединение (не обезательно по ошибке )
онерор - произошла ошибка не удалось законектится или ещё чёнить типа разъединение (посмотри в справке виды эрорэвентов

Ну так все равно оно не появлялось


--------------------
Мой адресс не дом и не улица, мой адресс WWW
PM MAIL WWW ICQ YIM   Вверх
FRAGNATIC
Дата 1.4.2005, 02:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


..::Свирепый Кодер::..
**


Профиль
Группа: Участник
Сообщений: 901
Регистрация: 17.10.2004
Где: ICQ

Репутация: 6
Всего: 11



хоть самому проверяй (я вообще не разу этот компонент не юзал)
ща попробую быстренько чёнить состряпать)
вообще не мешало бы что бы ты здесь и код выложил хоть кусок а то фиг его знает чё у тебя там
PM MAIL   Вверх
Alex103
Дата 1.4.2005, 02:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 416
Регистрация: 5.1.2005
Где: Украина, г. Харьк ов

Репутация: нет
Всего: нет



Цитата(FRAGNATIC @ 1.4.2005, 02:28)
хоть самому проверяй (я вообще не разу этот компонент не юзал)
ща попробую быстренько чёнить состряпать)
вообще не мешало бы что бы ты здесь и код выложил хоть кусок а то фиг его знает чё у тебя там

Код выложить да нет проблем хоть и весь!!!!
Добавлено @ 02:31
Это код клиента
Код

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, ScktComp, Mask, jpeg;

type
  TForm1 = class(TForm)
    ClientSocket1: TClientSocket;
    Image1: TImage;
    Button1: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Button2: TButton;
    Button3: TButton;
    Button5: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure ClientSocket1Disconnect(Sender: TObject;
      Socket: TCustomWinSocket);
    procedure Button5Click(Sender: TObject);
    procedure ClientSocket1Connect(Sender: TObject;
      Socket: TCustomWinSocket);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
if edit2.Text<>'' then
begin
ClientSocket1.port:= StrToInt(edit2.text);
end;
if edit1.Text<>'' then
begin
ClientSocket1.Address:= edit1.Text;
end;
clientsocket1.Active:=true;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
ClientSocket1.Socket.SendText('message');
end;

procedure TForm1.ClientSocket1Disconnect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
ShowMessage('Отключено от' + ClientSocket1.Address + '...');
button1.Enabled:=True;
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
ClientSocket1.Active:=false;
end;

procedure TForm1.ClientSocket1Connect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
ShowMessage('Подключено к ' + ClientSocket1.Address + '...');
   Button1.Enabled:=false;
end;



а это сервера
Код

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, ScktComp, jpeg;

type
  TForm1 = class(TForm)
    ServerSocket1: TServerSocket;
    Image1: TImage;
    Button1: TButton;
    Edit1: TEdit;
    Label1: TLabel;
    Button2: TButton;
    procedure FormCreate(Sender: TObject);
    procedure ServerSocket1ClientRead(Sender: TObject;
      Socket: TCustomWinSocket);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
  Kartinka1: TMemoryStream;
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
ServerSocket1.Active:=true;
end;

procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
begin
if socket.ReceiveText ='message' then showmessage('Все работает');
end;

procedure TForm1.Button2Click(Sender: TObject);

begin
image1.Picture.Bitmap.SaveToStream(kartinka1);
end;

end.



--------------------
Мой адресс не дом и не улица, мой адресс WWW
PM MAIL WWW ICQ YIM   Вверх
FRAGNATIC
Дата 1.4.2005, 02:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


..::Свирепый Кодер::..
**


Профиль
Группа: Участник
Сообщений: 901
Регистрация: 17.10.2004
Где: ICQ

Репутация: 6
Всего: 11



вообще я не вижу не каких ошибок)
скажи ещё раз что тебе именно надо и что именно в этом коде не работает )

PM MAIL   Вверх
Закрытая темаСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0947 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.