Seite 1 von 2

Fenster flackert bei Texteingabe.

Verfasst: 16.11.2014 20:46
von funkheld
Hallo, guten Tag.
Wie kann man bitte das flackern des Fenster bei der Texteingabe verhindern?

Danke.
Gruss

Code: Alles auswählen

Global font1.l

Enumeration
  #Window_0 
  #text_1
  #font
EndEnumeration

OpenWindow(#Window_0, 0, 0, 640, 480, "", #PB_Window_SystemMenu)

Font1 = LoadFont( #font, "Lucida Console" ,14)

TextGadget(#text_1, 0, 0, 640, 480, "")
SetGadgetFont(#text_1, FontID) 

Text.s = ""

Repeat
  Select WaitWindowEvent(1)
    Case #PB_Event_CloseWindow
      Break
    Case #WM_CHAR
      Char.c = EventwParam()
      If Char <> #BS
        Text + Chr(Char)
      Else
        Text = Left(Text, Len(Text) - 1)
      EndIf
      SetGadgetText(#text_1, Text)
  EndSelect
ForEver

Re: Fenster flackert bei Texteingabe.

Verfasst: 16.11.2014 21:24
von ts-soft
Wie oft soll dieser Beitrag noch kommen?

Verwechselst Font1.l bzw. font1.l mit FontID.
Die nutzung von API im EventLoop wird auch nicht mehr empfohlen.

Es flimmert nichts und vielleicht machste Dir die Mühe und suchst den alten Beitrag heraus,
da sollten alle antworten bereits vorhanden sein!

Re: Fenster flackert bei Texteingabe.

Verfasst: 16.11.2014 21:31
von STARGÅTE

Code: Alles auswählen

Global Text.s = ""

Enumeration
  #Window_0 
  #text_1
  #font
EndEnumeration


Procedure Callback(WindowID, Message, wParam, lParam)
	
	If Message = #WM_CHAR
		Char.c = wParam
		If Char <> #BS
			Text + Chr(Char)
		Else
			Text = Left(Text, Len(Text) - 1)
		EndIf
		SetGadgetText(#text_1, Text)
	EndIf
	
	ProcedureReturn #PB_ProcessPureBasicEvents
	
EndProcedure

OpenWindow(#Window_0, 0, 0, 640, 480, "", #PB_Window_SystemMenu)

SetWindowCallback(@Callback(), #Window_0)

LoadFont(#font, "Lucida Console" ,14)

TextGadget(#text_1, 0, 0, 640, 480, "")
SetGadgetFont(#text_1, FontID(#font)) 

Repeat
  Select WaitWindowEvent(1)
    Case #PB_Event_CloseWindow
      Break
    Case #WM_CHAR
      
  EndSelect
ForEver

Verfasst: 16.11.2014 21:36
von CodeCommander
~ DELETE ~

Re: Fenster flackert bei Texteingabe.

Verfasst: 16.11.2014 21:41
von ts-soft
Das Problem ist, genau dieselbe Frage hat er schon mal gestellt!
Ist das jetzt Beschäftigungstherapie oder Alzheimer :mrgreen:

Re: Fenster flackert bei Texteingabe.

Verfasst: 16.11.2014 22:17
von Micha122
Ganz ehrlich, langsam macht noch nicht mal mehr das Mitlesen hier im Forum spaß. :angry:
Ist das jetzt Beschäftigungstherapie oder Alzheimer
Ich glaube eher dieses Forum hier ist eine Art Beschäftigungstherapie für euch "Superuser" und "Alleskönner". :allright:

Und ich bin wirklich nicht der einzige, dem euer Geplänkel langsam nervt. :wink:

Entweder seit ihr Millionäre, arbeitslos, Rentner oder hab ganz einfach zu viel Zeit. :D

ES ZWINGT EUCH KEINER ZU ANTWORTEN! Oder noch besser, macht euer eigenes Forum auf!
Es flimmert nichts
Doch, auf einem Leistungsschwachem Rechner schon ein wenig.

Re: Fenster flackert bei Texteingabe.

Verfasst: 16.11.2014 22:26
von Tommy
Micha122 hat geschrieben:Entweder seit ihr Millionäre, arbeitslos, Rentner
http://www.seidseit.de.s48.en.wbprx.com/ :D

Re: Fenster flackert bei Texteingabe.

Verfasst: 16.11.2014 22:45
von Micha122
Danke Tommy!
Wenn ich mal einen Korrekturleser benötige, melde ich mich bei dir. :D

Re: Fenster flackert bei Texteingabe.

Verfasst: 16.11.2014 23:22
von funkheld
--------------------------------------------------------------------
Doch, auf einem Leistungsschwachem Rechner schon ein wenig.
--------------------------------------------------------------------

2,1 Ghz 2 Cores....

Es muss doch möglich sein , von Purebasic diese kleine Flackerei abzustellen?
Warum wird hier nicht im Hintergrund aufgebaut und dann dann angezeigt, während der Rasterstrahl auf unsichtbar
geschaltet hat?

Gruss

Re: Fenster flackert bei Texteingabe.

Verfasst: 16.11.2014 23:28
von STARGÅTE
funkheld hat geschrieben:Es muss doch möglich sein , von Purebasic diese kleine Flackerei abzustellen?
funkheld hat geschrieben:Warum wird hier nicht im Hintergrund aufgebaut und dann dann angezeigt, während der Rasterstrahl auf unsichtbar geschaltet hat?
Ein Window hat kein Doppelpuffer, wie zum Beispiel ein Screen.
Wenn das TextGadget mit SetGadgetText() aktuallisiert werden muss, wird zunächst der Hintergrund gezeichnet und dann der Text selbst. Dadurch kann es zu einem kurzen flackern kommen, wenn es zu oft aktualisiert werden muss.