Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-08-2007
ospaco69 ospaco69 is offline
Registrado
 
Registrado: ago 2005
Posts: 5
Poder: 0
ospaco69 Va por buen camino
Question Problemas con acceso telefonico a redes e hilos

Buenas!:
La cosa es asi:Necesito crear una conexion mediante RAS y que la misma se mantenga activa hasta que yo le indique.Una vez establecida la conexion crearia tantos hilos como empresas a consultar y los mantendria activos hasta que reciba la respuesta de cada empresa.
Intento manejarlo mediante hilos, (igualmente la parte a ajecutar una vez establecida la conexion no la tengo terminada), o sea creo un hilo para la conexion RAS que utiliza un componente de las APRO para este fin.Mediante la clase TSto creo y ejecuto este hilo de conexion, pero no logro que comience a discar. Para mas datos no da ninguna excepcion de programa.
Cualquier comentario sera bienvenido como asi tambien a cualquiera que lea este hilo.
Gracias!


Código Delphi [-]
unit uSto_1;
interface
uses
Windows, Messages, SysUtils, Classes, Controls,StdCtrls, DBClient, uClasesRapipues,
Provider, Dialogs;
type
TDatosConexion = record
cPath: String;
cPideLinea: String;
nPuesto: Integer;
cTipoConexion: String;
End;
TArrayRegMsjSTO = class(TComponent)
Private
RegSto: TRegMsjSTO;
Public
Items: Array of TRegMsjSTO;
Procedure Add(CDS: TClientDataSet);
Function Longitud:Integer;
End;
THiloComunicacion = class(TThread)
private
// FFileName: String;
miRas: TComunicacionRAS;
fConectado: Boolean;
fDatosConexion: TDatosConexion;
public
ConexionEstablecida: TNotifyEvent;
constructor Create(AOwner: TComponent;CreateSuspended: Boolean);//;reintroduce;overload;
procedure Execute;override;
property lConectado: Boolean read fConectado;
end;
TSto = class(Tcomponent)
private
RegMsjSTO: TArrayRegMsjSTO;
hConexion: THiloComunicacion;
Procedure IniConexion(rDatosConexion:TDatosConexion);
procedure IniciarConsultas(Sender: TObject);
public
constructor Create(ArrayDatos: TArrayRegMsjSTO;rDatosConexion:TDatosConexion);Reintroduce;Overload;
property aRegMsjSTO: TArrayRegMsjSTO read RegMsjSTO write RegMsjSTO;
End;
implementation
{ TSto }
constructor TSto.Create(ArrayDatos: TArrayRegMsjSTO;rDatosConexion:TDatosConexion);
begin
RegMsjSTO := TArrayRegMsjSTO.Create(Nil);
regMsjSTO := ArrayDatos;
IniConexion(rDatosConexion);
end;
procedure TSto.IniciarConsultas(Sender: TObject);
begin
//Creo los hilos por empresa
showmessage('puedo consultar');
end;
procedure TSto.IniConexion(rDatosConexion:TDatosConexion);
begin
try
If rDatosConexion.cTipoConexion = 'RAS' Then
Begin
hConexion := THiloComunicacion.Create(Self,True); // Creo el hilo en estado suspendido
hConexion.fDatosConexion := rDatosConexion;
hConexion.ConexionEstablecida := IniciarConsultas;
hConexion.Resume; // Inicio tarea de conexion
End;
except
on e:exception do
raise exception.create(e.message);
end;
end;
{ TArrayRegMsjSTO }
procedure TArrayRegMsjSTO.Add(CDS: TClientDataSet);
begin
SetLength(Items,High(Items) + 2);
With RegSto Do
Begin
idTransaccion := 'R2'
+ FormatDateTime('YYYYMMDD',CDS.fieldbyname('F_CAJA').AsDateTime)
+ StringReplace(CDS.fieldbyname('HORA').AsString,':','',[rfReplaceAll]);
codigoOperatoria := CDS.fieldbyname('EMPRESA').AsString;
referenciaFactura := CDS.fieldbyname('BARRITA').AsString;
codigoBarra := CDS.fieldbyname('BARRA').AsString;
importeCobrado := FloatToStr(CDS.fieldbyname('IMPORTE').AsFloat);
End;
Items[High(Items)] := RegSto;
end;
function TArrayRegMsjSTO.Longitud: Integer;
begin
Result := High(Items);
end;
{ THiloComunicacion }
constructor THiloComunicacion.Create(AOwner: TComponent;CreateSuspended: Boolean);
begin
fConectado := False;
Self.miRas := TComunicacionRAS.Create(AOwner);
Self.miRas.EventoComunicacion := ConexionEstablecida;
end;
procedure THiloComunicacion.Execute;
begin
Try
While not Self.Terminated do
Begin
Self.miRas.Llamar(fDatosConexion.cPath,fDatosConexion.cPideLinea,fDatosConexion.nPuesto);
End;
except
On e:exception do
raise exception.Create(e.message);
end;
end;
end.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
acceso telefonico a un equipo RONPABLO Windows 0 20-10-2005 17:43:17
Acceso Telefonico diegofhernando Internet 2 15-12-2003 16:28:15
Crear Acceso Telefonico a Redes diegofhernando Internet 1 05-06-2003 00:41:44
Lo siento... pero me urge Acceso Telefonico a Redes diegofhernando Internet 1 04-06-2003 02:33:03


La franja horaria es GMT +2. Ahora son las 09:11:45.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi