Fórum Tela de espera #190078
22/10/2003
0
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
Curtir tópico
+ 0Posts
22/10/2003
Marcelo
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+
Gostei + 0
22/10/2003
Mr_joni
obrigado.
Gostei + 0
22/10/2003
Marcelo
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+...
Gostei + 0
22/10/2003
Ljr
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?
Gostei + 0
22/10/2003
Mr_joni
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.
Gostei + 0
23/10/2003
Ljr
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?
Gostei + 0
23/10/2003
Mr_joni
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.
Gostei + 0
23/10/2003
Ljr
Screen.Cursor:= crSQLWait
Deu certo?
Gostei + 0
23/10/2003
Mr_joni
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.
Gostei + 0
23/10/2003
Ljr
Quanto ao dbgrid nao entendi muito bem poderia repetir mais detalhadamente?
Gostei + 0
23/10/2003
Mr_joni
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.
Gostei + 0
24/10/2003
Mr_joni
[url]http://www.cadfmtm.com.br/fckeditor/_test/test.asp[/url]
Gostei + 0
24/10/2003
Ljr
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.
Gostei + 0
27/10/2003
Mr_joni
Obrigado mais uma vez.
Gostei + 0
28/10/2003
Ljr
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.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)