Statusbar

10/12/2003

3

Boa Tarde,
Como eu faço pra quando o cara passar o mouse na frente do botao ele escrever na statusbar ( ´incluir novo registro´ ) e logo apos ele sair de cima daquele botao ficar em branco ?

me ajudem... sou novato eu estou aprendendo delphi na faculdade e nem tudo eles ensinam...


aproveitando alguem tem um exemplo de progressbar ???

quem puder me ajudar eu agradesco

abraços

Fernando Cunha


Responder

Posts

10/12/2003

Paulo

Eu faço asim e dá certo:
No Evento OnMouseMove digite:
begn
if (X > 1) and (X<73) and (Y>1) and (Y<22) then begin
statusbar1.Panels[0].Text:=btEnviar.Hint
end else
statusbar1.Panels[0].Text:=´´
end;
Lembrando que X e Y são os limites do botão em pixels. X representa a propriedade Width e Y a Heigth. Caso o tamanho do botão foi alterado, veja os limites X e Y dele e mãos a obra. Se tiver dificuldades para saber o limite X e Y, coloque dois labels e e no evento OnMove do botão, vai passando o mouse Lateralmente(X) e Verticalmente(Y) e descubra nos labels os valores. Quando parar de contar, é porque vc ta fora do botão(limite). Eis os códigos dos labels dentro do OnMove.
label1.caption:=inttostr(X);
label2.caption:=inttostr(Y);


Responder

11/12/2003

Cebikyn

A StatusBar faz isso automaticamente (em versões antigas do Delphi, este recurso não existe):

Basta configurar a propriedade ´Hint´ de um componente (o botão, no caso), com o texto desejado, depois no ObjectInspector, configure a StatusBar:

SimplePanel := true; // Opcional
AutoHint := true;

Não é necessário qualquer outro código.


Responder

11/12/2003

Fcunha

obrigado por respoder....
:D

e o lance de uma progressbar ? alguem teria um exemplo ?

valeus

pois eu queria depois colocar assim:

enquanto o select alimenta uma tabela ... ele vai passando uma progress ate terminar o select.
e depois da mensagem de importado com sucesso


Responder

11/12/2003

Pedro Bugim

Para colocar um ProgressBar dentro de uma StatusBar, tente o seguinte:
- Coloque uma StatusBar no Form e adicione dois paineis à mesma;
- Ajuste as propriedades do primeiro painel:
Style = psOwnerDraw
Width = 150
- Coloque uma ProgressBar no Form e mude sua propriedade visible pra false;
- No evento OnDrawPanel da StatusBar digite o código:

procedure TForm1.StatusBar1DrawPanel(StatusBar: TStatusBar;
Panel: TStatusPanel; const Rect: TRect);
begin
if panel.Index = 0 then
begin
ProgressBar1.Width:= Rect.Right - Rect.Left + 1;
ProgressBar1.Height:= Rect.Botton - Rect.Top + 1;
ProgressBar1.PaintTo(StatusBar.anves.Handle, Rect.Left, Rect.Top);
end;
end;

- Coloque um Button no Form;
- Digite no evento OnClick do Button o código:

Procedure TForm1.Button1Click(Sender: TObject);
var
I: integer;
begin
for I:=progressBar1.Min to ProgressBar1.Max do
begin
ProgressBar1.position:= I;
StatusBar1.Repaint;
Sleep(50); //Aguarda 50 milisegundos
end;
Sleep(500);
ProgressBar1.Position:=ProgressBar1.Min;
StatusBar1.Repaint;
end;

- Execute e clique no botão para ver o resultado!
Espero que este código lhe seja útil!
Abraços,


Responder

11/12/2003

Pedro Bugim

Já no caso da StatusBar, faço de uma forma bem simples...
No evento OnMouseMove do Button, digite o código:

statusbar1.panels[0].text:=´Texto a ser mostrado´;
{Isso mostrará o texto na StatusBar oa passar com o mouse por ele}

Para que este texto suma ao sair com o mouse do Button, digite no evento OnMouseMove do Form (ou do componente no qual se encontra o Button), o código:

statusbar1.panels[0].text:=´´;

Blz?!
Abraços,


Responder

12/12/2003

Cebikyn

[quote:e467cfc28b=´Pedro Bugim´]Já no caso da StatusBar, faço de uma forma bem simples...[/quote:e467cfc28b]

Vc leu minha resposta? Se não leu, leia, não tem forma mais simples que aquela (usando recursos do próprio Delphi).


Responder

15/12/2003

Pedro Bugim

Pode crêr! Não tinha tentado desse jeito ainda, e, de fato é bem mais simplório!
Valeu!


Responder
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira