Seite 1 von 1

Mit Gra-Funktionen Text schreiben

Verfasst: Mo, 20. Apr 2020 17:23
von ij1972
Hallo zusammen.
Habe die Tage mit den GraFunktion gespielt und wollte folgendes schaffen.
Ich zeichne mit GraBox ein Rechteck mit der Farbe blau.
Gleich daneben ein Rechteck mit der Farbe rot.
Über die gesamte Breite der beiden Rechtecke möchte ich ein Text schreiben.
Dabei soll die Textfarbe sich verändern anhand der Hintergrundfarbe der Rechtecke.
Siehe beigefügtes Beispielbild.
Habe mit den Gra-Attributen und Mixmode gespielt, kriege es aber nicht hin.

Hat irgendwer eine Idee wie und ob man das überhaupt realisieren kann?
Danke für eure Hilfe.

Re: Mit Gra-Funktionen Text schreiben

Verfasst: Mo, 20. Apr 2020 21:26
von georg
Hallo,


also aus dem Bauch heraus: nimm nicht ein Rechteck, sondern zwei. Im ersten schreibst Du rot auf blau, im zweiten blau auf rot. Auch den Übergang (das "o") bekommst Du m.E. hin, aber dafür müsste ich jetzt eine Weile kramen (sollte ViewPort sein). Aber vielleicht hilft Dir ja dieser Ansatz weiter.

Re: Mit Gra-Funktionen Text schreiben

Verfasst: Di, 21. Apr 2020 2:31
von AUGE_OHR
hi,
ij1972 hat geschrieben: Mo, 20. Apr 2020 17:23 Hat irgendwer eine Idee wie und ob man das überhaupt realisieren kann?
ich würde die Schrift "maskieren". Dazu braucht man ein Array von Koordinaten die eine Fläche "umschliessen".
siehe dir mal diese Demo an https://www.xbaseforum.de/viewtopic.php ... 4&p=125340

Re: Mit Gra-Funktionen Text schreiben

Verfasst: Di, 21. Apr 2020 7:08
von Tom
Eigentlich aber sollte GraStringAt() das in Zusammenarbeit mit den Mixmodes können. Nur GraCaptionStr() kann es nicht. Ich schaue nachher mal.

Re: Mit Gra-Funktionen Text schreiben

Verfasst: Di, 21. Apr 2020 14:12
von ij1972
Danke für eure Antworten,
ich habe mir vorerst so geholfen, dass ich z.B.
erst die rote Box über die gesamte Fläche zeichne.
Dann "Hallo Welt" in Blau darüber zeichne.
Dann die Blau Box.
Dann "Hallo Welt" in Rot aber nur über die Länge der blauen Box.
Ist eine Lösung aber dachte mir es müsste auch mit dem Mixmode gehen.
Sollte jemand eine elegantere Möglichkeit haben, wäre das nett.
Gruß