Arquivo

Posts Tagged ‘Delphi’

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;
Anúncios
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:, ,

Obtendo path e o nome do arquivo da área de transferência

Veja neste artigo como obter o path de arquivos que estão na área de transferência.

Certa vez em uma postagem, um colega perguntou-me como obter o path do arquivo que estava na área de transferência, respondi à ele que ao meu ver isto era impossível de se realizar, porém pesquisaria melhor sobre o assunto e lhe daria uma resposta mais exata. Mas depois de averiguar, vi que estava errado. Espero que esse artigo ajude esse colega, e vários outros que precisam do path do arquivo que esteja na área de transferência.

Este exemplo demonstra como extrair os nomes de arquivos “caminho completo” da área de transferência. Então vamos criar um novo projeto VCL e vamos inserir um componente TMemo ( Memo1 ) e um TButton ( Button1 ). Não se esqueça de declarar na seção Uses a classe “Clipboard” e “ShellAPI”. Veja a imagem de nosso projeto na figura abaixo:

Figura 1: Layout do projeto

Temos agora que codificar o OnClick do botão para quando clicarmos nele, seja fornecida a lista de arquivos que estão na área de transferência.

Listagem 1: No Evento OnClick do Button1 digite o seguinte código

procedure TForm1.Button1Click(Sender: TObject);
var
f: THandle;
buffer: Array [0 .. MAX_PATH] of Char;
i, numFiles: Integer;
begin
Clipboard.Open;
try
f := Clipboard.GetAsHandle(CF_HDROP);
If f <> 0 Then
begin
numFiles := DragQueryFile(f, $FFFFFFFF, nil, 0);
Memo1.Clear;
for i := 0 to numFiles - 1 do
begin
buffer[0] := #0;
DragQueryFile(f, i, buffer, sizeof(buffer));
Memo1.Lines.Add(buffer);
end;
end;
finally
Clipboard.Close;
end;
end;

Selecione os arquivos que desejas, copiar no Windows Explorer, Windows, e então pressione o botão “Button1” de sua aplicação. Uma lista de arquivos selecionados para copiar será exibido no componente “TMemo”.

Espero que tenham gostado, e que os códigos e dicas tenham facilitado o trabalho e estudo de vocês.

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

Código Fonte
Categorias:Artigos, Delphi Tags:, ,

Utilizando TLight – FireMonkey

Neste artigo aprenderemos a usar os componentes “TLight” e “TCube” do Firemonkey.

Hoje iremos realizar um efeito de iluminação com o componente TLight da biblioteca “FireMonkey”, que suporta a criação de aplicativos facilmente e intuitivamente como temos visto no Delphi por anos. O FMX também é ideal para rápido desenvolvimento de software, com elementos tridimensionais. Apenas inserindo um objeto geométrico “TCube”, alterando suas propriedades com o cursor do mouse, somos capazes de gerar bons efeitos facilmente.

Quando nos referimos a algum objeto em 3D, logo associamos a altura, largura e comprimento como parte do mesmo. O FMX possui dois tipos de projetos: o “FireMonkey 3D Application” e também o “FireMonkey HD Application”; os dois tipos de projetos dão-nos a possibilidade de trabalhar em 3D, sendo que os Forms do “FireMonkey 3D Application” já vem apto para cenas tridimensionais, e nos projetos “FireMonkey HD Application” é necessário adicionar um componente chamado “TViewport3D”. Vou mostrar a estrutura dos dois tipos de projetos 3D e HD mais vamos criar um novo HD e inclua os seguintes componentes um TViewport3D e dentro dele um TCube um TLight e um TFloatAnimation dentro do TCube conforme estrutura abaixo:

Figura 1. Estrutura dos projetos

Alterando propriedades dos componentes:

Propriedades Cube1

  • Material.Emissive = cor desejada
  • Material.Texture.Bitmap.edit = pode-se incluir uma imagem
  • As dimensões, rotação, angulo etc… pode-se fazer com mouse, clicando e movimentando os pinos azuis do componente.

Propriedades Light1

  • LightType = ItDirectional tem mais dois outros tipos ItSpot e ItPoint

Propriedades FloatAnimation1

  • Duration = 4
  • Enabled = True
  • Loop = True
  • PropertyName = RotationAngle.Y com varias outras opções vale a pena testar.
  • StarValue = 0
  • StopValue = 360

Depois de realizado o processo, teremos um resultado como este:

Figura 2. Posição dos Componentes

Agora, vamos fazer uma suposição, incluiremos um botão no Form e habilitaremos essa animação somente quando a opção for selecionada através do botão. Em um projeto HD você teria sucesso. Porém em um projeto 3D, não é possível a inclusão um botão diretamente no Form 3D. Segue detalhes na observação abaixo.

Observação Importante: em um aplicativo 3D é impossível usar diretamente componentes como botões, combobox, grid, etc… No entanto, há uma maneira muito simples para lidar com isso. Para isso teremos uma ligação entre as cenas 3D e 2D. O FireMonkey nos fornece o componente “TLayer3D”, que foi projetado apenas para isso.

Para não estender muito o artigo, segue no código fonte projeto HD e 3D, facilitando o entendimento de como usar o componente TLayer3D.

Espero que tenham gostado, e que os códigos e dicas tenham facilitado o trabalho e estudo de vocês.

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

CÓDIGO FONTE

%d blogueiros gostam disto: