Sign in Join

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

Mailing lists / lazarus-es / 2013-01

algo raro con un form

4 messages · 2 people ·

Reply by email Subscribe to this list Your subscription

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

Paola Bruccoleri

Hola todos..
espero hayan comenzado un muy buen a�o y con mucho trabajo :)

Bueno.. hace horas estoy con algo raro que no puedo resolver. Un simple form con un grid mostrando la consulta de un qry. (zeos) Hace tiempo uso una property para devolver el valor de un campo. Resulta q el form es muy parecido a otro de otro proyecto, por tanto lo copi� a mi proyecto nuevo, lo a�ad� al mismo e hice un guardar como para cambiarle el nombre, cambi� la consulta, etc, etc. Pero, resulta que el property es de otro tipo, por tanto, aprovech� a cambiarle el nombre y el tipo y ahi zas!... como que no me reconoce el form (ese form a su vez hereda de otro que tiene algunas propiedades) Cuando cargo el form, me aparece el form padre (vac�o por supuesto) en vez del correcto..
se imaginar�n que he hecho limpieza de los .o y ppu mil veces, borrado el exe, vuelto a construir todo...
Creo q una vez me pas� lo mismo, y le cambi� de nombre y se solucion�, pero ahora no lo logro.. ya ni se me ocurre que hacer! Cualquier idea me ayudar� seguramente..
muchas gracias

Ac� est� el c�digo.. no le veo nada raro!

unit ListaPlanCuentas;
{$mode objfpc}{$H+}
interface

uses
Classes, SysUtils, LResources, Forms, Controls, Dialogs, DBGrids, StdCtrls, DbCtrls, db, LCLType, Buttons,

   ZDataset, ExtCtrls, LR_Class, LR_DBSet, EnterESC;
type
   { TfrmListaPlanCuentas }
   TfrmListaPlanCuentas = class(TFrmEnterESC)
     btnAgregar: TSpeedButton;
     btnBorrar: TSpeedButton;
     btnCerrar: TSpeedButton;
     btnEditar: TSpeedButton;
     btnImprimir: TSpeedButton;
     btnSeleccionar: TSpeedButton;
     dbg: TDBGrid;
     buscar_edt: TEdit;
     dsQry: TDatasource;
     DBNavigator1: TDBNavigator;
     frDBDataSet1: TfrDBDataSet;
     frReport1: TfrReport;
     Label1: TLabel;
     Panel1: TPanel;
     Panel2: TPanel;
     qry: TZQuery;
     procedure btnAgregarClick(Sender: TObject);
     procedure btnBorrarClick(Sender: TObject);
     procedure btnCerrarClick(Sender: TObject);
     procedure btnEditarClick(Sender: TObject);
     procedure btnImprimirClick(Sender: TObject);
     procedure btnSeleccionarClick(Sender: TObject);
     procedure buscar_edtChange(Sender: TObject);
     procedure buscar_edtKeyDown(Sender: TObject; var Key: Word;
       Shift: TShiftState);
     procedure dbgKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
     procedure FormCreate(Sender: TObject);
     procedure FormDestroy(Sender: TObject);
     procedure FormShow(Sender: TObject);
   private
     { private declarations }
     function GetIDCUENTA: string;
   public
     { public declarations }
     Property IDCUENTA: string read GetIDCUENTA;
   end;
var
   frmListaPlanCuentas: TfrmListaPlanCuentas;
implementation

{ TfrmListaPlanCuentas }

uses
   EditPlanCuentas, dm, Main;
procedure TfrmListaPlanCuentas.buscar_edtChange(Sender: TObject);
begin
   qry.Locate('nombre',buscar_edt.Text,
                           [loCaseInsensitive, loPartialKey]);
end;
procedure TfrmListaPlanCuentas.buscar_edtKeyDown(Sender: TObject; var
Key: Word;
   Shift: TShiftState);
begin
   if (key = VK_UP) then
     dsQry.DataSet.Prior;
   if (key = VK_DOWN) then
     dsQry.DataSet.Next;
   if (key =  VK_ESCAPE) then
     close;
end;
procedure TfrmListaPlanCuentas.dbgKeyUp(Sender: TObject; var Key: Word;
   Shift: TShiftState);
begin
   if Key = VK_RETURN then
     ModalResult:= mrOk;
end;
procedure TfrmListaPlanCuentas.btnAgregarClick(Sender: TObject);
var
   f: TfrmEditPlanCuentas;
begin
   qry.Cancel;
   qry.Insert;
   f:= TfrmEditPlanCuentas.Create(Self);
   f.caption:= 'Agregar registro';
   try
      if (f.ShowModal = mrOK) Then
         Begin
           qry.Post;
           qry.CommitUpdates;
           qry.ApplyUpdates;
         end
       else begin
           qry.Cancel;
           qry.CancelUpdates;
       end;
       qry.Refresh;
   finally
       FreeAndNil(f);
   end;
end;
procedure TfrmListaPlanCuentas.btnBorrarClick(Sender: TObject);
begin
   // no se puede borrar si ya hay movimientos en mov_diario
   data.qryTool.SQL.Text:= 'select * from mov_diario where cuenta =
:cuenta';
   data.qryTool.ParamByName('cuenta').AsString:=
qry.FieldByName('cuenta').AsString;
   data.qryTool.Open;
   if not (data.qryTool.EOF) then
   begin
     ShowMessage('Ya hay movimientos ingresados, no se puede borrar');
     exit;
   end;
   data.qryTool.Close;
   if (MessageDlg('Aviso', '�Est� seguro que quiere borrar este
registro?', mtConfirmation, mbYesNo, 0) = mrNo) then
      Abort
   else
      begin
        qry.Delete;
        qry.ApplyUpdates;
      end;
end;
procedure TfrmListaPlanCuentas.btnCerrarClick(Sender: TObject);
begin
   close;
end;
procedure TfrmListaPlanCuentas.btnEditarClick(Sender: TObject);
var
   f: TfrmEditPlanCuentas;
begin
   qry.edit;
   f:= TfrmEditPlanCuentas.Create(Self);
   f.caption:= 'Modificar registro';
   try
      if (f.ShowModal = mrOK) Then
         Begin
           qry.Post;
           qry.CommitUpdates;
           qry.ApplyUpdates;
         end
       else begin
           qry.Cancel;
           qry.CancelUpdates;
       end;
       qry.Refresh;
   finally
       FreeAndNil(f);
   end;
end;
procedure TfrmListaPlanCuentas.btnImprimirClick(Sender: TObject);
var
   cFileReport : String ;
begin
   cFileReport:= frmMain.cPathReport + 'Listado de plan cuentas.lrf' ;
   If FileExists(cFileReport) then
     begin
       frReport1.LoadFromFile(cFileReport);
       frReport1.ShowReport;
     end
   else
     MessageDlg('Error', 'No existe el archivo de reporte', mtWarning,
[mbOk], 0);
end;
procedure TfrmListaPlanCuentas.btnSeleccionarClick(Sender: TObject);
begin
   ModalResult:= mrOk
end;
procedure TfrmListaPlanCuentas.FormCreate(Sender: TObject);
begin
   qry.open;
end;
procedure TfrmListaPlanCuentas.FormDestroy(Sender: TObject);
begin
   qry.close;
end;
procedure TfrmListaPlanCuentas.FormShow(Sender: TObject);
begin
   buscar_edt.Text:='';
   buscar_edt.SetFocus;
end;
function TfrmListaPlanCuentas.GetIDCUENTA: string;
begin
   Result:= qry.FieldByName('cuenta').AsString;
end;
end.

Reply by email

Paola Bruccoleri
to Paola Bruccoleri

El 04/01/2013 10:41 a.m., Paola Bruccoleri escribi�:

Show quoted text 247 lines
Hola todos.. espero hayan comenzado un muy buen a�o y con mucho trabajo :) Bueno.. hace horas estoy con algo raro que no puedo resolver. Un simple form con un grid mostrando la consulta de un qry. (zeos) Hace tiempo uso una property para devolver el valor de un campo. Resulta q el form es muy parecido a otro de otro proyecto, por tanto lo copi� a mi proyecto nuevo, lo a�ad� al mismo e hice un guardar como para cambiarle el nombre, cambi� la consulta, etc, etc. Pero, resulta que el property es de otro tipo, por tanto, aprovech� a cambiarle el nombre y el tipo y ahi zas!... como que no me reconoce el form (ese form a su vez hereda de otro que tiene algunas propiedades) Cuando cargo el form, me aparece el form padre (vac�o por supuesto) en vez del correcto.. se imaginar�n que he hecho limpieza de los .o y ppu mil veces, borrado el exe, vuelto a construir todo... Creo q una vez me pas� lo mismo, y le cambi� de nombre y se solucion�, pero ahora no lo logro.. ya ni se me ocurre que hacer! Cualquier idea me ayudar� seguramente.. muchas gracias Ac� est� el c�digo.. no le veo nada raro! unit ListaPlanCuentas; {$mode objfpc}{$H+} interface uses Classes, SysUtils, LResources, Forms, Controls, Dialogs, DBGrids, StdCtrls, DbCtrls, db, LCLType, Buttons, ZDataset, ExtCtrls, LR_Class, LR_DBSet, EnterESC; type { TfrmListaPlanCuentas } TfrmListaPlanCuentas = class(TFrmEnterESC) btnAgregar: TSpeedButton; btnBorrar: TSpeedButton; btnCerrar: TSpeedButton; btnEditar: TSpeedButton; btnImprimir: TSpeedButton; btnSeleccionar: TSpeedButton; dbg: TDBGrid; buscar_edt: TEdit; dsQry: TDatasource; DBNavigator1: TDBNavigator; frDBDataSet1: TfrDBDataSet; frReport1: TfrReport; Label1: TLabel; Panel1: TPanel; Panel2: TPanel; qry: TZQuery; procedure btnAgregarClick(Sender: TObject); procedure btnBorrarClick(Sender: TObject); procedure btnCerrarClick(Sender: TObject); procedure btnEditarClick(Sender: TObject); procedure btnImprimirClick(Sender: TObject); procedure btnSeleccionarClick(Sender: TObject); procedure buscar_edtChange(Sender: TObject); procedure buscar_edtKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure dbgKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure FormShow(Sender: TObject); private { private declarations } function GetIDCUENTA: string; public { public declarations } Property IDCUENTA: string read GetIDCUENTA; end; var frmListaPlanCuentas: TfrmListaPlanCuentas; implementation { TfrmListaPlanCuentas } uses EditPlanCuentas, dm, Main; procedure TfrmListaPlanCuentas.buscar_edtChange(Sender: TObject); begin qry.Locate('nombre',buscar_edt.Text, [loCaseInsensitive, loPartialKey]); end; procedure TfrmListaPlanCuentas.buscar_edtKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if (key = VK_UP) then dsQry.DataSet.Prior; if (key = VK_DOWN) then dsQry.DataSet.Next; if (key = VK_ESCAPE) then close; end; procedure TfrmListaPlanCuentas.dbgKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); begin if Key = VK_RETURN then ModalResult:= mrOk; end; procedure TfrmListaPlanCuentas.btnAgregarClick(Sender: TObject); var f: TfrmEditPlanCuentas; begin qry.Cancel; qry.Insert; f:= TfrmEditPlanCuentas.Create(Self); f.caption:= 'Agregar registro'; try if (f.ShowModal = mrOK) Then Begin qry.Post; qry.CommitUpdates; qry.ApplyUpdates; end else begin qry.Cancel; qry.CancelUpdates; end; qry.Refresh; finally FreeAndNil(f); end; end; procedure TfrmListaPlanCuentas.btnBorrarClick(Sender: TObject); begin // no se puede borrar si ya hay movimientos en mov_diario data.qryTool.SQL.Text:= 'select * from mov_diario where cuenta = :cuenta'; data.qryTool.ParamByName('cuenta').AsString:= qry.FieldByName('cuenta').AsString; data.qryTool.Open; if not (data.qryTool.EOF) then begin ShowMessage('Ya hay movimientos ingresados, no se puede borrar'); exit; end; data.qryTool.Close; if (MessageDlg('Aviso', '�Est� seguro que quiere borrar este registro?', mtConfirmation, mbYesNo, 0) = mrNo) then Abort else begin qry.Delete; qry.ApplyUpdates; end; end; procedure TfrmListaPlanCuentas.btnCerrarClick(Sender: TObject); begin close; end; procedure TfrmListaPlanCuentas.btnEditarClick(Sender: TObject); var f: TfrmEditPlanCuentas; begin qry.edit; f:= TfrmEditPlanCuentas.Create(Self); f.caption:= 'Modificar registro'; try if (f.ShowModal = mrOK) Then Begin qry.Post; qry.CommitUpdates; qry.ApplyUpdates; end else begin qry.Cancel; qry.CancelUpdates; end; qry.Refresh; finally FreeAndNil(f); end; end; procedure TfrmListaPlanCuentas.btnImprimirClick(Sender: TObject); var cFileReport : String ; begin cFileReport:= frmMain.cPathReport + 'Listado de plan cuentas.lrf' ; If FileExists(cFileReport) then begin frReport1.LoadFromFile(cFileReport); frReport1.ShowReport; end else MessageDlg('Error', 'No existe el archivo de reporte', mtWarning, [mbOk], 0); end; procedure TfrmListaPlanCuentas.btnSeleccionarClick(Sender: TObject); begin ModalResult:= mrOk end; procedure TfrmListaPlanCuentas.FormCreate(Sender: TObject); begin qry.open; end; procedure TfrmListaPlanCuentas.FormDestroy(Sender: TObject); begin qry.close; end; procedure TfrmListaPlanCuentas.FormShow(Sender: TObject); begin buscar_edt.Text:=''; buscar_edt.SetFocus; end; function TfrmListaPlanCuentas.GetIDCUENTA: string; begin Result:= qry.FieldByName('cuenta').AsString; end; end.
despu�s de seguir probando mil cosas m�s, al final le agregu� abajo
initialization
   {$I ListaPlanCuentas.lrs}

y ahora abre el form "hijo" que es lo que quer�a..

como ven.. tengo un enredo con los .lrs. aparte me fij� y de algunos forms incluso tengo un archivo con el mismo nombre.lrs

Reply by email

José Mejuto
to Paola Bruccoleri

El 04/01/2013 16:30, Paola Bruccoleri escribi�:

El 04/01/2013 10:41 a.m., Paola Bruccoleri escribi�: > Hola todos.. > espero hayan comenzado un muy buen a�o y con mucho trabajo :)

[...]

Show quoted text 9 lines
despu�s de seguir probando mil cosas m�s, al final le agregu� abajo initialization {$I ListaPlanCuentas.lrs} y ahora abre el form "hijo" que es lo que quer�a.. como ven.. tengo un enredo con los .lrs. aparte me fij� y de algunos forms incluso tengo un archivo con el mismo nombre.lrs

Hola,

Lo que te sucede es que debes de estar mezclando formularios con recursos en formato .lrs y otros con el formato nativo de recursos. Lo que te aconsejar�a es que pierdas unas cuantas horas cambiando todos tus forms y proyectos a formato de recursos nativo. Una vez hecho no deber�a de li�rsete el tema, al menos por esa causa.

Yo lo hice cuando salieron los recursos nativos y no he tenido problemas. S�lo que a veces tengo que borrar un .lfm para que me herede los cambios hechos en el form "heredable".

Reply by email

Paola Bruccoleri
to José Mejuto

El 04/01/2013 02:47 p.m., Jos� Mejuto escribi�:

Show quoted text 27 lines
El 04/01/2013 16:30, Paola Bruccoleri escribi�: > El 04/01/2013 10:41 a.m., Paola Bruccoleri escribi�: >> Hola todos.. >> espero hayan comenzado un muy buen a�o y con mucho trabajo :) [...] > despu�s de seguir probando mil cosas m�s, al final le agregu� abajo > initialization > {$I ListaPlanCuentas.lrs} > > y ahora abre el form "hijo" que es lo que quer�a.. > > como ven.. tengo un enredo con los .lrs. aparte me fij� y de algunos > forms incluso tengo un archivo con el mismo nombre.lrs > Hola, Lo que te sucede es que debes de estar mezclando formularios con recursos en formato .lrs y otros con el formato nativo de recursos. Lo que te aconsejar�a es que pierdas unas cuantas horas cambiando todos tus forms y proyectos a formato de recursos nativo. Una vez hecho no deber�a de li�rsete el tema, al menos por esa causa. Yo lo hice cuando salieron los recursos nativos y no he tenido problemas. S�lo que a veces tengo que borrar un .lfm para que me herede los cambios hechos en el form "heredable".

Hola Jos�..
no se ni como se me mezclaron; no se en qu� versi�n se usaba uno u otro.. y c�mo hago para cambiar a formato de recursos nativo? (en este momento estoy usando el lazarus 0.9.31) .. si, ya se que es viejo..!
byeeeeeeeee

Reply by email