[Lazarus-es] actualización lazarus
Ismael L. Donis García
ismael en citricos.co.cu
Mie Abr 13 14:33:36 CEST 2011
No pasé el mensaje por nada, solo que me hizo reír por el trabajo que estoy
pasando en Lazarus en cosas tan simples en VB6, pero creo que dentro de un
tiempo esto será solo pasado para mi y podré alagar las ventajas de Lazarus.
Y puedes estar completamente seguro que eso es una de las cosas que más
deseo y necesito en estos momentos para portar todo lo que he realizado a
soft libre.
Pero te juro y perjuro que en estos momentos he estado trabado por semanas
en Lazarus en cosas que son muy simples en VB6, pero como bien sabes no se
absolutamente nada de Pascal y a veces buscar una solo instrucción en
Lazarus me cuesta más de un día (recuerda que no tengo acceso a Internet).
Para poder poner un ejemplo anoche me pase como 2 horas tratando de validar
un dato a la hora de insertar un registro en un grid y en caso de no cumplir
la condición me cancele la inserción y me posicione en una columna
determinada y no lo he logrado: primera porque lo que he hecho me borra todo
lo que he escrito en las otras columnas y segundo porque me tira siempre
para la primera columna y eso no es lo que quiero.
A continuación te pongo lo que tengo, que está de hecho mal, pero no he dado
con lo que necesito aun.
procedure Tfcaptar.dsBeforePost(DataSet: TDataSet);
begin
if fconta.RegOpe = 'RT' then begin // fconta es el nombre del formulario
padre
if DataSet.FieldByName('reg').AsInteger <= 0 then
begin
Application.MessageBox('El número del registro no puede ser un número
mayor que cero.', pchar(Self.Caption), 0);
DataSet.Cancel; // aquí trato de cancelar la actualización, la
cancela pero borra todo lo que escrito en todas las columnas y necesito que
no borre nada.
dbg.Columns.Items[0].Grid.SetFocus; //dbg es el nombre del TDBGrid,
aquí me trato de posicionar en una columna, esto no funciona
end
else if trim(DataSet.FieldByName('nombre').AsString) = '' then begin
Application.MessageBox('El nombre del registro no puede ser una cadena
vacía.', pchar(Self.Caption), 0);
DataSet.Cancel;
dbg.Columns.Items[1].Grid.SetFocus;
end;
end;
end;
Saludos Cordiales
=========
|| ISMAEL ||
=========
----- Original Message -----
From: "José Mejuto" <joshyfun en gmail.com>
To: "Spanish version of Lazarus List"
<lazarus-es en lists.lazarus.freepascal.org>
Sent: Wednesday, April 13, 2011 4:29 AM
Subject: Re: [Lazarus-es] actualización lazarus
Hello Ismael,
Tuesday, April 12, 2011, 8:49:23 PM, you wrote:
ILDG> Me has hecho reír, eso mismo me pasa en Lazarus, sin embargo en VB con
ILDG> instanciar una DLL lo tengo todo.
A ver, primero lo dije un poco en broma, de ahí las ":)" al final de
las frases.
Lo de mi proyecto es totalmente cierto, simplemente escogí el lenguaje
equivocado para ese tipo de proyecto. VB6 tiene sus ventajas e
inconvenientes como todos los lenguajes. En mi caso me tuve que hacer
varias funciones en "C" para intermediar con VB6, claro que si hubiera
hecho todo en "C" no podría haber dedicado tanto tiempo al interface
de usuario. En este caso lo "problemas" que me encontré con VB6 fueron
el acceso a APIs externas (CDecl y otros), conversión implícita de
ciertos parámetros en llamadas StdCall, el abuso del "runtime
automation" que es ventajoso para algunas cosas, pero en mi caso me
volvía loco, y algunos detalles menores con poca importancia.
Siempre he estado muy contento con VB6, por otra parte.
--
Best regards,
José
_______________________________________________
Lazarus-es mailing list
Lazarus-es en lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
More information about the Lazarus-es
mailing list