Baixe o app para aproveitar ainda mais
Prévia do material em texto
Componentes Básicos do Delphi COMPONENTES BÁSICOS DE INTERFACE .............................................................................................. 2 CONCEITO .......................................................................................................................................................... 2 Algumas propriedades comuns aos componentes ......................................................................................... 2 EVENTOS ............................................................................................................................................................ 3 Eventos mais comuns dos Componentes ....................................................................................................... 3 EXEMPLO - OLÁ ................................................................................................................................................. 4 COMPONENTES BÁSICOS ............................................................................................................................. 5 LABEL - LEGENDAS / RÓTULOS......................................................................................................................... 5 EDIT - CAIXA DE EDIÇÃO ................................................................................................................................... 5 BUTTON - BOTÕES DE COMANDO....................................................................................................................... 6 BITBTN - BOTÕES DE COMANDO........................................................................................................................ 6 SPEEDBOTTON - BOTÕES DE COMANDO............................................................................................................. 7 Exemplo01-Manipulação de Label, Edit e Button ........................................................................................ 7 Exemplo02 - Label, Edit e Button .............................................................................................................. 10 Exemplo03 – Eventos e Foco de Componentes........................................................................................... 11 CAIXA DE SELEÇÃO ( CHECKBOX)................................................................................................................... 14 CAIXA DE SELEÇÃO ( RADIOBUTTON) ............................................................................................................. 14 Exemplo 04 - CheckBox ............................................................................................................................. 15 Exemplo 05 - RadioButton ......................................................................................................................... 17 CLASSE TSTRIGS .............................................................................................................................................. 18 LISTA DE SELEÇÃO ( LISTBOX) ........................................................................................................................ 18 LISTA DE SELEÇÃO ( COMBOBOX) ................................................................................................................... 19 Exemplo com ListBox .................................................................................................................................. 20 Exemplo com ComboBox............................................................................................................................. 22 BARRAS DE ROLAGEM (SCROLLBAR ).............................................................................................................. 24 TIMER .............................................................................................................................................................. 24 PROGRESSBAR ................................................................................................................................................. 24 IMAGE .............................................................................................................................................................. 25 Exemplo - SCrollBar e Image .................................................................................................................... 25 Exemplo - ProgressBar, Animate e Timer.................................................................................................. 27 EXERCÍCIOS COMPLEMENTARES .......................................................................................................... 29 Exercício01 - Botões ................................................................................................................................... 29 Exercício02 - Escolha de Fontes e Estilo.................................................................................................... 31 Exercício03 - Muda Cor e Alinhamento...................................................................................................... 33 Exercício04 – Eventos associados ao arrasto do mouse............................................................................. 35 Curso de Programação em Delphi – Componentes Básicos do Delphi Professor Evandro César Freiberger Página 2 Componentes Básicos de Interface Conceito São objetos que possuem representações gráficas em tempo de projeto, disponibilizados no IDE para serem “colados” nos formulário durante a construção da interface. No Delphi existem dois tipos de componentes: visuais, que possuem representação gráfica em tempo de projeto e execução e não visuais, que possuem representação gráfica somente em tempo de projeto. O Delphi facilita a manipulação dos objetos através da interface de componentes, onde você pode facilmente inserir, alterar, excluir e manipular objetos da aplicação. Um formulário, por exemplo, é a representação visual de um objeto TFORM, bem como todos os objetos a ele associado. Cada componente possui duas partes básicas: propriedades e eventos. Propriedades: são as características dos componentes ( localização na tela, cor, título, etc). Algumas propriedades poderão ser alteradas em tempo de projeto ( Object Inspector ) e em tempo de execução ( manipulação no código fonte ), outras somente em tempo de execução. Algumas propriedades comuns aos componentes Propriedades Finalidade Align Determina como o componente é alinhado em relação ao componente que está vinculado. Caption Legenda do componente Color Determina a cor da superfície ou do fundo de um componente Ctr3D Determina se o controle tem aparência tridimensional Cursor Indica qual cursor será usado quando o ponteiro estiver sobre o controle DragCursor Cursor usado para indicar que o controle aceita ser arrastado DragMode Determina o comportamento do controle como componente inicial para uma operação de arrastar Enabled Determina se o controle está ativo ou inativo Font Determina a fonte usada para exibir textos dentro do componente Height Tamanho vertical do controle ( altura ) Hint É um string usada para exibir dicas para o componente quando o ponteiro do mouse é posicionado sobre ele Left Distância do canto esquerdo do componente à margem esquerda do formulário. Name É o nome do componente, deve ser único e será usado no código fonte Parent Ponteiro para o componente de origem ( pai ) ParentColor Determina se o componente deve usar a sua propriedade color ou a do componente pai ParentFont Determina se o componente deve usar a sua propriedade font ou a do componente pai ParentShowHi nt Determina se o componente deve utilizar sua própria propriedade ShowHint ou a docomponente pai PopupMenu Indica o menu suspenso a ser chamado quando o usuário precionar o botão direito do mouse sobre o componente ShowHint Determina se as dicas vão ser mostradas Curso de Programação em Delphi – Componentes Básicos do Delphi Professor Evandro César Freiberger Página 3 Propriedades Finalidade TabOrder Determina a ordem de tabulação deste controle TabStop Determina se o usuário pode passar por ele usando a tecla Tab Tag É um longInteger que pode ser usado para armazenar qualquer valor Top Distância do topo do componente para o topo do formulário Visible Determina se o controle está visível ou não Width Tamanho horizontal do controle ( largura) Eventos Os eventos são ações que o usuário ou uma parte da aplicação gera durante a execução da aplicação. Por exemplo quando um usuário pressiona uma tecla do teclado ou do mouse, ele estará disparando um evento. Outro exemplo é quando a aplicação exibe uma tela, ou foi programado um temporizador para de tempo em tempo executar uma ação. Eventos mais comuns dos Componentes Eventos Quando Ocorrem OnChange ocorre quando o objeto ou seu conteúdo muda OnClick Ocorre quando se dá um clique com o botão esquerdo do mouse sobre o componente OnDblClick ocorre quando o usuário dá um duplo clique com o botão esquerdo do mouse sobre o componente OnDragDrop ocorre quando uma operação de arrastar termina sobre o componente OnDragOver ocorre quando o usuário esta arrastando o mouse sobre o componente OnEndDrag ocorre quando a ação de arrastar é encerrada e enviada ao componente que iniciou a operação de arrastar OnEnter ocorre quando o componente é ativado, ou seja quando o componente entra em foco OnExit ocorre quando o componente perde o foco OnKeyDown ocorre quando o usuário pressiona uma tecla do teclado, sendo que essa tecla será enviada ao componente que detém o foco OnKeyPress ocorre quando o usuário pressiona uma tecla, que será enviada ao componente que detém o foco OnKeyUp ocorre quando o usuário solta uma tecla, sendo enviada ao componente que detém o foco OnMouseDow ocorre quando o usuário pressiona uma das teclas do mouse, sendo geralmente enviada ao componente sob o ponteiro do mouse OnMouseMove ocorre quando o usuário move o mouse sobre o componente OnMouseUp ocorre quando o usuário solta uma das teclas do mouse Curso de Programação em Delphi – Componentes Básicos do Delphi Professor Evandro César Freiberger Página 4 Eventos Quando Ocorrem OnStartDrag ocorre quando o usuário inicia o arrasto do mouse, sendo enviado ao componente que inicia a operação de arrasto Exemplo - Olá Definição de Objetos • Cole um componente Button no formulário • Mude a propriedade Name para BotaoOla • Mude a propriedade Caption para Diga Olá Código Fonte Associado • Selecione o componente BotaoOla. • Escolha a guia Events no Object Inspector • Selecione o evento OnClick. • Dê um duplo clique na caixa de valores desse evento. • Insira o código abaixo: procedure TForm_ola.BotaoOlaClick(Sender: TObject); begin Showmessage('Olá, pessoal'); end; Curso de Programação em Delphi – Componentes Básicos do Delphi Professor Evandro César Freiberger Página 5 Componentes Básicos Label - Legendas / Rótulos É usado para exibir textos nos formulários, normalmente usados para identificar um elemento no formulário ( legenda ). Pode ser usado para exibir resultados obtidos em tempo de execução. Propriedades Caption => define o texto a ser apresentado. Pode ser altera em tempo de projeto e execução. AutoSize => [True / False] - determina se o label se ajustará automaticamente ou não ao tamanho do texto. WordWrap => [True / False] - se verdadeiro faz com que o label se expanda verticalmente quando o texto ultrapassar o limite do label. Alignment => controla o alinhamento do texto dentro do label ( esquerda, centralizado ou a direita). Font => configura as características da fonte do texto. Color => cor de fundo do Label (segundo plano). FocusControl => determina um componente que receberá o focu quando for usada a tecla de atalho inserida no caption Edit - Caixa de Edição Usado para exibir e editar textos no formulário. Normalmente usada para editar pequenos textos, porém esse controle permite tratar milhares de caracteres. Propriedades Text => contém o texto digitado pelo usuário. BorderStyle => determina o tipo da borda da caixa de edição. MaxLength => número máximo de caracteres permitidos na digitação. CharCase => configura se os caracteres digitados serão transformados para minúsculos ou maiúsculos ou ainda se serão determinados pelo usuário. PassWordChar => configura um caracter para ser usado como máscara na digitação. Curso de Programação em Delphi – Componentes Básicos do Delphi Professor Evandro César Freiberger Página 6 Button - Botões de Comando Usado para responder um clique do usuário e promover uma ação. Propriedades Caption => Determina a legenda do botão. Nessa propriedade poderá ser usada uma tecla de acesso, inserindo um caracter (&) antes da letra desejada. Dessa forma o usuário não precisa precionar o mouse e sim a combinação de tecla ALT+ a letra escolhida. Default => se True, define o botão como botão padrão do formulário, isto é, quando for pressionada a tecla Enter o botão será acionado. Cancel => se True, define o botão como botão de cancelamento do formulário, isto é, quando for pressionada a tecla Esc o botão será acionado. ModalResult => determina o valor de retorno de um formulário chamado quando o usuário pressionar o botão. BitBtn - Botões de Comando Usado para responder um clique do usuário e promover uma ação, com a possibilidade de associar uma imagem como ícone do botão. Propriedades Caption => Determina a legenda do botão. Nessa propriedade poderá ser usada uma tecla de acesso, inserindo um caracter (&) antes da letra desejada. Dessa forma o usuário não precisa precionar o mouse e sim a combinação de tecla ALT+ a letra escolhida. Default => se True, define o botão como botão padrão do formulário, isto é, quando for pressionada a tecla Enter o botão será acionado. Cancel => se True, define o botão como botão de cancelamento do formulário, isto é, quando for pressionada a tecla Esc o botão será acionado. ModalResult => determina o valor de retorno de um formulário chamado quando o usuário pressionar o botão. Gryph => estabelece um arquivo BMP para ser exibido como ícone no botão Kind => estabelece uma imagem pré-definida para ser exibida como ícone no botão Layout => estabelece a posição que o ícone no botão será exibido no botão Curso de Programação em Delphi – Componentes Básicos do Delphi Professor Evandro César Freiberger Página 7 SpeedBotton - Botões de Comando Usado para responder um clique do usuário e promover uma ação, com a possibilidade e associar uma imagem como ícone do botão, porém se difere dos outros, pois é um componente que não recebe foco. Bastante usado para criar barras de botões. Propriedades Caption => Determina a legenda do botão. Nessa propriedade poderá ser usada uma tecla de acesso, inserindo um caracter(&) antes da letra desejada. Dessa forma o usuário não precisa precionar o mouse e sim a combinação de tecla ALT+ a letra escolhida. Gryph => estabelece um arquivo BMP para ser exibido como ícone no botão. Layout => estabelece a posição que o ícone no botão será exibido no botão. GroupIndex => usado para formar grupos de botões que poderão ficar pressionados (Down) , podendo ser desmarcados por ele próprio ou por outro botão do mesmo grupo. Caso esteja com valor zero, não existirá nenhuma relação com outros botões. Porém se o seu valor é diferente de zero e igual a outros botões, então este botão pertencerá a um grupo de botões mutualmente exclusivos, semelhante a um radioButton. Caso esteja com valor diferente de zero porém diferente dos outros botões, terá comportamento semelhante a um checkbox. AllawAllUp => se verdadeiro permite que o botão se alto desmarque, quando está sendo usado GroupIndex diferente de zero. Flat => se verdadeiro o botão terá aparência plana e só terá bordas 3D quando o mouse passar pela sua superfície. Down => indica se o botão está pressionado (verdadeiro) ou está solto (falso). Exemplo01-Manipulação de Label, Edit e Button Exercício 01 - manipulação das propriedade e eventos básicos dos componentes Label, Edit e Button. O exercício é a implementação de um programa que lê dois números e mostra como resultado a soma dos dois valores e também compara-os mostrando o maior número ou uma mensagem que são iguais. Para implementar o programa siga os seguintes passos: Curso de Programação em Delphi – Componentes Básicos do Delphi Professor Evandro César Freiberger Página 8 1. Crie um novo projeto ( File New Application). 2. Selecione o formulário e configure a propriedade Name para Form_Principal e Caption para “Exercício 01 - Label/Edit/Button”. 3. Insira um componente Label e configure sua propriedade Caption para “Valor de (A)”. 4. Insira outro Label e configure a propriedade Caption para “Valor de (B)”. 5. Insira outro Label e configure a propriedade Caption para “Resultado da Soma”. 6. Insira outro Label e configure a propriedade Caption para “Resultado da Comparação”. 7. Insira um componente Edit e configure sua propriedade Name para ValorA e limpe o conteúdo da propriedade Text. 8. Insira um componente Edit e configure sua propriedade Name para ValorB e limpe o conteúdo da propriedade Text. 9. Insira um componente Label e configure sua propriedade Name para Somatoria, altere para false a propriedade AutoSize, limpe o conteúdo da propriedade Caption e mude a cor de fundo do Label, acessando a propriedade Color (clTeal). 10. Insira um componente Label e configure sua propriedade Name para VlrComparacao, altere para false a propriedade AutoSize, limpe o conteúdo da propriedade Caption e mude a cor de fundo do Label, acessando a propriedade Color (clTeal). 11. Insira um componente Button, mude sua propriedade name para BotaoSoma e configure sua propriedade Caption para “&Somar”. 12. Insira um componente Button, mude sua propriedade name para BotaoCompara e configure sua propriedade Caption para “&Comparar”. 13. Insira um componente Button, mude sua propriedade name para BotaoLimpa e configure sua propriedade Caption para “&Limpar”. 14. Insira um componente Button, mude sua propriedade name para BotaoSai e configure sua propriedade Caption para “Sai&r”. Agora que já construímos nosso formulário temos que construir os procedimentos manipuladores dos eventos onClick dos botões, para isso faça: Botão Soma: 1. Selecione o componente BotaoSomar no formulário, escolha a guia Events no Object Inspector. 2. Selecione o evento onClick e em seguida dê um duplo clique na caixa de valores desse evento, com isso o Delphi cria um procedimento manipulador para esse evento. 3. Escreva o código abaixo: procedure TForm_Principal.BotaoSomaClick(Sender: TObject); var VA,VB,Soma : real; begin VA := StrToFloat(valorA.text); VB := StrToFloat(valorB.text); Soma := VA + VB; Somatoria.Caption := FloatToStr(soma); end; Curso de Programação em Delphi – Componentes Básicos do Delphi Professor Evandro César Freiberger Página 9 Botão Comparar: 1. Selecione o componente BotaoCompara no formulário, escolha a guia Events no Object Inspector. 2. Selecione o evento onClick e em seguida dê um duplo clique na caixa de valores desse evento, com isso o Delphi cria um procedimento manipulador para esse evento. 3. Escreva o código abaixo: procedure TForm_Principal.BotaoComparaClick(Sender: TObject); var VA,VB,Soma : real; begin VA := StrToFloat(valorA.text); VB := StrToFloat(valorB.text); if VA > VB then Comparacao.Caption := valorA.Text else if VB > VA then Comparacao.Caption := valorB.Text else Comparacao.Caption := 'iguais'; end; Botão Limpar: 1. Selecione o componente BotaoLimpa no formulário, escolha a guia Events no Object Inspector. 2. Selecione o evento onClick e em seguida dê um duplo clique na caixa de valores desse evento, com isso o Delphi cria um procedimento manipulador para esse evento. 3. Escreva o código abaixo: procedure TForm_Principal.BotaoLimpaClick(Sender: TObject); begin ValorA.Clear; ValorB.Clear; Somatoria.Caption := '' ; Comparacao.Caption := '' ; ValorA.SetFocus; end; Botão Sair: 1. Selecione o componente BotaoSai no formulário, escolha a guia Events no Object Inspector. 2. Selecione o evento onClick e em seguida dê um duplo clique na caixa de valores desse evento, com isso o Delphi cria um procedimento manipulador para esse evento. 3. Escreva o código abaixo: procedure TForm_Principal.BotaoSairClick(Sender: TObject); begin close; end; Curso de Programação em Delphi – Componentes Básicos do Delphi Professor Evandro César Freiberger Página 10 Exemplo02 - Label, Edit e Button Exercício 02 - manipulação das propriedade e eventos básicos dos componentes Label, Edit e Button. O exercício é a implementação de um programa que lê o preço de compra, o valor de custo e o percentual de margem de lucro de um produto, em seguida o programa calculará o preço de venda desse produto através da soma do preço de compra com o valor de custo e multiplicando pelo percentual de margem de lucro. Para implementar o programa siga os seguintes passos: 1. Crie um novo projeto ( File New Application). 2. Selecione o formulário e configure a propriedade Name para Form_Principal e Caption para “Exercício 02 - Label/Edit/Button”. 3. Insira um componente Label e configure sua propriedade Caption para “Preço de Compra”. 4. Insira outro Label e configure a propriedade Caption para “Preço de Custo”. 5. Insira outro Label e configure a propriedade Caption para “% de Margem de Lucro”. 6. Insira outro Label e configure a propriedade Caption para “Preço de Venda”. 7. Insira um componente Edit e configure sua propriedade Name para VCompra e limpe o conteúdo da propriedade Text. 8. Insira um componente Edit e configure sua propriedade Name para VCusto e limpe o conteúdo da propriedade Text. 9. Insira um componente Edit e configure sua propriedade Name para PMargem e limpe o conteúdo da propriedade Text. 10. Insira um componente Label e configure sua propriedade Name para Vvenda, altere para false a propriedade AutoSize, limpe o conteúdo da propriedade Caption e mude a cor de fundodo Label, acessando a propriedade Color (clTeal). 11. Insira um componente Button, mude sua propriedade name para BotaoCalcula e configure sua propriedade Caption para “&Calcular”. 12. Insira um componente Button, mude sua propriedade name para BotaoLimpa e configure sua propriedade Caption para “&Limpar”. 13. Insira um componente Button, mude sua propriedade name para BotaoSai e configure sua propriedade Caption para “Sai&r”. Agora que já construímos nosso formulário temos que construir os procedimentos manipuladores dos eventos onClick dos botões, para isso faça: Botão Calcular: 1. Selecione o componente BotaoCalcula no formulário, escolha a guia Events no Object Inspector. 2. Selecione o evento onClick e em seguida dê um duplo clique na caixa de valores desse evento, com isso o Delphi cria um procedimento manipulador para esse evento. 3. Escreva o código abaixo: Curso de Programação em Delphi – Componentes Básicos do Delphi Professor Evandro César Freiberger Página 11 procedure TForm_Principal.BotaoCalculaClick(Sender: TObject); var Venda, Custo, Margem, Total : real; begin Venda := StrToFloat(VCompra.text); Custo := StrToFloat(VCusto.text); Margem := StrToFloat(PMargem.text)/100 + 1; Total := (Venda + Custo) * Margem; Vvenda.Caption := formatfloat('###,##0.00',Total); end; Botão Limpar: 1. Selecione o componente BotaoLimpa no formulário, escolha a guia Events no Object Inspector. 2. Selecione o evento onClick e em seguida dê um duplo clique na caixa de valores desse evento, com isso o Delphi cria um procedimento manipulador para esse evento. 3. Escreva o código abaixo: procedure TForm_Principal.BotaoLimpaClick(Sender: TObject); begin VCompra.Clear; VCusto.Clear; PMargem.Clear; Vvenda.Caption := '' ; VCompra.SetFocus; end; Exemplo03 – Eventos e Foco de Componentes Definição dos Objetos • Crie uma nova aplicação, mude o título do formulário para Foco e configure a propriedade name para FormFoco • Salve a Unit com o nome de Unit_Foco e o projeto como Projeto_Foco. Curso de Programação em Delphi – Componentes Básicos do Delphi Professor Evandro César Freiberger Página 12 • Insira três componentes Edit com as seguintes características: Name PassWordChar Text EditNome #0 EditSobrenome #0 EditSenha * • Insira três componentes Label com as seguintes características: Name Caption FocusControl Label1 &Nome EditNome Label2 &Sobrenome EditSobrenome Label3 S&enha EditSenha • Insira dois componentes BitBtn com as seguintes características: Name Caption Glyph Layout BotaoGravar &Gravar Floppy blGlyphTop BotaoSair &Sair DoorOpen blGlyphTop Roteiro para Inserir imagem no Botão (BitBtn) 1. Localizar a propriedade Glyph do botão 2. Pressione o botão com a reticência 3. Na tela Picture Editor pressione o botão Load 4. Localizar a pasta no caminho: C:\Arquivos de programas\Arquivos comuns\Borland Shared\Images\Buttons 5. Localize o arquivo DoorOpen e pressione o botão Abrir 6. Novamente na tela Picture Editor pressione o botão OK • Insira um componente StatusBar (guia Win32) configure sua propriedade name para rodape e SimplePanel para True. Código Fonte Associado Na cláusula Implementation declarar uma constante conforme exemplo abaixo: Implementation Const MasterSenha = ‘010101’; procedure TFormFoco.BotaoGravarClick(Sender: TObject); begin if EditSenha.Text <> MasterSenha then begin showmessage('Senha inválida'); EditSenha.SetFocus; end Else showmessage('Senha Válida'); end; Curso de Programação em Delphi – Componentes Básicos do Delphi Professor Evandro César Freiberger Página 13 procedure TFormFoco.NomeEditEnter(Sender: TObject); begin Rodape.SimpleText := 'Digitando o nome...'; end; procedure TFormFoco.NomeEditExit(Sender: TObject); begin Rodape.SimpleText := ''; end; procedure TFormFoco.SobrenomeEditEnter(Sender: TObject); begin Rodape.SimpleText := 'Digitando o sobrenome...'; end; procedure TFormFoco.SobrenomeEditExit(Sender: TObject); begin Rodape.SimpleText := ''; end; procedure TFormFoco.SenhaEditEnter(Sender: TObject); begin Rodape.SimpleText := 'Digitando a senha...'; end; procedure TFormFoco.SenhaEditExit(Sender: TObject); begin Rodape.SimpleText := ''; end; procedure TFormFoco.BotaoSairClick(Sender: TObject); begin close; end; Curso de Programação em Delphi – Componentes Básicos do Delphi Professor Evandro César Freiberger Página 14 Caixa de Seleção ( CheckBox) Esse componente será usado quando se deseja obter respostas Sim/Não, porém permite que dentre um conjunto de checkBox vários possam estar assinalados ao mesmo tempo. Propriedades Caption => Texto legenda da opção Checked => Se True a caixa esta assinalada, se False não assinalado AllowGrayed => Se True a caixa terá três estados, se False dois estados State => (cbUnchecked, cbChecked, cbGrayed) assinalado, não assinalado e assinalado acinzentado. Caixa de Seleção ( RadioButton) Esse componente será usado quando se deseja obter respostas Sim/Não, porém só permite que, dentre um conjunto de RadioButton, apenas um pode estar assinalado. Esse componente é dito mutuamente exclusivo. Propriedades Caption => Texto legenda da opção. Checked => Se True a caixa esta assinalada, se False não assinalado. Curso de Programação em Delphi – Componentes Básicos do Delphi Professor Evandro César Freiberger Página 15 Exemplo 04 - CheckBox Manipulação das propriedade e eventos básicos dos componentes Label, TextBox, Button e CheckBox. O exercício é a implementação de um programa que lê o nome do funcionário e o salário base. Com esse valor e configurações a cerca dos descontos que incidem no rendimento, o programa irá mostrar o salário líquido do funcionário. Para implementar o programa siga os seguintes passos: 1. Crie um novo projeto ( File New Application). 2. Selecione o formulário e configure a propriedade Name para Form_Principal e Caption para “Exercício 03 - CheckBox”. 3. Insira um componente Label e configure sua propriedade Caption para “Nome do Funcionário”. 4. Insira outro Label e configure a propriedade Caption para “Salário Base”. 5. Insira outro Label e configure a propriedade Caption para “Salário Líquido”. 6. Insira um componente Edit e configure sua propriedade Name para NomeFuncionario e limpe o conteúdo da propriedade Text. 7. Insira um componente Edit e configure sua propriedade Name para SalarioBase e limpe o conteúdo da propriedade Text. 8. Insira um componente Label e configure sua propriedade Name para SalarioLiquido, limpe o conteúdo da propriedade Caption, Autosize para False e mude a cor de fundo do Label. 9. Insira um componente GroupBox e configure sua propriedade Caption para “Descontos”. 10. Dentro do componente GroupBox insira um componente CheckBox e configure sua propriedade Name para Dsaude e Caption para “Convênio Saúde ( 30,00 )”. 11. Dentro do componente GroupBox insira um componenteCheckBox e configure sua propriedade Name para DAssociacao e Caption para “Associação ( 1,00 %)”. 12. Dentro do componente GroupBox insira um componente CheckBox e configure sua propriedade Name para DSindicato e Caption para “Sindicato ( 1,50 % )”. 13. Insira um componente Button, configure sua propriedade Caption para “&Calcular” e Name para BotaoCalcular. 14. Insira um componente CommandButton, configure sua propriedade Caption para “&Limpar” e Name para BotaoLimpar. 15. Insira um componente CommandButton, configure sua propriedade Caption para “&Sair” e Name para BotaoSair. Curso de Programação em Delphi – Componentes Básicos do Delphi Professor Evandro César Freiberger Página 16 Agora que já construímos nosso formulário temos que construir os procedimentos manipuladores dos eventos Click dos botões, para isso faça: Botão Calcular: procedure TForm_Principal.BotaoCalcularClick(Sender: TObject); var salario,desconto : real; begin salario := strToFloat(SalarioBase.Text); If DSaude.checked Then desconto := 30; If DAssociacao.Checked Then desconto := desconto + (salario * 1 / 100); If DSindicato.Checked Then desconto := desconto + (salario * 1.5 / 100); salario := salario - desconto; SalarioLiquido.Caption := FloatToStr(salario); end; Botão Limpar: procedure TForm_Principal.BotaoLimparClick(Sender: TObject); begin NomeFuncionario.Clear; SalarioBase.Clear; DSaude.Checked := false; DAssociacao.Checked := false; DSindicato.Checked := false; SalarioLiquido.Caption := ''; NomeFuncionario.SetFocus; end; Curso de Programação em Delphi – Componentes Básicos do Delphi Professor Evandro César Freiberger Página 17 Exemplo 05 - RadioButton Código Fonte Associado procedure TForm1.BotaoCalcularClick(Sender: TObject); var Total : real; begin if OpAdicao.Checked then Total := strToFloat(Termo1.text)+strToFloat(Termo2.text) else if OpSubtracao.Checked then Total := strToFloat(Termo1.text)-strToFloat(Termo2.text) else if OpMultiplicacao.Checked then Total := strToFloat(Termo1.text)*strToFloat(Termo2.text) else if OpDivisao.Checked then Total := strToFloat(Termo1.text)/strToFloat(Termo2.text); Resultado.Caption := FormatFloat('###,##0.00',total); end; procedure TForm1.BotaoLimparClick(Sender: TObject); begin Termo1.Clear; Termo2.Clear; Resultado.Caption := ''; OpAdicao.Checked := true; end; Curso de Programação em Delphi – Componentes Básicos do Delphi Professor Evandro César Freiberger Página 18 Classe TStrigs É uma classe do Delphi que dá suporte ao gerenciamento de uma lista de Strings. Vários componentes do Delphi usam essa classe como atributo para gerenciar uma lista de elementos do tipo cadeia de caracter. Abaixo serão descritas as principais propriedades e métodos dessa classe. Propriedades Strings => Vetor de string, começando pelo índice zero, ou seja, a primeira string é acessada pela sintaxe: lista.strings[0]. Count => número de elementos da lista. Métodos Add => Adiciona uma string no final da lista. Ex: Lista.Add(‘teste’). Esse método retorna o índice que tal elemento foi inserido. Insert =>Inseri uma string na posição especificada da lista. Ex: Lista.Insert(2,‘testando’). Clear => remove todos os elementos da lista. Delete => remove um elemento da lista. Ex: Lista.delete(2). IndexOf => retorna o índice que uma determinada string ocupa na lista. Caso não encontre devolverá –1. Ex: Lista.IndexOf(‘teste’) => 0. Lista de Seleção ( ListBox) Esse componente será usado quando se deseja escolher um ou mais elementos em uma lista. Os elementos dessa lista podem ser configurados em tempo de projeto ou de forma dinâmica em tempo de execução. Propriedades Columns => Determina quantas colunas serão usadas para exibir os elementos da lista. Com o valor zero exibe os elementos em uma colunas com barra de rolagem vertical, valores maiores que zero exibe os elementos na quantidade de colunas especificadas e com barra de rolagem horizontal. Items => É do tipo Tstrings e contém a lista de strings (elementos) do listBox. ItemIndex => Determina o índice do elemento selecionado, quando não houver elemento selecionado seu valor será –1. MultiSelect => Se verdadeiro, permite a seleção de mais de um elemento simultaneamente. Deverá ser usado em conjunto com a propriedade Selected. Selected => Usada para verificar quais elementos estão selecionados, quando a opção multiSelect for verdadeira. SelCount => Determina o número de elementos que estão selecionados, quando a opção MultiSelect for verdadeira. Sorted => Se verdadeiro, organizará os elementos em ordem crescente. Curso de Programação em Delphi – Componentes Básicos do Delphi Professor Evandro César Freiberger Página 19 Style => LbStandard – todos os itens são strings de altura definida pela fonte. LbOwnerDrawFixed – altura dos itens definida pela propriedade ItemHeight. LbOwnerDrawVariable – pode ter alturas independentes controladas pelo evento OnDrawItem. Lista de Seleção ( ComboBox) Esse componente será usado quando se deseja escolher um elemento em uma lista ou digita-lo. Os elementos dessa lista podem ser configurados em tempo de projeto ou de forma dinâmica em tempo de execução. Normalmente usado quando não há muito espaço na interface ou são várias listas no mesmo formulário. Propriedades Items => É do tipo Tstrings e contém a lista de strings (elementos) do listBox. ItemIndex => Determina o índice do elemento selecionado, quando não houver elemento selecionado seu valor será –1. Sorted => Se verdadeiro, organizará os elementos em ordem crescente. Text => Texto digitado ou selecionado na lista. Style => determina as formas de comportamento e exposição da lista. Veja abaixo as opções: csdropDown => Lista e caixa combinada de edição. Todos os itens são strings da mesma altura. CsDropDownList => Somente lista. Todos os itens são strings da mesma altura. CsOwnerDrawFixed => Lista e caixa combinada de edição, podendo ser configurado a altura dos itens através da propriedade ItemHeigth. CsOwnerDrawVariable => Lista e caixa combinada de edição, podendo ser configurado a altura individual de cada item através do tratamento do evento OnDraw Item. CsSimple => Somente uma lista para escolha, onde a altura da lista visualizada é determinada pela altura do comboBox. Curso de Programação em Delphi – Componentes Básicos do Delphi Professor Evandro César Freiberger Página 20 Exemplo com ListBox Desenvolver a interface abaixo: Componentes: Label1 : Tlabel Caption = Origem Label2: Tlabel Caption = Destino Origem : TlistBox Font: negrito, tamanho 14 Style: lbOwnerDrawFixed ItemHeight = 30 Items = Curso de Programação em Delphi – Componentes Básicos do Delphi Professor Evandro César Freiberger Página 21 Destino : TlistBox Font: tamanho 10 Style: lbStandard Items = vazio!! PassaUm : TspeedButton Caption = >PassaTodos : TspeedButton Caption = >> TipoSelecao : TradioGroup Caption = Tipo Seleção Items = Simples Múltipla ItemIndex = 0 LimpaDestino : TbitBtn Caption = &Limpa Destino Gryph = C:\Arquivos de programas\Arquivos comuns\Borland Shared\Images\Buttons\clear Código fonte associado procedure TForm1.TipoSelecaoClick(Sender: TObject); begin if tipoSelecao.ItemIndex = 0 then origem.MultiSelect := false else origem.MultiSelect := true; end; procedure TForm1.PassaUmClick(Sender: TObject); var x:word; begin if not origem.MultiSelect then begin if origem.ItemIndex >= 0 then destino.Items.Add (origem.items[origem.itemIndex]) else showmessage('Nenhum elemento foi selecionado'); end else begin for x := 0 to origem.Items.Count - 1 do begin if origem.Selected[x] then destino.Items.Add (origem.items[x]); end; end; end; procedure TForm1.LimpaDestinoClick(Sender: TObject); begin destino.Items.Clear; end; Curso de Programação em Delphi – Componentes Básicos do Delphi Professor Evandro César Freiberger Página 22 procedure TForm1.PassaTodosClick(Sender: TObject); begin destino.Items := origem.Items ; end; Exemplo com ComboBox Desenvolver a interface abaixo: Componentes: Label1 : Tlabel Caption = Fontes Label2: Tlabel Caption = Tamanho Fonte : TComboBox Style: csDropDownList Items = vazio!! Sorted = True Tamanho : TComboBox Style: csDropDown Items = 8, 9,10,12,14,18,22,26 Texto : Tlabel Caption = Texto exemplo de Manipulação de Fonte Alignment = taCenter AutoSize = False Color = clTeal CarregaFontes : TbitBtn Caption = Carrega &Fontes Gryph = C:\Arquivos de programas\Arquivos comuns\Borland Shared\Images\Buttons\font Curso de Programação em Delphi – Componentes Básicos do Delphi Professor Evandro César Freiberger Página 23 Código fonte associado procedure TFormExecCombo.CarregaFontesClick(Sender: TObject); var x:word; begin fonte.Items.Clear; for x := 0 to screen.Fonts.Count - 1 do fonte.Items.Add(screen.Fonts.Strings[x]); if fonte.Items.Count >= 0 then begin fonte.ItemIndex := 0; texto.Font.Name := fonte.Items[ fonte.itemindex ]; texto.Font.Size := StrToIntDef(tamanho.text,8); end; tamanho.ItemIndex := 0; end; procedure TFormExecCombo.FonteClick(Sender: TObject); begin if fonte.ItemIndex >= 0 then texto.Font.Name := fonte.Items[ fonte.itemindex ]; end; procedure TFormExecCombo.tamanhoClick(Sender: TObject); begin texto.Font.Size := StrToIntDef(tamanho.text,8); end; procedure TFormExecCombo.tamanhoKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if key = 13 then tamanhoClick(nil); end; Curso de Programação em Delphi – Componentes Básicos do Delphi Professor Evandro César Freiberger Página 24 Barras de Rolagem (ScrollBar ) É um controle ao qual o usuário pode através de uma representação gráfica escolher um posicionamento entre um intervalo definido. O controle devolve um valor entre um mínimo e um máximo estipulado (guia Standard. Propriedades Kind => define se a barra de rolagem será horizontal ou vertical. Position => serve para definir uma posição ou obter a posição atual do controle. Min => determina o menor valor que poderá assumir. Max => maior valor que poderá assumir. SmallChage => controla qual o valor que será acrescentado ou decrementado da propriedade Position quando o usuário pressionar uma das setas da barra. LargeChage => é o valor acrescentado ou decrementado da propriedade Position, caso o usuário dê um clique entre a seta e o botão de posicionamento. Timer É um controle que dispara um evento a cada intervalo de tempo configurável (guia System). Propriedades Interval => é um valor em milessegundos, que servirá para estipular o intervalo de tempo a cada execução do procedimento associado. Enabled => se True, habilita o Timer e ele executará o código do evento Timer no intervalo de tempo estipulado, se False o controle fica desabilitado. ProgressBar É um controle que possui uma representação gráfica de um posicionamento entre um intervalo estipulado. Propriedades Position => serve para definir ou obter a posição atual do controle. Min => determina o menor valor que poderá assumir. Max => maior valor que poderá assumir. Step => de quantas em quantas posições o controle será atualizado . Curso de Programação em Delphi – Componentes Básicos do Delphi Professor Evandro César Freiberger Página 25 Image É um controle que possibilita a exibição de imagem no formato BMP. Propriedades Pricture => imagem BMP a ser exibida. Center => se true centralizará a imagem dentro do espaço delimitado pelo componente. Stretch => dimensiona a imagem conforme o tamanho delimitado pelo componente. Exemplo - SCrollBar e Image Manipulação das propriedade e eventos básicos dos componentes SCrollBar, e Image. Para implementar o programa siga os seguintes passos: • Crie um novo projeto ( File New Application). • Selecione o formulário e configure a propriedade Name para Form_Principal e Caption para “Exercício - SCrollBar, e Image”. • Configure as propriedade abaixo do formulário com os seus respectivos valores: Propriedade Valor Width 480 Height 430 Curso de Programação em Delphi – Componentes Básicos do Delphi Professor Evandro César Freiberger Página 26 Insira um componente ScrollBar e configure suas propriedades: Propriedade Valor Kind sbHorizontal Name Horizontal Left 55 Top 358 Height 25 Width 400 Max 400 Min 100 SmallChange 10 LargeChange 50 Insira um componente ScrollBar e configure suas propriedades: Propriedade Valor Kind SbVertical Name Vertical Left 30 Top 20 Height 355 Width 22 Max 170 Min 20 SmallChange 5 LargeChange 20 Insira um componente Image e configure suas propriedades: Propriedade Valor Name Imagem Left 60 Top 20 Height 165 Width 160 Picture C:\Arquivos de programas\Arquivos comuns\Borland Shared \Images\Splash\16 color \Athena.BMP Código Fonte Associado: procedure TForm1.HorizontalChange(Sender: TObject); begin imagem.Left := Horizontal.Position; end; procedure TForm1.VerticalChange(Sender: TObject); begin imagem.Top := Vertical.Position; end; Curso de Programação em Delphi – Componentes Básicos do Delphi Professor Evandro César Freiberger Página 27 Exemplo - ProgressBar, Animate e Timer Manipulação das propriedade e eventos básicos dos componentes ProgressBar, Animate e Timer. Para implementar o programa siga os seguintes passos: • Crie um novo projeto ( File New Application). • Selecione o formulário e configure a propriedade Name para Form_Principal e Caption para “Exercício - ProgressBar,Animate e Timer”. • Insira dois componentes BitBtn e configure conforme figura acima. • Insira um componente ProgressBar (win32) e configure suas propriedades: Propriedade Valor Max 20 Min 0 Step 1 • Insira um componente Animate (Win32) e configure suas propriedades: Propriedade Valor CommonAVI aviCopyFiles • Insira um componente Animate (Win32) e configure suas propriedades: Propriedade Valor CommonAVI aviEmptyRecycle Curso de Programação em Delphi – Componentes Básicos do Delphi Professor Evandro César Freiberger Página 28 • Insira um componente Timer e configure suas propriedades: Propriedade Valor Interval 300 Código Fonte Associado: procedure TForm_Principal.Timer1Timer(Sender: TObject); begin progressbar1.Position := progressbar1.Position + 1; if progressbar1.Position = progressbar1.max then progressbar1.Position := 0; end; procedure TForm_Principal.BotaoInicioClick(Sender: TObject); begin timer1.Enabled := true; animate1.active := true; animate2.active := true; end; procedure TForm_Principal.BotaoFimClick(Sender: TObject); begin timer1.Enabled := false; animate1.active := false; animate2.active := false; end; Curso de Programação em Delphi – Componentes Básicos do Delphi Professor Evandro César Freiberger Página 29 Exercícios Complementares Exercício01 - Botões Definição de Objetos • Crie uma nova aplicação (File New Application). • Mude a propriedade Name do formulário para Form_Botoes • Configure a propriedade Caption para ‘Botões’ • Salvar a Unit como Unit_Botoes e projeto com Projeto_Botoes • Insira seis componentes do tipo Button com as seguintes características: Name Caption Botao1 &1: Desabilita Botao4 Botao2 &2: Copia Fonte p/ Botao1 Botao3 &3: Aumenta Botao6 Botao4 &4: Restaura Fonte do Botao1 Botao5 &5: Oculta o Botao2 Botao6 &6: Reduz o Tamanho • Configure a propriedade fonte do Botao2 em Arial, tamanho 10 e em negrito Código Fonte Associado procedure TFormBotoes.Botao2Click(Sender: TObject); begin Botao1.Font := Botao2.Font; Botao2.Enabled := False; end; Curso de Programação em Delphi – Componentes Básicos do Delphi Professor Evandro César Freiberger Página 30 procedure TFormBotoes.Botao4Click(Sender: TObject); begin Botao1.ParentFont := True; Botao2.Enabled := True; end; procedure TFormBotoes.Botao3Click(Sender: TObject); begin Botao6.Height := Botao6.Height + 3; Botao6.Width := Botao6.Width + 3; end; procedure TFormBotoes.Botao1Click(Sender: TObject); begin if not Botao4.Enabled then begin Botao4.Enabled := True; Botao1.Caption := '&1: Desabilita Botao4'; end else begin Botao4.Enabled := False; Botao1.Caption := '&1: Habilita Botao4'; end; end; procedure TFormBotoes.Botao5Click(Sender: TObject); begin Botao2.Visible := not Botao2.Visible; if Botao2.Visible then Botao5.Caption := '&5: Oculta Botao2' else Botao5.Caption := '&5: Exibe Botao2'; end; procedure TFormBotoes.Botao6Click(Sender: TObject); begin Botao6.Height := Botao6.Height - 3; Botao6.Width := Botao6.Width - 3; end; Curso de Programação em Delphi – Componentes Básicos do Delphi Professor Evandro César Freiberger Página 31 Exercício02 - Escolha de Fontes e Estilo Definição dos Objetos • Crie uma nova aplicação, mude o título do formulário para Escolha de Fonte e Estilo e configure a propriedade name para Form_Escolha. • Salve a Unit com o nome de Unit_Escolha e o projeto como Projeto_Escolha. • Cole dois componentes GroupBox no formulário e configure a propriedade Caption para Estilos e Fontes respectivamente. • No interior do GroupBox Estilos cole três componentes CheckBox com as seguintes características: Name Caption Fonte.Style CheckNegrito Negrito fsBold CheckItálico Itálico fsItalic CheckSublinado Sublinhado fsUnderline No interior do GroupBox Fontes cole três componentes RadioButton com as seguintes características: Name Caption Fonte.Name Checked RadioTimes Times New Roman Times New Roman True RadioArial Arial Arial False RadioCourier Courier Courier New False Cole um componente Memo abaixo dos GroupBox e mude seu nome para Texto. Na propriedade Lines clique no botão de reticências e digite o texto conforme figura acima. Configure sua propriedade Font para Times New Roman (normal), tamanho 12. Curso de Programação em Delphi – Componentes Básicos do Delphi Professor Evandro César Freiberger Página 32 Código Fonte Associado procedure TForm_Escolha.CheckNegritoClick(Sender: TObject); begin if CheckNegrito.Checked then Texto.Font.Style := Texto.Font.Style + [fsBold] else Texto.Font.Style := Texto.Font.Style - [fsBold]; end; procedure TForm_Escolha.CheckItalicoClick(Sender: TObject); begin if CheckItalico.Checked then Texto.Font.Style := Texto.Font.Style + [fsItalic] else Texto.Font.Style := Texto.Font.Style - [fsItalic]; end; procedure TForm_Escolha.CheckSublinhadoClick(Sender: TObject); begin if CheckSublinhado.Checked then Texto.Font.Style := Texto.Font.Style + [fsUnderline] else Texto.Font.Style := Texto.Font.Style - [fsUnderline]; end; procedure TForm_Escolha.RadioTimesClick(Sender: TObject); begin Texto.Font.Name := 'Times New Roman'; end; procedure TForm_Escolha.RadioArialClick(Sender: TObject); begin Texto.Font.Name := 'Arial'; end; procedure TForm_Escolha.RadioCourierClick(Sender: TObject); begin Texto.Font.Name := 'Courier'; end; end. Curso de Programação em Delphi – Componentes Básicos do Delphi Professor Evandro César Freiberger Página 33 Exercício03 - Muda Cor e Alinhamento Definição dos Objetos • Crie uma nova aplicação, mude o título do formulário para Muda a cor e alinhamento e configure a propriedade name para FormCorAlinhamento. • Salve a Unit com o nome de Unit_CorAlinhamento e o projeto como Projeto_CorAlinhamento. • Insira um componente Label no formulário e configure as propriedades abaixo com os respectivos valores: Propriedade Conteúdo Caption Pressione os botões abaixo para mudar a cor do texto, o fundo deste Label ou o seu alinhamento Alignment taCenter AutoSize False Color clYellow Font Name - Arial Size - 30 color - clNavy - Azul Marinho WordWrap True Name Texto Curso de Programação em Delphi – Componentes Básicos do Delphi Professor Evandro César Freiberger Página 34 Insira cinco componentes Button com as seguintes características: Name Caption BotaoCorFonte Cor de F&onte BotaoCorFundo Cor de F&undo BotaoEsquerda &Esquerda BotaoCentro &Centro BotaoDireita &Direita Insira um componente ColorDialog (guia Dialog) e configure sua propriedade Name para EscolheCor. Código Fonte Associado procedure TFormCorAlinhamento.BotaoCorFonteClick(Sender: TObject); begin EscolheCor.Color := Texto.Font.Color;EscolheCor.Execute; Texto.Font.Color := EscolheCor.Color; end; procedure TFormCorAlinhamento.BotaoCorFundoClick(Sender: TObject); begin EscolheCor.Color := Texto.Color; EscolheCor.Execute; Texto.Color := EscolheCor.Color; end; procedure TFormCorAlinhamento.BotaoEsquerdaClick(Sender: TObject); begin Texto.Alignment := taLeftJustify; end; procedure TFormCorAlinhamento.BotaoCentroClick(Sender: TObject); begin Texto.Alignment := taCenter; end; procedure TFormCorAlinhamento.BotaoDireitaClick(Sender: TObject); begin Texto.Alignment := taRightJustify; end; Curso de Programação em Delphi – Componentes Básicos do Delphi Professor Evandro César Freiberger Página 35 Exercício04 – Eventos associados ao arrasto do mouse Definição de Objetos • Crie uma nova aplicação, mude o título do formulário para Arrastar e Soltar e configure a propriedade name para FormArrastarSoltar • Salve a Unit com o nome de Unit_ArrastarSoltar e o projeto como Projeto_Arrasto. • Insira quatro componente Label no formulário e configure as propriedades abaixo com os respectivos valores: Name Caption Color LabelVermelho Vermelho clRed LabelAzul Azul clBlue LabelVerde Verde clGreen LabelAmarelo Amarelo clYellow Font.Size = 12 Font.Style = fsBold Autosize = False Alignment = taCenter DragMode = dmAutomatic • Insira mais um componente Label e configure-o Propriedade Conteúdo Name LabelCores Caption Arraste as cores aqui para mudar a cor de Fundo Alignment taCenter AutoSize False Color clWhite Font Name - Arial Size - 24 color - clBlack WordWrap True Curso de Programação em Delphi – Componentes Básicos do Delphi Professor Evandro César Freiberger Página 36 Procedimentos Associados procedure TFormArrasto.LabelCoresDragDrop(Sender, Source: TObject; X, Y: Integer); begin LabelCores.Color := (Source as TLabel).Color; end; procedure TFormArrasto.LabelCoresDragOver (Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); begin Accept := Source is TLabel; end;
Compartilhar