Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-10-2005
CelestronFan CelestronFan is offline
Miembro
 
Registrado: oct 2005
Posts: 14
Poder: 0
CelestronFan Va por buen camino
Ayuda con TRegistry

Saludos a todos.

Hace unos días solicité ayuda con respecto a la lectura y escritura del registro Windows. Luego de leer sobre TRegistry, hice las rutinas correpondiente y la declaración de las variables y uses necesarios. El compilador me arroja un error diciéndome que la variable RegNGFS no está declarada. ¿Podría alguien indicarme que es lo que está mal en el código?

Por cierto, ¿está bien hecha la declaración den enteros sin signo, Cardinal?

Muchas Gracias.

Código Delphi [-]
unit NGFS;
 
 interface
 
 uses
   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
   Forms, Dialogs, StdCtrls, ComCtrls, ExtCtrls, CPortCtl, CPort, Registry;
 
 type
   TForm1 = class(TForm)
     BIn: TButton;
     BOut: TButton;
     GroupBox1: TGroupBox;
     LCurrPos: TLabel;
     Label2: TLabel;
     Label3: TLabel;
     Label4: TLabel;
     Label5: TLabel;
     Label6: TLabel;
     BGoto: TButton;
     LTotStep: TLabel;
     BCali: TButton;
     PBCurrPos: TProgressBar;
     Timer1: TTimer;
     ComComboBox1: TComComboBox;
     ComPort1: TComPort;
     ComLed1: TComLed;
     Eminstep: TEdit;
     Emaxstep: TEdit;
     Label1: TLabel;
     Eminstop: TEdit;
     Label7: TLabel;
     Emaxstop: TEdit;
     BConnect: TButton;
     EGoto: TEdit;
   private
     { Private declarations }
     RegNGFS: TRegistry;
   public
     { Public declarations }
   end;
 
 var
   Form1: TForm1;
   MaxSteps: Cardinal; //Número máximo de pasos del Stepper
   MinSteps: Cardinal; //Número mínimo de pasos del Stepper
   StopOUT: Cardinal; //Posición de parada sentido OUT del Stepper
   StopIN: Cardinal; //Posición de parada sentido IN del Stepper
   COMPort: String; //Puerto Serial seleccionado
 
 implementation
 
 {$R *.dfm}
 
 procedure ReadRegistry( MaxSteps: Cardinal; MinSteps: Cardinal;
   StopOUT: Cardinal; StopIN: Cardinal; COMPort: String);
 //Procedimiento para leer el registro//
 begin
   try
     RegNGFS:= TRegistry.Create;
     RegNGFS.RootKey := HKEY_LOCAL_MACHINE;
     if RegNGFS.OpenKey('SOFTWARE\NGFS', FALSE) then begin
       MaxSteps:= RegNGFS.ReadCardinal('MaxSteps');
       MinSteps:= RegNGFS.ReadCardinal('MinSteps');
       StopOUT:= RegNGFS.ReadCardinal('StopOUT');
       StopIN:= RegNGFS.ReadCardinal('StopIN');
      COMPort:= RegNGFS.ReadString('COMPort');
     end;
   finally
     RegNGFS.Free;
   end;
 end;
 
 procedure WriteRegistry( );
 //Procedimiento para escribir el registro//
 begin
   try
     RegNGFS:= TRegistry.Create;
     RegNGFS.RootKey := HKEY_LOCAL_MACHINE;
     if RegNGFS.OpenKey('SOFTWARE\NGFS', TRUE) then begin
       RegNGFS.WriteCardinal('MaxSteps', MaxSteps);
       RegNGFS.WriteCardinal('MinSteps', MinSteps);
       RegNGFS.WriteCardinal('StopOUT', StopOUT);
       RegNGFS.WriteCardinal('StopIN', StopIN);
       RegNGFS.WriteString('COMPort', COMPort);
     end;
   finally
     RegNGFS.Free;
   end;
 end;
 
 end.

Última edición por dec fecha: 11-10-2005 a las 02:33:08. Razón: Ajustar el ancho del texto.
Responder Con Cita
  #2  
Antiguo 11-10-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
La variable RegNGFS la tienes declarada como privada en tu formulario pero los procedimientos ReadRegistry y WriteRegistry no son parte del formulario.

Simplemente agrégalos a él:

Código Delphi [-]
type
  TForm1 = class(TForm)

  private
    RegNGFS: TRegistry;
  
  public
    procedure ReadRegistry(...);
    procedure WriteRegistry(...);
  end;

implementation

procedure TForm1.ReadRegistry(...);
begin
  ...
end;

procedure TForm1.WriteRegistry(...);
begin
  ...
end;

// Saludos
Responder Con Cita
  #3  
Antiguo 11-10-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,


Cita:
Empezado por CelestronFan
Por cierto, ¿está bien hecha la declaración den enteros sin signo, Cardinal?
Así es, según la ayuda de Delphi.


Cita:
Empezado por Ayuda de Delphi
Generic integer types for 32-bit implementations of Delphi

Type: Integer
Range: -2147483648..2147483647
Format: signed 32-bit

Type: Cardinal
Range: 0..4294967295
Format: unsigned 32-bit
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #4  
Antiguo 11-10-2005
CelestronFan CelestronFan is offline
Miembro
 
Registrado: oct 2005
Posts: 14
Poder: 0
CelestronFan Va por buen camino
Gracias Roman y Dec,

..sabía que me faltaba algo y no se por qué no se me ocurrió lo del ámbito de existencia, algo básico no?.
La verdad que esto de ser un novato en algo a veces es frustrante o será que me estoy poniendo viejo para aprender nuevos trucos....

Lo de Cardinal lo pregunto pues no entiendo porque la declaración "String" el IDE me lo pone en negritas y "Cardinal" no.
Algo que me incomoda del lenguaje es que no diferencia entre mayúsculas y minúsculas o mejor dicho, no normaliza automáticamente la sintaxis es decir, si declaro una variable como "EsMiVarible", en otro lado puedo colocar "esmivariable" y delphi no se va a confundir, pero yo si.... Desearía que si pongo "esmivariable", Delphi me lo cambie en forma automática a "EsMiVarible" que es como la declaré. Esto no es posible, ¿No?

Bueno, muchas gracias nuevamente.
Saludos.
Responder Con Cita
  #5  
Antiguo 11-10-2005
CelestronFan CelestronFan is offline
Miembro
 
Registrado: oct 2005
Posts: 14
Poder: 0
CelestronFan Va por buen camino
Bueno muchachos, hice los cambios y no funciona.

Los errores del compilador son estos:

Cita:
[Error] NGFS.pas(68): Undeclared identifier: 'RegNGFS'
[Error] NGFS.pas(69): Missing operator or semicolon
[Error] NGFS.pas(70): 'THEN' expected but identifier 'OpenKey' found
[Error] NGFS.pas(71): Missing operator or semicolon
[Error] NGFS.pas(72): Missing operator or semicolon
..... el mismo error hasta línea 78
[Error] NGFS.pas(81): Statement expected but 'PROCEDURE' found
..... luego lo mismo para el otro procedimiento y termina con
[Hint] NGFS.pas(39): Private symbol 'RegNGFS' declared but never used
[Error] NGFS.pas(43): Unsatisfied forward or external declaration: 'TForm1.ReadRegistry'
[Error] NGFS.pas(45): Unsatisfied forward or external declaration: 'TForm1.WriteRegistry'
[Fatal Error] Focuser.dpr(5): Could not compile used unit 'NGFS.pas'
El código es este (Eliminé la parte de "Type" para que no fuera tan largo):

Código Delphi [-]
 unit NGFS;
 
 interface
 
 uses
   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
   Dialogs, StdCtrls, ComCtrls, ExtCtrls, CPortCtl, CPort, Registry;
 
 type
...........................
 
   private
     { Private declarations }
     RegNGFS: TRegistry;
   public
     { Public declarations }
 
     procedure ReadRegistry(MaxSteps: Integer; MinSteps: Integer;
                       StopOUT: Integer; StopIN: Integer; COMPort: String);
     procedure WriteRegistry( );
 
   end;
 
 var
   Form1: TForm1;
   MaxSteps: Cardinal;   //Número máximo de pasos del Stepper
   MinSteps: Cardinal;   //Número mínimo de pasos del Stepper
   StopOUT: Cardinal;    //Posición de parada sentido OUT del Stepper
   StopIN: Cardinal;     //Posición de parada sentido IN del Stepper
   COMPort: String;      //Puerto Serial seleccionado
 
 implementation
 
 {$R *.dfm}
 
 procedure ReadRegistry(MaxSteps: Integer; MinSteps: Integer;
                        StopOUT: Integer; StopIN: Integer; COMPort: String);
 
 //Procedimiento para leer el registro//
 
 begin
     try
     RegNGFS:= TRegistry.Create;
     RegNGFS.RootKey := HKEY_LOCAL_MACHINE;
     if RegNGFS.OpenKey('SOFTWARE\NGFS', FALSE) then begin
     RegNGFS.ReadCardinal('MaxSteps');
     MinSteps:= RegNGFS.ReadCardinal('MinSteps');
     StopOUT:= RegNGFS.ReadCardinal('StopOUT');
     StopIN:= RegNGFS.ReadCardinal('StopIN');
     COMPort:= RegNGFS.ReadString('COMPort');
     end;
     finally
     RegNGFS.Free;
 end;
 
 procedure WriteRegistry( );
 
 //Procedimiento para escribir el registro//
 
 begin
     try
     RegNGFS:= TRegistry.Create;
     RegNGFS.RootKey := HKEY_LOCAL_MACHINE;
     if RegNGFS.OpenKey('SOFTWARE\NGFS', TRUE) then begin
     RegNGFS.WriteCardinal('MaxSteps', MaxSteps);
     RegNGFS.WriteCardinal('MinSteps', MinSteps);
     RegNGFS.WriteCardinal('StopOUT', StopOUT);
     RegNGFS.WriteCardinal('StopIN', StopIN);
     RegNGFS.WriteString('COMPort', COMPort);
     end;
     finally
     RegNGFS.Free;
 end;
 
 end.
Responder Con Cita
  #6  
Antiguo 11-10-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,


Cita:
Empezado por CelestronFan
Lo de Cardinal lo pregunto pues no entiendo porque la declaración "String" el IDE me lo pone en negritas y "Cardinal" no.
Bueno. Si te fijas el editor de Delphi tampoco pone en negrita otros tipos, como "integer", por ejemplo. No sé si podrás jugar un poco en las opciones del editor: Tools -> Editor options. Creo que tendrás que acostumbrarte. Pero, puedo equivocarme.


Cita:
Empezado por CelestronFan
Desearía que si pongo "esmivariable", Delphi me lo cambie en forma automática a "EsMiVarible" que es como la declaré. Esto no es posible, ¿No?
Hasta donde yo llego no es posible. En Delphi se suele usar "por convenio" la notación que, precisamente, se llama "Pascal" (o estoy confundido, pero creo que se llama así mismo), la cual consiste en escribir los nombres de las variables en minúsculas, y, si tienen varias palabras, las siguientes a la primera en mayúsculas. Mejor con un ejemplo:

Código Delphi [-]
 var
   unaVariable: integer;
   otraNuevaVariable: string;
   variable: integer;
Pero, en fin, efectivamente, en Delphi (Object Pascal) no se distinge entre mayúsculas y minúsculas y creo que habrás de ser tú el que se discipline para escribir los nombres de las variables, por ejemplo, según cierta norma que tú mismo puedes imponerte. Empero, en este Hilo se trata un poco el tema y en este otro también, por si quieres echarlos un vistazo.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #7  
Antiguo 11-10-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,


Cita:
Empezado por CelestronFan
El código es este (Eliminé la parte de "Type" para que no fuera tan largo)
Inclúyelo (todo), aunque sea en un archivo adjunto, porque de otro modo no va a compilar y no va a poderse probar del todo correctamente. Faltan algunos "end;", por ejemplo, tras los "finally", pero, ya te digo, adjunta el código fuente y a ver qué puede hacerse (luego tú puedes comparar).
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #8  
Antiguo 11-10-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por CelestronFan
Bueno muchachos, hice los cambios y no funciona.
Vuelve a leer mi anterior mensaje y haz todos los cambios que te indiqué.

Cita:
Empezado por dec
Si te fijas el editor de Delphi tampoco pone en negrita otros tipos, como "integer", por ejemplo. No sé si podrás jugar un poco en las opciones del editor: Tools -> Editor options.
Delphi pone en negritas String porque se trata de una palabra reservada y lo ha sido así, si no me equivoco, desde que Niklaus Wirth lo diseñó. Otros tipos de datos como Integer, Cardinal etc., no son palabras reservadas. Claro que nadie en su sano juicio hará algo como esto:

Código Delphi [-]
procedure Integer(Boolean: String);
begin
  ShowMessage(Boolean + 'es una cadena');
end;

aun cuando sintácticamente sea correcto.

// Saludos
Responder Con Cita
  #9  
Antiguo 11-10-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,


Cita:
Empezado por roman
Delphi pone en negritas String porque se trata de una palabra reservada y lo ha sido así, si no me equivoco, desde que Niklaus Wirth lo diseñó. Otros tipos de datos como Integer, Cardinal etc., no son palabras reservadas.
Así es la verdad.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #10  
Antiguo 11-10-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,


Cita:
Empezado por mi mismo
Inclúyelo (todo), aunque sea en un archivo adjunto (...)
No me fijé cuando escribí eso en que no es una unidad simplemente, sino que se trata de un formulario: bastaría que usaras componentes de que no dispusiéramos para que tampoco pudiéramos compilarlo, en todo caso. Repasa lo que te sugiere roman, no creo que tengas mayores problemas. De todos modos, si quieres incluir la unidad junto a su "dfm", todo esto en un archivo adjunto (comprimido en Zip, por ejemplo) hazlo. Por otro lado piensa que un error lleva a otro: probablemente solucionando algunos de los errores que te aparecen los otros dejarán de ser tales, no sé si me explico.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #11  
Antiguo 11-10-2005
CelestronFan CelestronFan is offline
Miembro
 
Registrado: oct 2005
Posts: 14
Poder: 0
CelestronFan Va por buen camino
Ok Dec, aquí va todo el código. No hay nada más. Esta es la forma:




Código Delphi [-]
 unit NGFS;
 
 interface
 
 uses
   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
   Dialogs, StdCtrls, ComCtrls, ExtCtrls, CPortCtl, CPort, Registry;
 
 type
     TForm1 = class(TForm)
     BIn: TButton;
     BOut: TButton;
     GroupBox1: TGroupBox;
     LCurrPos: TLabel;
     Label2: TLabel;
     Label3: TLabel;
     Label4: TLabel;
     Label5: TLabel;
     Label6: TLabel;
     BGoto: TButton;
     LTotStep: TLabel;
     BCali: TButton;
     PBCurrPos: TProgressBar;
     Timer1: TTimer;
     ComComboBox1: TComComboBox;
     ComPort1: TComPort;
     ComLed1: TComLed;
     Eminstep: TEdit;
     Emaxstep: TEdit;
     Label1: TLabel;
     Eminstop: TEdit;
     Label7: TLabel;
     Emaxstop: TEdit;
     BConnect: TButton;
     EGoto: TEdit;
 
   private
     { Private declarations }
    RegNGFS: TRegistry;
   public
     { Public declarations }
      procedure ReadRegistry(MaxSteps: Integer; MinSteps: Integer;
                       StopOUT: Integer; StopIN: Integer; COMPort: String);
     procedure WriteRegistry( );
 
   end;
 
 var
   Form1: TForm1;
   MaxSteps: Cardinal;   //Número máximo de pasos del Stepper
   MinSteps: Cardinal;   //Número mínimo de pasos del Stepper
   StopOUT: Cardinal;    //Posición de parada sentido OUT del Stepper
   StopIN: Cardinal;     //Posición de parada sentido IN del Stepper
   COMPort: String;      //Puerto Serial seleccionado
 
 implementation
 
 {$R *.dfm}
 
 procedure ReadRegistry(MaxSteps: Integer; MinSteps: Integer;
                        StopOUT: Integer; StopIN: Integer; COMPort: String);
 
 //Procedimiento para leer el registro//
 
 begin
       try
         RegNGFS:= TRegistry.Create;
         RegNGFS.RootKey := HKEY_LOCAL_MACHINE;
           if RegNGFS.OpenKey('SOFTWARE\NGFS', FALSE) then begin
           RegNGFS.ReadCardinal('MaxSteps');
           MinSteps:= RegNGFS.ReadCardinal('MinSteps');
           StopOUT:= RegNGFS.ReadCardinal('StopOUT');
           StopIN:= RegNGFS.ReadCardinal('StopIN');
           COMPort:= RegNGFS.ReadString('COMPort');
           end;
       finally
   RegNGFS.Free;
 end;
 
 procedure WriteRegistry( );
 
 //Procedimiento para escribir el registro//
 
 begin
      try
       RegNGFS:= TRegistry.Create;
       RegNGFS.RootKey := HKEY_LOCAL_MACHINE;
          if RegNGFS.OpenKey('SOFTWARE\NGFS', TRUE) then begin
          RegNGFS.WriteCardinal('MaxSteps', MaxSteps);
          RegNGFS.WriteCardinal('MinSteps', MinSteps);
          RegNGFS.WriteCardinal('StopOUT', StopOUT);
          RegNGFS.WriteCardinal('StopIN', StopIN);
          RegNGFS.WriteString('COMPort', COMPort);
          end;
      finally
   RegNGFS.Free;
 end;
 end.
Responder Con Cita
  #12  
Antiguo 11-10-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Hombre, con "la forma" me refería al archivo "dfm", que acompaña al "pas" y es donde se guardan los datos relativos a "la forma"... ¡has puesto un archivo "GIF"! Vamos, que así no se puede compilar...

Creo que faltaba únicamente lo que refiere roman más arriba y lo que también yo he dicho: el que los métodos sean eso, métodos pertenecientes al formulario y no simples procedimientos; y los "end;" cerrando los bloques "finally". Así me ha quedado, pero, insisto, no he podido compilarlo, puesto que no se cuenta con el archivo "dfm" asociado...

Código Delphi [-]
unit NGFS;
 
 interface
 
 uses
   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
   Dialogs, StdCtrls, ComCtrls, ExtCtrls, CPortCtl, CPort, Registry;
 
 type
   TForm1 = class(TForm)
     BIn: TButton;
     BOut: TButton;
     GroupBox1: TGroupBox;
     LCurrPos: TLabel;
     Label2: TLabel;
     Label3: TLabel;
     Label4: TLabel;
     Label5: TLabel;
     Label6: TLabel;
     BGoto: TButton;
     LTotStep: TLabel;
     BCali: TButton;
     PBCurrPos: TProgressBar;
     Timer1: TTimer;
     ComComboBox1: TComComboBox;
     ComPort1: TComPort;
     ComLed1: TComLed;
     Eminstep: TEdit;
     Emaxstep: TEdit;
     Label1: TLabel;
     Eminstop: TEdit;
     Label7: TLabel;
     Emaxstop: TEdit;
     BConnect: TButton;
     EGoto: TEdit;
   private
     { Private declarations }
     RegNGFS: TRegistry;
   public
     { Public declarations }
     procedure ReadRegistry(MaxSteps: Integer; MinSteps: Integer;
       StopOUT: Integer; StopIN: Integer; COMPort: String);
     procedure WriteRegistry;
   end;
 
 var
   Form1: TForm1;
   MaxSteps: Cardinal;   //Número máximo de pasos del Stepper
   MinSteps: Cardinal;   //Número mínimo de pasos del Stepper
   StopOUT: Cardinal;    //Posición de parada sentido OUT del Stepper
   StopIN: Cardinal;     //Posición de parada sentido IN del Stepper
   COMPort: String;      //Puerto Serial seleccionado
 
 implementation
 
 {$R *.dfm}
 
 //Procedimiento para leer el registro//
 procedure TForm1.ReadRegistry(MaxSteps: Integer; MinSteps: Integer;
   StopOUT: Integer; StopIN: Integer; COMPort: String);
 begin
   RegNGFS:= TRegistry.Create;
   try
     RegNGFS.RootKey := HKEY_LOCAL_MACHINE;
     if RegNGFS.OpenKey('SOFTWARE\NGFS', FALSE) then
     begin
       RegNGFS.ReadCardinal('MaxSteps');
       MinSteps:= RegNGFS.ReadCardinal('MinSteps');
       StopOUT:= RegNGFS.ReadCardinal('StopOUT');
       StopIN:= RegNGFS.ReadCardinal('StopIN');
       COMPort:= RegNGFS.ReadString('COMPort');
     end;
   finally
     RegNGFS.Free;
   end;
 end;
 
 //Procedimiento para escribir el registro//
 procedure TForm1.WriteRegistry;
 begin
   RegNGFS:= TRegistry.Create;
   try
     RegNGFS.RootKey := HKEY_LOCAL_MACHINE;
     if RegNGFS.OpenKey('SOFTWARE\NGFS', TRUE) then
     begin
       RegNGFS.WriteCardinal('MaxSteps', MaxSteps);
       RegNGFS.WriteCardinal('MinSteps', MinSteps);
       RegNGFS.WriteCardinal('StopOUT', StopOUT);
       RegNGFS.WriteCardinal('StopIN', StopIN);
       RegNGFS.WriteString('COMPort', COMPort);
     end;
   finally
     RegNGFS.Free;
   end;
 end;
 
 end.

Actualización: He atrasado fuera de los bloques "try ... finally" la instrucción encargada de crear la instancia de la clase "TRegistry". Creo que así es lo suyo, puesto que de otro modo tal vez en caso de error habría problemas: siempre se pasaría por el "finally", pero, ¿no sería posible que no se hubiera creado la instancia de "TRegistry"?. De este modo en principio se creará la instancia, luego se pasará por el "try", y, en caso de excepción siempre se liberaría la instancia en luego de "finally". Tal vez en este caso concreto esto no fuera un problema, pero, quizá por mala costumbre suelo hacer así las cosas.
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 11-10-2005 a las 04:16:29. Razón: Corrección del código fuente.
Responder Con Cita
  #13  
Antiguo 11-10-2005
CelestronFan CelestronFan is offline
Miembro
 
Registrado: oct 2005
Posts: 14
Poder: 0
CelestronFan Va por buen camino
Dec, te entendí perfectamente cuando me dijistes que subiera el código como un attachment, el problema es que al parecer tengo problemas con mi conexión y me da un error de timeout cuando intento subir un anexo más o menos largo al post.

Bueno, ahora si funcionó. Lo que aprendí es que debo tabular muy bien las estructuras para que no me pase esto.

Muchas gracias a ambos por su excelente ayuda.

Saludos y gracias.
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


La franja horaria es GMT +2. Ahora son las 18:01:36.


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