Avatar billede morten_s Nybegynder
04. december 2001 - 08:34 Der er 3 kommentarer og
2 løsninger

Oprette ClientSocket under RunTime

Når jeg sætter ClientSocket active i nedenstående kode
forbliver ClientSocket.Active = False.

Nogen som ved hvad der går galt ?

unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    Label1: TLabel;
    procedure Button1Click(Sender: TObject);
  private
    ClientSocket : TClientSocket;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  i : integer;
begin
  ClientSocket := TClientSocket.Create(self);
  ClientSocket.Tag := 0;
  ClientSocket.Host := \'213.237.15.207\';
  ClientSocket.Port := 80;
  ClientSocket.Active := True;
  while not ClientSocket.Active do
    ShowMessage(\'not Active\');
end;

end.
Avatar billede borrisholt Novice
04. december 2001 - 08:40 #1
klap lige hesten .. Jeg er lige ved at løse dit problem ...

Jens b
Avatar billede borrisholt Novice
04. december 2001 - 09:00 #2
:-)
Avatar billede martinlind Nybegynder
04. december 2001 - 09:04 #3
Dette virker, men kun med en serversocket til at \"svare\" på connect

unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    Memo1: TMemo;
    ServerSocket1: TServerSocket;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
    CS1 : TClientSocket;
    procedure CSConnect(Sender: TObject; Socket: TCustomWinSocket);
    procedure CSConnecting(Sender: TObject; Socket: TCustomWinSocket);
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

{ TForm1 }

procedure TForm1.CSConnect(Sender: TObject; Socket: TCustomWinSocket);
begin
  Memo1.Lines.Add(\'Connect\');
end;

procedure TForm1.CSConnecting(Sender: TObject; Socket: TCustomWinSocket);
begin
  Memo1.Lines.Add(\'Connecting\');
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  CS1 := TClientSocket.Create(Self);
  CS1.OnConnecting := CSConnecting;
  CS1.OnConnect := CSConnect;
  CS1.Address := \'127.0.0.1\';
  CS1.Port := 8090;
  try
    CS1.Active := TRUE;
    except
      CS1.Free;
  end;
end;

end.

---------------------

object Form1: TForm1
  Left = 191
  Top = 107
  Width = 1088
  Height = 750
  Caption = \'Form1\'
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = \'MS Sans Serif\'
  Font.Style = []
  OldCreateOrder = False
  PixelsPerInch = 96
  TextHeight = 13
  object Button1: TButton
    Left = 100
    Top = 25
    Width = 75
    Height = 25
    Caption = \'Button1\'
    TabOrder = 0
    OnClick = Button1Click
  end
  object Memo1: TMemo
    Left = 205
    Top = 25
    Width = 291
    Height = 126
    Lines.Strings = (
      \'Memo1\')
    TabOrder = 1
  end
  object ServerSocket1: TServerSocket
    Active = True
    Port = 8090
    ServerType = stNonBlocking
    Left = 20
    Top = 35
  end
end


/Martin

Avatar billede morten_s Nybegynder
04. december 2001 - 12:05 #4
Jens> det virker skide godt ;-))))))

Martin> lidt trøste point
Avatar billede borrisholt Novice
04. december 2001 - 12:06 #5
Jeg snød og brugte en INDY fætter !

JEns B
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester