24. november 2012 - 19:48Der 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.
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
Synes godt om
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 : )
Synes godt om
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/
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 =)
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.
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)).
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|
Synes godt om
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
"- 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 =)
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 =)
"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.
Synes godt om
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..
@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 =)
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':
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 ... !.
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æ !)
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.