madshenrik,
nej problemet er noget andet:
Når man laver en statusbar og sætter application.onhint := vis_hint_procedure; gælder denne for hele applikationen, d.v.s. også for de forms der vises efter hovedformen. Men det specielle der er ved den statusbar jeg viste er at den også implementerer onhint når et felt har fokus. Problemet er bare at dette gælder for hver form.
Der er derfor ikke nogen umiddelbar løsning på problemet ud over at udstyre hver form med en statusbar og lave samme krumspring i hver form for at få den til at virke.
MEN.. Der kommer et andet problem: Hvis man sætter Applikation.onhint i en underform (f.eks. form2) og denne form free's når den afsluttes, som vil den form du kommer tilbage til forsøge at vise sine hints i din statusbar der blev frigivet sammen med form2 og du vil få en access violation error.
Løsningen på dette problem er følgende:
form1:
formcreate:
applikation.onhint := vis_hint1; // proceduren vis_hint1 findes i form1.
procedure knapklik; // kalder en ny form
begin
applikation.onhint := nil;
form2 := tform2.create(applikation)
form2.showmodal;
form2.free;
applikation.onhint := vis_hint1;
end;
Og i form2's create sætter du så:
applikation.onhint := vis_hint2; // proceduren vis_hint2 findes i form2.
D.v.s at du disabler onhint eventen inden du skaber den nye form, og sætter den igen når formen er freed. Dette skal du huske for hver ny form du skaber, også hvis du kalder form3 fra form2.
Det smarte med at man kan bruge statusbaren fra form1 til at vise hints for form2 og 3 når disse er mindre end form1 og man derfor stadig kan se form1's statusbar er ikke helt så smart når det gælder hints ved flytning af fokus. Jeg vil dog prøve at gennemgå den specielle statusbar der er tale om, men da det ikke er en jeg har lavet selv vil jeg ikke love at jeg kan løse problemet. Statusbaren er lavet af en englænder og jeg fandt den på
http://www.undu.com under tips og tricks, hvis nogen skulle have lyst til at prøve selv.