Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus-es / 2009-12

Uso de parámetros

55 messages · 7 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Ismael L. Donis García

Cuando trato de usar la siguiente instrucci�n:

rsbuscar.Params.ParamByName('pEntidad').AsString:=dtm.strentidad;

Me salta el siguiente error: Como solucionarlo?

Y el par�metro si existe. Definido como ftString y ptInput

GRACIAS
=========
�� ISMAEL ��
=========
------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20091222/02d229c3/attachment-0001.html> ------------ pr�xima parte ------------
A non-text attachment was scrubbed...
Name: no disponible
Type: image/jpeg
Size: 17639 bytes
Desc: no disponible
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20091222/02d229c3/attachment-0001.jpe>

Reply by email

JoshyFun
to Ismael L. Donis García

Hello Ismael,

Tuesday, December 22, 2009, 7:54:15 PM, you wrote:

ILDG> Cuando trato de usar la siguiente instrucci�n: ILDG> rsbuscar.Params.ParamByName('pEntidad').AsString:=dtm.strentidad; ILDG> Me salta el siguiente error: Como solucionarlo? ILDG> Y el par�metro si existe. Definido como ftString y ptInput

Recuerda que el par�metro tiene que empezar por ":". Puedes poner el SQL ? Deber�a de ser algo como:

Select * from Table where CAMPOEntidad=:pEntidad;
Best regards, JoshyFun

Reply by email

Claudio Romero
to JoshyFun

Hola, aca un fragmento de codigo, para que te des idea.

consulta1:='INSERT INTO P_UCM_T (CODIGO, CATEGORIA,NOMTIT,.... sigueeee
consulta1:=consulta1+ 'VALUES (:CODIGO,:CATEGORIA,:NOMTIT,.... sigueeee
SQLQuery1.close;
SQLQuery1.sql.clear;
SQLQuery1.Sql.add(consulta1);
with SQLQuery1.params do begin
    ParamByName('codigo').asstring:=E_CodTitular.text;
    ParamByName('nomtit').asstring:=E_NombreTitular.text;
    ParamByName('fingreso').asdate:=strtodate(E_Fecha_Ing_Titular.text);
   siguee...........
end;
SQLQuery1.ExecSQL;

Saludos

Reply by email

Claudio Romero
to Ismael L. Donis Garc?a: Si eso estoy claro, pero es a la hora de pasarle el valor al par�metro. Lo trato de…

dtm.strentidad TIENE que ser del tipo String (una cadena) Es asi?

El d�a 22 de diciembre de 2009 17:36, Ismael L. Donis Garc?a <ismael en citricos.co.cu> escribi�:

Show quoted text 77 lines
Si eso estoy claro, pero es a la hora de pasarle el valor al par�metro. Lo trato de hacer de la siguiente forma pero da error: rsbuscar.Params.ParamByName('pEntidad').AsString:=dtm.strentidad; Como es que hay que pasarle el valor? En un mensaje que me mandaste pusiste: var MyQuery: TSQLQuery; begin MyQuery=TSQLQuery.Create; MyQuery.SQL.Text:='Select * from Table Where ID=:ID and LastDate<:FECHA'; MyQuery.Params.ParamByName('ID').AsInteger:=1234; MyQuery.Params.ParamByName('FECHA').AsDate:=Now(); MyQuery.Open; While Not MyQuery.Eof do begin XX:=MyQuery.FieldByName('CAMPOX').AsString; YY:=MyQuery.FieldByName('LASTDATE').AsDate; MyQuery.Next; end; end; Pues trato de hacer lo siguiente y me da error: MyQuery.Params.ParamByName('ID').AsInteger:=1234; que en mi caso ser�a: rsbuscar.Params.ParamByName('pEntidad').AsString:=dtm.strentidad; Pero nada. ========= �� ISMAEL �� ========= ----- Mensaje original ----- De: "JoshyFun" <joshyfun en gmail.com> Para: "Spanish version of Lazarus List" <lazarus-es en lists.lazarus.freepascal.org> Enviado: martes, 22 de diciembre de 2009 01:09 Asunto: Re: [Lazarus-es] Uso de par�metros Hello Ismael, Tuesday, December 22, 2009, 7:54:15 PM, you wrote: ILDG> Cuando trato de usar la siguiente instrucci�n: ILDG> rsbuscar.Params.ParamByName('pEntidad').AsString:=dtm.strentidad; ILDG> Me salta el siguiente error: Como solucionarlo? ILDG> Y el par�metro si existe. Definido como ftString y ptInput Recuerda que el par�metro tiene que empezar por ":". Puedes poner el SQL ? Deber�a de ser algo como: Select * from Table where CAMPOEntidad=:pEntidad; -- Best regards, JoshyFun _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es

Reply by email

Ismael L. Donis Garc?a
to JoshyFun: ILDG> Cuando trato de usar la siguiente instrucci�n: ILDG>…

Si eso estoy claro, pero es a la hora de pasarle el valor al par�metro.

Lo trato de hacer de la siguiente forma pero da error:

rsbuscar.Params.ParamByName('pEntidad').AsString:=dtm.strentidad;

Como es que hay que pasarle el valor?

En un mensaje que me mandaste pusiste:

var
  MyQuery: TSQLQuery;
begin
  MyQuery=TSQLQuery.Create;
  MyQuery.SQL.Text:='Select * from Table Where ID=:ID and LastDate<:FECHA';
  MyQuery.Params.ParamByName('ID').AsInteger:=1234;
  MyQuery.Params.ParamByName('FECHA').AsDate:=Now();
  MyQuery.Open;
  While Not MyQuery.Eof do begin
    XX:=MyQuery.FieldByName('CAMPOX').AsString;
    YY:=MyQuery.FieldByName('LASTDATE').AsDate;
    MyQuery.Next;
  end;
end;

Pues trato de hacer lo siguiente y me da error:

MyQuery.Params.ParamByName('ID').AsInteger:=1234;

que en mi caso ser�a:

rsbuscar.Params.ParamByName('pEntidad').AsString:=dtm.strentidad;

Pero nada.
=========
�� ISMAEL ��
=========

Earlier message 27 lines
----- Mensaje original ----- De: "JoshyFun" <joshyfun en gmail.com> Para: "Spanish version of Lazarus List" <lazarus-es en lists.lazarus.freepascal.org> Enviado: martes, 22 de diciembre de 2009 01:09 Asunto: Re: [Lazarus-es] Uso de par�metros Hello Ismael, Tuesday, December 22, 2009, 7:54:15 PM, you wrote: ILDG> Cuando trato de usar la siguiente instrucci�n: ILDG> rsbuscar.Params.ParamByName('pEntidad').AsString:=dtm.strentidad; ILDG> Me salta el siguiente error: Como solucionarlo? ILDG> Y el par�metro si existe. Definido como ftString y ptInput Recuerda que el par�metro tiene que empezar por ":". Puedes poner el SQL ? Deber�a de ser algo como: Select * from Table where CAMPOEntidad=:pEntidad; -- Best regards, JoshyFun

Reply by email

JoshyFun
to Ismael L. Donis Garc?a

Hello Ismael,

Tuesday, December 22, 2009, 9:36:29 PM, you wrote:

ILDGa> Si eso estoy claro, pero es a la hora de pasarle el valor al par�metro. ILDGa> Lo trato de hacer de la siguiente forma pero da error: ILDGa> rsbuscar.Params.ParamByName('pEntidad').AsString:=dtm.strentidad; ILDGa> Como es que hay que pasarle el valor?

As� est� bien.

ILDGa> rsbuscar.Params.ParamByName('pEntidad').AsString:=dtm.strentidad;

Si te da el error en el momento de la asignaci�n debe de ser que el SQL.Text no dispone de ese campo, aunque me extra�a que haga el "parsing" cada vez que asignas un par�metro.

A menos que rsbuscar est� "active", en ese caso si es posible que de un error de ese tipo (m�s tarde lo intento).

Best regards, JoshyFun

Reply by email

Ismael L. Donis García
to JoshyFun: ILDG> Cuando trato de usar la siguiente instrucci�n: ILDG>…

=========
�� ISMAEL ��
=========
------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20091222/4c17e474/attachment-0001.html> ------------ pr�xima parte ------------
A non-text attachment was scrubbed...
Name: no disponible
Type: image/jpeg
Size: 24727 bytes
Desc: no disponible
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20091222/4c17e474/attachment-0001.jpe>

Reply by email

Ismael L. Donis García
to Claudio Romero: dtm.strentidad TIENE que ser del tipo String (una cadena) Es asi? El d�a 22 de…

Si. Declaraci�n

public
  { public declarations }
  strentidad: string;

A la hora de ejecutarlo:

strsql := 'select mpdatge.mpdp, mpdatge.clave from mpdatge where ((mpdatge.entidad)=:pEntidad)';
rsbuscar.Params.ParamByName('pEntidad').AsString:=dtm.strentidad;   // aqu� da el error:
ejecrsbuscar(strsql, true, false);
//Procedimiento ejecutado
procedure Tfrmlogin.ejecrsbuscar(sqlstr: string; blnopen: boolean; blnwrite: boolean);
begin
  try try
    if trabuscar.Active then trabuscar.Commit;
  except on e:exception do
    trabuscar.Rollback;
  end;
  finally
    trabuscar.EndTransaction;
  end;
  rsbuscar.Close;
  rsbuscar.SQL.Clear;
  if blnopen then
    begin
      rsbuscar.ReadOnly := blnwrite;
      rsbuscar.SQL.Text := sqlstr;
      trabuscar.StartTransaction;
      rsbuscar.Open;
    end;
end;

DataType: ftString
Name: pEntidad
NumericScale: 0
ParamType: ptInput
Precision: 0
Size: 0
=========
�� ISMAEL ��
=========
------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20091222/f332977e/attachment-0001.html> ------------ pr�xima parte ------------
A non-text attachment was scrubbed...
Name: no disponible
Type: image/jpeg
Size: 7035 bytes
Desc: no disponible
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20091222/f332977e/attachment-0001.jpe>

Reply by email

Ismael L. Donis Garc?a
to Claudio Romero: dtm.strentidad TIENE que ser del tipo String (una cadena) Es asi? El d�a 22 de…

Lo �nico que talvez sea que aunque es un string y est� declarado como tal en este caso el valor que le trato de pasar es '2578', pero insisto se lo trato de pasar como string, y as� funciona si en vez de poner:

strsql := 'select mpdatge.mpdp, mpdatge.clave from mpdatge where
((mpdatge.entidad)=:pEntidad)';

pongo:

strsql := 'select mpdatge.mpdp, mpdatge.clave from mpdatge where
((mpdatge.entidad)=''' + dtm.strentidad + ''')'; // aqu� funciona bien.

El par�metro no puede ser n�merico porque el campo de la base de datos es varchar y puede tener cualquier valor de string.

Saludos cordiales
=========
�� ISMAEL ��
=========
"O�r o leer sin reflexionar es una ocupaci�n in�til". Confucio (551-479 a. C.); fil�sofo chino.

Earlier message 50 lines
----- Mensaje original ----- De: "Claudio Romero" <clauslack en gmail.com> Para: "Spanish version of Lazarus List" <lazarus-es en lists.lazarus.freepascal.org> Enviado: martes, 22 de diciembre de 2009 02:25 Asunto: Re: [Lazarus-es] Uso de par?metros dtm.strentidad TIENE que ser del tipo String (una cadena) Es asi? El d�a 22 de diciembre de 2009 17:36, Ismael L. Donis Garc?a <ismael en citricos.co.cu> escribi�: > Si eso estoy claro, pero es a la hora de pasarle el valor al par�metro. > > Lo trato de hacer de la siguiente forma pero da error: > > rsbuscar.Params.ParamByName('pEntidad').AsString:=dtm.strentidad; > > Como es que hay que pasarle el valor? > > En un mensaje que me mandaste pusiste: > > var > MyQuery: TSQLQuery; > begin > MyQuery=TSQLQuery.Create; > MyQuery.SQL.Text:='Select * from Table Where ID=:ID and LastDate<:FECHA'; > MyQuery.Params.ParamByName('ID').AsInteger:=1234; > MyQuery.Params.ParamByName('FECHA').AsDate:=Now(); > MyQuery.Open; > While Not MyQuery.Eof do begin > XX:=MyQuery.FieldByName('CAMPOX').AsString; > YY:=MyQuery.FieldByName('LASTDATE').AsDate; > MyQuery.Next; > end; > end; > > Pues trato de hacer lo siguiente y me da error: > > MyQuery.Params.ParamByName('ID').AsInteger:=1234; > > que en mi caso ser�a: > > rsbuscar.Params.ParamByName('pEntidad').AsString:=dtm.strentidad; > > Pero nada. > ========= > �� ISMAEL �� > ========= >

Reply by email

JoshyFun
to Ismael L. Donis García: Si. Declaraci�n public { public declarations } strentidad: string; A la hora de…

Hello Ismael,

Tuesday, December 22, 2009, 10:44:36 PM, you wrote:

ILDG> A la hora de ejecutarlo:
ILDG> strsql := 'select mpdatge.mpdp, mpdatge.clave from
ILDG> mpdatge where ((mpdatge.entidad)=:pEntidad)';
Aqu� tienes que asignar el rsBuscar.SQL.Text:=strsql;

Si no no puede saber cuales son los par�metros.

ILDG> rsbuscar.Params.ParamByName('pEntidad').AsString:=dtm.strentidad; // aqu� da el error:
ILDG> ejecrsbuscar(strsql, true, false);
Best regards, JoshyFun

Reply by email

Ismael L. Donis Garc?a
to JoshyFun: ILDGa> Si eso estoy claro, pero es a la hora de pasarle el valor al par�metro. ILDGa>…

Lo estaba ejecutando antes de asignar el SQL.Text, pero lo prob� movi�ndolo y tampoco funciona, da el mismo error:

En la prueba puse:

strsql := 'select mpdatge.mpdp, mpdatge.clave from mpdatge where
((mpdatge.entidad)=:pEntidad)';
ejecrsbuscar(strsql, true, false);
procedure Tfrmlogin.ejecrsbuscar(sqlstr: string; blnopen: boolean;
  blnwrite: boolean);
begin
  try try
    if trabuscar.Active then trabuscar.Commit;
  except on e:exception do
    trabuscar.Rollback;
  end;
  finally
    trabuscar.EndTransaction;
  end;
  rsbuscar.Close;
  rsbuscar.SQL.Clear;
  if blnopen then
    begin
      rsbuscar.ReadOnly := blnwrite;
      rsbuscar.SQL.Text := sqlstr;
      rsbuscar.Params.ParamByName('pEntidad').AsString:=dtm.strentidad; //
aqu� da el error
      trabuscar.StartTransaction;
      rsbuscar.Open;
    end;
end;

Saludos reiterados
=========
�� ISMAEL ��
=========
"----- Mensaje original -----
De: "JoshyFun" <joshyfun en gmail.com>
Para: "Spanish version of Lazarus List"
<lazarus-es en lists.lazarus.freepascal.org>
Enviado: martes, 22 de diciembre de 2009 02:51
Asunto: Re: [Lazarus-es] Uso de par?metros

Hello Ismael,

Tuesday, December 22, 2009, 9:36:29 PM, you wrote:

ILDGa> Si eso estoy claro, pero es a la hora de pasarle el valor al par�metro.
ILDGa> Lo trato de hacer de la siguiente forma pero da error: ILDGa> rsbuscar.Params.ParamByName('pEntidad').AsString:=dtm.strentidad; ILDGa> Como es que hay que pasarle el valor?

As� est� bien.

ILDGa> rsbuscar.Params.ParamByName('pEntidad').AsString:=dtm.strentidad;

Si te da el error en el momento de la asignaci�n debe de ser que el SQL.Text no dispone de ese campo, aunque me extra�a que haga el "parsing" cada vez que asignas un par�metro.

A menos que rsbuscar est� "active", en ese caso si es posible que de un error de ese tipo (m�s tarde lo intento).

Best regards, JoshyFun

Reply by email

Claudio Romero
to Ismael L. Donis García: Ese era el problema, ver� ahora como puedo pasar al procedimiento una lista con los…
Ese era el problema, ver� ahora como puedo pasar al procedimiento una lista con los par�metros y sus valores, los cuales pueden ser de diferentes tipos.

Puedes hacer 2 listas (TStringList) una con nombre de los parametros y otra con los valores.

O puedes pasar el SQLQuery como parametro, y dentro del procedimiento lo manejas como quieras.

No estoy seguro si eso es lo que necesitas.

Saludos

Reply by email

Ismael L. Donis García
to Claudio Romero: Antes de rsbuscar.params..... Agregaste la consulta al SQLQuery? (de memoria)…

Ese era el problema, ver� ahora como puedo pasar al procedimiento una lista con los par�metros y sus valores, los cuales pueden ser de diferentes tipos.

�sea como crear una lista que tenga un campo string y el segundo sea variante para que admita todos los tipos de datos?

Gracias reiteradas
=========
�� ISMAEL ��
=========

Earlier message 19 lines
----- Mensaje original ----- De: Claudio Romero Para: Spanish version of Lazarus List Enviado: martes, 22 de diciembre de 2009 04:08 Asunto: Re: [Lazarus-es] Uso de par�metros Antes de rsbuscar.params..... Agregaste la consulta al SQLQuery? (de memoria) rsbuscar.sql.add(strsql); ------------------------------------------------------------------------------

Reply by email

Ismael L. Donis García
to Ismael L. Donis García: Ese era el problema, ver� ahora como puedo pasar al procedimiento una lista con los…

Me decid� por el uso de TStringList o mejor dicho: TStrings

var
    Lista: TStrings;
begin
    Lista := TStringList.Create;

Ahora la pregunta en si:

En lazarus existen los par�metros opcionales o es obligado usar polimorfismo?

Quiero crear un procedimiento que al final tenga 2 par�metros opcionales, es posible esto? o tengo que usar polimorfismo, �sea crear 2 procedimientos con el mismo nombre: 1 con los 2 par�metros y el otro sin los 2 par�metros?

Desde ya Gracias.
=========
�� ISMAEL ��
=========

Earlier message 20 lines
----- Mensaje original ----- De: "Claudio Romero" <clauslack en gmail.com> Para: "Spanish version of Lazarus List" <lazarus-es en lists.lazarus.freepascal.org> Enviado: mi�rcoles, 23 de diciembre de 2009 08:05 Asunto: Re: [Lazarus-es] Uso de par�metros > Ese era el problema, ver� ahora como puedo pasar al procedimiento una lista > con los par�metros y sus valores, los cuales pueden ser de diferentes tipos. Puedes hacer 2 listas (TStringList) una con nombre de los parametros y otra con los valores. O puedes pasar el SQLQuery como parametro, y dentro del procedimiento lo manejas como quieras. No estoy seguro si eso es lo que necesitas. Saludos

Reply by email

JoshyFun
to Ismael L. Donis García

Hello Ismael,

Wednesday, December 23, 2009, 7:14:25 PM, you wrote:

ILDG> Me decid� por el uso de TStringList o mejor dicho: TStrings ILDG> var
ILDG> Lista: TStrings;
ILDG> begin
ILDG> Lista := TStringList.Create;

Si vas a crear un TStringList declara un TStringList, si vas a crear un TStrings declara un TStrings.

ILDG> Ahora la pregunta en si:
ILDG> En lazarus existen los par�metros opcionales o es obligado usar polimorfismo?

Procedure Test(Obligatorio: String; Optional1: Boolean=false; Opcional2:
integer=0);

Puedes hacer:

Test('Hola');
Test('Hola',true);
Test('Hola',true,0);

Pero no:

Test('Hola',,0);

No puedes omitir par�metros "en medio".

Best regards, JoshyFun

Reply by email

Ismael L. Donis Garc?a
to Ismael L. Donis García: Ese era el problema, ver� ahora como puedo pasar al procedimiento una lista con los…

Precisamente esa era la pregunta para ver si pod�a pasar par�metros opcionales para no tener que hacer eso.

Al fin lo dej�:

procedure ejecrsbuscar(); overload;
procedure ejecrsbuscar(sqlstr: string; blnopen: boolean; blnwrite: boolean;
LParam: TStrings; LValor: TStrings); overload;

Gracias de todos modos
=========
�� ISMAEL ��
=========

Earlier message 18 lines
----- Mensaje original ----- De: "Claudio Romero" <clauslack en gmail.com> Para: "Spanish version of Lazarus List" <lazarus-es en lists.lazarus.freepascal.org> Enviado: mi�rcoles, 23 de diciembre de 2009 11:43 Asunto: Re: [Lazarus-es]Uso de par�metros opcionales o polimorfismo. crear 2 procedimientos con > el mismo nombre: 1 con los 2 par�metros y el otro sin los 2 par�metros? Creo que lo puedes hacer, intenta procedure HaceAlgo(nombre:string);overload; procedure HaceAlgo;overload; Saludos

Reply by email

Ismael L. Donis Garc?a
to Ismael L. Donis García: Ese era el problema, ver� ahora como puedo pasar al procedimiento una lista con los…

Lo que me explicas de dejar por el medio es igual a Visual Basic.

Por lo que veo hay que pasarle valores a los opcionales. Cual ser�a el valor para los TStrings

Por ejemplo:

procedure ejecrsbuscar(sqlstr: string; blnopen: boolean; blnwrite: boolean;
LParam: TStrings = a que; LValor: TStrings = a que);

Mira que dentro puse = a que

Aunque como bien dije antes ya lo tengo con polimorfismo. pero bueno es otra cosa m�s a conocer.

Lo tengo ahora de la siguiente forma:

procedure Tfrmlogin.ejecrsbuscar();
begin
  try try
    if trabuscar.Active then trabuscar.Commit;
  except on e:exception do
    trabuscar.Rollback;
  end;
  finally
    trabuscar.EndTransaction;
  end;
  rsbuscar.Close;
  rsbuscar.SQL.Clear;
end;
procedure Tfrmlogin.ejecrsbuscar(sqlstr: string; blnopen: boolean;
  blnwrite: boolean; LParam: TStrings; LValor: TStrings);
var
  i: Integer;
begin
  ejecrsbuscar();
  if blnopen then
    begin
      rsbuscar.ReadOnly := blnwrite;
      rsbuscar.SQL.Text := sqlstr;
      for i := 0 to List1.Count - 1 do begin
        rsbuscar.Params.ParamByName(LParam[i]).AsString:=LValor[i];
      end;
      trabuscar.StartTransaction;
      rsbuscar.Open;
    end;
end;

Saludos Reiterados
=========
�� ISMAEL ��
=========

Earlier message 45 lines
----- Mensaje original ----- De: "JoshyFun" <joshyfun en gmail.com> Para: "Spanish version of Lazarus List" <lazarus-es en lists.lazarus.freepascal.org> Enviado: mi�rcoles, 23 de diciembre de 2009 12:44 Asunto: Re: [Lazarus-es]Uso de par�metros opcionales o polimorfismo. Hello Ismael, Wednesday, December 23, 2009, 7:14:25 PM, you wrote: ILDG> Me decid� por el uso de TStringList o mejor dicho: TStrings ILDG> var ILDG> Lista: TStrings; ILDG> begin ILDG> Lista := TStringList.Create; Si vas a crear un TStringList declara un TStringList, si vas a crear un TStrings declara un TStrings. ILDG> Ahora la pregunta en si: ILDG> En lazarus existen los par�metros opcionales o es obligado usar polimorfismo? Procedure Test(Obligatorio: String; Optional1: Boolean=false; Opcional2: integer=0); Puedes hacer: Test('Hola'); Test('Hola',true); Test('Hola',true,0); Pero no: Test('Hola',,0); No puedes omitir par�metros "en medio". -- Best regards, JoshyFun

Reply by email

JoshyFun
to Ismael L. Donis Garc?a

Hello Ismael,

Wednesday, December 23, 2009, 9:55:52 PM, you wrote:

ILDGa> Lo que me explicas de dejar por el medio es igual a Visual Basic. ILDGa> Por lo que veo hay que pasarle valores a los ILDGa> opcionales. Cual ser�a el valor
ILDGa> para los TStrings
ILDGa> Por ejemplo:
ILDGa> procedure ejecrsbuscar(sqlstr: string; blnopen: ILDGa> boolean; blnwrite: boolean;
ILDGa> LParam: TStrings = a que; LValor: TStrings = a que); ILDGa> Mira que dentro puse = a que

Lo l�gico ser�a a "nil" ya que es un objeto.

Best regards, JoshyFun

Reply by email

Ismael L. Donis García
to Ismael L. Donis García: Ese era el problema, ver� ahora como puedo pasar al procedimiento una lista con los…

Ahora el error es otro, cuando intento pasar una fecha como par�metro me salta error tanto si defino el par�metro como fecha, como si lo hago como string, el error es el mismo.

Trato de pasar la fecha como 2009-11-30 y me pone un 20 delante, no se porqu�: lo agrego a la lista de la siguiente forma:

Lista.Add(formatdatetime('yyyy/mm/dd',EndOfTheMonth(dtmfecha)));

Saludos reiterados
=========
�� ISMAEL ��
=========
------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20091224/9985dc43/attachment.html> ------------ pr�xima parte ------------
A non-text attachment was scrubbed...
Name: no disponible
Type: image/jpeg
Size: 17383 bytes
Desc: no disponible
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20091224/9985dc43/attachment.jpe>

Reply by email

Ismael L. Donis García
to Ismael L. Donis García: Ese era el problema, ver� ahora como puedo pasar al procedimiento una lista con los…

Exactamente el mismo error. Paso la fecha como 2009-11-30

Saludos reiterados
=========
�� ISMAEL ��
=========
------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20091224/bc96ac9d/attachment-0001.html> ------------ pr�xima parte ------------
A non-text attachment was scrubbed...
Name: no disponible
Type: image/jpeg
Size: 25056 bytes
Desc: no disponible
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20091224/bc96ac9d/attachment-0001.jpe>

Reply by email

JoshyFun
to Ismael L. Donis García: Ahora el error es otro, cuando intento pasar una fecha como par�metro me salta error…

Hello Ismael,

Thursday, December 24, 2009, 4:29:22 PM, you wrote:

ILDG> Trato de pasar la fecha como 2009-11-30 y me pone un 20 ILDG> delante, no se porqu�: lo agrego a la lista de la siguiente ILDG> forma:
ILDG> Lista.Add(formatdatetime('yyyy/mm/dd',EndOfTheMonth(dtmfecha)));

Haz justo antes de esa linea algo como:

TempString:=formatdatetime('yyyy/mm/dd',EndOfTheMonth(dtmfecha));
Application.MessageBox(pchar(TempString),'',0);

Si ah� sale la fecha mal es que falla el "formatdatetime".

Por cierto no pones como le pasas el par�metro al query ya que sospecho que lo har�s con "StringToDate" y ah� tendr�as un problema, StringToDate usa el "locale" actual que no es (supongo) yyyy/mm/dd

Best regards, JoshyFun

Reply by email

Ismael L. Donis Garc?a
to Ismael L. Donis García: Ese era el problema, ver� ahora como puedo pasar al procedimiento una lista con los…

Los agrego de la siguiente forma:

      strsql := 'select mpmovinv.fecha from mpmovinv where
(((mpmovinv.fecha)>:dFecha) and ((mpmovinv.entidad)=:sEntidad)) union all
select mpmovdia.fecha from mpmovdia where (((mpmovdia.fecha)>:dFecha) and
((mpmovdia.entidad)=:sEntidad)) order by 1 desc';
      List1 := TStringList.Create;
      List2 := TStringList.Create;
      List1.Add('sEntidad');
      List2.Add(dtm.strentidad);
      List1.Add('dFecha');
      List2.Add(formatdatetime('yyyy/mm/dd',EndOfTheMonth(dtmfecha)));
      ejecrsbuscar(strsql, true, false, List1, List2);
      List1.Free;
      List2.Free;

En el procedimiento como ver�s pongo un ShowMessage y me muestra la fecha como 2009-11-30 de la forma correcta.
Como bien dices la configuraci�n local de la PC es dd/mm/yyyy y no yyyy/mm/dd pero siempre he puesto esa configuraci�n para asegurarme que realice la consulta con la fecha de forma correcta sin interesarme por el formato de la fecha corta que tenga el sistema.

Como podr�a solucionar ese dilema de forma din�mica, �sea que me coja la configuraci�n que tenga el sistema sin yo modificarla.

procedure Tfrmdatgmp.ejecrsbuscar(sqlstr: string; blnopen: boolean;
  blnwrite: boolean; LParam: TStrings; LValor: TStrings);
var
  i: Integer;
begin
  ejecrsbuscar();
  if blnopen then
    begin
      rsbuscar.ReadOnly := blnwrite;
      rsbuscar.SQL.Text := sqlstr;
      for i := 0 to LParam.Count - 1 do begin
        if leftstr(LParam[i], 1) = 's' then
          rsbuscar.Params.ParamByName(LParam[i]).AsString:=LValor[i]
        else
          begin
            showmessage(LValor[i]);
            rsbuscar.Params.ParamByName(LParam[i]).AsDate:=StrToDate(LValor[i]);
          end;
      end;
      trabuscar.StartTransaction;
      rsbuscar.Open;
    end;
end;
procedure Tfrmdatgmp.ejecrsbuscar();
begin
  try try
    if trabuscar.Active then trabuscar.Commit;
  except on e:exception do
    trabuscar.Rollback;
  end;
  finally
    trabuscar.EndTransaction;
  end;
  rsbuscar.Close;
  rsbuscar.SQL.Clear;
end;

=========
�� ISMAEL ��
=========

Earlier message 33 lines
----- Mensaje original ----- De: "JoshyFun" <joshyfun en gmail.com> Para: "Spanish version of Lazarus List" <lazarus-es en lists.lazarus.freepascal.org> Enviado: jueves, 24 de diciembre de 2009 12:19 Asunto: Re: [Lazarus-es] Uso de par?metros opcionales o polimorfismo. Hello Ismael, Thursday, December 24, 2009, 4:29:22 PM, you wrote: ILDG> Trato de pasar la fecha como 2009-11-30 y me pone un 20 ILDG> delante, no se porqu�: lo agrego a la lista de la siguiente ILDG> forma: ILDG> Lista.Add(formatdatetime('yyyy/mm/dd',EndOfTheMonth(dtmfecha))); Haz justo antes de esa linea algo como: TempString:=formatdatetime('yyyy/mm/dd',EndOfTheMonth(dtmfecha)); Application.MessageBox(pchar(TempString),'',0); Si ah� sale la fecha mal es que falla el "formatdatetime". Por cierto no pones como le pasas el par�metro al query ya que sospecho que lo har�s con "StringToDate" y ah� tendr�as un problema, StringToDate usa el "locale" actual que no es (supongo) yyyy/mm/dd -- Best regards, JoshyFun

Reply by email

Ismael L. Donis Garc?a
to Ismael L. Donis García: Ese era el problema, ver� ahora como puedo pasar al procedimiento una lista con los…

D�jame explicarte mejor:

Yo si realizo una consulta de la siguiente forma y corre perfectamente:

strsql := 'select mpmovinv.fecha from mpmovinv where (((mpmovinv.fecha)>'''
+ formatdatetime('yyyy/mm/dd', dtmfecha) + ''') and ((mpmovinv.entidad)='''
+ dtm.strentidad + ''''))'

Pero al hacer:

strsql := 'select mpmovinv.fecha from mpmovinv where
(((mpmovinv.fecha)>:dFecha) and ((mpmovinv.entidad)=:sEntidad))'

No logro pasar el par�metro de fecha con formato 'yyyy/mm/dd'

He probado con tipo string y tipo fecha y en los 2 casos da el mismo error. Te mete un 20 delante de la fecha. Lo he probado tipo string porque en definitiva en Firebird la fecha se la debes pasar entre '' al igual que los string.

Saludos reiterados
=========
�� ISMAEL ��
=========
"O�r o leer sin reflexionar es una ocupaci�n in�til". Confucio (551-479 a. C.); fil�sofo chino.

Earlier message 33 lines
----- Mensaje original ----- De: "JoshyFun" <joshyfun en gmail.com> Para: "Spanish version of Lazarus List" <lazarus-es en lists.lazarus.freepascal.org> Enviado: jueves, 24 de diciembre de 2009 12:19 Asunto: Re: [Lazarus-es] Uso de par?metros opcionales o polimorfismo. Hello Ismael, Thursday, December 24, 2009, 4:29:22 PM, you wrote: ILDG> Trato de pasar la fecha como 2009-11-30 y me pone un 20 ILDG> delante, no se porqu�: lo agrego a la lista de la siguiente ILDG> forma: ILDG> Lista.Add(formatdatetime('yyyy/mm/dd',EndOfTheMonth(dtmfecha))); Haz justo antes de esa linea algo como: TempString:=formatdatetime('yyyy/mm/dd',EndOfTheMonth(dtmfecha)); Application.MessageBox(pchar(TempString),'',0); Si ah� sale la fecha mal es que falla el "formatdatetime". Por cierto no pones como le pasas el par�metro al query ya que sospecho que lo har�s con "StringToDate" y ah� tendr�as un problema, StringToDate usa el "locale" actual que no es (supongo) yyyy/mm/dd -- Best regards, JoshyFun

Reply by email

JoshyFun
to Ismael L. Donis Garc?a: Los agrego de la siguiente forma: strsql := 'select mpmovinv.fecha from mpmovinv where…

Hello Ismael,

Thursday, December 24, 2009, 8:50:40 PM, you wrote:

ILDGa> Los agrego de la siguiente forma:
[...]
ILDGa> rsbuscar.Params.ParamByName(LParam[i]).AsDate:=StrToDate(LValor[i]);

Tu problema est� aqu�, primero le dices que te pase la fecha a string "yyyy/mm/dd" y luego que convierta una string "yyyy/mm/dd" a DateTime usando "dd/mm/yyyy", normal que falle, no ?

Si el campo de firebird es DATE olv�date del formato que tiene, eso lo maneja el SQLDb. Como tienes que pasarlo a String temporalmente para poder meterlo en el TStringList usa el formato "por defecto" tanto para pasar de string a fecha como de fecha a string:

Lista.Add(DateToString(MiFecha));
[...]
rsbuscar.Params.ParamByName(LParam[i]).AsDate:=StrToDate(LValor[i]);

El SQLDb ya har� las conversiones necesarias.

Best regards, JoshyFun

Reply by email

Ismael L. Donis Garc?a
to Ismael L. Donis García: Ese era el problema, ver� ahora como puedo pasar al procedimiento una lista con los…

Gracias reiteradas, funciona perfecto.
=========
�� ISMAEL ��
=========

Earlier message 36 lines
----- Mensaje original ----- De: "JoshyFun" <joshyfun en gmail.com> Para: "Spanish version of Lazarus List" <lazarus-es en lists.lazarus.freepascal.org> Enviado: jueves, 24 de diciembre de 2009 06:53 Asunto: Re: [Lazarus-es] Uso de par?metros opcionales o polimorfismo. Hello Ismael, Thursday, December 24, 2009, 8:50:40 PM, you wrote: ILDGa> Los agrego de la siguiente forma: [...] ILDGa> rsbuscar.Params.ParamByName(LParam[i]).AsDate:=StrToDate(LValor[i]); Tu problema est� aqu�, primero le dices que te pase la fecha a string "yyyy/mm/dd" y luego que convierta una string "yyyy/mm/dd" a DateTime usando "dd/mm/yyyy", normal que falle, no ? Si el campo de firebird es DATE olv�date del formato que tiene, eso lo maneja el SQLDb. Como tienes que pasarlo a String temporalmente para poder meterlo en el TStringList usa el formato "por defecto" tanto para pasar de string a fecha como de fecha a string: Lista.Add(DateToString(MiFecha)); [...] rsbuscar.Params.ParamByName(LParam[i]).AsDate:=StrToDate(LValor[i]); El SQLDb ya har� las conversiones necesarias. -- Best regards, JoshyFun

Reply by email

Ismael L. Donis Garc?a
to Ismael L. Donis García: Ese era el problema, ver� ahora como puedo pasar al procedimiento una lista con los…

Ante todo saludos, dese�ndole que pasen un feliz fin de a�o junto a toda su familia.

He tratado por un 1 mill�n de v�a y no logro poner por defecto el segundo bot�n en la siguiente opci�n:

if Application.MessageBox(PChar('Si no configuras la ubicaci�n de la base de datos el programa no podr� ser ejecutado.'+Chr(13)+Chr(13)+'La deseas configurar ahora?.'), pchar(caption), 4) = 6 then

Alguien me podr�a dar una mano en ello.

GRACIAS
=========
�� ISMAEL ��
=========

Reply by email

Rafael Bidegain
to Ismael L. Donis Garc?a

Hola Ismael

El d�a 28 de diciembre de 2009 12:19, Ismael L. Donis Garc?a <ismael en citricos.co.cu> escribi�:

Ante todo saludos, dese�ndole que pasen un feliz fin de a�o junto a toda su familia.

Muchas gracias, lo mismo para vos y tu familia.

He tratado por un 1 mill�n de v�a y no logro poner por defecto el segundo bot�n en la siguiente opci�n:

ok.
intenta con esto.

Application.MessageBox(
'Si no configuras la ubicaci�n de la base ded atos el programa no podr� ser ejecutado.'+Chr(13)+Chr(13)+
'La deseas configurar ahora?.',
pchar(Form1.Name),
MB_YESNO+MB_ICONQUESTION+MB_DEFBUTTON2)

ten�s que incluir en la clausula uses LCLType;

la constante MB_DEFBUTTON2 est� definida en lcltype.pp

MB_DEFBUTTON1 hace que por defecto sea el boton 1
MB_DEFBUTTON2 hace que por defecto sea el boton 2
MB_DEFBUTTON3 hace que por defecto sea el boton 3
MB_DEFBUTTON4 hace que por defecto sea el boton 4

solo hay 4 definiciones y son estas.
  MB_DEFBUTTON1 = $00000000;
  MB_DEFBUTTON2 = $00000100;
  MB_DEFBUTTON3 = $00000200;
  MB_DEFBUTTON4 = $00000300;

espero que te sea �til

Rafael Bidegain Ya que los cuerdos no hablan, hablar� el loco. (The Fool, Padraic Pearse) # divertite programando # http://rubytutorial.wikidot.com/introduccion

Reply by email

Horacio Jamilis
to Ismael L. Donis Garc?a: Ante todo saludos, dese�ndole que pasen un feliz fin de a�o junto a toda su familia.…

En lugar de utilizar constantes num�ricas, en tu caso el 4 y el 6, es m�s f�cil y entendible utilizar constantes comunes:

MB_YESNO=4
MB_DEFBUTTON2=256
MB_ICONQUESTION=32
4 + 256 + 32 = 292

idYES=6

yo utilizo:
if
Application.MessageBox(pChar(Pregunta),'Confirmaci�n',MB_YESNO+MB_DEFBUTTON2+MB_ICONQUESTION) = idYes then

y estas constantes debieran estar en la unidad Windows

Suerte

Horacio

El 28/12/2009 12:19, Ismael L. Donis Garc?a escribi�:

Show quoted text 32 lines
Ante todo saludos, dese�ndole que pasen un feliz fin de a�o junto a toda su familia. He tratado por un 1 mill�n de v�a y no logro poner por defecto el segundo bot�n en la siguiente opci�n: if Application.MessageBox(PChar('Si no configuras la ubicaci�n de la base de datos el programa no podr� ser ejecutado.'+Chr(13)+Chr(13)+'La deseas configurar ahora?.'), pchar(caption), 4) = 6 then Alguien me podr�a dar una mano en ello. GRACIAS ========= �� ISMAEL �� ========= _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es __________ Informaci�n de NOD32, revisi�n 4720 (20091227) __________ Este mensaje ha sido analizado con NOD32 antivirus system http://www.nod32.com

Reply by email

Horacio Jamilis
to JoshyFun

Sin duda tu soluci�n es mejor que la m�a :-)
y todos los d�as se aprende algo nuevo...

Un abrazo

Horacio

El 28/12/2009 15:37, JoshyFun escribi�:

Show quoted text 10 lines
Hello Horacio, Monday, December 28, 2009, 5:59:01 PM, you wrote: HJ> y estas constantes debieran estar en la unidad Windows LCLType si usas la unidad Windows te quedas atado a la plataforma windows.

Reply by email

Horacio Jamilis
to Ismael L. Donis Garc?a: Dentro de un While tengo una instrucci�n para ir incrementando el valor de una barra de…

Tenes 3 funciones para pasar un real (double o extended) a entero:

Trunc -> Elimina la parte de decimal, llendo al primer entero menor al valor real. Ej: trunc(7,23) = 7
Ceil -> va al primer valor entero mayor al real. Ej: ceil(7,23) = 8 Round -> redondea al real al entero m�s cercano. Ej: round(7,23) = 7 / round(7,52) = 8

Trunc y Round son funciones estandar, en cambio Ceil creo que est� en la unidad Math.

Suerte

Horacio

El 28/12/2009 17:24, Ismael L. Donis Garc?a escribi�:

Show quoted text 37 lines
Dentro de un While tengo una instrucci�n para ir incrementando el valor de una barra de progreso tengo: dblCampo := dblCampo + (18/lngCampos); frmmp.prbestado.Position := int(dblCampo); Pero al compilar me da el siguiente error: ufrmcierremp.pas(272,73) Error: Incompatible type for arg no. 1: Got "Extended", expected "LongInt" la variable dblCampo es del tipo double y la variable lngCampos es un entero largo. No se que conversi�n realizar para que no me de dicho error. �sea convertir de doble a entro largo. Gracias a to2s ========= �� ISMAEL �� ========= _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es __________ Informaci�n de NOD32, revisi�n 4723 (20091228) __________ Este mensaje ha sido analizado con NOD32 antivirus system http://www.nod32.com

Reply by email

Horacio Jamilis
to Ismael L. Donis Garc?a: Eso es precisamente lo que no quiero, entonces con cual no te quedas atado a Windows?…

Definitivamente deber�as utilizar LCLtype.

Horacio

El 28/12/2009 17:27, Ismael L. Donis Garc?a escribi�:

Show quoted text 28 lines
Eso es precisamente lo que no quiero, entonces con cual no te quedas atado a Windows? GRACIAS ========= �� ISMAEL �� ========= "O�r o leer sin reflexionar es una ocupaci�n in�til". Confucio (551-479 a. C.); fil�sofo chino. ----- Mensaje original ----- De: "JoshyFun"<joshyfun en gmail.com> Para: "Spanish version of Lazarus List" <lazarus-es en lists.lazarus.freepascal.org> Enviado: lunes, 28 de diciembre de 2009 12:37 Asunto: Re: [Lazarus-es] Poner por defecto el segundo boton. Hello Horacio, Monday, December 28, 2009, 5:59:01 PM, you wrote: HJ> y estas constantes debieran estar en la unidad Windows LCLType si usas la unidad Windows te quedas atado a la plataforma windows.

Reply by email

JoshyFun
to Ismael L. Donis Garc?a: Dentro de un While tengo una instrucci�n para ir incrementando el valor de una barra de…

Hello Ismael,

Monday, December 28, 2009, 9:24:48 PM, you wrote:

ILDGa> Dentro de un While tengo una instrucci�n para ir incrementando el valor de ILDGa> una barra de progreso tengo:
[...]
ILDGa> ufrmcierremp.pas(272,73) Error: Incompatible type for arg no. 1: Got ILDGa> "Extended", expected "LongInt"
ILDGa> la variable dblCampo es del tipo double y la variable lngCampos es un entero ILDGa> largo.
ILDGa> No se que conversi�n realizar para que no me de dicho error. �sea convertir ILDGa> de doble a entro largo.

As� a lo r�pido usa "Trunc".

Best regards, JoshyFun

Reply by email

Ismael L. Donis Garc?a
to Ismael L. Donis García: Ese era el problema, ver� ahora como puedo pasar al procedimiento una lista con los…

LCLType trabaja en Linux tambi�n?

GRACIAS a todos lo que han contestado
=========
�� ISMAEL ��
=========
"O�r o leer sin reflexionar es una ocupaci�n in�til". Confucio (551-479 a. C.); fil�sofo chino.

Earlier message 59 lines
----- Mensaje original ----- De: "Rafael Bidegain" <r.bidegain en gmail.com> Para: "Spanish version of Lazarus List" <lazarus-es en lists.lazarus.freepascal.org> Enviado: lunes, 28 de diciembre de 2009 10:46 Asunto: Re: [Lazarus-es] Poner por defecto el segundo boton. Hola Ismael El d�a 28 de diciembre de 2009 12:19, Ismael L. Donis Garc?a <ismael en citricos.co.cu> escribi�: > Ante todo saludos, dese�ndole que pasen un feliz fin de a�o junto a toda > su > familia. Muchas gracias, lo mismo para vos y tu familia. > > He tratado por un 1 mill�n de v�a y no logro poner por defecto el segundo > bot�n en la siguiente opci�n: ok. intenta con esto. Application.MessageBox( 'Si no configuras la ubicaci�n de la base ded atos el programa no podr� ser ejecutado.'+Chr(13)+Chr(13)+ 'La deseas configurar ahora?.', pchar(Form1.Name), MB_YESNO+MB_ICONQUESTION+MB_DEFBUTTON2) ten�s que incluir en la clausula uses LCLType; la constante MB_DEFBUTTON2 est� definida en lcltype.pp MB_DEFBUTTON1 hace que por defecto sea el boton 1 MB_DEFBUTTON2 hace que por defecto sea el boton 2 MB_DEFBUTTON3 hace que por defecto sea el boton 3 MB_DEFBUTTON4 hace que por defecto sea el boton 4 solo hay 4 definiciones y son estas. MB_DEFBUTTON1 = $00000000; MB_DEFBUTTON2 = $00000100; MB_DEFBUTTON3 = $00000200; MB_DEFBUTTON4 = $00000300; espero que te sea �til -- Rafael Bidegain Ya que los cuerdos no hablan, hablar� el loco. (The Fool, Padraic Pearse) # divertite programando # http://rubytutorial.wikidot.com/introduccion

Reply by email

Ismael L. Donis Garc?a
to Ismael L. Donis García: Ese era el problema, ver� ahora como puedo pasar al procedimiento una lista con los…

Dentro de un While tengo una instrucci�n para ir incrementando el valor de una barra de progreso tengo:

dblCampo := dblCampo + (18/lngCampos);
frmmp.prbestado.Position := int(dblCampo);

Pero al compilar me da el siguiente error:

ufrmcierremp.pas(272,73) Error: Incompatible type for arg no. 1: Got
"Extended", expected "LongInt"

la variable dblCampo es del tipo double y la variable lngCampos es un entero largo.

No se que conversi�n realizar para que no me de dicho error. �sea convertir de doble a entro largo.

Gracias a to2s
=========
�� ISMAEL ��
=========

Reply by email

Ismael L. Donis Garc?a
to Ismael L. Donis García: Ese era el problema, ver� ahora como puedo pasar al procedimiento una lista con los…

Eso es precisamente lo que no quiero, entonces con cual no te quedas atado a Windows?

GRACIAS
=========
�� ISMAEL ��
=========
"O�r o leer sin reflexionar es una ocupaci�n in�til". Confucio (551-479 a. C.); fil�sofo chino.

Earlier message 22 lines
----- Mensaje original ----- De: "JoshyFun" <joshyfun en gmail.com> Para: "Spanish version of Lazarus List" <lazarus-es en lists.lazarus.freepascal.org> Enviado: lunes, 28 de diciembre de 2009 12:37 Asunto: Re: [Lazarus-es] Poner por defecto el segundo boton. Hello Horacio, Monday, December 28, 2009, 5:59:01 PM, you wrote: HJ> y estas constantes debieran estar en la unidad Windows LCLType si usas la unidad Windows te quedas atado a la plataforma windows. -- Best regards, JoshyFun

Reply by email

JoshyFun
to Horacio Jamilis: Tenes 3 funciones para pasar un real (double o extended) a entero: Trunc -> Elimina la…

Hello Horacio,

Monday, December 28, 2009, 8:43:24 PM, you wrote:

HJ> Tenes 3 funciones para pasar un real (double o extended) a entero:

HJ> Trunc -> Elimina la parte de decimal, llendo al primer entero menor al HJ> valor real. Ej: trunc(7,23) = 7
HJ> Ceil -> va al primer valor entero mayor al real. Ej: ceil(7,23) = 8 HJ> Round -> redondea al real al entero m�s cercano. Ej: round(7,23) = 7 / HJ> round(7,52) = 8

Cuidado con Round que parece que hace eso, pero no es as�, su comportamiento es muy parecido pero:

http://wiki.freepascal.org/User_Changes_2.2.4#Floating_point_rounding

Best regards, JoshyFun

Reply by email

christian Ortiz
to Ismael L. Donis Garc?a: Gracias a todos, ya corre perfecto eso pero me surgi� otro problema. Yo saco un mensaje…

intenta algo como

application.processmessage

o usa algo mas decente con hilos de ejecucion (aveces le llaman hebras)

http://wiki.lazarus.freepascal.org/Multithreaded_Application_Tutorial/es

El 28 de diciembre de 2009 17:08, Ismael L. Donis Garc?a < ismael en citricos.co.cu> escribi�:

Show quoted text 66 lines
Gracias a todos, ya corre perfecto eso pero me surgi� otro problema. Yo saco un mensaje preguntando si realizo la operaci�n. En caso de ser la respuesta afirmativa mando a ejecutar varios ciclos while muy grandes, pero al ser los ciclos tan grandes el sistema no me refresca el formulario eliminando el formulario del mensaje sino que se queda como mareado. Realmente est� trabajando. Como puedo eliminar esto? En Visual Basic existe la instrucci�n DoEvents que transfiere la prioridad al sistema operativo evitando este comportamiento del sistema. Disculpen por tantas preguntas, pero salgo de una piedra y tropiezo con otra. ========= �� ISMAEL �� ========= "O�r o leer sin reflexionar es una ocupaci�n in�til". Confucio (551-479 a. C.); fil�sofo chino. ----- Mensaje original ----- De: "JoshyFun" <joshyfun en gmail.com> Para: "Spanish version of Lazarus List" <lazarus-es en lists.lazarus.freepascal.org> Enviado: lunes, 28 de diciembre de 2009 01:47 Asunto: Re: [Lazarus-es] Error de conversi?n Hello Ismael, Monday, December 28, 2009, 9:24:48 PM, you wrote: ILDGa> Dentro de un While tengo una instrucci�n para ir incrementando el valor de ILDGa> una barra de progreso tengo: [...] ILDGa> ufrmcierremp.pas(272,73) Error: Incompatible type for arg no. 1: Got ILDGa> "Extended", expected "LongInt" ILDGa> la variable dblCampo es del tipo double y la variable lngCampos es un entero ILDGa> largo. ILDGa> No se que conversi�n realizar para que no me de dicho error. �sea convertir ILDGa> de doble a entro largo. As� a lo r�pido usa "Trunc". -- Best regards, JoshyFun _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
Christian ------------ pr�xima parte ------------ Se ha borrado un adjunto en formato HTML... URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20091228/a4fb5f05/attachment.html>

Reply by email

JoshyFun
to christian Ortiz

Hello christian,

Monday, December 28, 2009, 10:38:20 PM, you wrote:

cO> intenta algo como
cO> application.processmessage
cO> o usa algo mas decente con hilos de ejecucion (aveces le llaman hebras) cO> http://wiki.lazarus.freepascal.org/Multithreaded_Application_Tutorial/es

Una hebra es otra cosa, aunque algunos a veces lo usan incorrectamente de manera indiferente.

Cuando un sistema operativo ejecuta cosas lo puede hacer en 3 modos "b�sicos":

Proceso:
-------------
A) El c�digo tiene una zona de programa com�n (todas las copias del mismo proceso comparten el c�digo).
B) La zona de datos es diferent para cada proceso. C) Stack independiente para cada proceso.

Thread o Hilo
-------------
A) El c�digo es com�n entre todos los procesos iguales e hilos iguales.
B) Zona de datos com�n para todos los hilos de un mismo proceso. C) Stack independiente para cada hilo.

Fiber o hebra
-------------
A) El c�digo es com�n entre todos los procesos iguales, hilos y hebras iguales.
B) Zona de datos com�n para todos los hilos y hebras de un mismo proceso.
C) Stack com�n para todos.

Esto implica que la multitarea en una hebra o "fiber" no es posible del mismo modo que con un "thread", y esta ha de ser "cooperativa" al igual que lo eran los threads y los procesos en Win 3.1.

La ventaja de la hebra sobre el thread es que hacer un "task switching" no requiere poner el procesador en modo "context switch" lo que requiere muchos ciclos, ya que todo el proceso se realiza en el modo "usuario" o "ring 3".

Windows creo que soporta hebras desde Vista en adelante, pero programar con hebras es para artistas :)

Best regards, JoshyFun

Reply by email

Ismael L. Donis Garc?a
to Ismael L. Donis García: Ese era el problema, ver� ahora como puedo pasar al procedimiento una lista con los…

Gracias a todos, ya corre perfecto eso pero me surgi� otro problema.

Yo saco un mensaje preguntando si realizo la operaci�n. En caso de ser la respuesta afirmativa mando a ejecutar varios ciclos while muy grandes, pero al ser los ciclos tan grandes el sistema no me refresca el formulario eliminando el formulario del mensaje sino que se queda como mareado. Realmente est� trabajando.

Como puedo eliminar esto? En Visual Basic existe la instrucci�n DoEvents que transfiere la prioridad al sistema operativo evitando este comportamiento del sistema.

Disculpen por tantas preguntas, pero salgo de una piedra y tropiezo con otra.
=========
�� ISMAEL ��
=========
"O�r o leer sin reflexionar es una ocupaci�n in�til". Confucio (551-479 a. C.); fil�sofo chino.

Earlier message 32 lines
----- Mensaje original ----- De: "JoshyFun" <joshyfun en gmail.com> Para: "Spanish version of Lazarus List" <lazarus-es en lists.lazarus.freepascal.org> Enviado: lunes, 28 de diciembre de 2009 01:47 Asunto: Re: [Lazarus-es] Error de conversi?n Hello Ismael, Monday, December 28, 2009, 9:24:48 PM, you wrote: ILDGa> Dentro de un While tengo una instrucci�n para ir incrementando el valor de ILDGa> una barra de progreso tengo: [...] ILDGa> ufrmcierremp.pas(272,73) Error: Incompatible type for arg no. 1: Got ILDGa> "Extended", expected "LongInt" ILDGa> la variable dblCampo es del tipo double y la variable lngCampos es un entero ILDGa> largo. ILDGa> No se que conversi�n realizar para que no me de dicho error. �sea convertir ILDGa> de doble a entro largo. As� a lo r�pido usa "Trunc". -- Best regards, JoshyFun

Reply by email

christian Ortiz
to JoshyFun: cO> intenta algo como cO> application.processmessage cO> o usa algo mas decente con hilos…

Muy agradecido por tu informacion, creo que vivia un poco enga�ado ...

El 28 de diciembre de 2009 17:06, JoshyFun <joshyfun en gmail.com> escribi�:

Show quoted text 60 lines
Hello christian, Monday, December 28, 2009, 10:38:20 PM, you wrote: cO> intenta algo como cO> application.processmessage cO> o usa algo mas decente con hilos de ejecucion (aveces le llaman hebras) cO> http://wiki.lazarus.freepascal.org/Multithreaded_Application_Tutorial/es Una hebra es otra cosa, aunque algunos a veces lo usan incorrectamente de manera indiferente. Cuando un sistema operativo ejecuta cosas lo puede hacer en 3 modos "b�sicos": Proceso: ------------- A) El c�digo tiene una zona de programa com�n (todas las copias del mismo proceso comparten el c�digo). B) La zona de datos es diferent para cada proceso. C) Stack independiente para cada proceso. Thread o Hilo ------------- A) El c�digo es com�n entre todos los procesos iguales e hilos iguales. B) Zona de datos com�n para todos los hilos de un mismo proceso. C) Stack independiente para cada hilo. Fiber o hebra ------------- A) El c�digo es com�n entre todos los procesos iguales, hilos y hebras iguales. B) Zona de datos com�n para todos los hilos y hebras de un mismo proceso. C) Stack com�n para todos. Esto implica que la multitarea en una hebra o "fiber" no es posible del mismo modo que con un "thread", y esta ha de ser "cooperativa" al igual que lo eran los threads y los procesos en Win 3.1. La ventaja de la hebra sobre el thread es que hacer un "task switching" no requiere poner el procesador en modo "context switch" lo que requiere muchos ciclos, ya que todo el proceso se realiza en el modo "usuario" o "ring 3". Windows creo que soporta hebras desde Vista en adelante, pero programar con hebras es para artistas :) -- Best regards, JoshyFun _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
Christian ------------ pr�xima parte ------------ Se ha borrado un adjunto en formato HTML... URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20091228/cca01b97/attachment.html>

Reply by email

Rafael Bidegain
to Ismael L. Donis Garc?a: LCLType trabaja en Linux tambi�n? GRACIAS a todos lo que han contestado =========…

El d�a 28 de diciembre de 2009 16:52, Ismael L. Donis Garc?a <ismael en citricos.co.cu> escribi�:

LCLType trabaja en Linux tambi�n?

si. ante de responderte hice las pruebas en un entorno linux (ubuntu 9.04), por otra parte te comento que nunca use Lazarus con windows. :)

saludos.

Rafael Bidegain Ya que los cuerdos no hablan, hablar� el loco. (The Fool, Padraic Pearse) # divertite programando # http://rubytutorial.wikidot.com/introduccion

Reply by email

Ismael L. Donis Garc?a
to Ismael L. Donis García: Ese era el problema, ver� ahora como puedo pasar al procedimiento una lista con los…

No, no lo puedo hacer en un proceso independiente, debe ser en el proceso principal. Lo que necesito es transferir el proceso a los otros sistemas de forma temporal o refrescar el formulario interciclo para evitar que la aplicaci�n se maree ya que el sistema no debe dejar hacer nada m�s hasta que no termine esa operaci�n. As� que no me sirve el multihilo o multihebra.

Saludos a to2s
=========
�� ISMAEL ��
=========
"O�r o leer sin reflexionar es una ocupaci�n in�til". Confucio (551-479 a. C.); fil�sofo chino.

Earlier message 62 lines
----- Mensaje original ----- De: "JoshyFun" <joshyfun en gmail.com> Para: "Spanish version of Lazarus List" <lazarus-es en lists.lazarus.freepascal.org> Enviado: lunes, 28 de diciembre de 2009 04:06 Asunto: Re: [Lazarus-es] Formulario no refresca en ciclos grandes Hello christian, Monday, December 28, 2009, 10:38:20 PM, you wrote: cO> intenta algo como cO> application.processmessage cO> o usa algo mas decente con hilos de ejecucion (aveces le llaman hebras) cO> http://wiki.lazarus.freepascal.org/Multithreaded_Application_Tutorial/es Una hebra es otra cosa, aunque algunos a veces lo usan incorrectamente de manera indiferente. Cuando un sistema operativo ejecuta cosas lo puede hacer en 3 modos "b�sicos": Proceso: ------------- A) El c�digo tiene una zona de programa com�n (todas las copias del mismo proceso comparten el c�digo). B) La zona de datos es diferent para cada proceso. C) Stack independiente para cada proceso. Thread o Hilo ------------- A) El c�digo es com�n entre todos los procesos iguales e hilos iguales. B) Zona de datos com�n para todos los hilos de un mismo proceso. C) Stack independiente para cada hilo. Fiber o hebra ------------- A) El c�digo es com�n entre todos los procesos iguales, hilos y hebras iguales. B) Zona de datos com�n para todos los hilos y hebras de un mismo proceso. C) Stack com�n para todos. Esto implica que la multitarea en una hebra o "fiber" no es posible del mismo modo que con un "thread", y esta ha de ser "cooperativa" al igual que lo eran los threads y los procesos en Win 3.1. La ventaja de la hebra sobre el thread es que hacer un "task switching" no requiere poner el procesador en modo "context switch" lo que requiere muchos ciclos, ya que todo el proceso se realiza en el modo "usuario" o "ring 3". Windows creo que soporta hebras desde Vista en adelante, pero programar con hebras es para artistas :) -- Best regards, JoshyFun

Reply by email

Ismael L. Donis Garc?a
to Ismael L. Donis García: Ese era el problema, ver� ahora como puedo pasar al procedimiento una lista con los…

Muchas gracias reiteradas.
=========
�� ISMAEL ��
=========

Earlier message 25 lines
----- Mensaje original ----- De: "Rafael Bidegain" <r.bidegain en gmail.com> Para: "Spanish version of Lazarus List" <lazarus-es en lists.lazarus.freepascal.org> Enviado: martes, 29 de diciembre de 2009 06:28 Asunto: Re: [Lazarus-es] Poner por defecto el segundo boton. El d�a 28 de diciembre de 2009 16:52, Ismael L. Donis Garc?a <ismael en citricos.co.cu> escribi�: > LCLType trabaja en Linux tambi�n? si. ante de responderte hice las pruebas en un entorno linux (ubuntu 9.04), por otra parte te comento que nunca use Lazarus con windows. :) saludos. -- Rafael Bidegain Ya que los cuerdos no hablan, hablar� el loco. (The Fool, Padraic Pearse) # divertite programando # http://rubytutorial.wikidot.com/introduccion

Reply by email

christian Ortiz
to Ismael L. Donis Garc?a: No, no lo puedo hacer en un proceso independiente, debe ser en el proceso principal. Lo…

*application.processmesage* dentro de tu bucle

El 29 de diciembre de 2009 09:34, Ismael L. Donis Garc?a < ismael en citricos.co.cu> escribi�:

Show quoted text 89 lines
No, no lo puedo hacer en un proceso independiente, debe ser en el proceso principal. Lo que necesito es transferir el proceso a los otros sistemas de forma temporal o refrescar el formulario interciclo para evitar que la aplicaci�n se maree ya que el sistema no debe dejar hacer nada m�s hasta que no termine esa operaci�n. As� que no me sirve el multihilo o multihebra. Saludos a to2s ========= �� ISMAEL �� ========= "O�r o leer sin reflexionar es una ocupaci�n in�til". Confucio (551-479 a. C.); fil�sofo chino. ----- Mensaje original ----- De: "JoshyFun" <joshyfun en gmail.com> Para: "Spanish version of Lazarus List" <lazarus-es en lists.lazarus.freepascal.org> Enviado: lunes, 28 de diciembre de 2009 04:06 Asunto: Re: [Lazarus-es] Formulario no refresca en ciclos grandes Hello christian, Monday, December 28, 2009, 10:38:20 PM, you wrote: cO> intenta algo como cO> application.processmessage cO> o usa algo mas decente con hilos de ejecucion (aveces le llaman hebras) cO> http://wiki.lazarus.freepascal.org/Multithreaded_Application_Tutorial/es Una hebra es otra cosa, aunque algunos a veces lo usan incorrectamente de manera indiferente. Cuando un sistema operativo ejecuta cosas lo puede hacer en 3 modos "b�sicos": Proceso: ------------- A) El c�digo tiene una zona de programa com�n (todas las copias del mismo proceso comparten el c�digo). B) La zona de datos es diferent para cada proceso. C) Stack independiente para cada proceso. Thread o Hilo ------------- A) El c�digo es com�n entre todos los procesos iguales e hilos iguales. B) Zona de datos com�n para todos los hilos de un mismo proceso. C) Stack independiente para cada hilo. Fiber o hebra ------------- A) El c�digo es com�n entre todos los procesos iguales, hilos y hebras iguales. B) Zona de datos com�n para todos los hilos y hebras de un mismo proceso. C) Stack com�n para todos. Esto implica que la multitarea en una hebra o "fiber" no es posible del mismo modo que con un "thread", y esta ha de ser "cooperativa" al igual que lo eran los threads y los procesos en Win 3.1. La ventaja de la hebra sobre el thread es que hacer un "task switching" no requiere poner el procesador en modo "context switch" lo que requiere muchos ciclos, ya que todo el proceso se realiza en el modo "usuario" o "ring 3". Windows creo que soporta hebras desde Vista en adelante, pero programar con hebras es para artistas :) -- Best regards, JoshyFun _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
Christian ------------ pr�xima parte ------------ Se ha borrado un adjunto en formato HTML... URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20091229/a2f1de81/attachment.html>

Reply by email

christian Ortiz
to Ismael L. Donis García: Me da el siguiente error: ufrmcierremp.pas(78,22) Error: identifier idents no member…

asi no trabaja

while algo_ocurra do begin
    Application.ProcessMessages;
    ... to codigo
end

2009/12/29 Ismael L. Donis Garc�a <ismael en citricos.co.cu>

Show quoted text 169 lines
Me da el siguiente error: ufrmcierremp.pas(78,22) Error: identifier idents no member "processmesage" pongo: if Application.processmesage('Est�s seguro que desea inicializar un nuevo d�a de trabajo?',pchar(caption),$00000004+$00000020+$00000100) = 7 then begin txtmes.SetFocus; exit; end; que Unit hay que referenciar? El mensaje no est� dentro del ciclo, sino lo que pregunta si realiza la operaci�n o no la realiza, adem�s no solo no refresca el formulario quedando la caja del mensaje, sino que al rato de estar operando marea la aplicaci�n por el n�mero tan grande de operaciones. Repito que eso en Visual Basic se elimina traspasando la prioridad de ejecuci�n al sistema operativo y despu�s devolvi�ndosela a la aplicaci�n. Yo actualmente hago: if Application.MessageBox('Est�s seguro que desea inicializar un nuevo d�a de trabajo?',pchar(caption),$00000004+$00000020+$00000100) = 7 then begin txtmes.SetFocus; exit; end; frmmp.lblestado.Caption := 'Realizando Cierre Diario'; frmmp.Refresh; self.Hide; ............. Pero ni se me oculta la ventana de la pregunta, ni el formulario desde donde pongo la operaci�n. Repito eso solo ocurre en los ciclos grandes. Saludos reiterados ========= �� ISMAEL �� ========= "O�r o leer sin reflexionar es una ocupaci�n in�til". Confucio (551-479 a. C.); fil�sofo chino. ----- Mensaje original ----- *De:* christian Ortiz <xortix en gmail.com> *Para:* Spanish version of Lazarus List<lazarus-es en lists.lazarus.freepascal.org> *Enviado:* martes, 29 de diciembre de 2009 09:15 *Asunto:* Re: [Lazarus-es] Formulario no refresca en ciclos grandes *application.processmesage* dentro de tu bucle El 29 de diciembre de 2009 09:34, Ismael L. Donis Garc?a < ismael en citricos.co.cu> escribi�: > No, no lo puedo hacer en un proceso independiente, debe ser en el proceso > principal. Lo que necesito es transferir el proceso a los otros sistemas > de > forma temporal o refrescar el formulario interciclo para evitar que la > aplicaci�n se maree ya que el sistema no debe dejar hacer nada m�s hasta > que > no termine esa operaci�n. As� que no me sirve el multihilo o multihebra. > > Saludos a to2s > ========= > �� ISMAEL �� > ========= > "O�r o leer sin reflexionar es una ocupaci�n in�til". > Confucio (551-479 a. C.); fil�sofo chino. > > ----- Mensaje original ----- > De: "JoshyFun" <joshyfun en gmail.com> > Para: "Spanish version of Lazarus List" > <lazarus-es en lists.lazarus.freepascal.org> > Enviado: lunes, 28 de diciembre de 2009 04:06 > Asunto: Re: [Lazarus-es] Formulario no refresca en ciclos grandes > > > Hello christian, > > Monday, December 28, 2009, 10:38:20 PM, you wrote: > > cO> intenta algo como > cO> application.processmessage > cO> o usa algo mas decente con hilos de ejecucion (aveces le llaman > hebras) > cO> > http://wiki.lazarus.freepascal.org/Multithreaded_Application_Tutorial/es > > Una hebra es otra cosa, aunque algunos a veces lo usan incorrectamente > de manera indiferente. > > Cuando un sistema operativo ejecuta cosas lo puede hacer en 3 modos > "b�sicos": > > Proceso: > ------------- > A) El c�digo tiene una zona de programa com�n (todas las copias del > mismo proceso comparten el c�digo). > B) La zona de datos es diferent para cada proceso. > C) Stack independiente para cada proceso. > > Thread o Hilo > ------------- > A) El c�digo es com�n entre todos los procesos iguales e hilos > iguales. > B) Zona de datos com�n para todos los hilos de un mismo proceso. > C) Stack independiente para cada hilo. > > Fiber o hebra > ------------- > A) El c�digo es com�n entre todos los procesos iguales, hilos y > hebras iguales. > B) Zona de datos com�n para todos los hilos y hebras de un mismo > proceso. > C) Stack com�n para todos. > > Esto implica que la multitarea en una hebra o "fiber" no es posible > del mismo modo que con un "thread", y esta ha de ser "cooperativa" al > igual que lo eran los threads y los procesos en Win 3.1. > > La ventaja de la hebra sobre el thread es que hacer un "task > switching" no requiere poner el procesador en modo "context switch" lo > que requiere muchos ciclos, ya que todo el proceso se realiza en el > modo "usuario" o "ring 3". > > Windows creo que soporta hebras desde Vista en adelante, pero > programar con hebras es para artistas :) > > -- > Best regards, > JoshyFun > > > _______________________________________________ > Lazarus-es mailing list > Lazarus-es en lists.lazarus.freepascal.org > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es > > > > _______________________________________________ > Lazarus-es mailing list > Lazarus-es en lists.lazarus.freepascal.org > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es > -- Christian ------------------------------ _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
Christian ------------ pr�xima parte ------------ Se ha borrado un adjunto en formato HTML... URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20091229/b2211c08/attachment.html>

Reply by email

Ismael L. Donis García
to Ismael L. Donis García: Ese era el problema, ver� ahora como puedo pasar al procedimiento una lista con los…

Me da el siguiente error:

ufrmcierremp.pas(78,22) Error: identifier idents no member "processmesage"

pongo:

if Application.processmesage('Est�s seguro que desea inicializar un nuevo d�a de trabajo?',pchar(caption),$00000004+$00000020+$00000100) = 7 then
        begin
          txtmes.SetFocus;
          exit;
        end;

que Unit hay que referenciar?

El mensaje no est� dentro del ciclo, sino lo que pregunta si realiza la operaci�n o no la realiza, adem�s no solo no refresca el formulario quedando la caja del mensaje, sino que al rato de estar operando marea la aplicaci�n por el n�mero tan grande de operaciones.

Repito que eso en Visual Basic se elimina traspasando la prioridad de ejecuci�n al sistema operativo y despu�s devolvi�ndosela a la aplicaci�n.

Yo actualmente hago:

      if Application.MessageBox('Est�s seguro que desea inicializar un nuevo d�a de trabajo?',pchar(caption),$00000004+$00000020+$00000100) = 7 then
        begin
          txtmes.SetFocus;
          exit;
        end;
      frmmp.lblestado.Caption := 'Realizando Cierre Diario';
      frmmp.Refresh;
      self.Hide;
      .............

Pero ni se me oculta la ventana de la pregunta, ni el formulario desde donde pongo la operaci�n.

Repito eso solo ocurre en los ciclos grandes.

Saludos reiterados
=========
�� ISMAEL ��
=========
"O�r o leer sin reflexionar es una ocupaci�n in�til". Confucio (551-479 a. C.); fil�sofo chino.

Earlier message 91 lines
----- Mensaje original ----- De: christian Ortiz Para: Spanish version of Lazarus List Enviado: martes, 29 de diciembre de 2009 09:15 Asunto: Re: [Lazarus-es] Formulario no refresca en ciclos grandes application.processmesage dentro de tu bucle El 29 de diciembre de 2009 09:34, Ismael L. Donis Garc?a <ismael en citricos.co.cu> escribi�: No, no lo puedo hacer en un proceso independiente, debe ser en el proceso principal. Lo que necesito es transferir el proceso a los otros sistemas de forma temporal o refrescar el formulario interciclo para evitar que la aplicaci�n se maree ya que el sistema no debe dejar hacer nada m�s hasta que no termine esa operaci�n. As� que no me sirve el multihilo o multihebra. Saludos a to2s ========= �� ISMAEL �� ========= "O�r o leer sin reflexionar es una ocupaci�n in�til". Confucio (551-479 a. C.); fil�sofo chino. ----- Mensaje original ----- De: "JoshyFun" <joshyfun en gmail.com> Para: "Spanish version of Lazarus List" <lazarus-es en lists.lazarus.freepascal.org> Enviado: lunes, 28 de diciembre de 2009 04:06 Asunto: Re: [Lazarus-es] Formulario no refresca en ciclos grandes Hello christian, Monday, December 28, 2009, 10:38:20 PM, you wrote: cO> intenta algo como cO> application.processmessage cO> o usa algo mas decente con hilos de ejecucion (aveces le llaman hebras) cO> http://wiki.lazarus.freepascal.org/Multithreaded_Application_Tutorial/es Una hebra es otra cosa, aunque algunos a veces lo usan incorrectamente de manera indiferente. Cuando un sistema operativo ejecuta cosas lo puede hacer en 3 modos "b�sicos": Proceso: ------------- A) El c�digo tiene una zona de programa com�n (todas las copias del mismo proceso comparten el c�digo). B) La zona de datos es diferent para cada proceso. C) Stack independiente para cada proceso. Thread o Hilo ------------- A) El c�digo es com�n entre todos los procesos iguales e hilos iguales. B) Zona de datos com�n para todos los hilos de un mismo proceso. C) Stack independiente para cada hilo. Fiber o hebra ------------- A) El c�digo es com�n entre todos los procesos iguales, hilos y hebras iguales. B) Zona de datos com�n para todos los hilos y hebras de un mismo proceso. C) Stack com�n para todos. Esto implica que la multitarea en una hebra o "fiber" no es posible del mismo modo que con un "thread", y esta ha de ser "cooperativa" al igual que lo eran los threads y los procesos en Win 3.1. La ventaja de la hebra sobre el thread es que hacer un "task switching" no requiere poner el procesador en modo "context switch" lo que requiere muchos ciclos, ya que todo el proceso se realiza en el modo "usuario" o "ring 3". Windows creo que soporta hebras desde Vista en adelante, pero programar con hebras es para artistas :) -- Best regards, JoshyFun

Reply by email

Ismael L. Donis García
to Ismael L. Donis García: Ese era el problema, ver� ahora como puedo pasar al procedimiento una lista con los…

Cuando de aceptar debe cerrar el formulario de la pregunta y ocultar el otro, dejando solo el principal, cosas estas que no hace.

=========
�� ISMAEL ��
=========
------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20091229/df6bb42c/attachment-0001.html> ------------ pr�xima parte ------------
A non-text attachment was scrubbed...
Name: no disponible
Type: image/jpeg
Size: 37942 bytes
Desc: no disponible
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20091229/df6bb42c/attachment-0001.jpe>

Reply by email

Ismael L. Donis García

Cuando de aceptar debe cerrar el formulario de la pregunta y ocultar el otro, dejando solo el principal, cosas estas que no hace.

=========
�� ISMAEL ��
=========
------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20091229/adb349ab/attachment-0001.html> ------------ pr�xima parte ------------
A non-text attachment was scrubbed...
Name: no disponible
Type: image/jpeg
Size: 28546 bytes
Desc: no disponible
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20091229/adb349ab/attachment-0001.jpe>

Reply by email

Ismael L. Donis García
to Ismael L. Donis García: Ese era el problema, ver� ahora como puedo pasar al procedimiento una lista con los…

Perfecto.

1 Mill�n de Gracias
=========
�� ISMAEL ��
=========
"O�r o leer sin reflexionar es una ocupaci�n in�til". Confucio (551-479 a. C.); fil�sofo chino.

Earlier message 152 lines
----- Mensaje original ----- De: christian Ortiz Para: Spanish version of Lazarus List Enviado: martes, 29 de diciembre de 2009 11:00 Asunto: Re: [Lazarus-es] Formulario no refresca en ciclos grandes asi no trabaja while algo_ocurra do begin Application.ProcessMessages; ... to codigo end 2009/12/29 Ismael L. Donis Garc�a <ismael en citricos.co.cu> Me da el siguiente error: ufrmcierremp.pas(78,22) Error: identifier idents no member "processmesage" pongo: if Application.processmesage('Est�s seguro que desea inicializar un nuevo d�a de trabajo?',pchar(caption),$00000004+$00000020+$00000100) = 7 then begin txtmes.SetFocus; exit; end; que Unit hay que referenciar? El mensaje no est� dentro del ciclo, sino lo que pregunta si realiza la operaci�n o no la realiza, adem�s no solo no refresca el formulario quedando la caja del mensaje, sino que al rato de estar operando marea la aplicaci�n por el n�mero tan grande de operaciones. Repito que eso en Visual Basic se elimina traspasando la prioridad de ejecuci�n al sistema operativo y despu�s devolvi�ndosela a la aplicaci�n. Yo actualmente hago: if Application.MessageBox('Est�s seguro que desea inicializar un nuevo d�a de trabajo?',pchar(caption),$00000004+$00000020+$00000100) = 7 then begin txtmes.SetFocus; exit; end; frmmp.lblestado.Caption := 'Realizando Cierre Diario'; frmmp.Refresh; self.Hide; ............. Pero ni se me oculta la ventana de la pregunta, ni el formulario desde donde pongo la operaci�n. Repito eso solo ocurre en los ciclos grandes. Saludos reiterados ========= �� ISMAEL �� ========= "O�r o leer sin reflexionar es una ocupaci�n in�til". Confucio (551-479 a. C.); fil�sofo chino. ----- Mensaje original ----- De: christian Ortiz Para: Spanish version of Lazarus List Enviado: martes, 29 de diciembre de 2009 09:15 Asunto: Re: [Lazarus-es] Formulario no refresca en ciclos grandes application.processmesage dentro de tu bucle El 29 de diciembre de 2009 09:34, Ismael L. Donis Garc?a <ismael en citricos.co.cu> escribi�: No, no lo puedo hacer en un proceso independiente, debe ser en el proceso principal. Lo que necesito es transferir el proceso a los otros sistemas de forma temporal o refrescar el formulario interciclo para evitar que la aplicaci�n se maree ya que el sistema no debe dejar hacer nada m�s hasta que no termine esa operaci�n. As� que no me sirve el multihilo o multihebra. Saludos a to2s ========= �� ISMAEL �� ========= "O�r o leer sin reflexionar es una ocupaci�n in�til". Confucio (551-479 a. C.); fil�sofo chino. ----- Mensaje original ----- De: "JoshyFun" <joshyfun en gmail.com> Para: "Spanish version of Lazarus List" <lazarus-es en lists.lazarus.freepascal.org> Enviado: lunes, 28 de diciembre de 2009 04:06 Asunto: Re: [Lazarus-es] Formulario no refresca en ciclos grandes Hello christian, Monday, December 28, 2009, 10:38:20 PM, you wrote: cO> intenta algo como cO> application.processmessage cO> o usa algo mas decente con hilos de ejecucion (aveces le llaman hebras) cO> http://wiki.lazarus.freepascal.org/Multithreaded_Application_Tutorial/es Una hebra es otra cosa, aunque algunos a veces lo usan incorrectamente de manera indiferente. Cuando un sistema operativo ejecuta cosas lo puede hacer en 3 modos "b�sicos": Proceso: ------------- A) El c�digo tiene una zona de programa com�n (todas las copias del mismo proceso comparten el c�digo). B) La zona de datos es diferent para cada proceso. C) Stack independiente para cada proceso. Thread o Hilo ------------- A) El c�digo es com�n entre todos los procesos iguales e hilos iguales. B) Zona de datos com�n para todos los hilos de un mismo proceso. C) Stack independiente para cada hilo. Fiber o hebra ------------- A) El c�digo es com�n entre todos los procesos iguales, hilos y hebras iguales. B) Zona de datos com�n para todos los hilos y hebras de un mismo proceso. C) Stack com�n para todos. Esto implica que la multitarea en una hebra o "fiber" no es posible del mismo modo que con un "thread", y esta ha de ser "cooperativa" al igual que lo eran los threads y los procesos en Win 3.1. La ventaja de la hebra sobre el thread es que hacer un "task switching" no requiere poner el procesador en modo "context switch" lo que requiere muchos ciclos, ya que todo el proceso se realiza en el modo "usuario" o "ring 3". Windows creo que soporta hebras desde Vista en adelante, pero programar con hebras es para artistas :) -- Best regards, JoshyFun

Reply by email