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 :
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.
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
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"
Fazemos a mesma coisa para o TDBCombobox e TCombobox, e clicamos no "Replace All"
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.
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.
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.
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.