[delphi-br] Off Topic Converter função de VB p/ Delphi

2009-05-18 Por tôpico fabio_giro
Alguém poderia me ajudar a converter esta função?

VB
Public Function binret(s1 As String, i1 As Integer) As Double
   Dim l1 As Double
   Dim i2 As Integer
   Dim i3 As Integer
   l1 = 0
   For i2 = 1 To i1
  i3 = Asc(Mid$(s1, i2, 1))
  l1 = l1 + (i3 * (256 ^ (i1 - i2)))
   Next
   binret = l1
End Function

Delphi
Function binret(s1 : string; i1 : Integer) : Double;
var
   l1 : Double;
   i2 : Integer;
   i3 : Integer;
begin
   l1 := 0;
   For i2 := 1 To i1 do
begin
  i3 := ord(copy(s1, i2, 1)[1]);
  l1 := l1 + (i3 * (?));
end;
   binret := l1;
End;

Agradeço antecipadamente.



[delphi-br] OFF TOPIC) Alguém da lista trabalha na Alterdata?

2009-03-09 Por tôpico fabio_giro
Responda em PVT.



[delphi-br] Assunto repetido?

2009-02-11 Por tôpico fabio_giro
Esta pergunta é para aqueles que assinam a revista a algum tempo. O 
assunto da revista nº 103 é o mesmo da revista nº 70? 



[delphi-br] Aprender IntraWeb

2008-10-07 Por tôpico fabio_giro
Alguém poderia me indicar om livro/apostila para desenvolvimento de 
sistemas IntraWeb em Delphi 7? Já baixei o exemplo do Bruno, mas quando 
vou abrí-lo dá erro. 
Obrigado.



[delphi-br] Software de backup Firebird grátis

2008-07-11 Por tôpico fabio_giro
Na lista Firebase foi postada a seguinte divulgação:

Olá a todos da lista!
Andei desaparecido por uns tempos, mas estou aqui novamente.
Estou disponibilizando gratuitamente para todo mundo, a já conhecida
de toda comunidade a ferramenta de agendamento de backup IBFireBackup
esta é a versão 2.7.5.42 [Beta 3] Apesar de ser uma versão beta é
uma versão bastante estável. É que os meus Milestones funcionam de uma
forma peculiar, a saber, é o seguinte:

Milestones de Projeto
Alpha 1- Descrição do software, Diagramas, Flowcharts, Especificações
do usuário levantamento de requisitos etc.
Alpha 2 – Design básico, Interfaces, Core units, units principais...
Alpha 3 – Interface gráfica do usuário.

Entre o Final de Alpha 1 e término de Alpha 3 há bastante codificação.
Depois vem a fase Beta que equivale ao seguinte:

Beta 1 - Testes pelo desenvolvedor (minha pessoa), correção de bugs...
Beta 2 – Testes exaustivos por quem desenvolve e/ou ajuda a manter o
produto, Testes com meus bancos de dados de teste e produção
inhouse, aqui em meu laboratório e em clientes meus que usam
InterBase ou Firebird em seus servidores...
Beta -3 Teste de campo por parte dos clientes, pessoas que licenciaram
o produto, debug intensivo etc.

Daí vem os Releases Candidates

RC 1- Correção de bugs reportados pelos usuários e Clientes (se 
houverem).
RC 2 - Adicionar melhorias relatadas ou funcionalidades exigidas pelos
usuários, debug intensivo novamente.
RC 3- Rechecagem de tudo que é reportado pelos usuários e procura por
regressões.

Pré Release - Aprovação pelo usuário. Após isso e finalmente o 
release oficial.

Por tanto, não devem se preocupar por ser uma versão dita como Beta,
pois está bastante estável esta versão.

Procuro usar os melhores paradigmas de engenharia de software neste
produto que tenho mantido já há alguns anos, uso Controle de Versão
JVCS e muitas ferramentas de debug para asseverar um produto de
qualidade.

Esta versão é INTEIRAMENTE GRATUITA! NÃO HÁ LIMITAÇÕES DE NENHUMA
ESPÉCIE, NEM TRAVAS NEM EXPIRA APÓS UM PRASO!

Pelo que eu saiba é a única ferramenta de backup que funciona
integralmente com InterBase de 4.x.x até a versão 2007 e  todas as
versões de Firebird de 1.0.x até 2.x.x e que ainda está sendo mantida
e desenvolvida continuamente.

Agradeço a todos os que licenciaram as versões pagas e não temam em
fazer um upgrade.

Problemas conhecidos que não são limitações intencionais e sim
problemas que eu estou procurando resolver.

- Esta versão NÃO suporta versões antigas do Windows tais como Win95,
Win95OSR2, Windows98, Windows98SE e Windows ME.

- O engine principal do  IBFireBackup não roda como um serviço do
Windows (ainda), então é preciso se logar no servidor para a aplicação
se auto executar. Logo o motor principal do sistema vai rodar como um
serviço e vai se levantar com o server sendo ligado sem a necessidade
de se logar no servidor mas isso esá agendado para o futuro.

- É impossível ter duas instâncias do IBFireBackup executadas ao mesmo
tempo o que torna impossível fazer backup de mais de um banco ao mesmo
tempo, eu estou resolvendo isso também pois a versão 3.0 terá suporte
a múltiplos bancos de dados no mesmo servidor, inclusive se forem
versões diferentes do FB escutando em portas diferentes e também de
servidores com IB e Firebird juntos.

Leiam o changelog.txt para maiores detalhes.

Peço que, por favor, não encham a lista de discussão com posts como
manda para mim!, manda para mim também!. O Software está
disponível no site firebase www.firebase.com.br na seção de downloads
subseção ferramentas de backup façam o download por lá! Tem um link na
página principal que o Carlos H. Cantu gentilmente cedeu ATENÇÃO o
link é IBFireBackup 2.7.5.42 [Beta 3] NÃO CONFUNDIR COM Firebackup que
é outro produto totalmente distinto. Peço também que, por favor, não
discutam sobre o software aqui na lista, qualquer problema ou demais
informações mandem um email para marcelosoftware em yahoo.com.br 
todas as
críticas e sugestões são válidas! Assim como reporte de algum bug
encontrado.

Se alguém desejar suporte integral ou apreciar meu trabalho, doações
monetárias são mais que bem vidas, pois ajudam no custeio do tempo
despendido (noites de sono) fora demais recursos como servidores,
ferramentas etc. Tudo isto custa grana, assim se alguém puder ajudar
com qualquer valor ajudará em eu poder sempre manter e lançar novos
releases para a comunidade e todos se beneficiarem. Se alguém tiver
este interesse mande um email para mim em marcelosoftware em 
yahoo.com.br
que eu explico como proceder em um eventual depósito.

Agradeço a todos

Marcelo Fortes.






[delphi-br] vb x Delphi

2008-06-03 Por tôpico fabio_giro
Por favor, só respondam quem conhece estas duas ferramentas. Trabalho 
com delphi há 11 anos (fiz o curso de Delphi2 e desde então venho 
trabalhando com esta ferramenta) e a 3 anos a empresa que trabalho se 
juntou a outra que tem alguns sistemas em VB. Hoje o gerente veio me 
perguntar quais as vantagens do Delphi em relação ao VB (acho que ele 
quer converter os programas para Delphi). Disse dos componentes, que o 
programa pode que roda em desktop, pode rodar em internet (via tcp/ip), 
não precisa gerar instalador sempre que coloca um componente novo, 
mostrei o sqlconnection, escreve-se menos, multi-camadas. Só que 
programo sozinho fazendo sistemas desktop e não sei todas vantagens do 
Delphi. Amanhã vou ter uma reunião com ele e gostaria de ir com mais 
argumentos para convencê-lo. Poderiam me ajudar. 
REPETINDO: Por favor, só respondam quem conhece estas duas ferramentas.
Agradço antecipadamente.



[delphi-br] Inclusão em chave composta

2008-05-20 Por tôpico fabio_giro
Tenho a seguinte tabela:
campo1(chave)
campo2
No formshow monto a query assim:
  with DM.qryManut do
   begin
 sql.clear;
 sql.add('SELECT CAMPO1, CAMPO2 FROM TABELA');
 sql.add(' WHERE CAMPO1 = :pcampo1');
   end;
No botão de inclusão tenho a seguinte rotina:
  with DM.cdsManut do
   begin
 if not Active then
  begin
DM.qryManut.parambyname('pcampo1').asinteger := strtoint(trim
(meCodigo.text));
open;
  end;
 if consulta then
edit
 else
insert;
 fieldbyname('CAMPO1').asinteger := strtoint(trim(meCodigo.Text));
 fieldbyname('CAMPO2').asstring := trim(edtDescr.Text);

 post;
   end;
Se selecionar no campo1 = 5 e quiser alterar para 6, funciona legal, 
ou seja, altera a chave. 
Porém em outra tela tenho a seguinte tabela
campo1(chave)
campo2(chave)
campo3
campo4
campo5
No formshow monto a query
  with DM.qryManut do
   begin
 sql.clear;
 sql.add('SELECT CAMPO1, CAMPO2, CAMPO3, CAMPO4 ,CAMPO5 FROM 
TABELA');
 sql.add(' WHERE CAMPO1 = :pcampo1');
 sql.add(' WHERE CAMPO2 = :pcampo2');
   end;
No botão de inclusão tenho a seguinte rotina
  with DM.cdsManut do
   begin
 if not Active then
  begin
DM.qryManut.parambyname('pcampo1').asinteger := strtoint(trim
(meCodigo1.text));
DM.qryManut.parambyname('pcampo2').asinteger := strtoint(trim
(meCodigo2.text));
open;
  end;
 if consulta then
edit
 else
insert;
 fieldbyname('CAMPO1').asinteger := strtoint(trim
(meCodigo1.Text));
 fieldbyname('CAMPO2').asinteger := strtoint(trim
(meCodigo2.Text));
 fieldbyname('CAMPO3').asstring := trim(descr1.Text);
 fieldbyname('CAMPO4').asstring := trim(descr2.Text);
 fieldbyname('CAMPO5').asstring := trim(descr3.Text);

 post;
   end;
Se selecionar no campo1 = 5 e campo2 = 5 e quiser alterar o campo2 
para 6, não funciona. Inclui um novo registro. Ou seja, quando é 
chave composta ele não altera, inclui. Alguem sabe se tenho que 
alterar alguma propriedade no CDS, DSP ou Query? Uso D7 e edit´s e 
maskedit´s. Estou perguntando, pois talvez não seja necessário fazer 
o INSERT/UPDATE na mão.
Obrigado.




[delphi-br] Erro de arredondamento (Resolvido)

2008-01-21 Por tôpico fabio_giro
uses math;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  tx : double;
begin
  tx := strtofloat(edit1.text);
  tx := roundto(tx + 0.1,-2);
  edit2.text := floattostr(tx);
end;

Agradeço a todos pelas colaborações.



[delphi-br] Erro de arredondamento

2008-01-11 Por tôpico fabio_giro
Tenho um relatório que faz o seguinte cálculo:
taxa1 e taxa2 : double;
taxa1 := 161,5 * (3 /100); (resultado = 4,845)
taxa2 := strtofloat(formatfloat('#0.00',taxa1));
Na primeira vez que executo o programa o resultado da taxa2 = 4,80 . 
Se o usuário rodar o relatório novamente, SEM SAIR DO SISTEMA, o 
reultado da taxa2 = 4,85
Baseado nisso, resolvi fazer o seguinte teste: criei uma aplicação 
nova, coloquei 2 edit´s e 1 botão e fiz o seguinte:
procedure TForm1.Button1Click(Sender: TObject);
var
  tx : double;
begin
  tx := strtofloat(edit1.text);
  tx := round(tx);
  edit2.text := floattostr(tx);
end;
 se edit1 = 1,5 - edit2 = 2
 se edit1 = 2,5 - edit2 = 2
 se edit1 = 3,5 - edit2 = 4
 se edit1 = 4,5 - edit2 = 4
ou seja, quando a parte inteira é impar arredonda. Alguém poderia me 
explicar? Testei no D7.
Agradeço antecipadamente.



[delphi-br] Dica: colorir PageControl

2007-09-06 Por tôpico fabio_giro
colocar PageControl1.OwnerDraw := True;

procedure TForm1.PageControl1DrawTab(Control: TCustomTabControl;
  TabIndex: Integer; const Rect: TRect; Active: Boolean);
begin
{//pinta a fonte
case TabIndex of
0: Control.Canvas.Font.Color:=clgreen;
1: Control.Canvas.Font.Color:=clred;
2: Control.Canvas.Font.Color:=clblue;
end;
}
// pinta a paleta / aba
case TabIndex of
0: Control.Canvas.brush.Color:=clgreen;
1: Control.Canvas.brush.Color:=clred;
2: Control.Canvas.brush.Color:=clblue;
end;
PageControl1.Canvas.Rectangle(Rect);
Control.Canvas.font.Color:=clwhite;
Control.Canvas.TextOut(Rect.left+5,Rect.top+3,PageControl1.Pages
[tabind

ex].Caption);

// pinta a parte interna (tabsheet)
  PageControl1.Pages[TabIndex].brush.Color := 

Control.Canvas.brush.Color;
end;

// se quiser pintar a parte interna, colocar tambem
procedure TForm1.FormShow(Sender: TObject);
begin
  PageControl1.Pages[0].brush.Color := clgreen;
end;

Se puder melhorar, coloquem aqui na lista. Gostaria de pedir-lhes 
para colocar nos sites de consultas de dicas. No linhadecodigo já 
enviei e no delphi.eti.br(planetadelphi) está lotado. 
Agradeço antecipadamente.



[delphi-br] Dica: colorir PageControl (melhorado)

2007-09-06 Por tôpico fabio_giro
colocar PageControl1.OwnerDraw := True;

procedure TForm1.PageControl1DrawTab(Control: TCustomTabControl;
  TabIndex: Integer; const Rect: TRect; Active: Boolean);
begin
//pinta a fonte
case TabIndex of
0: Control.Canvas.Font.Color:=clwhite;
1: Control.Canvas.Font.Color:=clyellow;
2: Control.Canvas.Font.Color:=claqua;
end;

// pinta a paleta / aba
case TabIndex of
0: Control.Canvas.brush.Color:=clgreen;
1: Control.Canvas.brush.Color:=clred;
2: Control.Canvas.brush.Color:=clblue;
end;
PageControl1.Canvas.Rectangle(Rect);
Control.Canvas.font.Color:=clwhite;
Control.Canvas.TextOut(Rect.left+5,Rect.top+3,PageControl1.Pages
[tabindex].Caption);

// pinta a parte interna (tabsheet)
  PageControl1.Pages[TabIndex].brush.Color :=
Control.Canvas.brush.Color;
end;

// se quiser pintar a parte interna, colocar tambem
procedure TForm1.FormShow(Sender: TObject);
begin
  PageControl1.Pages[0].brush.Color := clgreen;
end;

Se puder melhorar, coloquem aqui na lista. Gostaria de pedir-lhes 
para colocar nos sites de consultas de dicas. No linhadecodigo já 
enviei e no delphi.eti.br(planetadelphi) está lotado. 
Agradeço antecipadamente.



[delphi-br] DBExpress x transação

2006-10-27 Por tôpico fabio_giro
Tenho um sistema D7 + FB 1.5.2 + DBX. Numa tela de cadastro (codigo e 
descrição) faço várias inclusões/alterações e quando rodo o gstat -
h -t tabela -z banco.fdb tenho o seguite resultado:
oldest active=4000 , next transaction=4010 , ou seja, tenho 10 
transações abertas. Se saio do sistema e entro, quando abro um 
ClienteDataset, o resultado é oldest active=4011 , next transaction= 
4012. Como podem observar, abro uma transação para cada applyupdate. 
Alguém já observou isso? Será que falta algum detalhe para o 
sqlconnection fechar a transação? Segue uma pequena parte da lógica:
tela de cadastro
procedure TCadSind.FormShow(Sender: TObject);
begin
  with DM.qryManut do
   begin
 sql.clear;
 sql.add('SELECT CODSIND, NOMESIND FROM SINDICATO');
 sql.add(' WHERE CODSIND = :pcodsind');
   end;

  cdsGrid.open; -- atualiza o oldest transaction
end;

procedure TCadSind.btIncAltClick(Sender: TObject);
begin
  with DM.cdsManut do
   begin
 if btIncAlt.caption = 'Incluir' then
insert
 else
 if btIncAlt.caption = 'Alterar' then
edit;
 fieldbyname('CODSIND').asinteger := strtoint(trim
(meCodigo.Text));
 fieldbyname('NOMESIND').asstring := trim(edtNome.Text);

 post;
   end;
end;

DataModulo
procedure TDM.cdsManutAfterPost(DataSet: TDataSet);
begin
  with cdsManut do
   begin
 transacao.TransactionID := 1;
 transacao.IsolationLevel := xilREADCOMMITTED;
 if not Conexao.InTransaction then
Conexao.StartTransaction(Transacao);

 ApplyUpdates(0);

 if ApplyUpdates(0) = 0 then
  begin
try
   Conexao.Commit(Transacao);
except
   Conexao.Rollback(Transacao);
end;
  end;
   end;
end;







-- 
 FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 

* Para ver as mensagens antigas, acesse:
http://br.groups.yahoo.com/group/delphi-br/messages

* Para falar com o moderador, envie um e-mail para:
[EMAIL PROTECTED]
 
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/delphi-br/

* Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html

 



[delphi-br] Re: Numero fisico do HD

2006-10-08 Por tôpico fabio_giro
//serial físico, aquele que vem de fábrica e não muda depois da 
formatação

function GetIdeDiskSerialNumber : String;
  type
   TSrbIoControl = packed record
  HeaderLength : ULONG;
  Signature: Array[0..7] of Char;
  Timeout  : ULONG;
  ControlCode  : ULONG;
  ReturnCode   : ULONG;
  Length   : ULONG;
end;
SRB_IO_CONTROL = TSrbIoControl;
PSrbIoControl = ^TSrbIoControl;

TIDERegs = packed record
  bFeaturesReg : Byte; // especificar comandos SMART
  bSectorCountReg  : Byte; // registro de contador de setor
  bSectorNumberReg : Byte; // registro de número de setores
  bCylLowReg   : Byte; // valor de cilindro (byte mais baixo)
  bCylHighReg  : Byte; // valor de cilindro (byte mais alto)
  bDriveHeadReg: Byte; // registro de drive/cabeça
  bCommandReg  : Byte; // comando IDE
  bReserved: Byte; // reservado- tem que ser zero
end;
IDEREGS   = TIDERegs;
PIDERegs  = ^TIDERegs;

TSendCmdInParams = packed record
  cBufferSize  : DWORD;
  irDriveRegs  : TIDERegs;
  bDriveNumber : Byte;
  bReserved: Array[0..2] of Byte;
  dwReserved   : Array[0..3] of DWORD;
  bBuffer  : Array[0..0] of Byte;
end;
SENDCMDINPARAMS   = TSendCmdInParams;
PSendCmdInParams  = ^TSendCmdInParams;

TIdSector = packed record
  wGenConfig : Word;
  wNumCyls   : Word;
  wReserved  : Word;
  wNumHeads  : Word;
  wBytesPerTrack : Word;
  wBytesPerSector: Word;
  wSectorsPerTrack   : Word;
  wVendorUnique  : Array[0..2] of Word;
  sSerialNumber  : Array[0..19] of Char;
  wBufferType: Word;
  wBufferSize: Word;
  wECCSize   : Word;
  sFirmwareRev   : Array[0..7] of Char;
  sModelNumber   : Array[0..39] of Char;
  wMoreVendorUnique  : Word;
  wDoubleWordIO  : Word;
  wCapabilities  : Word;
  wReserved1 : Word;
  wPIOTiming : Word;
  wDMATiming : Word;
  wBS: Word;
  wNumCurrentCyls: Word;
  wNumCurrentHeads   : Word;
  wNumCurrentSectorsPerTrack : Word;
  ulCurrentSectorCapacity: ULONG;
  wMultSectorStuff   : Word;
  ulTotalAddressableSectors  : ULONG;
  wSingleWordDMA : Word;
  wMultiWordDMA  : Word;
  bReserved  : Array[0..127] of Byte;
end;
PIdSector = ^TIdSector;

  const
IDE_ID_FUNCTION   = $EC;
IDENTIFY_BUFFER_SIZE  = 512;
DFP_RECEIVE_DRIVE_DATA= $0007c088;
IOCTL_SCSI_MINIPORT   = $0004d008;
IOCTL_SCSI_MINIPORT_IDENTIFY  = $001b0501;
DataSize = sizeof(TSendCmdInParams)-1+IDENTIFY_BUFFER_SIZE;
BufferSize = SizeOf(SRB_IO_CONTROL)+DataSize;
W9xBufferSize = IDENTIFY_BUFFER_SIZE+16;
  var
hDevice : THandle;
cbBytesReturned : DWORD;
pInData : PSendCmdInParams;
pOutData : Pointer; // PSendCmdOutParams
Buffer : Array[0..BufferSize-1] of Byte;
srbControl : TSrbIoControl absolute Buffer;

procedure ChangeByteOrder( var Data; Size : Integer );
var ptr : PChar;
i : Integer;
c : Char;
begin
  ptr := @Data;
  for i := 0 to (Size shr 1)-1 do
  begin
c := ptr^;
ptr^ := (ptr+1)^;
(ptr+1)^ := c;
Inc(ptr,2);
  end;
end;

  begin
Result := '';
FillChar(Buffer,BufferSize,#0);
if Win32Platform=VER_PLATFORM_WIN32_NT then
   // Windows NT, Windows 2000, Windows XP
   begin
 // recuperar handle da porta SCSI
 hDevice := CreateFile('\\.\Scsi0:',
  // Nota: '\\.\C:' precisa de privilégios administrativos
  GENERIC_READ or GENERIC_WRITE,
  FILE_SHARE_READ or FILE_SHARE_WRITE,
  nil, OPEN_EXISTING, 0, 0);
if hDevice=INVALID_HANDLE_VALUE then Exit;
try
  srbControl.HeaderLength := SizeOf(SRB_IO_CONTROL);
  System.Move('SCSIDISK',srbControl.Signature,8);
  srbControl.Timeout  := 2;
  srbControl.Length   := DataSize;
  srbControl.ControlCode  := IOCTL_SCSI_MINIPORT_IDENTIFY;
  pInData := PSendCmdInParams(PChar(@Buffer)
 +SizeOf(SRB_IO_CONTROL));
  pOutData := pInData;
  with pInData^ do
  begin
cBufferSize  := IDENTIFY_BUFFER_SIZE;
bDriveNumber := 0;
with irDriveRegs do
begin
  bFeaturesReg := 0;
  bSectorCountReg  := 1;
  bSectorNumberReg := 1;
  bCylLowReg   := 0;
  bCylHighReg  := 0;
  bDriveHeadReg:= $A0;
  

[delphi-br] [Off Topic] Hint dos componentes

2006-09-18 Por tôpico fabio_giro
Tive que reinstalar o D7 e não está aparecendo o hint dos componentes. 
Já pesquisei em tools/environment e tools/editor. Alguém pode me 
ajudar? Obrigado. 









-- 
 FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 

* Para ver as mensagens antigas, acesse:
http://br.groups.yahoo.com/group/delphi-br/messages

* Para falar com o moderador, envie um e-mail para:
[EMAIL PROTECTED]
 
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/delphi-br/

* Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html

 





[delphi-br] Re: Imprimir DbGrid

2006-08-28 Por tôpico fabio_giro
Adapte as suas necessidades.

http://delphi.about.com/od/usedbvcl/l/aa082003a.htm

Espero ter ajudado.

--- Em delphi-br@yahoogrupos.com.br, galvao_em [EMAIL PROTECTED] escreveu

 Olá, novamente, tenho uma consulta em um DBgrid que está ligado em um 
 DataSet que por sua vez está ligado a um MDOsqlquery. A dúvida é a
seguinte:
 Gostaria de criar um checbox no dbgrid aonde eu pudesse escolher quais 
 dos registros retornados eu nao quero imprimir, ex: a consulta me 
 retorna 100 registros mas 5 deles eu não quero imprimir, como faço para 
 deixá-los de fora? Meu componente de impressao é o Fortes Reporte, uso 
 D7 e FB 2.0 RC4 com MDOLIB.
 
 Att.
 
 Rodrigo
 
   
 ___ 
 Yahoo! Acesso Grátis - Internet rápida e grátis. Instale 
 o discador agora! 
 http://br.acesso.yahoo.com










-- 
 FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 

* Para ver as mensagens antigas, acesse:
http://br.groups.yahoo.com/group/delphi-br/messages

* Para falar com o moderador, envie um e-mail para:
[EMAIL PROTECTED]
 
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/delphi-br/

* Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html

 





[delphi-br] Excel

2006-08-25 Por tôpico fabio_giro
Alguém sabe como faço para colocar numa célula '01/2006'. Quando
coloco, o excel converte para 'jan/06'. Obrigado.









-- 
 FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 

* Para ver as mensagens antigas, acesse:
http://br.groups.yahoo.com/group/delphi-br/messages

* Para falar com o moderador, envie um e-mail para:
[EMAIL PROTECTED]
 
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/delphi-br/

* Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html

 





[delphi-br] Fórmula no excel

2006-08-18 Por tôpico fabio_giro
Estou fazendo o seguinte:

uses excel2000, ComObj;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  excel: variant;
begin
  excel:=CreateOleObject('Excel.Application');
  excel.Workbooks.add(1);
...
  excel.cells[20,4].formula := '=SOMA(D6:D14)';

Mas quando abro a planilha no excel, em vez de vir o resultado da
fórmula, vem #NOME? . Alguém pode me ajudar?








-- 
 FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 

* Para ver as mensagens antigas, acesse:
http://br.groups.yahoo.com/group/delphi-br/messages

* Para falar com o moderador, envie um e-mail para:
[EMAIL PROTECTED]
 
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/delphi-br/

* Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html

 




[delphi-br] Transação IBX x DBX

2006-08-16 Por tôpico fabio_giro
Usando D7 + FB 1.5.2 . Sei que quando se faz algum acesso ao banco é
aberta uma transação. Usando query+datasetprovider+clientdataset. Se
uso IBX, faço o seguinte:
  ClientDataSet2.close;
  ClientDataSet2.Open;
  if IBQuery1.Transaction.InTransaction then
   begin
 showmessage('aberta');   -- sempre passa aqui
 IBQuery1.Transaction.Commit;
   end
  else
 showmessage('fechada');

Mas se usar DBX, como saber se a transação está aberta ou fechada?
  ClientDataSet1.close;
  ClientDataSet1.Open;
  if SQLQuery1. ???
E se usar SQLQuery1.ExecSql? 

Obrigado.









-- 
 FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 

* Para ver as mensagens antigas, acesse:
http://br.groups.yahoo.com/group/delphi-br/messages

* Para falar com o moderador, envie um e-mail para:
[EMAIL PROTECTED]
 
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/delphi-br/

* Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html

 





[delphi-br] Re: Transação IBX x DBX

2006-08-16 Por tôpico fabio_giro
Mas por que o clientdataset controlaria a transação com o DBX e não
controlaria com o IBX? Se for isso mesmo que você escreveu, então tem
a com o componente query.

--- Em delphi-br@yahoogrupos.com.br, JJW Informática Ltda. - Roberto
[EMAIL PROTECTED] escreveu

 Com DBX vc não controla a transação, quem faz esse controle é o
ClientDataSet. 
 
 No caso de um SQLDataSet.ExecSQL, o mesmo starteia e comita a
transação ou da o rollback caso um erro ocorra.
 
 Para utilizar master-detail com DBX, é necessário utilizar ninhagem
de datasets, procure no Borland Developer Network sobre NestedDatasets
 
 Att.
   - Original Message - 
   From: fabio_giro 
   To: delphi-br@yahoogrupos.com.br 
   Sent: Wednesday, August 16, 2006 10:02 AM
   Subject: [delphi-br] Transação IBX x DBX
 
 
   Usando D7 + FB 1.5.2 . Sei que quando se faz algum acesso ao banco é
   aberta uma transação. Usando query+datasetprovider+clientdataset. Se
   uso IBX, faço o seguinte:
 ClientDataSet2.close;
 ClientDataSet2.Open;
 if IBQuery1.Transaction.InTransaction then
  begin
showmessage('aberta');   -- sempre passa aqui
IBQuery1.Transaction.Commit;
  end
 else
showmessage('fechada');
 
   Mas se usar DBX, como saber se a transação está aberta ou fechada?
 ClientDataSet1.close;
 ClientDataSet1.Open;
 if SQLQuery1. ???
   E se usar SQLQuery1.ExecSql? 
 
   Obrigado.
 
 
 
 
 
 
 

 
 [As partes desta mensagem que não continham texto foram removidas]









-- 
 FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 

* Para ver as mensagens antigas, acesse:
http://br.groups.yahoo.com/group/delphi-br/messages

* Para falar com o moderador, envie um e-mail para:
[EMAIL PROTECTED]
 
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/delphi-br/

* Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html

 





[delphi-br] Abrindo transação sem abrir query

2006-03-02 Por tôpico fabio_giro
Fiz o seguinte teste usando D7/IBX/FB 1.52: criei um form e coloquei
IBDatabase1, IBTransaction1(Read-commited), IBQuery1(sql=SELECT * FROM
POSTO , transaction=
),DataSetProvider1(DataSet=IBQuery1),ClientDataSet1(ProviderName=DataSetProvider1)
 e 1 button

procedure TForm1.Button1Click(Sender: TObject);
begin
  if not IBQuery1.Transaction.InTransaction then
 showmessage('transacao fechada')
  else
 showmessage('transacao aberta');
  ClientDataSet1.Close;
  ClientDataSet1.Open;
  if not IBQuery1.Transaction.InTransaction then
 showmessage('transacao fechada')
  else
 showmessage('transacao aberta');
end;

resultado:
transacao fechada
transacao aberta

Por que abriu a transacao se não abri a query? Observem que a
propriedade transaciotn da query está vazia. Vejam o artigo que li na
internet:

(...)Quando você abre um ClientDataSet que está conectado a um
DataSetProvider, o provider é que abre o dataset que está conectado a
ele. Quando o dataset é aberto, ele executa sua instrução de SQL
SELECT e retorna os registros para o provedor que então os envia para
o ClientDataSet fechando o dataset e confirmando (commit) a transação
de leitura. (...) 

Será que esqueci algo? Será que o problema está no IBX? 







-- 
 FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 

* Para ver as mensagens antigas, acesse:
http://br.groups.yahoo.com/group/delphi-br/messages

* Para falar com o moderador, envie um e-mail para:
[EMAIL PROTECTED]
 
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/delphi-br/

* Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html

 




[delphi-br] Somatorio no Quickreport do Delphi7

2005-11-14 Por tôpico fabio_giro
É comum nos relatórios ter uma coluna(qrtext) de quant e valor na 
banda detalhe e um somatório(qrexpress) das colunas na banda sumary. 
No delphi 3 e 5 funciona normalmente mas no 7 não estou conseguindo.
Já procurei nas mensagens da lista, nas dicas dos sites e no google.
Alguém tem alguma dica? Obrigado.






-- 
 FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 

* Para ver as mensagens antigas, acesse:
http://br.groups.yahoo.com/group/delphi-br/messages

* Para falar com o moderador, envie um e-mail para:
[EMAIL PROTECTED]
 
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/delphi-br/

* Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html

 




[delphi-br] Dica sobre Firebird Embarcado

2005-05-09 Por tôpico fabio_giro
A alguns dias atrás tive um problema na instalação do Firebird 
Embarcado em que, quando instalava no Windows 98 dava a seguinte 
mensagem: Exception EIBClientError in module Project2.exe at 
000AEFD4. Interbase library gds32.dll not found in the path. Please 
Install Interbase to use this funcionality. Após muita pesquisa 
resolvi o problema. A solução é a seguinte:

para o windows ME e XP, os arquivos necessários são: 
meuprograma.exe
meubanco.fdb
gds32.dll   -- fbembbed.dll renomeada

para o windows ME e XP, os arquivos necessários são: 
meuprograma.exe
meubanco.fdb
gds32.dll   -- fbembbed.dll renomeada
C:\Firebird 1.5\Bin\Msvcp60.dll 

Site para baixar o Firebird Embedded
sourceforge.net/project/showfiles.php?group_id=9028release_id=163308

Artigo sobre Firebird Embedded
www.comunidade-firebird.org, clique em Artigos e selecione o 
artigo Criando aplicações embarcadas com Firebird 1.5

Espero ter ajudado.






-- 
 FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 

Para ver as mensagens antigas, acesse:
 http://br.groups.yahoo.com/group/delphi-br/messages

Para falar com o moderador, envie um e-mail para:
 [EMAIL PROTECTED] ou [EMAIL PROTECTED]
 
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/delphi-br/

* Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html