Fenster flackert bei Texteingabe.

Für allgemeine Fragen zur Programmierung mit PureBasic.
funkheld
Beiträge: 651
Registriert: 31.12.2009 11:58

Fenster flackert bei Texteingabe.

Beitrag 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
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Fenster flackert bei Texteingabe.

Beitrag 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!
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7039
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Fenster flackert bei Texteingabe.

Beitrag 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
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
CodeCommander
Beiträge: 213
Registriert: 02.03.2014 16:06

Beitrag von CodeCommander »

~ DELETE ~
Zuletzt geändert von CodeCommander am 18.01.2015 14:47, insgesamt 1-mal geändert.
~ DELETE ~
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Fenster flackert bei Texteingabe.

Beitrag von ts-soft »

Das Problem ist, genau dieselbe Frage hat er schon mal gestellt!
Ist das jetzt Beschäftigungstherapie oder Alzheimer :mrgreen:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Micha122
Beiträge: 248
Registriert: 02.10.2011 14:45
Wohnort: Sinzig
Kontaktdaten:

Re: Fenster flackert bei Texteingabe.

Beitrag 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.
Barcodes for PureBasic - http://micha122.bplaced.net/
Benutzeravatar
Tommy
Spassvogel
Beiträge: 319
Registriert: 17.10.2013 14:36

Re: Fenster flackert bei Texteingabe.

Beitrag von Tommy »

Micha122 hat geschrieben:Entweder seit ihr Millionäre, arbeitslos, Rentner
http://www.seidseit.de.s48.en.wbprx.com/ :D
Zuletzt geändert von Tommy am 27.01.2015 10:43, insgesamt 2-mal geändert.
PB 5.41 x64
Micha122
Beiträge: 248
Registriert: 02.10.2011 14:45
Wohnort: Sinzig
Kontaktdaten:

Re: Fenster flackert bei Texteingabe.

Beitrag von Micha122 »

Danke Tommy!
Wenn ich mal einen Korrekturleser benötige, melde ich mich bei dir. :D
Barcodes for PureBasic - http://micha122.bplaced.net/
funkheld
Beiträge: 651
Registriert: 31.12.2009 11:58

Re: Fenster flackert bei Texteingabe.

Beitrag 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
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7039
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Fenster flackert bei Texteingabe.

Beitrag 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.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Antworten