Página 1 de 1
Duvida em eventos Lazarus (ou Delphi)

Enviado:
10 Nov 2013 14:57
por RobL
Saúde a todos.
No envento OnCreat do Form, modifico um TCheckBox. Ele executa o evento OnChage relacionado a esse TCheckBox. Isto está correto, pois houve uma modificação que disparou o evento OnChange.
Não quero que execute a rotina do evento em OnChange, no momento de OnCreat do Form.
Mudei a rotina para o evento OnClick, na esperaça de que este evento não ocorra sem que eu use o mouse.
Para minha surpresa e ignorância, o evento OnClick foi executado, no evento OnCreat do Form.
Penso que OnClick deveria ocorrer somente com a ação física sobre o mouse, ou não sei o que seja de fato OnClick ?
Agradeço, pela atenção e a aula .
Re: Duvida em eventos Lazarus (ou Delphi)

Enviado:
10 Nov 2013 15:21
por vtrx
Acho que ta meio embolado.
Voce quer deixar o CheckBox selecionado no OnCreat do Form e executar a rotina como se fosse OnClick?
O evento OnClick não executa no OnCreat.
Poste o trecho relacionado ao OnClick e OnCreat.
Qual a versão do Delphi?
Voce esta usando FireMonkey?
Re: Duvida em eventos Lazarus (ou Delphi)

Enviado:
10 Nov 2013 15:52
por RobL
Obrigado por responder.
Ao abrir, no evento OnCreat do Form, estou carregando de um arquivo algumas configurações, dentre elas, marcar um checkbox, mas somente marcar, sem que este dispare o evento OnClick, visto que o OnChange deverá ser disparado, se estivesse sendo usado. Estou correto ?
Muito importante, não estou usando o Delphi mas sim seu clone o Lazarus versão 1.0.4 .
Me diga se estou correto: O evento OnClick só pode ser disparado pelo uso físico do mouse. Não seria disparado no OnCreat do Form.
Se isto estiver correto, então tenho um bug no Lazarus.
AH! Sim, eu não quero que ele execute a rotina OnClick no evento OnCreat do Form e isto está acontecendo.
Re: Duvida em eventos Lazarus (ou Delphi)

Enviado:
10 Nov 2013 16:00
por vtrx
Não dipara o evento não.
Voce deve estar usando um arquivo .ini,correto?
Pode ser algo no Lazarus.
Não aconselho Lazarus.é muito pesado.
Re: Duvida em eventos Lazarus (ou Delphi)

Enviado:
10 Nov 2013 16:15
por andre_luis
RobL,
Tenta executar algum equivalente do ProccessMessages() dentro do OnCreate(), para ver se limpa o buffer de eventos do sistema.
Pode ser que esteja capturando algum clique anterior que você disparou durante a execução da compilação.
( pra ter certeza se realmente não é algum conflito do Debug, cria o .EXE e refaz o teste fora da ferramenta IDE )
+++
Re: Duvida em eventos Lazarus (ou Delphi)

Enviado:
10 Nov 2013 16:20
por RobL
Valeu Vtrx e Andre e todos que tentaram ajudar.
Então deve ter algo bichado no Lazarus.
Quanto a ser pesado, para grandes programas pode chatear no tempo de compilação. Mas para pequenos programas, não tenho tido problema, a não ser surpresas desagradáveis de algo bugado, principalmente no Linux (Ubuntu). Bom isto em um velho Pc.
Não rodei ele no linux em um PC melhor. Quanto ao binario (ou exe no win) gerado, passo ele em dois programas do toolchain e fica bem pequeno e leve (o executável). Deve até já ter configuração no Lazarus para fazer isto, mas não procurei ainda.
Mudei para MouseDown e funcionou corretamente, ou seja, não disparou este evento dentro do OnCreat do Form. Acho que está bugado.
Valeu a confirmação de que não dispara o evento OnClick, conforme imaginava. Obrigado
Re: Duvida em eventos Lazarus (ou Delphi)

Enviado:
10 Nov 2013 16:48
por RobL
Tá saindo na nova versão do Lazarus 1.2 :
There is a separate window for managing the modes. Two useful modes, "Debug" and "Release", can be created with a single click.
Até o momento uso o strip e um compressor para o exe, fica muito pequeno e leve.
Re: Duvida em eventos Lazarus (ou Delphi)

Enviado:
10 Nov 2013 19:22
por vtrx
Diminuir o exe,na verdade é uma 'gambiarra'.
,o Strip é feito em Delphi.
Oque é gerado é um Manifest que dezipa o seu programa para a memória,o executável é zipado quando 'diminuido'.
Re: Duvida em eventos Lazarus (ou Delphi)

Enviado:
10 Nov 2013 19:37
por RobL
Não é só isso não.
Há toneladas de sinalização para o debug que ficaria por lá aumentando muito o tamanho do arquivo.
Diminuir o exe,na verdade é uma 'gambiarra'.
,o Strip é feito em Delphi.
Deve estar confundindo algo, pois o Lazarus foi feito para o Linux e portado para o Win pelo mingw. Esses programas são desse toolchain, não é escrito em Delphi (freepascal).
Re: Duvida em eventos Lazarus (ou Delphi)

Enviado:
10 Nov 2013 20:36
por vtrx
Acho que me expressei mal.
O strip foi feito em Delphi e depois portado pois o Delphi é anterior ao Lazarus,tem os fontes na net.
Na minha experiencia,se voce esta usando Lazarus para programar para Linux,é mais aconselhavel programar em Java pois o executavel é o mesmo.
Re: Duvida em eventos Lazarus (ou Delphi)

Enviado:
11 Nov 2013 16:40
por RobL
Dei uma lida mais profunda, para ver o que foi chamado de gambiarra.
O upx.exe, o compressor, e ví que de fato tem mais problemas que pros.
Ele serviria apenas para enviar o código via net, com tamanho bem reduzido !!!!
O pior dele é que ele atrapalha o sistema operacional a decidir sobre a alocação de memória e em certos casos pode até não rodar e tem outros problemas ainda. Portanto, endossando a gambiarra, não se deve usar esse compressor.
Quanto ao usar o strip, para retirar as informações de debug, não há problema.
Espero que o novo Lazarus, no modo release, faça as operações para redução do executável deixando o tamanho de acordo com a espectativa.