Deutsch
Forum

Create Text in anderen Farben

 

Erasmus.Herold
Hallöchen ...

Ich benutzte folgenden Ansatz, um Schriftart und Größe zu bestimmen.
hFont& = create("Font", "Arial",14,0,0,0,0)
setdialogfont hFont&
create("text", fenster_darueber%, "Hallöchen ...", 115, 310, 150, 18)

Wie kann ich die Textfarbe auf einen von mir gewählten RGB Wert setzen?
Leider keinen passenden Ansatz gefunden.

Gruß
Erasmus
 
21.08.2019  
 




Georg
Teles
Hallo, schau mal in der Hilfe
'-Begin-----------------------------------------------------------------
'-HeaderFiles---------------------------------------------------------
 $H Windows.ph
 $H Messages.ph
'-Variables Declaration-----------------------------------------------
Declare Ende%, OldWndProc&, hButton%
Declare hText1%, TextBk1&, hText2%, TextBk2&, hText3%, TextBk3&
'-CallBack Routine----------------------------------------------------

Proc ColorText

    Parameters hWnd&, Message&, wParam&, lParam&

    If Message& = ~WM_CTLCOLORSTATIC

        '-Fuer Text1 Farbe setzen---------------------------------------

        If lParam& = hText1%

            ~SetBkMode(wParam&, ~TRANSPARENT)
            ~SetTextColor(wParam&, @RGB($FF, $00, $00))'-Rot-----------
            Return TextBk1&
            '-Fuer Text2 Farbe setzen---------------------------------------

        ElseIf lParam& = hText2%

            ~SetBkMode(wParam&, ~TRANSPARENT)
            ~SetTextColor(wParam&, @RGB($00, $00, $FF))'-Blau----------
            Return TextBk2&
            '-Fuer Text3 Farbe setzen---------------------------------------

        ElseIf lParam& = hText3%

            ~SetBkMode(wParam&, ~TRANSPARENT)
            ~SetTextColor(wParam&, @RGB($00, $FF, $00))'-Gruen---------
            Return TextBk3&

        EndIf

    Else

        Return ~CallWindowProc(OldWndProc&, hWnd&, Message&, \
        wParam&, lParam&)

    EndIf

EndProc

'-Main----------------------------------------------------------------
'-Hintergrundfarben festlegen---------------------------------------
TextBk1& = ~CreateSolidBrush(@RGB($00, $FF, $FF))'-Cyan----------
TextBk2& = ~CreateSolidBrush(@RGB($FF, $FF, $00))'-Gelb----------
TextBk3& = ~CreateSolidBrush(@RGB($FF, $00, $FF))'-Magenta-------
'-Erweitertes MessageHandling abschalten----------------------------
Set("FastMode", 1)
'-Fenster oeffnen---------------------------------------------------
Window 0, 0 - 640, 480
'-ProgramMainRoutine mit CallBack umleiten auf eigene---------------
OldWndProc& = ~GetWindowLong(%hWnd, ~GWL_WNDPROC)
~SetWindowLong(%hWnd, ~GWL_WNDPROC, @ProcAddr("ColorText", 4))
'-GUI aufbauen------------------------------------------------------
hButton% = @Create("Button", %hWnd, "Ende", 10, 10, 100, 24)
'-Textfelder------------------------------------------------------
hText1% = @Create("Text", %hWnd, " Farbiger Text1", 10, 50, \
110, 18)
hText2% = @Create("Text", %hWnd, " Farbiger Text2", 10, 70, \
110, 18)
hText3% = @Create("Text", %hWnd, " Farbiger Text3", 10, 90, \
110, 18)
'-Dialog-Schleife---------------------------------------------------
Clear Ende%

WhileNot Ende%

    WaitInput

    If %Key = 2

        Ende% = 1

    ElseIf @Clicked(hButton%)

        Ende% = 1

    EndIf

EndWhile

'-Fuellmuster freigeben---------------------------------------------
~DeleteObject(TextBk1&)
~DeleteObject(TextBk2&)
~DeleteObject(TextBk3&)
'-Urspruengliche ProgramMainRoutine wieder herstellen---------------
~SetWindowLong(%hWnd, ~GWL_WNDPROC, OldWndProc&)
'-End-------------------------------------------------------------------
End

Alternativ kannst Du die SKControl.dll von Sebastian benutzen

Grüße
 
XProfan X2
TC-Programming [...] 
XProfan 8.0 - 10.0 - X2 - X3 - X4

21.08.2019  
 




p.specht

Ich bin offenbar zu einfach gestrickt:
Wieso nicht einfach UseFont und TextColor?
 
XProfan 11
Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'...
21.08.2019  
 




Erasmus.Herold
@Georg - so ein Monster nur für Farbe?
 
21.08.2019  
 




Georg
Teles
Nunja, Windows macht das einfach so hier die kürzere Variante
 $H Windows.ph
 $H Messages.ph
Declare Ende%, OldWndProc&, Text1&, Text2&, Text3&, BG&

Proc ColorText

    Parameters hWnd&, Message&, wParam&, lParam&

    If Message& = ~WM_CTLCOLORSTATIC

        If (lParam& = Text1&) | (lParam& = Text2&) | (lParam& = Text3&)

            'Statt SetBKMode + Return kann folgende Zeile alternativ verwendet werden
            '~SetBkColor(wParam&, RGB($00, $00, $00))
            ~SetBkMode(wParam&, ~TRANSPARENT)
            ~SetTextColor(wParam&, RGB($FF, $00, $00))
            Return BG&'für Hintergrundfarbe
            'Return 0 'für Transparenz

        EndIf

    Else

        Return ~CallWindowProc(OldWndProc&, hWnd&, Message&, wParam&, lParam&)

    EndIf

EndProc

' Hintergrundfarbe = Grün
BG& = ~CreateSolidBrush(RGB($00,$FF,$00))
Set("FastMode", 1)
Window 0, 0 - 640, 480
OldWndProc& = ~GetWindowLong(%hWnd, ~GWL_WNDPROC)
~SetWindowLong(%hWnd, ~GWL_WNDPROC, @ProcAddr("ColorText", 4))
Text1& = @Create("Text", %hWnd, " Farbiger Text1", 10, 50, 110, 18)
Text2& = @Create("Text", %hWnd, " Farbiger Text2", 10, 70, 110, 18)
Text3& = @Create("Text", %hWnd, " Farbiger Text3", 10, 90, 110, 18)
Clear Ende%

WhileNot Ende%

    WaitInput

    If %Key = 2

        Ende% = 1

    EndIf

EndWhile

~DeleteObject(BG&)
~SetWindowLong(%hWnd, ~GWL_WNDPROC, OldWndProc&)
End

Grüße
 
XProfan X2
TC-Programming [...] 
XProfan 8.0 - 10.0 - X2 - X3 - X4

21.08.2019  
 




p.specht

Hallöchen ...

Ich benutze folgenden Ansatz, um Schriftart und Größe zu bestimmen:
Cls
UseFont "ARIAL",14,8,0,0,0
TextColor Rgb(255,0,0),Rgb(100,255,100)
DrawText 10,100," Farbiger Text1 "
TextColor Rgb(0,0,255),Rgb(100,255,255)
DrawText 10,120," Farbiger Text2 "
TextColor Rgb(0,25,0),Rgb(250,0,250)
DrawText 10,140," Farbiger Text3 "
WaitInput

Um die Farbe im Nachhinein zu ändern, schreibe ich drüber. Naiv, klappt aber.
 
Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'...
21.10.2020  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

5.489 Betrachtungen

Unbenanntvor 0 min.
Sven Bader22.11.2023
Hans Neff19.01.2023
H.Brill22.11.2022
Rc31.01.2022
Mehr...

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie