Re: RES: [delphi-br] Criando DLL

2006-05-23 Por tôpico marcelloassouza



Felipe,

Primeiramente, obrigado pela resposta, você não sabe o quanto me 
ajudou, você e os outros amigos do grupo. Agora me diga uma coisa, no 
primeiro form o problema foi resolvido, agora estou com problemas 
quando ao outro que no Caso é um Report. Quando uso o Report num 
projeto comum, ele funciona normal ao chamar qualquer obejto do 
mesmo, mas agora num DLL, estou recebendo a mesma mensagem de access 
violation. Tenho que instacia-lo ou fazer alguma chamada diferenciada 
para poder utilizá-lo na minha DLL???

Outra coisa, porque Pchar ao invés de String? Só para conhecimento!!!

Marcelo.


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

 ..outra coisa,
 
 no caso, vc ta usando ADO, já vou avisando que vc terá problemas
 com ActiveX em projeto DLL.. para resolver, faça o seguinte:
 
 no OnCreate do 1o form a ser criado no projeto dll, inclua a 
linha:
 
 CoInitialize( nil );
 
 ..e no OnDestroy:
 
 CoUninitialize;
 
 ..Ah! assim como o Anderson comentou, não use String nos parametros
 dos métodos que serão exportados na sua dll.. sendo assim, basta 
mudar
 o seguinte:
 
 Procedure GeraPDF( Servidor, Tipo: PChar ); stdcall;
 
 
 ..pronto, valeu!!
 
   
 ___ 
 Abra sua conta no Yahoo! Mail: 1GB de espaço, alertas de e-mail no 
celular e anti-spam realmente eficaz. 
 http://br.info.mail.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]






  




  
Yahoo! Grupos, um serviço oferecido por:
  
  
PUBLICIDADE




  
  



  




  
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 Termos do Serviço do Yahoo!.











[delphi-br] Criando DLL

2006-05-22 Por tôpico marcelloassouza



Pessoal,
 
Preciso criar uma DLL que se conecta a uma base SQL Server e gere um 
Relatório em PDF.
 
Eu sei como fazer tudo isso, esse não é o problema, o que está me 
faltando mesmo é um pouco de conhecimento referente a parte de DLL's 
mesmo.
 
Seguinte:
 
Criei o meu projeto DLL conforme abaixo:
 
library minhadll;
 
uses
 SysUtils,
 Classes,
 uPrincipal in 'uPrincipal.pas' {frmPrincipal},
 uRelatorio in 'uRelatorio.pas' {Rep: TQuickRep};
 
{$R *.res}
 
Procedure GeraPDF( Servidor, Tipo: String ); stdcall; begin
 frmPrincipal.GeraRelatorio( Servidor, Tipo ); end; 
 
exports GeraPDF;
 
end.
 
 
Como vocês podem ver tenho duas Units no meu projeto. Uma é somente 
um form para eu colocar os componentes que necessito, no Caso o 
ADOConnection, ADOQuery e um outro que uso para exportar para PDF. A 
outra unit é um Report.
 
Ao debugar bem na linha abaixo:
 
frmPrincipal.GeraRelatorio( Servidor, Cliente, Tipo, Dir, DataIni, 
DataFim );

recebo um erro de access violation. Como as minhas ações estão no 
form frmPrincipal e o erro acontece justamente ao chamar algo que 
está nele, percebi que estava faltando eu criar o form. Aí tentei de 
todos os jeitos e não consegui. O que está faltando eu declarar para 
que eu possa utilizar o form frmPrincipal.
 
Para criar o frmPrincipal tentei um dos dois códigos abaixo:
 
Forma 1:
 
Application.CreateForm( TfrmPrincipal, frmPrincipal ) ;
 
Forma 2: 
 
 If frmPrincipal = Nil Then frmPrincipal := TfrmPrincipal.Create( 
Self ) ;
 
 
Poderiam me ajudar

 
Att,
 
Marcelo A. Souza











-- 
 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]






  




  
Yahoo! Grupos, um serviço oferecido por:
  
  
PUBLICIDADE




  
  



  




  
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 Termos do Serviço do Yahoo!.











[delphi-br] Problema com ntdll.dll - Urgente

2006-01-04 Por tôpico marcelloassouza
Pessoal, 

Temos vários projetos aqui na empresa, mas somente um estou tendo um 
problema com a ntdll.dll.

Os projetos estavam em D5 e agora estamos migrando para D7. Em D7 
funcionava muito bem.


Será que alguém poderia me ajudar

Desde já agradeço!!!

O erro que recebo é:

Access Violation at address 7C912FFC in module 'ntdll.dll'. Write of 
adress 004050E1

O estranho é que nem o try except resolve...



Segue a função onde está dando o erro:

procedure ValidaCombo( Sender: TObject );
var
  lChar : string ;
  lCont : Integer ;
  
begin

If ( Sender as TComboBox ).Text = '' Then
   Exit ;

( Sender as TComboBox ).Text := UpperCase( ( Sender as 
TComboBox ).Text );

For lCont := 0 To ( Sender as TComboBox ).Items.Count - 1 do
Begin

//Linha onde ocorre o erro
lChar := ( Sender as TComboBox ).Items.Strings[lCont] ;

If UpperCase( lChar ) = UpperCase( ( Sender as 
TComboBox ).Text ) Then
   Exit ;

End ;

Application.MessageBox('Valor do campo invalido, favor selecionar 
um valor da lista', 'Mensagem do Sistema', MB_OK);
( Sender as TComboBox ).Text := '' ;
( Sender as TComboBox ).SetFocus ;
( Sender as TComboBox ).DroppedDown := True ;

end;


Att,

Marcelo.





-- 
 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: Problema com ntdll.dll - Urgente

2006-01-04 Por tôpico marcelloassouza
Pessoal, complementando o problema abaixo depois de dar mais umas 
fuçadas, percebi que o que ocorre é o seguinte:

Me parece que no delphi 7 o componente combobox não aceita textos em 
branco pois é justamente quando eu tento passar um valor de uma 
posição do combobox que está em branco que ocorre o erro. Quando o 
combobox está com todos os itens preenchidos não ocorre o erro.

Agora como validar se o item é vazio ou não??? Notar abaixo na minha 
função que a variável que recebe o valor de cada item da combo é do 
tipo String.

Att,

Marcelo.



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

 Pessoal, 
 
 Temos vários projetos aqui na empresa, mas somente um estou tendo 
um 
 problema com a ntdll.dll.
 
 Os projetos estavam em D5 e agora estamos migrando para D7. Em D7 
 funcionava muito bem.
 
 
 Será que alguém poderia me ajudar
 
 Desde já agradeço!!!
 
 O erro que recebo é:
 
 Access Violation at address 7C912FFC in module 'ntdll.dll'. Write 
of 
 adress 004050E1
 
 O estranho é que nem o try except resolve...
 
 
 
 Segue a função onde está dando o erro:
 
 procedure ValidaCombo( Sender: TObject );
 var
   lChar : string ;
   lCont : Integer ;
   
 begin
 
 If ( Sender as TComboBox ).Text = '' Then
Exit ;
 
 ( Sender as TComboBox ).Text := UpperCase( ( Sender as 
 TComboBox ).Text );
 
 For lCont := 0 To ( Sender as TComboBox ).Items.Count - 1 do
 Begin
 
 //Linha onde ocorre o erro
 lChar := ( Sender as TComboBox ).Items.Strings[lCont] ;
 
 If UpperCase( lChar ) = UpperCase( ( Sender as 
 TComboBox ).Text ) Then
Exit ;
 
 End ;
 
 Application.MessageBox('Valor do campo invalido, favor 
selecionar 
 um valor da lista', 'Mensagem do Sistema', MB_OK);
 ( Sender as TComboBox ).Text := '' ;
 ( Sender as TComboBox ).SetFocus ;
 ( Sender as TComboBox ).DroppedDown := True ;
 
 end;
 
 
 Att,
 
 Marcelo.







-- 
 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

 





Re: RES: [delphi-br] E-mail em massa

2005-06-15 Por tôpico marcelloassouza
Então jorge, só conheço thread em conceito nunca programei uma thread 
no delphi, peguei um exemplo mas mesmo assim não funcionou, veja como 
ficou o código:

unit uEncaminhamentosAuto;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, 
Forms,
  Dialogs, DB, IBCustomDataSet, IBQuery, RxMemDS, Grids, DBGrids,
  CheckDBGrid, StdCtrls, Buttons, ImgList, ComCtrls, ToolWin, 
ExtCtrls,
  Gauges, IBStoredProc, IdComponent, IdTCPConnection, IdTCPClient,
  IdMessageClient, IdSMTP, IdBaseComponent, IdMessage;

type
  TfrmEncaminhamentosAuto = class(TForm)
memEmpresa: TRxMemoryData;
qrEmpresa: TIBQuery;
btnEnviar: TBitBtn;
StatusBar1: TStatusBar;
Panel1: TPanel;
gauProgresso: TGauge;
Bevel1: TBevel;
cgridEmpresas: TCheckDBGrid;
btnFechar: TBitBtn;
memEmpresaEMP_FLAG: TBooleanField;
memEmpresaEMP_CODIGO: TStringField;
memEmpresaEMP_RAZAOSOCIAL: TStringField;
dsEmpresas: TDataSource;
memEmpresaEMP_CIDADE: TStringField;
memEmpresaEMP_UF: TStringField;
spEncaminhamentos: TIBStoredProc;
memEmpresaEMP_SEGMENTO: TStringField;
btnPesquisar: TBitBtn;
qrTemp: TIBQuery;
memEmpresaEMP_EMAIL: TStringField;
edCodigoCliente: TEdit;
PesqCodigoCliente: TSpeedButton;
edNomeCliente: TEdit;
PesqNomeCliente: TSpeedButton;
Label1: TLabel;
Label2: TLabel;
edCurriculo: TEdit;
PesqArquivo: TSpeedButton;
Label3: TLabel;
edHeadHunter: TComboBox;
cbIncluir: TCheckBox;
OpenDialog: TOpenDialog;
edAssinatura: TMemo;
Memo2: TMemo;
edEmail: TEdit;
edSenha: TEdit;
IdMsgSend: TIdMessage;
SMTP: TIdSMTP;
edMensagemModelo: TMemo;
edMensagemGerada: TMemo;
btnCancelar: TBitBtn;
procedure btnFecharClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure edCodigoClienteEnter(Sender: TObject);
procedure PesqCodigoClienteClick(Sender: TObject);
procedure PesqNomeClienteClick(Sender: TObject);
procedure edCodigoClienteExit(Sender: TObject);
procedure edCodigoClienteKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
procedure btnPesquisarClick(Sender: TObject);
procedure edCodigoClienteKeyPress(Sender: TObject; var Key: Char);
procedure memEmpresaBeforeEdit(DataSet: TDataSet);
procedure PesqArquivoClick(Sender: TObject);
procedure edCurriculoKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
procedure edCurriculoExit(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure edHeadHunterExit(Sender: TObject);
procedure edHeadHunterChange(Sender: TObject);
procedure cbIncluirClick(Sender: TObject);
procedure btnCancelarClick(Sender: TObject);
procedure btnEnviarClick(Sender: TObject);
  private
{ Private declarations }
valida_email,
parar   : Boolean ;
  public
{ Public declarations }
  end;

  TThreadEmail = class(TThread)
  protected
  constructor Create;
  procedure Execute; override;
  procedure EnviaEmail;
  end;

var
  frmEncaminhamentosAuto: TfrmEncaminhamentosAuto;
  var_prospecao_sp ,
  var_prospecao_brasil ,
  var_prospecao_cidade ,
  var_prospecao_uf ,
  var_prospecao_areas  : String ;

implementation

uses uMenuPrincipal, uPesquisa, Funcoes;

{$R *.dfm}

procedure TfrmEncaminhamentosAuto.btnFecharClick(Sender: TObject);
begin
 close ;
end;

procedure TfrmEncaminhamentosAuto.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
 frmEncaminhamentosAuto := Nil ;
 Action := caFree ;
end;

procedure TfrmEncaminhamentosAuto.edCodigoClienteEnter(Sender: 
TObject);
begin
 self.Top := ((frmMenuPrincipal.clientHeight-self.Height) div 2) -
 32;
end;

procedure TfrmEncaminhamentosAuto.PesqCodigoClienteClick(Sender: 
TObject);
begin
 //Chama o form
 If FrmPesquisa = Nil Then Begin

FrmPesquisa := TFrmPesquisa.Create( Self ) ;
FrmPesquisa.Show ;

 End;

 //Pesquisa de CPF
 FrmPesquisa.qrPesquisa.Active := False ;

 FrmPesquisa.qrPesquisa.SQL.Clear ;

 FrmPesquisa.qrPesquisa.SQL.Add('SELECT CLI_CODIGO AS CODIGO, 
CLI_NOME AS NOME_DO_CANDIDATO');
 FrmPesquisa.qrPesquisa.SQL.Add('FROM ARQCLIENTES') ;
 FrmPesquisa.qrPesquisa.SQL.Add('ORDER BY CLI_CODIGO');

 FrmPesquisa.qrPesquisa.Active := True ;

 //Strings de Pesquisa
 FrmPesquisa.SQL1:= 'SELECT CLI_CODIGO AS CODIGO, CLI_NOME AS 
NOME_DO_CANDIDATO FROM ARQCLIENTES WHERE CLI_CODIGO LIKE';
 FrmPesquisa.SQL2:= 'ORDER BY CLI_CODIGO';

 //Campos
 FrmPesquisa.TxtCampoChave := 'CODIGO' ;
 FrmPesquisa.TxtCampoResp := 'CODIGO' ;
 FrmPesquisa.EdResp := Self.edCodigoCliente ;
end;

procedure TfrmEncaminhamentosAuto.PesqNomeClienteClick(Sender: 
TObject);
begin
 //Chama o form
 If FrmPesquisa = Nil Then Begin

FrmPesquisa := TFrmPesquisa.Create( Self ) ;
FrmPesquisa.Show ;

 End;

 //Pesquisa de 

[delphi-br] Função para validar e-mail

2005-06-13 Por tôpico marcelloassouza
Pessoal, alguém tem alguma função de validação de e-mail?




-- 
 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

 




[delphi-br] Threads

2005-06-13 Por tôpico marcelloassouza
Pessoal, alguém poderia me mandar um exemplo de como usar Threads, no 
meu sistema tenho um envio de e-mails em massa, só que o programa 
fica travado enquanto esse processamento não acaba, e eu gostaria que 
o usuário pudesse ir usando outras telas do sistema. Me deram a dica 
de que para isso eu teria que usar criar uma Thread, mas nunca mexi 
com isso.

Agradeço a ajuda de todos.

Marcello.




-- 
 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