Modificando TDBEdit para Edit - Delphi

Veja neste artigo como podemos modificar os tipos de componente de um formulário sem a necessidade de apagar e incluir novamente outros componentes.

Olá pessoal, hoje queria partilhar com os amantes do Delphi um artigo que é bastante simples, porém ele auxilia muito em migrações de componentes.

Como assim?

Supondo que há 3 anos você fez um projeto em Delphi com DBEdit, DBCombobox, e outros DB's, ou seja, os conhecidos DBWare. Hoje você já consegue trabalhar Orientado a Objetos e decide migrar o sistema mas não gostaria de confeccionar o Layout do Sistema novamente, e queria modificar todos os DBEdits, DBCombobox e os outros DB's para Edits, Combobox, etc.

É uma tarefa extremamente simples de se fazer, mas requer muita atenção. Vamos ao exemplo de como fazer isso.

Criando um Formulário com 3 Componentes DBEdits e 1 DBCombobox, veja o layout :

Figura 1. Layout do Exemplo.

Note que não fiz ligação de DataSource e outros componentes, pois isso não é necessário.

Agora e a mágica?

Vocês poderiam falar, poxa é só apagar e colocar os Edits. Mas e ae? TabOrder, tamanho e posição? Fazer tudo novamente?

Vem a dica agora. Clique com o botão direito do mouse sobre qualquer área varia do formulário, e localiza a opção View as Text.

Figura 2. View as Text.

O que é isso?

O layout do nosso formulário fica armazenado nos arquivos de extensão .DFM. Experimente abrir este arquivo no "BLOCO DE NOTAS", você irá ver exatamente a mesma coisa que o View as Text.

object Form1: TForm1 Left = 0 Top = 0 Caption = 'Cadastro de Cliente' ClientHeight = 225 ClientWidth = 518 Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -20 Font.Name = 'Tahoma' Font.Style = [] OldCreateOrder = False PixelsPerInch = 120 TextHeight = 24 object Label1: TLabel Left = 129 Top = 131 Width = 33 Height = 24 Caption = 'CPF' end object Label2: TLabel Left = 101 Top = 43 Width = 61 Height = 24 Caption = 'C'#243'digo' end object Label3: TLabel Left = 110 Top = 91 Width = 52 Height = 24 Caption = 'Nome' end object Label4: TLabel Left = 27 Top = 171 Width = 135 Height = 24 Caption = 'Tipo de Cliente' end object DBEdtCodigo: TDBEdit Left = 184 Top = 40 Width = 177 Height = 32 TabOrder = 0 end object DBEdtNome: TDBEdit Left = 184 Top = 88 Width = 305 Height = 32 TabOrder = 1 end object DBEdtCPF: TDBEdit Left = 184 Top = 128 Width = 121 Height = 32 TabOrder = 2 end object DBCmbTipoCliente: TDBComboBox Left = 184 Top = 168 Width = 305 Height = 32 TabOrder = 3 end end
Listagem 1. Texto completo do arquivo .DFM

Bom agora que saber como localizar o layout do nosso formulário, vamos fazer a modificação dos componentes DBEdits e DBCombobox para Edits e Combobox.

Primeiramente vamos simplesmente dar um Replace na Palavra TDBEdit para TEdit, e clicamos no "Replace All"

Figura 3. Replace de TDBEdit para TEdit.

Fazemos a mesma coisa para o TDBCombobox e TCombobox, e clicamos no "Replace All"

Figura 4. Replace de TDBCombobox para TCombobox.

Ao finalizar os Replaces, devemos agora voltar o modo Designer, clicando com o Botão direito sobre qualquer parte do Editor e indo na opção "View as Form", ou então ALT+F12.

Figura 5. View as Form.

Para finalizar precisamos fazer a mesma coisa na nossa Unit, ou seja, dar o Replace em TDBEdit e TDBCombobox

unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, DBCtrls, Mask; type TForm1 = class(TForm) DBEdtCodigo: TDBEdit; DBEdtNome: TDBEdit; DBEdtCPF: TDBEdit; DBCmbTipoCliente: TDBComboBox; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} end.
Listagem 2. Layout Atual com o TDBEdits e TDBCombobox

Agora usando o Replace, ou neste caso o Refacoty para modificar os textos iguais, CTRL + SHIF + J, não vou entrar neste mérito sobre Refactory, teremos o seguinte código :

unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, DBCtrls, Mask; type TForm1 = class(TForm) DBEdtCodigo: TEdit; DBEdtNome: TEdit; DBEdtCPF: TEdit; DBCmbTipoCliente: TComboBox; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} end.
Listagem 3. Layout novo com os TEdits e o TCombobox

Conclusão

Desta forma conseguimos ter em nosso projeto um reaproveitamento dos formulários sem ter "muito trabalho". É uma solução rápida.

Fico por aqui, um abraço e até a próxima.

Artigos relacionados