Editorgadget - Cursor in Black

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Velindos
Beiträge: 598
Registriert: 15.11.2010 10:56

Editorgadget - Cursor in Black

Beitrag von Velindos »

Hallo,
möchte meinen Cursor in Black(bzw.White zurück) schalten. Habe es versucht, komme jedoch auf keine Lösung.

Code: Alles auswählen

Procedure MyShowCursor(State)
  If State
  	While ShowCursor_(#True) < 0
  		ShowCursor_(#False)
  	Wend
  Else
  	While ShowCursor_(#False) >= 0
  		ShowCursor_(#True)
  	Wend
  EndIf
EndProcedure

If OpenWindow(0, 0, 0, 322, 180, "EditorGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
	
	MeinEditorGadget = EditorGadget(0, 8, 8, 306, 133,#PB_Editor_ReadOnly) 
	SetGadgetColor(0, #PB_Gadget_FrontColor, $AAB220)
	SetGadgetColor(0, #PB_Gadget_BackColor, $000000)
	ButtonGadget(1, 8, 143, 100, 25, "Scroll")
	
	For a = 0 To 100
		AddGadgetItem(0, a, "Line "+Str(a))
	Next
	
; DestroyCaret_(); Cursor ausblenden
; 	MyShowCursor(0)
	
	Repeat
		ShowScrollBar_(GadgetID(0),#SB_VERT,0)
		Event = WaitWindowEvent()
		
		If Event = #PB_Event_Gadget
			Select EventGadget()
				Case 1
					;SendMessage_(GadgetID(0),#EM_SCROLLCARET,0,0)            ;Scroll to the End
					;SendMessage_(GadgetID(0),#EM_SCROLL,#SB_PAGEDOWN,0)      ;Scroll One Page by One Page
					SendMessage_(GadgetID(0),#EM_SETSEL, 0, 0)
					SendMessage_(GadgetID(0),#EM_LINESCROLL,0,20)             ;20 = Go to Line No 20 so you can go to any specific line
					; 	MyShowCursor(1)
					
					; >>>>>>>>>>>    Hier möchte ich den Cursor in Black einblenden!
					
			EndSelect
		EndIf
		
	Until Event = #PB_Event_CloseWindow
EndIf
Vielleicht weiss wäre mehr?

Gruss ... Velindos
Windows 7/8/8.1/10 (32/64-Bit) |Ubuntu 10.4 (64-Bit) |Purebasic 5.71 LTS (32/64-Bit)
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Editorgadget - Cursor in Black

Beitrag von RSBasic »

Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
udg
Beiträge: 566
Registriert: 20.06.2013 23:27

Re: Editorgadget - Cursor in Black

Beitrag von udg »

Hi

also bei mir funktioniert das mit meinem Code wunderbar. der Mauspfeil wird im EditorGadget und auf deinem Button schwarz. Wusste nicht wo er nun schwarz sein soll, darum hab ich den mal auf beides gesetzt. Nun weis ich nich genau ob der schwarze Arrow Windows standard ist. bei mir ist er es. Sollte der Mauspfeil nicht schwarz werden dann meld dich noch mal, denn dann include ich den blackArrow noch in den Code.

Code: Alles auswählen

Enumeration
  #btn_scroll
  #editor
EndEnumeration

Global blackArrow1, blackArrow2
Define.i Event, EventWindow, EventGadget, EventType, EventMenu, hWnd,  cur1, cursorpos.POINT

hwnd= OpenWindow(0, 0, 0, 322, 180, "EditorGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  
  ; Ohne dies kann es zum cursor-flickern kommen
    SetClassLong_(blackArrow1, #GCL_HCURSOR, 0)
    SetClassLong_(blackArrow2, #GCL_HCURSOR, 0)
  ; Cursor laden
    cur1 = LoadImage_(0,"c:\windows\cursors\arrow_r.cur",#IMAGE_CURSOR,0,0,#LR_LOADFROMFILE|#LR_DEFAULTSIZE)

    blackArrow1 = EditorGadget(#editor, 8, 8, 306, 133,#PB_Editor_ReadOnly)
    SetGadgetColor(#editor, #PB_Gadget_FrontColor, $AAB220)
    SetGadgetColor(#editor, #PB_Gadget_BackColor, $000000)
  
    blackArrow2 = ButtonGadget(#btn_scroll, 8, 143, 100, 25, "Scroll")
   
   For a = 0 To 100
      AddGadgetItem(#editor, a, "Line "+Str(a))
   Next

   
Repeat
  Event = WaitWindowEvent()
  EventGadget = EventGadget()
  EventType = EventType()
  Gosub changecursor
     
  ShowScrollBar_(GadgetID(#editor),#SB_VERT,0)
            
  If Event = #PB_Event_Gadget
     Select EventGadget()
        Case #btn_scroll
           SendMessage_(GadgetID(#editor),#EM_SETSEL, 0, 0)
           SendMessage_(GadgetID(#editor),#EM_LINESCROLL,0,20) ;20 = Go to Line No 20 so you can go to any specific line
     EndSelect
  EndIf
      
Until Event = #PB_Event_CloseWindow
DestroyCursor_(cur1)
End

;==================================
; SUB zum wechseln des MouseCursors
;==================================
changecursor:
GetCursorPos_(cursorpos.POINT)
  MapWindowPoints_(0, hWnd, cursorpos, 1)
    Select ChildWindowFromPoint_(hWnd, cursorpos\x | cursorpos\y << 32)
      Case blackArrow1 : SetCursor_(cur1)  
      Case blackArrow2 : SetCursor_(cur1)  
    EndSelect
Return
PB v5.43 LTS + v6.02 LTS | Windows 7 x86 + 11 x64 - Gforce RTX 4090 - AMD Ryzen 9 5900X 12-Core Processor 4.2 GHz - 64,0 GB RAM,
ASUSTEK TUF Gaming X570 Plus
ASUS ROG Thor-1200P Platinum (1200W, Aura Sync, OLED Display, 0dB-Cooling)
1x 1 TByte Samsung MZ-V7S500BW 970 EVO Plus 1 TB NVMe M.2 Internal SSD
1x 2 TByte Samsung MZ-V7S2T0BW 970 EVO Plus 2 TB NVMe M.2 Internal SSD
von BiSONTE!. Kauft Hardware gern bei ihm.
Monitor:
LG 38GL950G-B 95 (38 Zoll) Ultragear Curved 21: 9 UltraWide QHD IPS
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Editorgadget - Cursor in Black

Beitrag von RSBasic »

@Velindos
Bitte genau definieren, welchen Cursor du meinst, ob Mauscursor oder Tastaturcursor (Caret).
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
udg
Beiträge: 566
Registriert: 20.06.2013 23:27

Re: Editorgadget - Cursor in Black

Beitrag von udg »

Hat mal jemand meinen code ausprobiert ob der Pfeil schwarz wird? Ob er Windows Standard ist oder ich ihn inkludieren muss.
PB v5.43 LTS + v6.02 LTS | Windows 7 x86 + 11 x64 - Gforce RTX 4090 - AMD Ryzen 9 5900X 12-Core Processor 4.2 GHz - 64,0 GB RAM,
ASUSTEK TUF Gaming X570 Plus
ASUS ROG Thor-1200P Platinum (1200W, Aura Sync, OLED Display, 0dB-Cooling)
1x 1 TByte Samsung MZ-V7S500BW 970 EVO Plus 1 TB NVMe M.2 Internal SSD
1x 2 TByte Samsung MZ-V7S2T0BW 970 EVO Plus 2 TB NVMe M.2 Internal SSD
von BiSONTE!. Kauft Hardware gern bei ihm.
Monitor:
LG 38GL950G-B 95 (38 Zoll) Ultragear Curved 21: 9 UltraWide QHD IPS
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Editorgadget - Cursor in Black

Beitrag von RSBasic »

Ja, ich. Dein Code funktioniert.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
udg
Beiträge: 566
Registriert: 20.06.2013 23:27

Re: Editorgadget - Cursor in Black

Beitrag von udg »

Supi, danke. Das Feedback wäre vom Threadersteller wünschenswert gewesen.

Grüße
PB v5.43 LTS + v6.02 LTS | Windows 7 x86 + 11 x64 - Gforce RTX 4090 - AMD Ryzen 9 5900X 12-Core Processor 4.2 GHz - 64,0 GB RAM,
ASUSTEK TUF Gaming X570 Plus
ASUS ROG Thor-1200P Platinum (1200W, Aura Sync, OLED Display, 0dB-Cooling)
1x 1 TByte Samsung MZ-V7S500BW 970 EVO Plus 1 TB NVMe M.2 Internal SSD
1x 2 TByte Samsung MZ-V7S2T0BW 970 EVO Plus 2 TB NVMe M.2 Internal SSD
von BiSONTE!. Kauft Hardware gern bei ihm.
Monitor:
LG 38GL950G-B 95 (38 Zoll) Ultragear Curved 21: 9 UltraWide QHD IPS
Benutzeravatar
Velindos
Beiträge: 598
Registriert: 15.11.2010 10:56

Re: Editorgadget - Cursor in Black

Beitrag von Velindos »

Hallo Leute,
war Unterwegs, sorry - daher jetzt erst!

Habe mich für die Variante vom Link entschieden.

Code: Alles auswählen

CreateImage(0, 16, 20)
StartDrawing(ImageOutput(0))
Box(0,0,12,20,(#Yellow ! RGB(136,136,064))) ;The req color xor The back color
StopDrawing()

Font1=LoadFont(#PB_Any,"Courier",14)

OpenWindow(0,0,0,300,190,"",#PB_Window_SystemMenu| #PB_Window_ScreenCentered)

EditorGadget(0,20,20,260,24)
EditorGadget(1,20,60,260,25)
SetGadgetFont(1,FontID(Font1))

EditorGadget(2,20,100,260,25)
SetGadgetColor(2,#PB_Gadget_BackColor,$2E0A00)
SetGadgetColor(2,#PB_Gadget_FrontColor,#Yellow)
SetGadgetFont(2,FontID(Font1))

EditorGadget(3,20,140,260,25)
SetGadgetColor(3,#PB_Gadget_BackColor,$2E0A00)
SetGadgetColor(3,#PB_Gadget_FrontColor,#Yellow)
SetGadgetFont(3,FontID(Font1))

Repeat
	Event=WaitWindowEvent()
	If Event=#PB_Event_Gadget
		If EventGadget()=0
			DestroyCaret_()
			CreateCaret_(GadgetID(0),0,1,14)
			SetCaretBlinkTime_(500) ; immobile = -1, normal blinking = 500
			ShowCaret_(0)
		EndIf
		If EventGadget()=1
			DestroyCaret_()
			CreateCaret_(GadgetID(1),1,10,20)
			SetCaretBlinkTime_(500) ; immobile = -1, normal blinking = 500
			ShowCaret_(0)
		EndIf
		If EventGadget()=2
			DestroyCaret_()
			CreateCaret_(GadgetID(2),0,10,20)
			SetCaretBlinkTime_(500) ; immobile = -1, normal blinking = 500
			ShowCaret_(0)
		EndIf
		If EventGadget()=3
			DestroyCaret_()
			CreateCaret_(GadgetID(3),ImageID(0),0,0)
			SetCaretBlinkTime_(500) ; immobile = -1, normal blinking = 500
			ShowCaret_(0)
		EndIf
	EndIf
Until Event=#PB_Event_CloseWindow
Variante hat nur ein Problem, wenn man den Cursor anklickt geht er verloren! Na kann damit mal leben! Danke für eure Mitarbeit!

Gruss ... Velindos
Windows 7/8/8.1/10 (32/64-Bit) |Ubuntu 10.4 (64-Bit) |Purebasic 5.71 LTS (32/64-Bit)
Antworten