Tela de Incialização e TDBImage

Delphi

30/01/2004

Caras, meu projeto tem q carregar na sua inicialiação 30 formulários, ficando com uma lentidão demasiada.
Portanto, eu gostaria de saber como eu posso fazer para abrir por primeiro uma ´tela de incialização´ com um
ProgressBar avançando uma posição a cada formulario carregado.

Outra: Como posso fazer para limpar a imagem de um DBImage ao teclar ´Del´???


Diorgenes175

Diorgenes175

Curtidas 0

Respostas

Fabio.hc

Fabio.hc

30/01/2004

Tente assim:

-Crie um form(FrmInicio) com um ProgressBar e vai incrementando a ProgressBar a cada form aberto.

program SCC;

uses
  Forms,
  Windows,
  Frm_Principal in ´Frm_Principal.pas´ ,
  ...
  ...

{$R *.RES}

var
  Handle: THandle;
begin
  Application.Initialize;
  with TFrmInicio.Create(nil) do
  try
    ProgressBar1.Max := 100;
    Show;   // show a splash screen contain ProgressBar control
    Update; // force display of FrmInicio
    ProgressBar1.StepBy(10);
    Application.CreateForm(TDMA, DMA);
    ProgressBar1.StepBy(10);
    Application.CreateForm(TFrmPrincipalSCC, FrmPrincipalSCC);
    ProgressBar1.StepBy(20);
    Application.CreateForm(TFrmLocalizar, FrmLocalizar);
    ProgressBar1.StepBy(10);
    Application.CreateForm(TFrmConfirma, FrmConfirma);
    ProgressBar1.StepBy(20);
    Application.CreateForm(TFrmBackup, FrmBackup);
    ProgressBar1.StepBy(20);
    Application.CreateForm(TFrmRel, FrmRel);
    ProgressBar1.StepBy(10);
    Application.CreateForm(TFrmConfirma, FrmConfirma);
  finally
    Free;
  end;
  Application.Run;
end.




Outra: Como posso fazer para limpar a imagem de um DBImage ao teclar ´Del´???



No evento onKeyDown vc testa se foi pressionada del, se foi vc atribui vazio no campo imagem da query.
Ex:
procedure TFrmOrcamento.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if Key =  VK_DELETE  then
   begin
   qryParam.Edit;
   qryParamCLI_LOGOTIPO.Value:=´´;
   qryParam.ApplyUpdates;
   end;
end;



GOSTEI 0
Diorgenes175

Diorgenes175

30/01/2004

Meu, para fazer a tela de incialização ocorreram alguns erros. Quando é criado o Formulario de abertura ele carrega, limpa a ProgressBar e fica na frente dos outros formularios e quando eu o fecho ele termina a aplicação. Como posso contornar isso. Eu queria que ocorresse da seguinte forma:

Quando é aberto o projeto carrega-se primeiro a tela de Apresentação. Após, carregada a ProgressBar esta tela some, entrando então no Formulario Principal com total liberdade na aplicação. Como eu posso fazer isso?

Valeu!!!


GOSTEI 0
Fabio.hc

Fabio.hc

30/01/2004

Vc tem que tirar este form com a progressbar do auto-create forms (Project - Options)

Aqui o form é criado:

  with TFrmInicio.Create(nil) do 
  try 
...

e aqui ele é removido
...
  finally 
    Free; 
  end;



GOSTEI 0
Diorgenes175

Diorgenes175

30/01/2004

Cara, agora sim consegui fazer uma tela de apresentação como eu queria, só fiz algumas incrementações naquele codigo q tu me enviou e deu certo. Mas o q eu nao consegui foi fazer o TDBImage ficar em branco quando pressionada a tecla ´Del´. Eu pressiono ´Del´ e a tabela entra em modo de edição mas o TDBImage continua com a imagem. Não estou usando TQuery neste Formulario e a Base de Dados é MS Access. Por que ocorre isso??

Valeu a ajuda!!!!!


GOSTEI 0
Fabio.hc

Fabio.hc

30/01/2004

Da mesma forma que vc grava uma imagem vc apaga uma imagem basta colocar :=´´ .


GOSTEI 0
POSTAR