17. juni 2011 - 01:14Der 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.
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: ???
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?
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 ??
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
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.
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.
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.