16. marts 2000 - 09:28Der 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.
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
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.
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.
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.
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;
Det var lige det jeg søgte tak for hjælpen sjensen.
Synes godt om
Ny brugerNybegynder
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.