Dúvida Caption Delphi XE8

09/07/2018

0

Pessoal, estou com uma duvida sobre um procedimento no Delphi que é o seguinte:

Eu tenho um único Form e dentro dele eu tenho 2 Grids:

- Uma Chamada ''''Eventos Iniciais'''' e a outra chamada ''''Eventos de Tabela''''

o que esta acontecendo é o seguinte:

Quando eu clico para me mostrar apenas a grid dos eventos iniciais, o Caption do form aparece como ''''Eventos Iniciais'''', mas quando eu clico para mostrar a grid de eventos de tabela, o Caption do Form continua mostrando ''''Eventos Iniciais'''', mas eu estou precisando que no eventos de tabela apareça no Caption do Form ''''Eventos de Tabela''''

Segue o código que estou usando:

procedure TfrmEventosIniciaiseSocial.FormShow(Sender: TObject);
begin
inherited;
if Self.CategoriaEvento = ceIniciais then
begin
Self.Caption := ''''Eventos Iniciais'''';
LimparBaseReceita.Visible := True;
end
else if Self.CategoriaEvento = ceTabelas then
begin
Self.Caption := ''''Eventos de Tabela'''';
LimparBaseReceita.Visible := False;

No modo Debug ele altera corretamente, porém lá no Formulário continua aparecendo apenas ''''Eventos Iniciais''''
Já tentei trocar o Self pelo name do Form também, mas mesmo assim continua a mesma coisa.

Se alguem souber me de uma ajuda nisso por favor. Obrigado
Senac Periodicals

Senac Periodicals

Responder

Posts

09/07/2018

Raimundo Pereira

Bom dia!
Talvez o problema seja pq está capturando no Onshow.

Veja, criei esta função;
Function Tform1.Evento_Selecionado(CategoriaEvento:string):string;
begin
inherited;
if CategoriaEvento = 'ceIniciais' then
begin
Result := 'Eventos Iniciais';
//LimparBaseReceita.Visible := True;
end
else if CategoriaEvento = 'ceTabelas' then
begin
Result := 'Eventos de Tabela';
//LimparBaseReceita.Visible := False;
end;
self.Caption:=Result;
end;

No cellclick de cada grid eu chamo a função:

Meu grid ceIniciais
procedure TForm1.ceIniciaisCellClick(Column: TColumn);
begin
Evento_Selecionado(Pchar(ActiveControl.Name));
end;

procedure TForm1.ceTabelasCellClick(Column: TColumn);
begin
Evento_Selecionado(Pchar(ActiveControl.Name));
end;

Ele captura o nome do componente clicado e joga no result da function que no final da mesma atualiza o caption do form
self.Caption:=Result;
Responder

09/07/2018

Senac Periodicals

Se eu criar essa função no create ao invés do Show, funcionaria como fez acima ?
Responder

09/07/2018

Senac Periodicals

No caso aqui o meu ceIniciais e o meu ceTabelas estão dentro do Categoria EventoSocial, segue:

TCategoriaEventoeSocial = (ceIniciais = 1, ceTabelas = 2, cePeriodicos = 3, ceNaoPeriodicos = 4);
Responder

10/07/2018

Raimundo Pereira

Bom dia!
Todos ceIniciais = 1, ceTabelas = 2, cePeriodicos = 3, ceNaoPeriodicos = 4, não são grids?

Basta chamar a fuction
Evento_Selecionado(Pchar(ActiveControl.Name));
Em cada cellclick
A função vai capturar o nome do grid e transformar no caption do form.
Esta função você pode usar para qq bjeto, chamar a função no onclik .
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar