Bug do Delphi 2007?
Estou com um problema, no delphi 2007 tenho um form com um panel, quando dou um
Panel.visible:= False;
o sistema não oculta o panel, depurando o delphi mostra a propriedade como visible false, mas o panel continua visivel na tela.
Alguem já viu isso?????
Panel.visible:= False;
o sistema não oculta o panel, depurando o delphi mostra a propriedade como visible false, mas o panel continua visivel na tela.
Alguem já viu isso?????
Steve_narancic
Curtidas 0
Respostas
Obrunno
05/12/2007
Cara, seu problema é eventual. O mais correto é reinstalá-lo.
GOSTEI 0
Steve_narancic
05/12/2007
Já reinstalei e o erro persiste!
GOSTEI 0
Macario
05/12/2007
Olá.
Isso ocorre com qualquer TPanel?
Já tentou remover o TPanel e inclui-lo novamente.
8)
Isso ocorre com qualquer TPanel?
Já tentou remover o TPanel e inclui-lo novamente.
8)
GOSTEI 0
Massuda
05/12/2007
Qual Windows você está usando? Alguns componentes tem problemas com temas do Windows.
GOSTEI 0
Steve_narancic
05/12/2007
Windows XP professional
GOSTEI 0
Fabiano Góes
05/12/2007
Estou com um problema, no delphi 2007 tenho um form com um panel, quando dou um
Panel.visible:= False;
o sistema não oculta o panel, depurando o delphi mostra a propriedade como visible false, mas o panel continua visivel na tela.
Alguem já viu isso?????
steve,
fiz um teste aqui com Delphi2007 e WinXP e funcionou certinho, o panel foi ocultado.
acho que o problema deve estar na sua instalação mesmo.
GOSTEI 0
Vitor Alcantara
05/12/2007
isso também está me ocorrendo também.
Mais consegui perceber que só ocorre (no meu caso) quando o parent do componente é uma aba do PageControl.
Não é a primeira vez que isso me ocorre.
Acho que é um Bug do Delphi 2007 sim.
Que ver fassam o teste coloque um panel/GroupBox em uma aba que não seja a primeira do Pagecontrol , deixe ela ocultada crie um evento no botão (Que estara na primeira aba) tipo GroupBox1.Visible := True e outro (Que estára na primeira aba também) GroupBox1.Visible := False.
Ele vai aparecer a propiedade visible como falsa (Inclusive se você colocar alguma letra de atalho utilizando o caractere ´&´ ele realmente não vai pegar o focu quando precionar Alt+Letra de atalho), mais só que o componente continuará visivel.
Se alguem ai tiver uma solução e souber posta ai.
Mais consegui perceber que só ocorre (no meu caso) quando o parent do componente é uma aba do PageControl.
Não é a primeira vez que isso me ocorre.
Acho que é um Bug do Delphi 2007 sim.
Que ver fassam o teste coloque um panel/GroupBox em uma aba que não seja a primeira do Pagecontrol , deixe ela ocultada crie um evento no botão (Que estara na primeira aba) tipo GroupBox1.Visible := True e outro (Que estára na primeira aba também) GroupBox1.Visible := False.
Ele vai aparecer a propiedade visible como falsa (Inclusive se você colocar alguma letra de atalho utilizando o caractere ´&´ ele realmente não vai pegar o focu quando precionar Alt+Letra de atalho), mais só que o componente continuará visivel.
Se alguem ai tiver uma solução e souber posta ai.
GOSTEI 0
Vitor Alcantara
05/12/2007
Ps : Se chamar o evento de entro da aba que contem o Panel/GroupBox dai sim o Panel/GroupBox ira ficar invisivel.
GOSTEI 0
Steve_narancic
05/12/2007
Que ver fassam o teste coloque um panel/GroupBox em uma aba que não seja a primeira do Pagecontrol
O meu panel realmente esta na segunda aba de um pagecontrol
GOSTEI 0
Sistemald
05/12/2007
Oi,
rapaz fiz o teste, confirmado, é bug sério do Delphi 2007, mas eu não atualizei o delphi, alguém já atualizou para vê se ocorreo mesmo erro?
rapaz fiz o teste, confirmado, é bug sério do Delphi 2007, mas eu não atualizei o delphi, alguém já atualizou para vê se ocorreo mesmo erro?
GOSTEI 0
Luciano Paranhos
05/12/2007
Eu NAO confirmo este BUG. estou usando o Windows Vista e o BDS 2007 (Delphi 2007 update 3 ).
Fiz o exemplo citado e sumiu da tela sem problemas.
Fiz o exemplo citado e sumiu da tela sem problemas.
GOSTEI 0
Sistemald
05/12/2007
Oi,
refiz os teste vi que o bug as vezes aparece ou não.
Coloquei no ftp o projeto com bug
[url]http://www.donato.inf.br/Download/bug.rar[/url]
1º Rode o executavel troque para tabsheet1 e pressione o botão, vai para tabsheet2 e veja que o painel continua lá.
2º Agora apenes troque em design time a aba e rode e teste novamente. o bug sumio.
As vezes o bug aparece e as vezes não
refiz os teste vi que o bug as vezes aparece ou não.
Coloquei no ftp o projeto com bug
[url]http://www.donato.inf.br/Download/bug.rar[/url]
1º Rode o executavel troque para tabsheet1 e pressione o botão, vai para tabsheet2 e veja que o painel continua lá.
2º Agora apenes troque em design time a aba e rode e teste novamente. o bug sumio.
As vezes o bug aparece e as vezes não
GOSTEI 0
Vitor Alcantara
05/12/2007
Olha o que percebi, é que quando o evento e disparado na aba aonde o panel/groupbox esta contido o objeto realmente desaparece, mais se for disparado de outra aba, o mesmo não ocorre.
Pra resolver esse problema procure sempre disparar o evento com a tabsheet dona do componente (panel,groupbox ou outro) visivel depois troque pra a tabsheet que deseja.
Ou seja se estiver em outra tabseet va pra tabsheet dona do component de um component.visible := false depois volte pra tabsheet que você estava antes.
(Trabalhoso né. Mais foi o único jeito que eu encontrei).
Pra resolver esse problema procure sempre disparar o evento com a tabsheet dona do componente (panel,groupbox ou outro) visivel depois troque pra a tabsheet que deseja.
Ou seja se estiver em outra tabseet va pra tabsheet dona do component de um component.visible := false depois volte pra tabsheet que você estava antes.
(Trabalhoso né. Mais foi o único jeito que eu encontrei).
GOSTEI 0
Devmedia
05/12/2007
Cara.
Desculpa, mas depois de tanta explicação.
Voce está fazendo assim?
1 PageControl -> 2 TabSheet -> 1 Panel -> 1 GroupBox ????
Entendeu?
Não testei o bug que está falando. Só estava lendo seu tópico e notei isto.
Não sei do seu sistema, mas não esta exagerado 1 Panel dentro de 1 TabeSheet sendo que ela já justamente para voce separar ou criar mais oportunidades de se enteragir melhor com as nescecidades do seu sistema.
Somente uma idéia.
Tipo se voce não quer mostrar o conteudo da outra TabSheet.
Tente:
Somente uma idéia. Não me interprete mal.
Um abraço.
Att.
Desculpa, mas depois de tanta explicação.
Voce está fazendo assim?
1 PageControl -> 2 TabSheet -> 1 Panel -> 1 GroupBox ????
Entendeu?
Não testei o bug que está falando. Só estava lendo seu tópico e notei isto.
Não sei do seu sistema, mas não esta exagerado 1 Panel dentro de 1 TabeSheet sendo que ela já justamente para voce separar ou criar mais oportunidades de se enteragir melhor com as nescecidades do seu sistema.
Somente uma idéia.
Tipo se voce não quer mostrar o conteudo da outra TabSheet.
Tente:
TabSheet1.TabVisible := False;
Somente uma idéia. Não me interprete mal.
Um abraço.
Att.
GOSTEI 0
Obrunno
05/12/2007
Fiz um teste aqui e a partir do 1° tabsheet, consigo ocultar um panel no 2° tabsheet.
O que pode acontecer, não sei se é um bug específico da sua versão, é que propriedades como visible e focused só possam ser manipuladas quando o tabsheet estiver selecionado.
Neste caso, vc deve criar uma variável no form ´OcultarPanel : Boolean;´, no botão que vc estiver colocando para ocultar o panel, ao invés de ´panel1.visible := false;´, vc coloca ´OcultarPanel := true;´.
Daí, no evento OnShow do TabSheet2 vc coloca ´if OcultarPanel then panel1.visible := false´
Lá vai o código fonte:
[color=darkblue:76972de2d8][b:76972de2d8]unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ExtCtrls, ComCtrls;
type
TForm1 = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
Panel1: TPanel;
BitBtn1: TBitBtn;
procedure BitBtn1Click(Sender: TObject);
procedure TabSheet2Show(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
OcultaPainel : Boolean;
implementation
{$R *.dfm}
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
OcultaPainel := true;
end;
procedure TForm1.TabSheet2Show(Sender: TObject);
begin
if OcultaPainel then Panel1.Visible := false;
end;
end.[/b:76972de2d8][/color:76972de2d8]
O que pode acontecer, não sei se é um bug específico da sua versão, é que propriedades como visible e focused só possam ser manipuladas quando o tabsheet estiver selecionado.
Neste caso, vc deve criar uma variável no form ´OcultarPanel : Boolean;´, no botão que vc estiver colocando para ocultar o panel, ao invés de ´panel1.visible := false;´, vc coloca ´OcultarPanel := true;´.
Daí, no evento OnShow do TabSheet2 vc coloca ´if OcultarPanel then panel1.visible := false´
Lá vai o código fonte:
[color=darkblue:76972de2d8][b:76972de2d8]unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ExtCtrls, ComCtrls;
type
TForm1 = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
Panel1: TPanel;
BitBtn1: TBitBtn;
procedure BitBtn1Click(Sender: TObject);
procedure TabSheet2Show(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
OcultaPainel : Boolean;
implementation
{$R *.dfm}
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
OcultaPainel := true;
end;
procedure TForm1.TabSheet2Show(Sender: TObject);
begin
if OcultaPainel then Panel1.Visible := false;
end;
end.[/b:76972de2d8][/color:76972de2d8]
GOSTEI 0