Fórum problemas com HINT .. como resolver? #209123

24/01/2004

0

alguem sabe como resolver problemas com hint do tipo

eu quero por um hint com o caracter ´ | ´ (#124) ... e talz ...

mas nao funciona .... alguem tem ideia de como fazer isso funcionar corretamente ... valeuz ..

[]s :wink:


Salsa

Salsa

Responder

Posts

24/01/2004

Carlosrm

salsa,

vc está querendo exibir um hint em mais de uma linha, é isso ?

carlosrm


Responder

Gostei + 0

24/01/2004

Salsa

nao .. eu quero exibir o caracter ´|´ (#124)
no hint ... mais nao consigo por causa q ele usa a barra pra algo ...


queria saber se alguem conhece algum jeito de fazer isso!


Responder

Gostei + 0

24/01/2004

Wolverine

:lol:
procedure TForm1.Button1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
StatusBar1.Panels[0].Text:=´|OK|´
end;


Responder

Gostei + 0

24/01/2004

Cebikyn

Essa barra, é usada para separ o hint curto do longo. O hint curto é aquele que aparece qnd vc deixa o mouse por cima do componente, o longo é o que aparece no StatusBar (se não há barra, ambos são iguais). Logo, este caractere só pode ser mostrado no hint longo.


Responder

Gostei + 0

24/01/2004

Salsa

:lol: procedure TForm1.Button1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin StatusBar1.Panels[0].Text:=´|OK|´ end;



nao entendi oq a status bar tem a ver com mostrar o hint com a | (barra)

c vc adicionar hum hint assim num botao: |_aaaa_|

ele nao aparece


Responder

Gostei + 0

24/01/2004

Salsa

Essa barra, é usada para separ o hint curto do longo. O hint curto é aquele que aparece qnd vc deixa o mouse por cima do componente, o longo é o que aparece no StatusBar (se não há barra, ambos são iguais). Logo, este caractere só pode ser mostrado no hint longo.



entao nao tem como mostrar um hint em um botao assim ´ |_aaa_| ?


Responder

Gostei + 0

24/01/2004

Carlosrm

salsa,

se essa opção ajudar, ótimo. Se não, faz de conta que eu não postei nada.

troque o código ascii para 166. Em vez de uma barra vertical, aparecerão duas semi-barras verticais, uma em cima da outra, semelhante ao sinal de dois pontos.

button3.Hint := #166+´_aaa_´+166;

carlosrm


Responder

Gostei + 0

25/01/2004

Salsa

po cara valeuz ... masss nao tem jeito ... eu preciso colocar a barra no hint ... mass valeuz pela atençao ae! :wink:


Responder

Gostei + 0

25/01/2004

Beppe

Pode-se criar um descendente de THintWindow que faça isso. O THintWindow normal pega a mensagem a ser exibida com GetShortHint, então é só usar o hint inteiro.


Responder

Gostei + 0

25/01/2004

Beppe

Achei uma solução menos problemática. Só coloque um TApplicationEvents no form, crie um manipulador para o OnShowHint:

function GetHint(Control: TControl): String;
begin
  while Control <> nil do
  begin
    Result := Control.Hint;
    if Result = ´´ then
      Control := Control.Parent
    else
     Exit;
  end;
  Result := ´´;
end;

procedure TForm1.ApplicationEvents1ShowHint(var HintStr: String;
  var CanShow: Boolean; var HintInfo: THintInfo);
begin
  HintStr := GetHint(HintInfo.HintControl);
end;



Responder

Gostei + 0

25/01/2004

Wolverine

ñ, ñ aparece, coloque no hint | e ñ apareceu no status bar status bar, porem depois q eu fiz isso
StatusBar1.Panels[0].Text:= ´|´
ele aparaceu

[quote:24440ab817=´Wolverine´]:lol: procedure TForm1.Button1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin StatusBar1.Panels[0].Text:=´|OK|´ end;



nao entendi oq a status bar tem a ver com mostrar o hint com a | (barra)

c vc adicionar hum hint assim num botao: |_aaaa_|

ele nao aparece[/quote:24440ab817]


Responder

Gostei + 0

25/01/2004

Wolverine

Isso foi retirado das 800 dias do Delphi

316 - Criando uma barra de status
Para criar uma barra de status realmente útil, primeiramente coloque um componente TStatusBar (que está na paleta Win32) no seu form (vou explicar completo porque vários programadores não o conhecem e usam Panels para isso). Clique com o botão direito no StatusBar1 e escolha Panels Editor. Clique Add e pronto (se quiser colocar mais divisões - para colocar um relógio, por exemplo, é só clicar Add mais vezes).

Apesar de muitos colocarem mensagens em StatusBars no evento OnMouseMove dos componentes, o melhor modo que eu conheço para isso é usando Hints. Primeiramente altere a propriedade ShowHint para True. Depois digite o que vai aparecer no seguinte formato:

Texto que vai aparecer junto ao mouse|Texto que vai aparecer no StatusBar (onde | é Shift + \).

Nota:

* No texto que aparecer junto ao mouse, coloque uma frase pequena (ex: Imprimir). No texto que vai aparecer no StatusBar, coloque um texto mais explicativo (ex: Imprimir o relatório de vendas do mês atual).

[b:a57037cf41]* Caso você queira que não apareça nenhum texto junto ao mouse (ou seja, só no StatusBar), cuide para que o primeiro caracter de Hint seja o caracter ´|´ (sem aspas). [/b:a57037cf41]
No evento OnCreate do form, coloque o seguinte comando:

Application.OnHint := ShowHint;
Crie uma procedure na seção private do form a procedure ShowHint. Na seção implementation, coloque:

procedure TForm1.ShowHint(Sender: TObject);
begin
StatusBar1.Panels[0].Text := GetLongHint (Application.Hint);
end;
E pronto.


Responder

Gostei + 0

25/01/2004

Salsa

Achei uma solução menos problemática. Só coloque um TApplicationEvents no form, crie um manipulador para o OnShowHint:
function GetHint(Control: TControl): String;
begin
  while Control <> nil do
  begin
    Result := Control.Hint;
    if Result = ´´ then
      Control := Control.Parent
    else
     Exit;
  end;
  Result := ´´;
end;

procedure TForm1.ApplicationEvents1ShowHint(var HintStr: String;
  var CanShow: Boolean; var HintInfo: THintInfo);
begin
  HintStr := GetHint(HintInfo.HintControl);
end;


mto obrigado ... a sua soluçao foi perfeita .... []s :D


Responder

Gostei + 0

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

Aceitar