sexta-feira, 2 de abril de 2010

Dicas Delphi - Movendo o foco para o próximo Edit quando o tamanho máximo de caracteres foi alcançado

Salve, salve

A propriedade MaxLenght de um componente descendente de TCustomEdit (Edit, DBEdit, etc.) especifica o número máximo de caracteres que o usuário pode inserir no controle. Esta dica mostra como mover imediatamente para o próximo controle (seguindo a ordem do tab) quando o número máximo de caracteres for alcançado.

procedure TForm1.Edit1Change(Sender: TObject) ;
begin
if Sender is TEdit then
with Sender as TEdit do
if MaxLength = GetTextLen then
Self.SelectNext(TCustomEdit(Sender), True, True);
end;

O código anterior é do evento OnChange de um Edit chamado Edit1. A propriedade MaxLength é utilizada em aplicações que utilizam bancos de dados, onde o MaxLength de um DBEdit é o mesmo que a propriedade Size de um TField (para campos texto).


//Deixe seu comentário


Take care

Dicas Delphi - Código que exclui itens selecionados de um Listbox

Salve, salve

Adicione um ListBox no formulário, altere a propriedade MultiSelect para True. Adicione alguns itens na propriedade Items do componente. Implemente a procedure a seguir:

procedure DeletarVarios(var ListBox1: TListBox);
var
lista1, lista2: TStringList;
i: integer;
begin
for i := 0 to ListBox1.Items.Count-1 do
if ListBox1.Selected[i] then
begin
ListBox1.Items.Strings[i] := '';
ListBox1.Items.SaveToFile(extractfilepath(application.ExeName)+'items.txt');
end;
lista2 := TStringList.Create;
lista1 := TStringList.Create;
lista1.LoadFromFile(extractfilepath(application.ExeName)+'items.txt');
for i := 0 to lista1.Count-1 do
begin
if lista1.Strings[i] <> '' then
begin
lista2.Add(lista1.Strings[i]);
lista2.SaveToFile(extractfilepath(application.ExeName)+'items.txt');
end
else
lista2.SaveToFile(extractfilepath(application.ExeName)+'items.txt');
end;
ListBox1.Items.LoadFromFile(extractfilepath(application.ExeName)+'items.txt');
DeleteFile(extractfilepath(application.ExeName)+'items.txt');
end;

Coloque um botão no formulário e “chame” a procedure criada anteriormente.


// Deixe seu comentário

Take care

Dicas Delphi - Como mostrar o hint de um Button na StatusBar

Salve, salve amigos

// Criando a função para mostrar a hora
function mostrahora: string;
begin
mostrahora := timetostr(time);
end;

// Criando a função para mostrar a data

function mostradata: string;
var
dthoje: TDatetime;
diasemana: integer;
strdiasemana: string;
begin
dthoje := date;
diasemana := dayofweek(dthoje);
case diasemana of
1: strdiasemana := 'Domingo';
2: strdiasemana := 'Segunda-feira';
3: strdiasemana := 'Terça-feira';
4: strdiasemana := 'Quarta-feira';
5: strdiasemana := 'Quinta-feira';
6: strdiasemana := 'Sexta-feira';
7: strdiasemana := 'Sábado';
end;
mostradata := strdiasemana+' '+datetostr(dthoje);
end;

No formulário coloque: um Timer, um Application Events e uma StatusBar adicionando 3 Panels. Clique no Application Events, no evento OnHint digite o código abaixo:

procedure TFprincipal.ApplicationEvents1Hint(Sender: TObject);
begin
StatusBar1.Panels[2].Text := Application.Hint;
end;

Logo depois: Selecione no timer dê 2 cliques e digite o código abaixo:

procedure TFprincipal.Timer1Timer(Sender: TObject);
begin
StatusBar1.Panels[0].Text := mostrahora();
StatusBar1.Panels[1].Text := mostradata();
end;

Para testar coloque um botão e digite qualquer hint para ele, daí e só compilar e testar passando o mouse em cima do botão.


// Deixe seu comentátio

Take care

Dicas Delphi - Mudando a cor de fundo de linhas diferentes de texto em um Listbox

Salve, salve

Crie uma nova aplicação, insira um Listbox e altere a propriedade Style para lbOwnerDrawFixed, depois clique na propriedade Items (...) e digite alguns valores em linhas diferentes. Copie o código abaixo, no evento OnDrawItem do Listbox.

procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
var
myColor: TColor;
myBrush: TBrush;
begin
myBrush := TBrush.Create;
with (Control as TListBox).Canvas do
begin
if not Odd(Index) then
myColor := clSilver
else
myColor := clWhite;
myBrush.Style := bsSolid;
myBrush.Color := myColor;
Windows.FillRect(handle, Rect, myBrush.Handle);
Brush.Style := bsClear;
TextOut(Rect.Left, Rect.Top,(Control as TListBox).Items[Index]);
MyBrush.Free;
end;
end;

Não se esqueça de incluir valores no Listbox para que possa ser visto o efeito das cores. Execute a aplicação e veja a o funcionamento.

// Deixe seu comentátio ok.

Take care

Dicas Delphi - Utilize as teclas para mover entre os controles

Salve, salve amigos

As teclas UP e DOWN são virtualmente sem utilidade em controles Edit. Então porque não utilizá-las para navegar entre os campos? Se você alterar a propriedade KeyPreview de um formulário para True, pode usar o seguinte trecho de código no evento OnKeyDown do formulário para navegar entre os controles.

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift : TShiftState) ;
var
Direction : Integer;
begin
Direction := -1;
case Key of
VK_DOWN, VK_RETURN : Direction := 0; {Next}
VK_UP : Direction := 1; {Previous}
end;
if Direction <> -1 then
begin
Perform(WM_NEXTDLGCTL, Direction, 0) ;
Key := 0;
end;
end;

// Deixe seu comentário.


Take care

terça-feira, 30 de março de 2010

Disponibilizados os Videos Mix10

Salve, salve,

Segue abaixo, link com os vídeos disponibilizados do evento MIX10.

Clique aqui


Take care.

Construindo uma aplicação Windows Phone 7 Twitter utilizando Silverlight

Salve, salve amigos,

Veja no link abaixo, no blog de Scott Guthrie, um passo a passo de como criar uma aplicação Windows Phone 7 Twitter utilizando Silverlight.

Clique aqui

Take care