CRIANDO COMPONENTES - TCTUActiveButton - 1. Objetivo: Este componente irá fazer com que o texto (caption) que aparece no botão fique em negrito toda vez que o mouse passar sobre ele. 2. Digitação: Basta deixar a unit com o seguinte aspecto: unit CTUActiveButton; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons; type TCTUActiveButton = class(TBitBtn) private { Private declarations } protected procedure MouseEnter(var Msg: TMessage); message cm_mouseEnter; procedure MouseLeave(var Msg: TMessage); message cm_mouseLeave; public { Public declarations } published { Published declarations } end; procedure Register; implementation procedure Register; begin RegisterComponents('CTU', [TCTUActiveButton]); end; { TCTUActiveButton } procedure TCTUActiveButton.MouseEnter(var Msg: TMessage); begin Criando componente – TCTUActiveButton – Página 1 Font.Style:= Font.Style + [fsBold]; end; procedure TCTUActiveButton.MouseLeave(var Msg: TMessage); begin Font.Style:= Font.Style - [fsBold]; end; end. 3. As diferenças entre este componente e o TCTUComboBox serão explicitadas a seguir, colocamos estas novidades em negrito na listagem acima: a. Nota-se a presença do comando message com cm_mouseEnter e cm_mouseLeave. b. Como sabemos, o Windows percebe a presença de eventos através de mensagens que os componentes o enviam. A forma de enviar mensagens no Delphi é a apresentada: coloca-se o nome da rotina que será executada e em seguida o comando message seguido da mensagem-padrão reconhecida pelo Windows. c. Outra novidade que contatamos é a forma com a qual inserimos e retiramos o estilo fsBold da propriedade Style da propriedade Font. 4. Os procedimentos de criação e instalação do componente são os mesmos apresentados no projeto TCTUCombobox. J J J J J J J J J J J J J J J J Criando componente – TCTUActiveButton – Página 2