Avatar billede madshenrik Nybegynder
16. marts 2000 - 09:28 Der er 6 kommentarer og
1 løsning

Hint i statusbar når onfocus

Jeg har tidligere læst her på eksperten at det er muligt at hente et hint ned i statusbaren når et objekt har focus, men problemet er bare at jeg ikke kan få det til at virke, og jeg synes egentlig også det er lidt besværligt. Derfor savner jeg lidt en onfocus event. Er der nogen derved om den findes denne onfocus event, eller om man selv kan lave den.
Avatar billede speedy Nybegynder
16. marts 2000 - 09:33 #1
Du kan ændre statusbarens autohint til true, og du skal huske at lave et nyt panel. Så virker det. Så skal du bare skrive hints i de knapper og editfelter eller hvad du nu skal bruge hints på, så kommer de automatisk derned

/SpEeDy
Avatar billede sjensen Nybegynder
16. marts 2000 - 09:51 #2
Hvis du har hints til dint knapper og felter så skal du blot lave en event i hovedmodulet (main) der hedder noget a la Vis_Hint hvor du sætter Statuspanel.simpletext[1] := application.longhint;

og i mainforms onshow eller create sætter du

application.onhint := vis_hint;

Det er det hele. Så vil du have hints i statuslinien for alle efterfølgende forms, så længe de enkelte forms ikke selv har en statuslinie.
Avatar billede madshenrik Nybegynder
16. marts 2000 - 17:39 #3
Jeg kan sagtens få det til at virke kun med musen men problemet er når det skal virke, når man bevæger sig rundt med tab tasten her skal hintet også vises. Derfor det med focus.
Avatar billede madshenrik Nybegynder
20. marts 2000 - 13:10 #4
Sjensen skulle dette virke når en knap har focus Statuspanel.simpletext[1] := application.longhint; eller er det kun når musen er over knappen.
Avatar billede sjensen Nybegynder
20. marts 2000 - 13:14 #5
nej, det er kun når musen er over komponentet, uanset hvilken komponent der har focus.

Jeg har desuden fundet en metode til at vise samme hint (og samme sted) når man via tastaturet flytter focus fra komponent til komponent. Jeg skal lige finde beskrivelsen frem og smide herop så du kan se hvordan.
Avatar billede sjensen Nybegynder
20. marts 2000 - 14:11 #6
Madshenrik, her er det så:

Det er en ny statusbar der er arvet fra den normale statusbar, men som har den egenskab at den viser hinten når focus skifter. Så længe du bare hopper rundt med markøren via tastaturet vil den vise den hint der er til den fokuserede komponent, men hvis du samtidig har den hitn slået til som jeg nævnte i mit første svar, vil den også vise hint for de komponenter man fører musen henover. Først vises den hint der gælder for den fokuserede komponent og når man så fører musen hen over en anden udskriftes hinten med den nye. Eneste problem er at den ikke re-etablerer den hint der var for det fokuserede komponent når musen flyttes til et komponent uden hint, efter først at have været på et med.

Er det for kryptisk ?? Prøv at registrere dette komponent og brug det istedet for den statusbar der følger med Delphi, så ser du hvad jeg mener. Det virker rigtigt godt.

unit MyStatusBar;  // a very small component
interface
uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,comctrls;
type
  TMyStatusBar = class(TStatusBar)
  private
    FShowControlName : boolean;
  protected
    procedure CMFocusChanged(var msg:TCMFocusChanged); message CM_FocusChanged;
    procedure UpdateStatusBar(var msg:TCMFocusChanged); message WM_USER;
  published
    Property ShowControlName:boolean read fShowControlName write FShowControlName default False;
end;
procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('MyStuff', [TMyStatusBar]);
end;

procedure TMyStatusBar.CMFocusChanged(var msg:TCMFocusChanged);
begin;
  PostMessage(handle,WM_USER,TMessage(Msg).wParam,TMessage(Msg).lParam);
end;

procedure TMyStatusBar.UpdateStatusBar(var msg:TCMFocusChanged);
begin
  inherited;
  if showcontrolname then
    SimpleText := msg.Sender.name
  else
    SimpleText := GetLongHint(msg.Sender.hint);
end;
end.

Avatar billede madshenrik Nybegynder
21. marts 2000 - 22:44 #7
Det var lige det jeg søgte tak for hjælpen sjensen.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester