Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Frame no funciona (https://www.clubdelphi.com/foros/showthread.php?t=70387)

Paulao 18-10-2010 14:41:39

Frame no funciona
 
Hizo un frame con estes codigos:
.
Código Delphi [-]
..
private
    { Private declarations }
    estado_tabela: Char;
    procedure liga_botoes;
  public
    { Public declarations }
  end;

implementation

uses uConstantes;
{$R *.dfm}

{ TfrInserir }

procedure TfrInserir.liga_botoes;
begin
  btnNovo.Enabled      := not btnNovo.Enabled;
  btnGravar.Enabled    := not btnGravar.Enabled;
  btnCancelar.Enabled  := not btnCancelar.Enabled;
  btnPesquisar.Enabled := not btnPesquisar.Enabled;
  btnImprimir.Enabled  := not btnImprimir.Enabled;
end;

procedure TfrInserir.btnNovoClick(Sender: TObject);
begin
  if dscPadrao.DataSet.Active then
  begin
    liga_botoes;
    estado_tabela := 'I';
    dscPadrao.DataSet.Append;
  end
  else
    MessageDlg(MSG_TABELA_FECHADA, mtInformation, [mbOk],0);
end;

end.
Quando premo el btnNovo, lo procedure liga_botoes no funciona, o sea, nada acontece. Que pasa en este codigo? Parece que estas bien, si erro.

ecfisa 18-10-2010 17:53:56

Hola Paulao.

El procedimiento que habilita/deshabilita los botones y la llamada al mismo son correctas.
Indudablemente la condición dscPadrao.DataSet.Active no es verdadera.


Saludos. :)

Paulao 18-10-2010 19:53:58

Yo lo puzo fuera del IF y no funciono tambien, sin la necesidad de la condicion del dscPadrao.DataSet.Active.

ecfisa 18-10-2010 20:11:39

Hola Paulao.

Acabo de hacer una prueba muy simplificada con un form, un frame y cuatro buttons y funciona correctamente. Por lo que el problema, como te dije antes, no está en el procedimiento ni en su llamado.
Te pongo el código y quizá te oriente para solucionarlo.

Form1:
Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
  public
  end;

var
  Form1: TForm1;

implementation {$R *.dfm}

uses Unit2;

procedure TForm1.FormCreate(Sender: TObject);
begin
  with TFrame2.Create(Self) do
    Parent:= Self;
end;
end.

Frame:
Código Delphi [-]
unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TFrame2 = class(TFrame)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    procedure Button4Click(Sender: TObject);
  private
  public
    procedure ButtonsOnOff;
  end;

implementation {$R *.dfm}

procedure TFrame2.ButtonsOnOff;
begin
  Button1.Enabled:= not Button1.Enabled;
  Button2.Enabled:= not Button2.Enabled;
  Button3.Enabled:= not Button3.Enabled;
end;

procedure TFrame2.Button4Click(Sender: TObject);
begin
  ButtonsOnOff;
end;
end.

Saludos. :)

Paulao 18-10-2010 21:47:17

ve mi problema. Quando pongo un form en mi proyecto el Frame no funciona, pero si pongo un Form de mi Herencia que tengo, funciona el Frame, pero si es un TForm del Delphi no.

Mira, en mi herencia en el event OnKeyPress, tengo este codigo:
Código Delphi [-]
if key = #13 then
  begin
    key := #0;
    perform(cm_dialogkey, vk_tab, 0);
  end;
Que pasa es que quando crio un Form con este base, este comando no funciona en el Form heredado. No lo se que es.


La franja horaria es GMT +2. Ahora son las 05:26:18.

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