Fórum Tela de espera #190078

22/10/2003

0

Ola,

Preciso cirar um formulario de espera para toda vez q eu consultar ou movimentar a minha base de dados q e remota em outra cidade este formulario entre em execucao com algum dizer tipo aguarde consultanta a base de dados. Se nao tiver como fazer isto pode ser a ativação apenas do cursor para o formato da ampulheta com a palavra SQL.

Obrigado.


Mr_joni

Mr_joni

Responder

Posts

22/10/2003

Marcelo

Olá... Esse código fara o que vc espera, bom, eu acho que sim...

procedure TForm1.Button1Click(Sender: TObject);
var
relogio : TTime;
begin
relogio := Time();
Button1.Cursor := crSQLWait; // muda o cursor
while Time - relogio < StrToTime( ´00:00:05´ ) do; // tem uma permanencia de 5 segundos.
Button1.Cursor := crDefault; // retorna o cursor original
end;

Valeu?

at+


Responder

Gostei + 0

22/10/2003

Mr_joni

MArcelo eu preciso colocar esta mudanca de cursor em algum evento do componente de conexao com a base de dados. Assim q ele for conectar, pesquisar, incluir, excluir ou alterar qualquer registro ele coloque o cursor no modo sql e quando acabar ele volte ao normal.

obrigado.


Responder

Gostei + 0

22/10/2003

Marcelo

MArcelo eu preciso colocar esta mudanca de cursor em algum evento do componente de conexao com a base de dados. Assim q ele for conectar, pesquisar, incluir, excluir ou alterar qualquer registro ele coloque o cursor no modo sql e quando acabar ele volte ao normal. obrigado.


Se voce precisa de uma funcao, voce pode fazer com que essa que passei se torne generica, da seguinte forma:
procedure TForm1.Tempo( Botao : TButton ); // declara a procedure em private.
var
relogio : TTime;
begin
relogio := Time();
Botao.Cursor := crSQLWait; // muda o cursor
while Time - relogio < StrToTime( ´00:00:03´ ) do; // tem uma permanencia de 5 segundos.
Botao.Cursor := crDefault; // retorna o cursor original
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Tempo( Button1 );
end;

procedure TForm1.Tempo( Botao : TButton );
var
relogio : TTime;
begin
relogio := Time();
Botao.Cursor := crSQLWait; // muda o cursor
while Time - relogio < StrToTime( ´00:00:03´ ) do; // tem uma permanencia de 5 segundos.
Botao.Cursor := crDefault; // retorna o cursor original
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Tempo( Button1 );
end;

Valeu?
at+...


Responder

Gostei + 0

22/10/2003

Ljr

Sera que este codigo resolveria...

Criei um novo projeto e adicionei um novo formulario.

No form1 (formulario principal) coloquei um DataBase e um botao.

No form2 (formulario com a mensagem de espera) coloquei um label com o seguinte texto: ´Aguarde, conectando ao banco de dados...´.

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Db, DBTables;

type
  TForm1 = class(TForm)
    Database1: TDatabase;
    Button1: TButton;
    procedure Database1BeforeConnect(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Database1AfterConnect(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

uses
  unit2;

{$R *.DFM}

procedure TForm1.Database1BeforeConnect(Sender: TObject);
begin
  Application.CreateForm(Tform2, form2);
  form2.Show;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  try
    try
      Database1.Open;
    except
      raise Exception.Create(´Erro ao conectar´);
    end;
  finally
    Form2.Free;
  end;
end;

procedure TForm1.Database1AfterConnect(Sender: TObject);
begin
  Form2.Free;
end;

end.


Isto resolve o problema?


Responder

Gostei + 0

22/10/2003

Mr_joni

Estamos chegando perto.

Mas e o seguinte o codigo acima e quase isto. Estou usando o componente ADO connection para conectar a base em sql server remotamente, em quais eventos eu deveria colocar este comando: Application.CreateForm(Tf_sql, f_sql) e f_sql.free para q sempre q a base for acessada, abrir, fechar, pesquisar, editar, apagar, atualizar, etc...

obrigado.


Responder

Gostei + 0

23/10/2003

Ljr

Caro colega, desculpe nao ter entendido de primeira, mas eh q tive q ler apressadamente, mas agora tenho um tempinho e analisando o q vc precisa fiz o seguinte codigo usando o componente ADOConnection.

Toda vez que um commando SQL é executado, a base (TADOConnection) gera dois eventos: um antes de executar e outro apos a execução.

onWillExecute: será chamado antes de iniciar a execução do commando, portando colocaria aqui os commandos:
Application.CreateForm(Tf_sql, f_sql);
f_sql.show;


onExecuteComplete: será chamado depois de concluir a execução do commando, portando colocaria aqui os commandos:
if EventStatus = esErrorsOccured then
  MessageDlg(´Erro ao conectar, com a seguinte mensagem: "´+
    Error.Description+´"´, mtError, [mbOK], 0);
f_sql.Free;


Nota: Neste último, manipulei algum possível erro fazendo uso do parametro Error.

Ele funcionara sempre que vc executar um commando SQL, portanto qdo a base for fechada nao tem como, a nao ser que vc coloque no evento BeforeClose da base.

Com este passos o problema foi resolvido?


Responder

Gostei + 0

23/10/2003

Mr_joni

Deu certinho muito obrigado pela ajuda.

So mais uma coisinha se eu quiser habilitar no Onwillconnect o cursor do sql como eu devo proceder. Quero q ele fique habilitado para o aplicativo e nao so para a janela f_sql.

Obrigado.


Responder

Gostei + 0

23/10/2003

Ljr

Tente esta instrução, acho que ira solucionar.
Screen.Cursor:= crSQLWait


Deu certo?


Responder

Gostei + 0

23/10/2003

Mr_joni

Deu certinho, mais uma vez obrigado.

Vc conhece algum componente dbgrid q faca paginacao, isto e mostre no rodapé a quantidade de paginas q derao? E algum componente q seja um editor basico de html q visualize o codigo fonte e tb a pagina html feita?

Obrigado.


Responder

Gostei + 0

23/10/2003

Ljr

Vc esta tentando fazer algo do tipo FrontPage, onde vc tem um PageControl, que possue duas TabSheet, uma exibindo o codigo html e outra exibindo como a pagina seria vista no browser?

Quanto ao dbgrid nao entendi muito bem poderia repetir mais detalhadamente?


Responder

Gostei + 0

23/10/2003

Mr_joni

Eu estou desenvolvendo um programa para atualizar a lista de produtos do nosso site de comercio eletronico, por isto estes componentes.

Vou tentar explicar melhor.

Componente HTML

Tenho um campo tipo memo no sql q e a descricao do produto como esta descricao e mostrada numa pagina web eu preciso de um editor de html para fazer os negritos, os links e tabelas deste campo. Atualmente nossa atualizacao da pagina e feita por um site desenvolvido por nos mesmos. Este componente nao precisa ser tao complexo quanto o fronte page preciso apenas do html basico. mas eu preciso ja visualizar na tela o resultado e tb poder mexer no fonte para dar alguns retoques...

Componente DBgrid com paginacao.

tenho uma lista de 5 mil produtos em meu banco de dados gostaria de um componente dbgrid q mostrasse por exemplo os 20 primeiros itens e depois apareceria no rodape o restante das paginas tipo na internet quando vc pede um procura ai aparece paginas disponiveis 1 a 200 vc clica no 2 e ele mostra do 21 ao 40.

Espero ter me expressado melhor agora.

Obrigado.


Responder

Gostei + 0

24/10/2003

Mr_joni

De uma olhadinha nesta pagina la tem um editor html on-line bem semelhante ao q eu quero so q eu preciso dele em delphi. Se vc souber onde eu encontro me avise.

[url]http://www.cadfmtm.com.br/fckeditor/_test/test.asp[/url]


Responder

Gostei + 0

24/10/2003

Ljr

Descobri o componente que vc precisa.

Como estou sem tempo soh pesquisei. É um componente com tecnologia COM e se nao me engano ele é instalado junto com o IE 5 ou superior.

[url]http://groups.yahoo.com/group/delphi-dhtmledit.[/url]

Entre neste grupo do yahoo vá na sessao FILES e veja os manuais, demos, etc.

Desculpe, mas nao testei nada.


Responder

Gostei + 0

27/10/2003

Mr_joni

Ljr, o componente me parece ser bom mas eu nao consigo baixa-lo, da q a pagina nao pode ser exibida. Ja estou registrado e tudo, baixei quase todos os arquivos mas o dhtmedit.zip e sdk_help.zip estes nao consigo acredito q estes sao os arquivos do componente. Se vc tiver um tempinho tente baixa-los se conseguir envie por gentileza para este email: joao.nivaldo@yahoo.com.br.

Obrigado mais uma vez.


Responder

Gostei + 0

28/10/2003

Ljr

Nivaldo,

o componente em si não está no grupo para download. Este componente é um OCX que é instalado junto com o IE. Portanto para utilizá-lo basta apenas instalá-lo.

Para instalar faça o seguinte:

1. Com o Delphi aberto, File->Close All
2. Component->Import ActiveX Control
3. Na lista de OCX disponíveis escolha ´DHTML Edit Control for IE5 (Version X.X)´
4. Clique em ´Install...´

Pronto. O componente esta na Paleta ActiveX. Agora é só usar.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar