Arquivo da categoria: delphi

quando o 3G não carrega nem desconecta, parte II

alterei algumas coisas no conectar3g. ai estao os fontes e o executavel:

programinha (em Delphi) que fica dando pings a cada x segundos e reconectando caso o ping não retorne.

no bandongo

no rapidshare

instalando o quickreport no delphi 7

o quickreport está na pasta do delphi7, mas não está instalado.

  1. vá à opção do menu component > install packages
  2. clique no botão add
  3. selecione o arquivo “dclqrt70.bpl”, elé estará na pasta bin do delphi (por padrão, c:\arquivos de programas\borland\delphi7\bin)

instalando os componentes zeos no delphi 2007

O ZeosLib é um conjunto de componentes para bano de dados MySQL, PostgreSQL, Interbase, Firebird, MS SQL, Sybase, Oracle e SQLite para Delphi, FreePascal/Lazarus, Kylix e C Builder.

Detalhes do projeto:

  • Administradores do projeto: frank_linde, markdaems, miseeger
  • Desenvolvedores: 16
  • Licença: GNU General Public License (GPL), GNU Library ou Licença Pública Menos Geral (LGPL )
  • Sistema Operacional: Todos os 32-bit MS Windows (95/98/NT/2000/XP), Todos os POSIX (Linux/BSD/UNIX-like SO), Linux
  • Linguagem de Programação: C, Delphi/Kylix

Instalando o Zeos:

  1. Descompacte o arquivo e abra o grupo de projetos ZeosDbo.groupproj na pasta .\packages\delphi11;
  2. Vá no menu Project > Compile All Projects;
  3. No Project Manager, abra o menu suspenso de ZComponentDesign110.bpl e selecione Install
  4. Componentes instalados, agora falta incluir o diretório dos arquivos compilados (.dcu) no Library path (menu Tools > Options > Environment Options > Delphi Options > Library – Win32)

Gostei bastante dos componentes, pelo pouco que testei. Farei uns testes comparando sua velocidade e praticidade em relação a outros componentes, e postarei os resultados

DateTimePicker.Checked não está funcionando no windows vista

Notei estranho o comportamento estranho desse componente num pc novo, eu desmarcava o check e a consulta continuava filtrando por data, ai coloquei uma data bem antiga e todos os registros apareceram. Pensei: — Como assim?! eu tinha testado isso..

Abri um novo projeto, inseri o DateTimePicker (propriedade ShowCheckBox = true) e um botão onde coloquei:

ShowMessage(BoolToStr(DateTimePicker1.Checked))

Executei:

  • Estava desmarcado, cliquei no botão, 0 (certo)
  • Marquei, botão, -1 (certo)
  • Desmarquei, botão, -1 (opa! ta errado)

Depois de ler, o que fiz:

Abri a unit ComCtrls (onde esta o componente). Para abri-la basta clicar com o direito em TDateTimePicker e selecionar a primeira opção do menu suspenso (Find declaration).

Procurei a procedure “TDateTimePicker.CNNotify”:

procedure TDateTimePicker.CNNotify(var Message: TWMNotify);
var
DT: TDateTime;
AllowChange: Boolean;
begin

DTN_DATETIMECHANGE:

{if FShowCheckbox and IsBlankSysTime(st) then * linha original}

if FShowCheckbox and (dwFlags = GDT_NONE) then {linha atualizada}

FChecked := False

Fiz uma pesquisa na pasta do Delphi pelo arquivo ComCtrls.dcu porque é ele que será usado quando você compilar o projeto. resultado nestas pastas:

  • C:\Program Files\CodeGear\RAD Studio\5.0\lib
  • C:\Program Files\CodeGear\RAD Studio\5.0\lib\debug

Fui no menu “Tools>Options>Enviroment Options>Delphi Options>Library – Win32” e coloquei o diretório do arquivo .pas (C:\Program Files\CodeGear\RAD Studio\5.0\source\Win32\vcl) no início da lista do “Library path”.

Compilei o projeto, para gerar o arquivo .dcu no diretório do arquivo .pas. Peguei esse .dcu e coloquei nos dois diretórios que falei aqui em cima (o da pesquisa).

Voltei lá no Library path e tirei o diretório recém colocado.

Pronto! Tudo certinho!

fontes:

newsgroups.cryer.info

msdn (microsoft developer network)

Output Directory ignorado pelo Delphi 2007 no Vista

Comecei a usar o Deplhi 2007 no Windows Vista, só que quando compilava, a dll (ou executáveis) ficava no diretório dos fontes. Dei uma pesquisada até achar a página da CodeGear (opa, agora é da Embarcadero).

O caso é que o caminho de saída dos arquivos que está no arquivo seu_projeto.dproj fica condicionado à plataforma usada:

<Platform Condition=” ‘$(Platform)’ == ” “>AnyCPU</Platform>

<DCC_DCCCompiler>DCC32</DCC_DCCCompiler>

<DCC_DependencyCheckOutputName>C:\diretorio_de_saida\aplicativo.exe</DCC_DependencyCheckOutputName>

Para resolver:

  1. Menu Tools -> Options
  2. Vá em Environment Options -> Environment Variables
  3. Selecione o item PLATFORM
  4. Clique em Add Override…
  5. Em Variable value digite AnyCPU
  6. Reinicie o Delphi antes de compilar

Quando o 3G não carrega nem desconecta

Se você está conectado por 3G (o meu é da Claro) sabe do que estou falando, o modem simplismente interrompe o fluxo de dados mas a conexão continua ativa, como se nada tivesse ocorrido. Assim a opção “reconectar automaticamente” fica de graça. Quando as paginas começavam a não carregar, e o pidgin a retornar minhas mensagens, eu executava o command (cmd) e usava o comando “ping http://www.google.com -n 1” (isso dá um ping no site do google) para saber se estava conectado mesmo, se precisava reconectar..

Mas resolvi tornar isso mais mecânico, aí fiz um programinha (em Delphi) que fica dando pings a cada x segundos e reconectando caso o ping não retorne.

Para fazer isso, peguei um programinha com fontes (não sei onde) que fazia quase tudo pra mim hehehe. Copiei umas rotinas e coloquei o ping num Timer.

programa que usei (com fontes), [no rapidshare] | [no badongo]

o que fiz (Conectar3G, com fontes), [no rapidshare] | [no badongo]

udf’s do firebird pelo delphi

Estava eu precisando criar uma função no firebird que me retornasse uma data, e isso deu trabalho.. pesquisei várias vezes, mas pouco encontrei. bem, até encontrei algumas páginas, mas essas eram muitas vezes traduções de umas páginas da codegear (essa ou essa), e que não estavam me esclarecendo muito não.. nesses exemplos é explicada a criação de quatro funções, módulo (retorna o resto de uma divisão), left (pegar os primeiros n caracteres de uma string), year e hour (retornar o ano e a hora de uma variável date e time respectivamente).

Até a função do módulo tudo funcionou corretamente, mas já a partir da função left a coisa começou a desandar. chega uma parte em que são declaradas variáveis do tipo ulong e o autor não menciona de onde isso vem, ou eu não vi mesmo relendo vários vezes. o maior problemas mesmo é com variáveis date.

Consegui fazer o que queria depois de baixar umas udf’s e fuçar os seus fontes. basicamente usei apenas a “freeudf otimizada por paulo henrique albanez” (linque original) que baixei na comunidade-firebird.org.

Nesse arquivo zipado existem os arquivos ib_externals.pas e ibase.pas. neles estão as declarações e transformações necessárias para que você crie uma udf com certa facilidade, basta coloca-los na seção uses da sua unit.

As variáveis contendo texto deverão ser tratadas com pchar, as datas como pisc_quad, as inteiras como integer mesmo, mas deverão ser declaradas com var.

Na unit da dll, no delphi:

uses
SysUtils, Classes,
ib_externals, ibase, { deve estar no search path ou no diretório, do projeto (dll)}
{$IFDEF WIN32}
Windows;
{$ELSE}
Types;
{$ENDIF}

//*** variáveis contendo datas ***
function fUltDia(ib_date: PISC_QUAD) :PISC_QUAD; cdecl; export;

//*** variáveis contendo textos e valores inteiros ***
function fLength(sz: PChar): Integer; cdecl; export;

implementation

Declaração da udf no banco de dados:

declare external function udf_ultdia
Date
returns Date
entry_point ‘fUltDia’ module_name ‘gsibfuncoes’;

declare external function udf_Length
cstring(32767)
returns integer by value
entry_point ‘fLength’ module_name ‘gsibfuncoes’;

DLL que fiz
Outras UDF’s