17. juni 2011 - 01:14 Der er 7 kommentarer og
1 løsning

Hent Componentens navn (dynamisk):

HEj

Jeg har en form med en masse Edits, en masse buttons, et par Stringgrids, et par Combobokse og et par Listbokse.

Når min bruger sætter Cursoren (= 'kødbenet' ) på denne komponent og trykker F1 (funktast F1) er det meningen at der skal poppe en hjælpetekst i HTML op.

At lave det den gammeldags måde er nemt i Delphi, men brugeren vil have ÅBNE HJÆLPEFILER i HTML med selvvalgte BRUGER-NAVNE.

Min ide er at lade Componentens (Edit1 eks) være det første item i en tabel og 2. item er brugerens FILNAVN. 

EKS;

Edit1  ;  Edit1-hjælp.htm ;    (* måske lidt søgt *)
Button1 ;  button1-hjælp.htm ;

OSV...

Jeg kunne gøre det på følgende måde:

Procedure TForm1.Edit1Exit(sender ..... )

BEGIN
  UserfilNavn := FindUserfilNavn('Edit1');
  ....

  ...
END;

Men hvis jeg senere ændrer EDIT1 til et mere beskrivende navn er jeg ikke særlig godt kørende , så istedet kunne jeg tænke mig at jeg hentede komponentens navn dynamisk.

(( I JavaScript svarer det det DOCUMENT.THIS.NAME i LC Ascii ))

Det eneste jeg erindrer er :  Form1.Component.

Og her er det så jeg ikke kan huske resten af syntaksen:  ???

HJÆLP !!


Kristian
Avatar billede hrc Mester
17. juni 2011 - 11:07 #1
At hente navnet når programmet kører, er ikke en dynamisk løsning. At navnet ikke ændres er stadig essentielt. Det lyder som en rigtig fusk-løsning (dog uden jeg helt forstår hvad du vil lave; noget med at vise hjælp i en browser når man trykker F1, ikke?)

Kan du ikke bruge TWinControls HelpContext og HelpKeyword og så håndtere det i formens OnHelp?
17. juni 2011 - 12:55 #2
Hej,

Tak for kommnetaren....

At det ikke er den mest intelligente løsning er jeg godt klar over, men når du har et project hvis deadline er i går og hvor brugerne forventer at en ide, de foreslår (og som sikkert er god i deres øjne) er implementeret i version 1.00 (nuv. er ver. 4.02), må jeg ofte bruge Askepot-modellen (du ved hugge en hæl, klippe et par tæer, osv ).. og så finde på noget hurtigt...

Jeg er ikke bekendt med TWINControl HelpControl --  kan du give mig et link ??

KR
Avatar billede martinlind Nybegynder
17. juni 2011 - 13:07 #3
alle comps har en property der angiver hjælpe - text

meen det lyder som det er brugeren der skal skiftes ud :-)
Avatar billede hrc Mester
17. juni 2011 - 13:54 #4
Alle komponenter nedarver fra den klasse så de har en HelpContext der er en integer, som unikt identificerer komponenten. Den anden property, HelpKeyword er en string og den kan du måske bruge som en url?

Trykker de /!"#%"!¤!"¤#/"! brugere på F1, så trigger det et OnHelp-event på formen og der kan du sikkert fange oplysningerne (tror jeg nok; har aldrig lavet hjælp til mine programmer - de er selvforklarende). Det ser ud til at parameteren Data enten er HelpContext. Kan ikke læse hvor HelpKeyword bliver brugt
17. juni 2011 - 16:10 #5
Hej

Tak for kommentarerne.....

Men som dansk programmør i Norge og konservative brugere ....
(uden diskussion om det er Nynorsk eller Bokmål ... Det er et kapitel for sig selv....  )..

Det er derfor bruger-ne/en vil have mulighed for at skrive deres hjælpetekst(er) selv.. Det er så min opgave at finde den nemmeste måde at gøre det på.... og så be til skt. Olav (Norges skytsånd) at de falder i nåde for de kritiske blikke.....og jeg troede også, at de programmer jeg lavede var selv-forklarende (til jeg mødte brugergruppen her.... ! ).

Well, Jeg vil ihvertfald prøve de skitserede ideer. Og foreløbig tak for hjælpen.

Kr
Avatar billede martinlind Nybegynder
17. juni 2011 - 16:18 #6
Der findes da freeware hjælpe-fils værktøjer.... så skal du ikke bare lave det sådan at de "selv kan rette" hjælpe-filen :-)
17. juni 2011 - 16:40 #7
Der er 3 UFRAVIGELIGE krav:

1:  Hjælp skal være i HTML (presenteres i enten en TWebbrowser eller i en PSVDisplay-boks (som reelt er en reduceret TWebbrwsr)
2:  Bruger skal have mulighed for at ændre FIL-NAVNET .. (Spørg ikke mig hvorfor -- (??)  ) ..

3: Hjælp skal være ÅBNE-filer...

og det gør det hele lidt mere kompliceret.

Ad 1:)
Det er ikke det største problem- det er bare at lave noget HTML tekst og så skrive det ind, så kan bruger selv rette senere.

Ad 2:) Med skiftbare fil-navne (som jeg synes er IDIOTISK, men det ville ikke undre mig hvis det også bliver ændret i ver. 5.XX) skal programmet hele tiden have styr på hvilken fil går til hvilken component OG SÅ SKAL tabellen endda være åben (suk !!!)

og så var deadline i version 1.0 (naturligvis (nu er det 4.02)) MER SUK !

Jeg tror jeg løser det på en super hurtig USMART -løsning og når brugerne er tilfredse (læs: holder kæft) går jeg ind og retter det til en smartere og meget mere elegant løsning.

KR
14. juli 2011 - 11:06 #8
Lukker problemet...
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