<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>TechTips &#187; Sem Categoria</title>
	<atom:link href="http://www.techtips.com.br/category/semcategoria/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.techtips.com.br</link>
	<description>Dicas de Tecnologia</description>
	<lastBuildDate>Wed, 24 Jun 2009 19:06:32 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Delphi 2009 Dispon&#237;vel para Download</title>
		<link>http://www.techtips.com.br/semcategoria/delphi-2009-disponivel-para-download/</link>
		<comments>http://www.techtips.com.br/semcategoria/delphi-2009-disponivel-para-download/#comments</comments>
		<pubDate>Wed, 10 Sep 2008 01:11:41 +0000</pubDate>
		<dc:creator>Leonel Togniolli</dc:creator>
				<category><![CDATA[Sem Categoria]]></category>

		<guid isPermaLink="false">http://www.techtips.com.br/semcategoria/delphi-2009-disponivel-para-download/</guid>
		<description><![CDATA[A versão trial do Delphi 2009 já está disponível para download. Não deixe de experimentar a nova versão. &#169; TechTips]]></description>
			<content:encoded><![CDATA[<p>A versão trial do Delphi 2009 já está disponível para <a href="http://cc.codegear.com/free/delphi">download</a>. Não deixe de experimentar a nova versão.</p>
<p><center>&copy; <a href="http://www.techtips.com.br">TechTips</a></center></p>]]></content:encoded>
			<wfw:commentRss>http://www.techtips.com.br/semcategoria/delphi-2009-disponivel-para-download/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Usando Frames com eventos din&#226;micos 02/N</title>
		<link>http://www.techtips.com.br/semcategoria/usando-frames-com-eventos-dinmicos-02n/</link>
		<comments>http://www.techtips.com.br/semcategoria/usando-frames-com-eventos-dinmicos-02n/#comments</comments>
		<pubDate>Sun, 04 Mar 2007 23:07:16 +0000</pubDate>
		<dc:creator>leosimas</dc:creator>
				<category><![CDATA[Sem Categoria]]></category>

		<guid isPermaLink="false">http://www.techtips.com.br/semcategoria/usando-frames-com-eventos-dinmicos-02n/</guid>
		<description><![CDATA[Olá Pessoal, estou aqui para falar sobre frames novamente.Para relembrar, Frame é como se fosse uma form instanciada como um componente panel.O Help do delphi o chama de container, mas ele não é um mero container, se aplicado de forma corretamente. Situação:Imagine que você tenha um texto informado pelo usuário em um edit, e que [...]]]></description>
			<content:encoded><![CDATA[</p>
<p>Olá Pessoal, estou aqui para falar sobre frames novamente.<br />Para relembrar, Frame é como se fosse uma form instanciada como um componente panel.<br />O Help do delphi o chama de container, mas ele não é um mero container, se aplicado de forma corretamente.</p>
<p><strong>Situação:</strong><br />Imagine que você tenha um texto informado pelo usuário em um edit, e que no evento onkeypress você tenha que filtrar somente as consoantes, somente as vogais ou não filtrar.</p>
<p><strong>Solução:</strong><br />Ouvi alguém dizer Frames? Isso mesmo! Mas nesse caso, vale a pena criar toda uma hierarquia de frames para algo tão específico? Não! Então o que eu devo fazer Léo Simas? Usar frames com eventos carregados em runtime, eu respondo!<br />Ok Léo Simas! O nome é bonito, mas como fazer isso?<br />Para solucionarmos esse problema, nada melhor que um exemplo prático!<br />Mãos à obra!<br />*Crie uma nova aplicação.<br />*Com a Form vazia mesmo, vá em File-&gt;New-&gt;Frame.<br />Vai aparecer algo meio estranho. Parece um painel, mas tem botões de form.<br />Isso é o nosso frame.<br />*Chame-o de FrAdicionaLetra.<br />*Deixe o Frame com width como 327 e Height como 153.<br />*Abaixo do type vamos declarar um método de um objeto assim:</p>
<pre>type
 TDigita = procedure (Sender: TObject; var Key: Char) of object;
 TFrAdicionaLetra = class(TFrame)
</pre>
<p>*Crie um TEdit e um TMemo.<br />A tela vai ficar assim:<br /><a href="http://delphi.wikispaces.com/space/showimage/frame02a.jpg"><img height="128" alt="frame02a.jpg" src="http://www.techtips.com.br/wp-content/uploads/2007/03/WindowsLiveWriter/UsandoFramescomeventosdinmicos02N_8FB9/image001%5B3%5D1.jpg" width="240" border="0"></a><br />*Crie uma propriedade chamada Digitar do tipo TDigita com write como SetDigitar assim:
<pre>  private    { Private declarations }
    procedure SetDigitar(const Value: TDigita);
  public
    procedure Adicionarletra(Key : Char);
    property Digitar: TDigita write SetDigitar;
  end;
</pre>
<p>*No setdigitar, vamos atribuir ao onkeypress do edit o parâmetro passado:
<pre>  procedure TFrAdicionaLetra.SetDigitar(const Value: TDigita);
  begin
    Edit1.OnKeyPress := Value;
  end;</pre>
<p>*No AdicionarLetra basta fazer o seguinte:
<pre>  procedure TFrAdicionaLetra.Adicionarletra(Key : Char);
  begin
    Memo1.Text := Memo1.Text + Key;
  end;
</pre>
<p>*Agora colocamos 3 TFrAdicionaLetra na tela principal chamando-os de:
<pre>&nbsp; FrAdicionaLetraVogal: TFrAdicionaLetra;</pre>
<pre>&nbsp; FrAdicionaLetraConsoante: TFrAdicionaLetra;</pre>
<pre>&nbsp; FrAdicionaLetraTodas: TFrAdicionaLetra;</pre>
<p>*Agora o pulo do gato! Na tela principal crie 3 métodos assim:
<pre>  procedure TForm1.CapturarVogais(Sender: TObject; var Key: Char);
  begin
    If Key in ['a','e','i','o','u'] then
      TFrAdicionaLetra(Twincontrol(Sender).parent).Adicionarletra(key);
  end;
  procedure TForm1.CapturarConsoantes(Sender: TObject; var Key: Char);
  begin
    If not (key in ['a','e','i','o','u']) then
      TFrAdicionaLetra(Twincontrol(Sender).parent).Adicionarletra(key);
  end;
  procedure TForm1.CapturarTodas(Sender: TObject; var Key: Char);
  begin
    TFrAdicionaLetra(Twincontrol(Sender).parent).Adicionarletra(key);
  end;
</pre>
<p>Esses métodos serão passados para cada um dos 3 frames, tendo assim 3 frames iguais com eventos diferentes.<br />*No oncreate da form principal basta fazer:
<pre>&nbsp; FrAdicionaLetraVogal.Digitar := CapturarVogais;</pre>
<pre>&nbsp; FrAdicionaLetraConsoante.Digitar := CapturarConsoantes;</pre>
<pre>&nbsp; FrAdicionaLetraTodas.Digitar := CapturarTodas;</pre>
<p>Agora o primeiro frame apenas filtra as vogais, o segundo frame apenas filtra as consoantes e o terceiro não possui filtro algum.<br />E teremos algo assim:<br /><a href="http://delphi.wikispaces.com/space/showimage/frame02b.jpg"><img height="128" alt="frame02b.jpg" src="http://www.techtips.com.br/wp-content/uploads/2007/03/WindowsLiveWriter/UsandoFramescomeventosdinmicos02N_8FB9/image002%5B3%5D1.jpg" width="240" border="0"></a><br />Dessa forma, permanece o padrão do nosso Frame permitindo a ele ter particularidades, sem a necessidade de uma hierarquia extensa.<br />E a maior facilidade está na manutenção já que podemos modificar o TFrAdicionaLetra como quisermos, sem interferir nos frames colocados nas forms.<br />Lembrando que é importante sempre manter o bom senso. Pois se dois ou mais frames precisam do mesmo evento, é melhor criar uma hierarquia invez de ir pro Ctrl+C e Ctrl+V.<br />Agora é por sua imaginação&#8230; <img src='http://www.techtips.com.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> <br />Cadastros com beforepost diferentes, relatórios que precisam de tratamento para alguns campos, consultas com statusbar tendo dados diferentes.<br />Não há limites.<br />Espero que tenham gostado.<br />Até a próxima!<br />Falowzzzzzzzzzzzzz</p>
<p><center>&copy; <a href="http://">TechTips</a></center></p>]]></content:encoded>
			<wfw:commentRss>http://www.techtips.com.br/semcategoria/usando-frames-com-eventos-dinmicos-02n/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.437 seconds -->
