24. november 2012 - 19:48 Der er 21 kommentarer og
1 løsning

Hente farve fra en JavaScript popup

Hej,

Jeg har 3 <input type=text ..> , som skal have forskellige farve. Det kan jeg gøre med style BGcolor osv. men jeg skal også have mulighed for at skifte farve i disse bokse online. Jeg havde tænkt mig at gøre dette med en JavaScript colorPicker, hvor jeg så returnerer farven fra denne COLORPICKEr til et Js-script, som så igen sætter farve på aktuelle <text-box>.

Altså et klik på <input text-boksen popper ColorPIcker'en (pop-up) op, jeg vælger en farve (klikker på en farve) og denne farve sættes i den kaldende <input text-box...>

Men hvordan gør jeg det ???

Jeg er absolut ikke nogen ørn til JS - til orientering.

Kristian
Avatar billede olebole Juniormester
24. november 2012 - 21:03 #1
<ole>

Har du prøvet en søgning som denne? Allerede det første resultat kunne se lovende ud  =)

/mvh
</bole>
Avatar billede Slettet bruger
25. november 2012 - 14:51 #2
Kan du forklare lidt mere om hvorfor - hvad du vil opnå ?

Textinput plejer at handle om at brugeren sender noget information til serveren (kort sagt)
- skal farvevalget være en del af denne information ?
25. november 2012 - 16:35 #3
HEJ

TIL: T4NK32

Indledningsvis:

Projektet er:

Lad Delphi (som har regnekraften, men "elendig skærmvisning") kommunikere med en Webbrowser (HTML som er "bygget" til visning). Afhængig af bruger klik på en "web-side" (I ""-tegn  da de jo i sagen natur ikke er web-sider men HTML-sider) vil browseren (som er under Delphi-control) sende til Delphi, som gør noget fornuftigt (eks. opdaterer siden eller opdaterer databasen og genudsender data).

Projektet indebærer noget tidsbestilling, og da vil FORTID indkere at TIDBESTILLING ikke er mulig. Det vil jeg gerne symbolisere grafisk (det læses bedre), og derfor skal bruge have mulighed for at skifte (som det passer ham/hende).     

De tre <input type='text' color='xxxx' .. osv, repræsenterer farver som skal bruges i Tidsbestillinsskemaet på en anden HTML-side. <inp box 1 skal repræsentere "FORTID", <inp box 2 repræsenterer "NUTID" (i praksis er det dagen i dag ) og <inp box 3 er således "FREMTID" (dvs. fra i morgen (fra 24:00) og videre frem i tiden.)

Teksten i disse <inp box'e er uden betydning. Det er KUN farven, som er af betydning.

Jeg kunne principielt "bare" bruge en <TD .. bgcolor="color">..</TD> men jeg synes at en <input box er kønnere...

Men er ved at afprøve en acceptabel løsning.

Kristian
Avatar billede Slettet bruger
25. november 2012 - 18:20 #4
Lad mig se om jeg har forstået..

Din bruger, tilgår Delphi med en browser, for at oprette/generere forms til tidsbestilling, som derefter skal bruges ude på en "rigtig" webserver ?

Og du vil give dem mulighed for at vælge farver - på Delphi-tidspunktet
- ikke senere, når selve formen skal udfyldes (ved tidsbestillingen)

Er det rigtigt forstået ?

Uanset.. Min favorit-colourPicker er Farbtastic
- Sitet er lidt sært (i chrome..) - du skal scrolle ned, for at få en flad side : )
Avatar billede Slettet bruger
25. november 2012 - 18:30 #5
Hov, den oprindelige udvikler har fået nok!
- projektet er overtaget af frivillige, og ligger nu hos Google:
http://code.google.com/p/farbtastic/
Avatar billede olebole Juniormester
25. november 2012 - 18:57 #6
"Er det rigtigt forstået ?"

Det tvivler jeg stærkt på. Mon ikke der er tale om et alm. Windows program, skrevet i Delphi, som bruger en browserkontrol som interface?

@snestrup2000: Der findes et hav af JavaScript color pickers 'derude' - og de fleste er ret lette at implementere. Find en, du synes ser godt ud, så kan vi tage den derfra  =)
25. november 2012 - 19:21 #7
HEJ,

ang indlæg #4 (og 5):

Jeg har vist ikke forklaret det tydeligt nok (= min fejl):

Et Delphi genereret program kommunikerer med sine brugere via en Webbrowser. Denne browser kører lokalt på en maskine (og har kun kontakt til Cyberspace (www.xxx ) gennem sit Interface som den deler med Internet Explorer (eller hevd det nu er for en !)).

Delphi genererer ALLE html-siderne, som skal vises i programmet (også opdateringssiden, som er en eneste "udadvendte" side, idet her tillades det brugeren at gå på "nettet") , alle de andre har IKKE web/net-kontakt, men er opbygget som HTML sider, fordi - som nævnt - jeg finder at DElphi's egne sider ikke har den skønhed og æstetik, som kan opbygges med HTML (css/javascript (pHP er udelukket da det kræver serverkontrol)).

Kommunikationen mellem Delphi og de(n) enkelte HTML-side sker delvis via Webbrowserens Interface (det tog en hulens tid at finde en som tilfredsstillede de ønskede krav (det er ikke en MS'-udgave !) og dels mellem et special designet JavaScript Interface (som "samarbejder med webbrwsrens interface) - en slags "AJAX/JAVA-interface".

Med dette kan jeg nu kontrollere hver eneste tag / STYLE på den pågældende HTML-side. (JavaScript og interfacet nævnt ovenfor).
Men forhold som kun vedrører den enkelte HTML-side (skift af farve på "fortids-boksen" til blå berører ikke Delphi basen væsentligt og kan derfor gøres med et lokalt JavaScript. Dette forhold vil være gyldigt for flere sider. I regnskabs-data, løndata (personale), kundedata, varedata og sikkert også flere sider, som jeg får udviklet programmet.

Eksempelvis:

Bruger går ind på Tidsbestillingssiden (HTML). Er egentlig lidt træt af farven for fortid og vil gerne sksifte til lyserød (for at overdrive). Klikker på opsætning (Ny HTML-side). Klikker på fortid (<input type text color="fortidsfarven" ..> ) , op popper en ColorPicker , bruger vælger LYSERØD . Farven i <input type text color="fortidsfarven" ..> skifter til <input type text color="lyerød" ..>. Bruger klikker sig bort fra siden (eks tilbage til tidsbestilling og da vil alle fortids-referencer nu være markeret med farven LYSERØD.

Det alene for at kunne skelne mellem nutid og fremtid og det læses bedre grafisk.

Håber det retter det op .

Kristian
25. november 2012 - 19:35 #8
HEJ OLEBOLE

Din skitserede ColorPicker virkede som en drøm da jeg fik den downloaded og rettet lidt til. Men da jeg lagde den i i D7 programmet var den død som en sild. Hentede den ind i Firefox (FF) (no problemer), hentede den ind i IE (7) no problemer,  men i D7 -- .. (suk og atter suk) (FA(censur)NS masse problemer, Javascript klik fejl, og /eller ingen kontakt med scriptet overhovedet.

Undersøgte HTML-koden (min loader) og testede i FF - virkede perfekt, IE - virkede igen perfekt - D7  overhovedet ikke.

Droppede denne løsning - fandt en anden (ikke nær så køn som den første) men den virker alle 3 steder. 

Så indtil en anden findes (og tak for rådet) må brugerne "nøjes" med den (og jeg har en automatisk opdateringsparameter i version 271.10.14 (hehe)).

KRistian
Avatar billede olebole Juniormester
25. november 2012 - 19:52 #9
Hmmmm ... det lyder pudsigt. Jeg bruger selv .NET til Win-applikationer, så jeg kan ikke engang teste mig frem til fejlen. Det vil nok kræver en del alerts nede i JS-filen - men det må jeg desværre renoncere på  :o|
Avatar billede Slettet bruger
25. november 2012 - 20:44 #10
Ahh, så det er en egentlig applikation, bare med en HTML/JS interpreter som user-interface.
- og den er, gætter jeg, ikke glad for at få hele hele jQuery-maskineriet oven i hatten.

Nu ER farver på web jo ikke særligt kompliceret, 0-255 i styrke for hver af de 3 grundfarver = 3-bytes.

Med et system som dækker både økonomi, løn, varer og kunder, er du åbenbart ingen "vårhare" : )
- hvorfor laver du ikke bare én selv - reverse engeneer f.eks. Farbtastic - uden jQuery

Eller prøv én uden jQuery (ren JS) f.eks.: http://www.colorpicker.com
Avatar billede Slettet bruger
25. november 2012 - 20:49 #11
Arh, der var jeg for hurtig - dén bruger mootols = ikke ren JS.
Denne her er ren JS: http://jscolor.com
Avatar billede olebole Juniormester
25. november 2012 - 21:02 #12
"- og den er, gætter jeg, ikke glad for at få hele hele jQuery-maskineriet oven i hatten."

- og nu er det så MooTools, Delphi ikke er gode venner med. jQuery og MooTools er fuldstændig 'ren JS', så har du andet end gætterier at bygge antagelserne på?  =)

Spørger er Delphi-mand og er, såvidt jeg husker, ikke super stærk i JS. Uanset, hvad man måtte kunne med Delphi, behøver man jo ikke være stærk i JS  =)
Avatar billede olebole Juniormester
25. november 2012 - 21:13 #13
Det, spørgeren bruger, er en ganske almindelig browser kontrol (= Internet Explorer) i et Delphi program.

Hele interfacet er skrevet i HTML/CSS/JS og afvikles i browseren. JS i browseren kan kalde sin 'Delphi skal', som udfører hele arbejdet med filsystem o.lign.

Det er en meget almindelig måde at skrive programmer på. Programmer med et lækkert, ikke-Win-agtigt interface er ofte lavet i alm. HTML.

Et af problemerne kan være, at ens kode ligger forholdsvis åben, når man læser exe-filen i en editor. Den kan dog rimelig enkelt krypteres, så den bliver ulæselig ... i det omfang, man nu engang kan skrive ulæselig kode  =)
25. november 2012 - 22:44 #14
Kommentar til OleBOle #13 og T4NK32 # 11

OleBOle #13:

"Det er sgi da osse helt umuligt at skjule noget for dig !! DAMN "
(+ hehe )

T4NK32 # 11:

Den JSColor er faktisk den jeg bruger nu. Det er en nødløsning (#8) men det er den eneste, som HIDTIL ser ud til at fungere (har prøvet 2). Men den del / sag er ikke afsluttet endnu...

De Rå-HTML-filer skal senere krypteres/dekrypteres (har enheden og testet og funker). Tank er at de læses ind som stream, dekrypteres, modificeres i overensstemmelse med D7-baserne og sendes som STREAM ind i Twebbrowseren.
Avatar billede Slettet bruger
25. november 2012 - 23:06 #15
Hvad er der galt med den, så ?
- Den er da dejligt lille og letforståelig for brugeren..
Avatar billede olebole Juniormester
25. november 2012 - 23:25 #16
@snestrup2000: Er du opmærksom på, at visning af JS-fejl i borwserkontrollen hænger sammen med dine alm. IE-indstillinger? Er fejlmeldinger slået fra i IE, er de det også i kontrollen.

Gå ind under 'Internetindstillinger' i IE. Vælg 'Avanceret' og sæt check i 'Vis en meddelelse om hver scriptfejl' ... ca. 1/3 nede på listen hos mig. Så viser browserkontrollen også JS-fejl. Ellers er det umuligt at finde ud af, hvad der foregår, når 'Plan A' knækker  =)
Avatar billede olebole Juniormester
25. november 2012 - 23:54 #17
PS: Efter, man har overladt det til chimpanser og dermatologer at vedligeholde WWW's koder, er det i øvrigt blevet en pine i nakken at have fejlmeldinger slået til. Og øjensynligt er det sket i takt med udbredelsen af 'færdige' JS-libraries  :o|

At slå meddelelserne fra i første fejldialog er let nok, men det er irriterende, at man skal ned og rode så dybt for at slå dem til igen. En løsning er at skrive et lille Delphi program, der toggler denne RegKey:

HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\Error Dlg Displayed On Every Error

Jeg har selv skrevet en HTA (HyperText Application) uden chrome, som altid ligger 'på' mit skrivebord, når jeg booter maskinen. Et enkelt klik skifter mellem 'On' og 'Off':

http://img231.imageshack.us/img231/5299/closedr.png
http://img22.imageshack.us/img22/7944/menuuw.png
http://img87.imageshack.us/img87/6816/settingsr.png

Jeg aner ikke, hvad jeg skulle gøre uden  =)
26. november 2012 - 03:33 #18
Hej,

Klokken er 03:39 - min seng rååååååååååååååber på mig - ser på det i morgen, når jeg er blevet menneske igen (dsv. KAFFE, KAFFE, KAFFE og en enkelt skive med Jordbærsyltetøj er i mit system) og lokalcomputeren  (den mellem ørerne ) er bootet færdig (kaffe er i den grad en accelerator.- sku jeg bare hilse og sige ... !.

GO'NAT
01. december 2012 - 15:10 #19
HEJ

Har fået løst problemet.

Ved at anvende en teknik fra et andet problem

(se : eksperten.DK  Overføre data fra en HTMLside til en anden (fast) HTMLside . )

Samme metode kan anvendes i denne problemstilling. derfor lukker jeg dette spørgsmål om een uge fra dato (01-12-2012).

Eventuelle point-tagere bedes melde ind inden een uge fra dato.

Kristian
Avatar billede olebole Juniormester
01. december 2012 - 16:14 #20
Jeg samler som bekendt ikke point, så de må tilfalde andre  =)
01. december 2012 - 20:42 #21
OK !

PS: Vi kan altså bare ikke blive ved at mødes på denne måde. (hehehehehehehehe stille fnisen i det længst væk hjørne i ca. 15 minutter (+/- dx/dt = ? - hæhæ !)

KRISTIAN
20. december 2012 - 07:37 #22
LUKKER (og slukker)
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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