Arquivo

Arquivo do Autor

Firemonkey: substituição da tecla TAB por tecla ENTER.

Antes de tudo, gostaria de deixar claro que esta é uma dica básica; porém alguns encontram dificuldades nesse assunto, então estou aqui com o intuito de esclarecimento.
Ultimamente tenho visto algumas dicas na internet de substituição da tecla tab pela tecla enter, porém muitas dicas
não funcionam perfeitamente, pulando muitas vezes dos “tedit” para o próximo componente, mas ainda há a possibilidade de o caso ser um botão
e ter um comando no evento “onclick”, o comando no “onclick” não ser executado.
Pois bem, tenho uma dica aqui que vai funcionar perfeitamente, em ambos aspectos: tanto no salto nos controls, como
sem perder os eventos onclick dos botões.

No Evento OnKeyDown do Form digite os comandos abaixo:

if Key = vkReturn then
 begin
 Key := vkTab;
 KeyDown(Key, KeyChar, Shift);
 end;

Dica básica mas muito útil, espero que tenham gostado!

Anúncios
Categorias:FireMonkey Tags:, ,

Faça o download e upload de arquivos via FTP

Neste tutorial vou mostrar-lhe como rapidamente e facilmente fazer o download e upload de arquivos utilizando FTP para acessar um servidor remoto ou de hospedagem. Acesso FTP permite que você trabalhe com arquivos em um servidor remoto diretamente com os arquivos que são armazenados em seu computador, o que é bom.

Em seguida, apresento dois  procedimento:

Uses IdFTP

// Enviar um arquivo para o servidor usando o acesso FTP
procedure TForm2.ftpsend(host, username, password, filefrom, fileto: string;
 port: integer);
var
 ftp: TIdFTP;
 ms: TMemoryStream;
begin
 ftp := TIdFTP.Create(Application);
 ms := TMemoryStream.Create;
 try
 try
 ftp.host := host; // Endereço do servidor FTP
 ftp.port := port;
 ftp.username := username; // Parametro nome usuario servidor FTP
 ftp.password := password; // Parametro senha servidor FTP
 ftp.Connect();
 AssErt(ftp.Connected);
 ftp.ChangeDir('/'); // Definir a pasta no servidor
 ftp.Put(filefrom, fileto, false); // Transferir o arquivo para o servidor
 ShowMessage('Transferido');
 finally
 ms.Free;

ftp.Free;
 end;
 except
 ShowMessage('Uma tentativa de enviar um arquivo para o servidor falhou');
 end;
end;

// Obter um arquivo do servidor via FTP
procedure TForm2.ftpget(host, username, password, filefrom, fileto: string;
 port: integer);
var
 ftp: TIdFTP;
 ms: TMemoryStream;
begin
 ftp := TIdFTP.Create(Application);
 ms := TMemoryStream.Create;
 try
 try
 ftp.host := host; // Endereço do servidor FTP
 ftp.port := port;
 ftp.username := username;
 ftp.password := password;
 ftp.Connect();
 AssErt(ftp.Connected);
 ftp.ChangeDir('/'); // Definir a pasta no servidor
 ftp.Get(filefrom, fileto, true); // Receber o arquivo do servidor
 ShowMessage('Arquivo Recebido');
 finally
 ms.Free;

ftp.Free;
 end;
 except
 ShowMessage('Uma tentativa de receber um arquivo do servidor com falha');
 end;
end;
Categorias:Artigos, Delphi Tags:, , ,

Verifique se o serviço FireBird está sendo executado

Função verificando se o serviço do banco de dados Firebird esta em execução


uses Tlhelp32

function IsFireBirdRunning: boolean;
const
PROCESS_TERMINATE = $0001;
var
Co: BOOL;
FS: THandle;
FP: TProcessEntry32;
s:  string;
begin
FS := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
FP.dwSize := Sizeof(FP);
Co := Process32First(FS, FP);
while integer(Co) <> 0 do
begin
s := s + FP.szExeFile + #13;
Co := Process32Next(FS, FP);
end;
CloseHandle(FS);
if pos('fbserver', s) > 0 then result := true
else result := false;
end;
Categorias:Artigos, Delphi Tags:,

Como controlar o tempo de inatividade do usuário

 

user_idle_time

 

Suponha que você precisa do aplicativo para bloquear automaticamente a entrada / edição de dados, a menos que o usuário tenha sido ativa por um longo tempo. Para fazer isso, é hora de aprender.

Usuários para rastrear tempo pode usar a API GetLastInputInfo .

GetLastInputInfo retorna o tempo (em milissegundos) do último evento (a partir do momento em que a atividade foi detectada através do teclado ou do mouse).

O seguinte é um exemplo simples de uso. Função SecondsIdle retorna o número de segundos, sem a atividade do usuário (função é chamada no evento OnTimer do componente TTimer ).

 

function SecondsIdle: DWord;
var
liInfo: TLastInputInfo;
begin
liInfo.cbSize := SizeOf(TLastInputInfo) ;
GetLastInputInfo(liInfo) ;
Result := (GetTickCount – liInfo.dwTime) DIV 1000;
end;

procedure TForm1.Timer1Timer(Sender: TObject) ;
begin
Caption := Format(‘tempo ocioso :  %d segundos’, [SecondsIdle]) ;
end;

 

Como um resultado do programa no cabeçalho do formulário para exibir o tempo de inatividade, em segundos.

Categorias:Artigos, Delphi Tags:, ,

código fonte NOTEPAD

notepad

 

Código Fonte  clique aqui

Categorias:Artigos, Delphi Tags:,

Dados no TTreeView com TDataSet

O processo de preenchimento de dados TTreeView componentes de TDataSet compatível com tipo do exemplo : idNode int, idParentNode int, cNodeName varchar

adicionar uses  Windows, SysUtils, DB, ComCtrls

{Nota: o nó raiz deve ser o primeiro registro da amostra.

USES : Windows, SysUtils, DB, ComCtrls
***************************************************** }

procedure FillTree(Tree: TTreeView; Query: TDataSet; idNode, idParent,
  cNodeName: string);
var
  i: integer;
begin
  // O nó raiz deve ser o primeiro de uma consulta de exemplo
  Query.First;
  Tree.Items.Clear;
  Tree.Items.AddObject(nil, Query.FieldByName(cNodeName).AsString,
    Pointer(Query.FieldByName(idNode).asInteger));
  Query.Next;
  while not Query.Eof do
  begin
    i := 0;
    while i < Tree.Items.Count do
      if Tree.Items.Item[i].Data = Pointer(Query.FieldByName(idParent).asInteger)
        then
      begin
        Tree.Items.AddChildObject(Tree.Items.Item[i],
          Query.FieldByName(cNodeName).AsString,
          Pointer(Query.FieldByName(idNode).asInteger));
        break;
      end
      else
        Inc(i);
    Query.Next;
  end;
end;

//Exemplo de uso

FillTree(TreeView1, ADOQuery1, 'idDoc', 'idParentDoc', 'cDocument');
Categorias:Artigos, Delphi Tags:, ,

Utilizando TImage3D e TText3D – FireMonkey

Neste artigo aprenderemos a usar os componentes “TImage3D” e “TText3D” do Firemonkey.

Hoje vamos realizar efeitos de animação com os componentes TImage3D e TText3D da biblioteca “FireMonkey”, onde viabiliza aos desenvolvedores a rápida construção de aplicações em HD e 3D, com desempenho nativo, animações, efeitos de imagem, conectividade à banco de dados de primeira linha. Hoje, os desenvolvedores FireMonkey podem desenvolver aplicações com facilidade, compilando-as de modo nativo nas plataformas Windows 32/64 e iOS, e num futuro breve, para Linux e Android, o FireMonkey está apenas a versão 1.0, com muitas correções e atualizações por vir. Vamos ao nosso projeto: crie uma aplicação FireMonkey 3D Application, e prossiga incluindo os seguintes componentes: um TImage3D, um TText3D, um TLayer3D dentro do Layer3D inclua dois TTrackBar e dois TLabel conforme imagem abaixo :

Figura 1. Layout do Projeto.

 Ainda precisamos adicionar componentes não visuais em nosso projeto, estes são componentes necessários para o desenvolvimento da animação,  dentro do componente Image3D1 inclua 2 TFloatAnimation, como resultado teremos duas animações na imagem, além destas inclua também mais um TFloatAnimation dentro do componente Text3D1 conforme a estrutura do projeto, observada na imagem abaixo:

Figura 2. Estrutura do Projeto.

Lembrando que em um aplicativo 3D, é impossível usar diretamente componentes como botões TLabel, TTrackBar, combobox, grid, etc… No entanto, há uma maneira muito simples para lidar com isso, o próprio FireMonkey nos fornece o componente “TLayer3D”.

Alterando propriedades dos componentes:

Propriedades Image3D1

  • Bitmap.edit = escolha uma imagem

Propriedades FloatAnimation1

  • Duration = 5
  • Enable = True
  • Interpolation = itLinear
  • Loop = True
  • PropertyName = RotationAngle.X
  • StartValue = 0
  • StopValue = 360

Propriedades FloatAnimation2

  • Duration = 5
  • Enable = True
  • Interpolation = itQuintic
  • Loop = True
  • PropertyName = Position.X
  • StartValue = 0
  • StopValue = 66

Propriedades Text3D1

  • Text = Firemonkey
  • Font.Size = 2
  • Material.Emissive = escolha uma cor
  • as dimensões de altura , largura e profundidade fica a sua escolha alterando no próprio componente

Propriedades TFloatAnimation3

  • Duration = 11
  • Enable = True
  • Interpolation = itLinear
  • Loop = True
  • PropertyName = RotationAngle.Y
  • StartValue = 0
  • StopValue = 360

Propriedades Layer3D1

  • Projection = pjScreen

Propriedades TrackBar1

  • Max = 10
  • Min = -10

Propriedades TrackBar2

  • Max = 22
  • Min = 1

Após realizadas as alterações, vamos aos códigos nos eventos OnChange, dos componentes Trackbar, para termos noção através de um exemplo de controle dos componentes durante as animações.

Listagem 1: Alterando o evento OnChange do componente TrackBar1

procedure TForm1.TrackBar1Change(Sender: TObject);
begin
Image3D1.Position.Z := 0 - TrackBar1.Value;  //altera o tamanho Image3D1
end;

Listagem 2: Alterando o evento OnChange do componente TrackBar2


procedure TForm1.TrackBar2Change(Sender: TObject);
begin
FloatAnimation3.Stop;
FloatAnimation3.Duration := 22 - TrackBar2.Value;  //alterando a velocidade Text3D1
FloatAnimation3.Start;
end;

Este exemplo poderia ser realizado em projeto FireMonkey HD, da mesma maneira apresentado, seria necessário apenas incluir o componente TViewPort3D no projeto HD. Altere as propriedades dos componentes TFloatAnimation aqui configurados para ver as reações diversas da animação, tendo assim maiores opções para estudos e resultados. Espero que tenham gostado, segue o códigos fonte para facilitar o trabalho e pesquisa de vocês.

Muito obrigado. Fico por aqui, e espero por vocês na próxima! Grande abraço.

Código Fonte

Categorias:FireMonkey Tags:, ,
%d blogueiros gostam disto: