Fórum Bug do Delphi 2007? #350088
05/12/2007
0
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
Curtir tópico
+ 0Posts
05/12/2007
Obrunno
Gostei + 0
05/12/2007
Steve_narancic
Gostei + 0
05/12/2007
Macario
Isso ocorre com qualquer TPanel?
Já tentou remover o TPanel e inclui-lo novamente.
8)
Gostei + 0
05/12/2007
Massuda
Gostei + 0
06/12/2007
Steve_narancic
Gostei + 0
06/12/2007
Fabiano Góes
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
06/12/2007
Vitor Alcantara
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
06/12/2007
Vitor Alcantara
Gostei + 0
08/12/2007
Steve_narancic
O meu panel realmente esta na segunda aba de um pagecontrol
Gostei + 0
08/12/2007
Sistemald
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
08/12/2007
Luciano Paranhos
Fiz o exemplo citado e sumiu da tela sem problemas.
Gostei + 0
08/12/2007
Sistemald
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
08/12/2007
Vitor Alcantara
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
11/12/2007
Devmedia
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
24/02/2008
Obrunno
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
Clique aqui para fazer login e interagir na Comunidade :)