
http://www.dicasdelphi.com.br/
Pagina com muitas dicas, Otima.
| fonte: http://www.devmedia.com.br/articles/viewcomp.asp?comp=7783 | |
| Ai galera uma funçãozinha formatada para vocês usarem em suas aplicações para consultar o CEP dos correios... Essa função retorna um TStrings onde cada linha contém uma informação do CEP como Rua, Bairro, UF, Endereço OBS: Acrescente no USES NMHTTP, NMURL. // criação da função function buscaCEP(lcCEP: string): TStringList; var loHTTP : TNMHTTP; loURL : TNMURL; lnCont : integer; begin try loHTTP := TNMHTTP.Create(Application); loURL := TNMURL.Create(Application); try loHTTP.Get('http://republicavirtual.com.br/web_cep.php?cep='+lcCEP+'&formato=query_string'); // retorna o conteudo da string e formata-o loURL.InputString := loHTTP.Body; // usa o separador de quebra de linha result := TStringList.Create; result.Text := UpperCase(StringReplace(loURL.Decode, '&', #13#10, [rfreplaceAll])); for lnCont := result.Count - 1 downto 0 do if trim(result[lnCont]) = '' then result.Delete(lncont); finally loHTTP.Free; loURL.Free; end; except result := nil; end; end; // exemplo var loCEP: TStringList; begin loCEP := Geral.buscaCEP(RetiraCharsAlfa(_edtCEP.Text)); if loCEP = nil then MensagemOK('CEP não localizado ou não há conexão com a Internet!!!') else if loCEP.Values['RESULTADO'] <> '1' then MensagemOK('CEP não localizado!!!') else begin _edtEndereco.Text := loCEP.Values['TIPO_LOGRADOURO'] + ' ' + loCEP.Values['LOGRADOURO']; _edtBairro .Text := loCEP.Values['BAIRRO']; _edtCidade .Text := loCEP.Values['CIDADE']; _edtEstado.ItemIndex := _edtEstado.Items.IndexOf(loCEP.Values['UF']); end; end; |
fonte http://microportal.vilabol.uol.com.br/dicasdelphi.htm#81
8 - ENTER em vez de TAB no formulário, no DBGrid e no StringGrid
{ Mude a propriedade "KeyPreview" do Form para true. }
{ No evento "OnKeyPress" do Form acrescente o código abaixo: }
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then begin
Key := #0;
Perform(WM_NEXTDLGCTL, 1, 0);
end;
end;
{ Em StringGrid, escreva o evento OnKeyPress como abaixo: }
procedure TForm1.StringGrid1KeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
StringGrid1.Perform(WM_KEYDOWN, VK_TAB, 0);
end;
{ Em DBGrid, escreva o evento OnKeyPress como abaixo: }
procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then
DBGrid1.Perform(WM_KEYDOWN, VK_TAB, 0);
end;
Observações
É bom lembrar que a tecla ENTER no Windows tem seu papel já bem definido quando se trata de caixa de diálogo: executar a ação padrão, normalmente o botão OK. Se não tomar cuidado poderá confundir o usuário, em vez de ajudá-lo.
fonte: http://microportal.vilabol.uol.com.br/dicasdelphi.htm#81
20 - Mostrar um Form de LogOn antes do Form principal
{
* Crie um novo Projeto. Este certamente terá o Form1.
* Adicione um novo Form (Form2).
* Coloque no Form2 dois botões TBitBtn.
* Mude a propriedade Kind do BitBtn1 para bkOK.
* Mude a propriedade Kind do BitBtn2 para bkCancel.
* Vá no menu "Project/Options" na aba "Forms" e passe o
Form2 de "Auto-create Forms" para "Available Forms".
* Abra o arquivo Project.dpr (menu Project/View Source).
* Altere o conteúdo deste arquivo conforme abaixo:
}
program Project1;
uses
Forms, Controls,
Unit1 in 'Unit1.pas' {Form1},
Unit2 in 'Unit2.pas' {Form2};
{$R *.RES}
var
F: TForm2;
begin
F := TForm2.Create(Application);
try
if F.ShowModal = mrOK then begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end;
finally
F.Free;
end;
end.
Observações
O Form2 do exemplo é o Form de LogOn. Este deverá ser preparado para que se possa escolher o usuário, digitar a senha, etc.