Templates by BIGtheme NET
Willkommen, Gast
Benutzername: Passwort: Angemeldet bleiben:
  • Seite:
  • 1

THEMA:

cX.Farbe.HTML 18 Feb 2023 13:01 #1

  • daywalker
  • daywalkers Avatar Autor
  • Offline
  • Platinum Boarder
  • Platinum Boarder
  • Beiträge: 780
  • Dank erhalten: 587
Servus lieber Stefan.

In beigefügtem Skript versuche ich mit einem kleinen Programmfenster, das ich an eine bestimmte Position am Bildschirm mit der Maus hinbewege, dann irgendeine Taste
drücke und so einen Bildauschnitt aus dem darunterliegenden Desktop anzufertigen. Funktioniert. Nun hole ich mit einem Rechtsklick irgendeinen Pixelfarbwert aus diesem Teilausschnitt
und setze  damit die Hintergrundfarbe des kleinen Bildelements in der linken oberen Ecke des Programmfensters. Und nun möchte ich mit einem Klick in das Bildelement den HTML
Farbwert der Hintergrundfarbe zur weiteren Verwendung in die Zwischenablage kopieren. Bis hierher alles super . Nur der Farbhexwert ist irgendwie verdreht. Siehe Bildschirmfoto.

wobei das in Zeile 26 funktionieren würde.
#[cX.Rechts(6;[cX.Hex([cX.Anzeige.Element(Bild-Element_1).Hintergrundfarbe])])]

cX4Web cX4Web Code

Was ist das?

1  *** Farbe unter Mauszeiger
2  Anzeige-Fenster 'Pixelfarbe', ID='Anzeige-Fenster1', Breite=100, Höhe=60, Rahmen: einfach
3  Bild-Element  (ID='Bild-Element_1', X='0', Y='0', Breite='6,88', Höhe='5,82', Zielfenster='Anzeige-Fenster1', Anker: 5)
4  Warte Endlos (Warten auf zu behandelnde Ereignisse)
5  
6  *** Tastendruck liefert einen Bildausschnitt des Desktops.¶Mit den Lagekoordinaten des Programmfensters.
7  :: Anzeige(Anzeige-Fenster1)_Taste
8  Setze , MultiSet 'x1=[cX.Anzeige(Anzeige-Fenster1).X]¶y1=[cX.Anzeige(Anzeige-Fenster1).Y]¶b1=[cX.Anzeige(Anzeige-Fenster1).Außenbreite]¶h1...'
9  Warte Pause, Dauer 200ms
10  Zeichne Bild, Text '%Desktop;[x1];[y1];[b1];[h1]%', Ziel 'Anzeige-Fenster1'
11  Setze , MultiSet 'cX.Anzeige(Anzeige-Fenster1).Sichtbar=1¶cX.Anzeige(Anzeige-Fenster1).Transparenz=0'
12  Beende Unterprogramm (Zurück)
13  
14  *** Transparenz=40
15  :: Anzeige(Anzeige-Fenster1)_Bewegt
16  Setze , MultiSet '[cX.Anzeige(Anzeige-Fenster1).Transparenz]=40¶'
17  Beende Unterprogramm (Zurück)
18  
19  *** In diesem Unterprogramm kann man mit Mausklick rechts den Hex Farbwert unter dem Mauszeiger aus dem Desktopauschnitt im Programmfenster¶auslesen. Sodann wird dieser Wert als Hintergrundfarbe im Bildelement gesetzt.
20  :: Anzeige(Anzeige-Fenster1)_Maustaste_unten(2)
...

cX4Web Code: Einfach anklicken zum Kopieren und in click.EXE 5.0 einfügen


 (28 Zeilen, cX 5.0.10.0, Lizenz: Pro)




 

lg Christian
Anhänge:
Folgende Benutzer bedankten sich: Soko

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Letzte Änderung: von daywalker.

cX.Farbe.HTML 19 Feb 2023 13:13 #2

  • Stefan
  • Stefans Avatar
  • Offline
  • Administrator
  • Administrator
  • Beiträge: 1127
  • Dank erhalten: 1664
Hallo, Christian!
Ich habe dasd Gefühl, du verwechselst diese "HTML-Darstellung" einer Farbe mit der Hex-Darstellung!
In HTML sind die RGB-Komponenten halt in einer anderen Reihenfolge...

Liebe Grüße
Stefan
Folgende Benutzer bedankten sich: Soko

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

cX.Farbe.HTML 19 Feb 2023 14:35 #3

  • daywalker
  • daywalkers Avatar Autor
  • Offline
  • Platinum Boarder
  • Platinum Boarder
  • Beiträge: 780
  • Dank erhalten: 587
Hallo Stefan.

Ja wird wohl so sein, das wusste ich nicht aber könnte man das ev. in der Doku vermerken?
Die nachfolgende Zeile wie gesagt, arbeitet in dem Kontext so wie ich als Unwissender dies erwartete.

#[cX.Rechts(6;[cX.Hex([cX.Anzeige.Element(Bild-Element_1).Hintergrundfarbe])])]

Danke für Deine Mühe

lg Christian
 
Folgende Benutzer bedankten sich: Soko

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

cX.Farbe.HTML 16 Mai 2023 16:10 #4

  • Siebald
  • Offline
  • Beiträge: 79
  • Dank erhalten: 25
Hallo daywalker,
ich habe mir Dein Beispielscript angesehen. Die Bestimmung der Farbe funktioniert auch. Gibt es aber eine Möglichkeit die RGB-Farben ohne ein Kopieren des Bildschirminhaltes in ein Cx-Fenster zu bestimmen. Mir schwebt ein Programm vor, wo ich außerhalb eines Cx-Fensters die Farben des Bildschirmhintergrundes bestimmen kann und zwar dort, wo gerade die Maus geklickt wird.

Vielen Dank im Voraus.

Gruß Frank
Folgende Benutzer bedankten sich: Soko

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

cX.Farbe.HTML 16 Mai 2023 18:04 #5

  • daywalker
  • daywalkers Avatar Autor
  • Offline
  • Platinum Boarder
  • Platinum Boarder
  • Beiträge: 780
  • Dank erhalten: 587
Servus lieber Frank!

Dies wäre ein Ansatz der funktioniert. Wenn Du die linke Maustaste drückst, wird die Fensterhintergrundfarbe so gesetzt wie das Pixel unter dem Mauszeiger.

cX4Web cX4Web Code

Was ist das?

1 *** Farbpixel unter Mauszeiger
2 Anzeige-Fenster 'Infofenster', ID='Anzeige-Fenster1', Breite=151,61, Höhe=35,98, oben auf
3 Warte Endlos (Warten auf zu behandelnde Ereignisse)
4
5 :: System_Mausaktion (keine rekursiven Aufrufe)
6 Wenn (? '[cX.Bildschirm.MausTaste]=1'), ""
7 Setze , MultiSet 'cX.Anzeige(Anzeige-Fenster1).Hintergrundfarbe=$[cX.Bildschirm.Farbe([cX.Bildschirm.MausX];[cX.Bildschirm.MausY])]'
8 Ende Wenn
9 Beende Unterprogramm (Zurück)

cX4Web Code: Einfach anklicken zum Kopieren und in click.EXE 5.0 einfügen


  (9 Zeilen, cX 5.0.10.2)

Funktioniert aber nur korrekt, wenn in der Systemeinstellung das gelb markierte mit 100% eingestellt ist.



lg Christian
Anhänge:
Folgende Benutzer bedankten sich: Soko, Siebald

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Letzte Änderung: von daywalker.

cX.Farbe.HTML 17 Mai 2023 07:32 #6

  • Siebald
  • Offline
  • Beiträge: 79
  • Dank erhalten: 25
Hallo daywalker,
vielen Dank für das Demo-Script. Es funktioniert erst einmal.
Ich werde jetzt noch versuchen die RGB-Werte der Click-Position zu ermitteln.

Gruß Frank

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

  • Seite:
  • 1

Community

Wir benutzen Cookies

Wir nutzen Cookies auf unserer Website. Diese Cookies sind essenziell für den Betrieb dieser Website. Sie können selbst entscheiden, ob Sie die Cookies zulassen möchten. Bitte beachten Sie, dass bei einer Ablehnung womöglich nicht mehr alle Funktionalitäten der Seite zur Verfügung stehen.

Sie sind noch nicht Mitglied unserer Community? Melden Sie sich jetzt an!

Anmelden