Avatar billede gantz Nybegynder
20. april 2004 - 11:00 Der er 10 kommentarer

Hjælpefunktion til brugerformular

Hej  mde jer,
jeg skal bruge lidt hjælp. Jeg sidder og laver en Wordskabelon i (arbejder i officepakken XP),hvor der popper en indtastningsformular op, når brugeren åbner skabelonen. f.eks.

Titel: (her er et indtastningsfelt)
Undertitel: (her er et indtastningsfelt)
Resume: (her er et indtastningsfelt)

Når brugeren så skal have lidt hjælp til de forskellige felter, er jeg lidt på skideren, for den eneste indbyggede hjælpefunktion der er til disse brugerformulare er en "Alt-tekst" lignende funktion. Det jeg gerne vil have er, at brugeren kan trykke på F1 og så popper der en forklarende tekst frem til de pågældende felt man står i. Eller noget lignende. Kan i hjælpe mig?
Avatar billede martin_moth Mester
20. april 2004 - 11:09 #1
Lav en chm-fil (windows hjælpe fil - der findes en million shareware programmer der kan det, søg f.eks. på tucows)

Herefter læser du her:
http://www.eksperten.dk/spm/Programmering/Visual-Basic/?sort=&order=DESC&status_1=on&status_2=on&status_3=on&spm_creator=&spm_part=&spm_answer=&find=chm&engine=exp
Avatar billede martin_moth Mester
20. april 2004 - 11:11 #2
Eller laver en form, hvor du skriver hjælpeteksten, som du loader når brugeren trykker F1 eller på en "Hjælp" knap e.l. hvis du vil gøre det mere simpelt.
Avatar billede gantz Nybegynder
20. april 2004 - 11:31 #3
Jeg tror at jeg tager sidstnævnte ide. Men hvordan sørger jeg for at den form jeg laver, kommer frem når jeg trykker F1 mens min egen indtastningsformular er fremme, og hvis indtastningsformularen ikke er fremme, så er det bare Words egen hjælp der dukker frem når man trykker F1.
Avatar billede martin_moth Mester
20. april 2004 - 11:51 #4
Det kræver jo at formen har focus.

Hvis du har word og excel tændt, og du trykker F1, er det jo det program der har fokus hvis hjælp kommer...

Brug keypress / keydown eventen, tjek hvilken tast der blev tastet, er det F1 så load din form

Eller lav en knap der hedder "hjælp" der loader formen i dens Click event
Avatar billede gantz Nybegynder
20. april 2004 - 11:54 #5
Hey martin har du et eksempel på det første forslag. Jeg er ikke stærk i VBA kode, så det ville være fedt med et eksempel (KeyDown)
Avatar billede gantz Nybegynder
21. april 2004 - 16:34 #7
Hey Martin, kom lige lidt væk fra det. Men nu er jeg ved at være færdig. Problemet er bare at jeg har den UserForm der hedder "Kolofonoplysninger" og hvis brugeren skal have hjælp, så kan de trykke Ctrl+F1. Derved skal det være muligt at åbne UserFormen "Help". Min kode ser sådan her ud, men jeg kan ikke aktivere "Help" vinduet, når "Kolofonoplysninger" vinduet er åbent. hvad skal jeg gøre

Sub Helping()
    Application.Run MacroName:="help_form"
End Sub
Avatar billede martin_moth Mester
21. april 2004 - 19:47 #8
Den kode forstår jeg ikke.

Hvad er der i vejen med

  help_form.Show

Jeg forstår heller ikke hvad du spørger om. Kan du ikke få formen vist, kan du ikke fante tastetrykket, hvad? Du har ikke vist den kode der fanger tastetrykket...
Avatar billede gantz Nybegynder
22. april 2004 - 09:45 #9
Hey Martin, problemet er at jeg har optaget macroen og tildelt den en genvejstast inden jeg optog den. Når jeg kigger i VBA koden for maroerne, står der bare det her (ovenstående). Jeg kan heller ikke se F1 optræder nogle steder i koden.

Min opgave er, at når brugeren åbner et nyt dokument, så springer der en indtastningsform(UserForm) frem. Her kan man skrive Titel, Undertitel, Resume osv. Hvis der er en bruger der ikke ved hvad undertitel er, så skal vedkommende kunne trykke på Ctrl+F1 og så åbnes der endnu en UserForm, med forklarende tekst i. Men det kan åbenbart ikke lade sig gøre at have 2 UserForms åbne på samme tidspunkt.
Avatar billede martin_moth Mester
22. april 2004 - 09:59 #10
F1 optræder ikke i koden - det er sgu nok fordi du ikke har skrevet noget kode med F1, tror du ikke?

Der kommer næppe nogle nisser og skriver koden til F1 for dig i nattens mørke;o)

Spøg til side...

Den kode som excel automatisk optager for dig, er ofte meget anderledes end det du egentligt ønsker... Og du kan sagtens have to forme loadet samtidig.

Jeg går ud fra at du godt kan få loadet "hovedform", ikke?

I dens keypress-event skriver du koden til at loade din help_form. Og det er vist i ovenstående links. Har ikke lige tiden til at pinde det helt ud for dig nu, så undersøg selv eller vent. Du skal selv ind og taste koden ind, du skal IKKE i gang med at optage.

Hvis du vil gøre det meget simpelt, så smit en commandbutton på din hovedform, og i dens _click-event skriver du form_help.show. Altså:

Åben din hovedform i VBA editoren
Smid en knap på formen.
Skift dens caption til f.eks. "Hjælp"
dobbeltklik på den, så du kommer ind til den _click event
Copy-paste koden "form_help.Show"
Voila!
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