| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen   | 
	
	
	
		| Autor | 
		Nachricht | 
	
	
		Anistasius
 
 
  Anmeldungsdatum: 18.01.2006 Beiträge: 37
 
  | 
		
			
				 Verfasst am: 26.07.2006, 10:21    Titel: GTK und Refresh | 
				     | 
			 
			
				
  | 
			 
			
				Normalerweise baut man beim GTK den Bildschirm _einmalig_ auf und gibt dann die Kontrolle an das GTK ab. 
 
Zurück bekommt man sie erst als "Callback" wieder, wenn der Anwender etwas gemacht hat. Dann kann man auch ggf. die Bildschirminhalte ändern. 
 
Nun habe ich aber eine Situation, wo ich es umgekehrt brauche. Das Programm soll Daten konvertieren und dabei die aktuellen 
 
Sätze in einem Label anzeigen. Das einzige was vom Anwender erwartet wird ist ein eventueller Abbruch.
 
 
Bei Xbasic gab es dafür eine Basisfunktion, die beim Ablauf ständig aufgerufen wird. Man brauchte da nur seine eigenen Funktionsbäume eintragen.
 
 
Bei VB gibt´s den Refresh Befehl, aber wie macht man das beim GTK?
 
 
 
 
Fragende Grüße
 
Anistasius | 
			 
		  | 
	
	
		| Nach oben | 
		 | 
	
	
		  | 
	
	
		Anistasius
 
 
  Anmeldungsdatum: 18.01.2006 Beiträge: 37
 
  | 
		
			
				 Verfasst am: 20.08.2006, 15:58    Titel:  | 
				     | 
			 
			
				
  | 
			 
			
				Hat sich erledigt.
 
Wer das gleiche Problem hat, die Funktion heißt:
 
gtk_timeout_add
 
 
Viele Grüße
 
Anistasius | 
			 
		  | 
	
	
		| Nach oben | 
		 | 
	
	
		  | 
	
	
		Anistasius
 
 
  Anmeldungsdatum: 18.01.2006 Beiträge: 37
 
  | 
		
			
				 Verfasst am: 05.08.2007, 14:43    Titel:  | 
				     | 
			 
			
				
  | 
			 
			
				Tja, in der Theorie und bei den Tests funktioniert´s gut.
 
Aber in einer echten Anwendung macht es die Gretsche...  
 
 
mit  gtk_timeout_add wird ihm ein Zeitintervall und eine Funktion übergeben die nach diesem Intervall durchlaufen werden soll.
 
steht in dieser Funktion z.B. Vergleiche Zeit mit gespeicherter Zeit und falls geändert zeige Zeit und speichere sie,
 
hat man eine kleine Uhr im Fenster. Oder Zeige Bild an, warte ein paar Sekunden dann lade nächstes Bild...
 
hat man eine Dia-Show.
 
Soweit so gut. 
 
Aber diese Intervallscheiben haben keinen Einfluß auf ablaufende FB Funktionen. 
 
In meinem Fall sieht das etwa so aus:
 
 
Funktion
 
 ipstat$="Beginne mit Datenexport"
 
 Exportiere Bewegungsdaten
 
 ipstat$="Exportiere "+Rechnungsnummer
 
 wiederhole bis Ende 
 
 ipstat$="Export abgeschlossen"
 
Funktion Ende
 
 
 
 
Die von "timeout_add" aufegrufene Funktion macht folgendes:
 
Function fuGTK_Events () As Integer
 
if ipstat$ <> altipstat$ then
 
  fuGTK_SetText (anzeigeFenster ,anzeigeLabel,ipstat$)
 
  Print ipstat$
 
  altipstat$=ipstat$
 
  
 
end if
 
End Function
 
 
Das einzige was er im Fensterlabel bringt ist:
 
"Export abgeschlossen"...natürlich erst am Ende der Konvertierung
 
In der Shell hingegen, wo das Programm gestartet wurde,
 
 werden über den 'Print ipstat$' alle Informationen gezeigt. 
 
 
 
 
 selbst wenn ich  fuGTK_SetText () direkt in die Exportfunktion schreibe,
 
 wird das ignoriert, bis der Export abgeschlossen ist
 
 
 
 
 
 
 
  
 
Hat jemand eine Idee wie ich GTK dazu bringe die Informationen ebenfalls anzuzeigen?
 
 
....Als kleinen Anreiz für die Problemfindung, habe ich mal den GTK Wrapper  (noch ultraprealpha!!!)auf meiner HP hinterlegt.
 
Diese GUI Abstraktionsschicht vereinfacht die Handhabung mit dem GTK auf geradezu dramatische Weise.
 
Statt für jeden Label irgendwie eine halbe Seite unübersichtlichen Programmcode reinzufummeln, reicht eine einzige Zeile. - Ist besonders schön wenn man ein Programm nach drei Jahren ändern muß. Und nervige Pointer bleiben auch draußen  
 
 
Wenn ich meine Programmkonvertierung abgeschlossen habe, wollte ich die Funktionen von fuGTK auf fuGUI umtaufen und das Ding auch mit dem Win API  nachbauen. Dann kann man viele GUI Programme ohne Quelltextänderungen unter Windows und Linux kompilieren, ohne dem Win Anwender GTK aufzwingen zu müssen.
 
 
....Vorausgesetzt solche Feinheiten wie der sch... Refresh funktionieren auch....  
 
 
Datei: http://anistasius.de/gtkwrapper.zip
 
Inhalt: 
 
fugtk1.bas die Include Lib
 
fugtktest.bas  ein vollkommen sinnbefreites Beispielprogramm
 
fugtktest   das Programm als binary, falls es sich nicht kompilieren läßt
 
 
Viele Grüße,
 
ein verzweifelnder Anistasius | 
			 
		  | 
	
	
		| Nach oben | 
		 | 
	
	
		  | 
	
	
		Eternal_pain
 
  
  Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
  | 
		
			
				 Verfasst am: 30.08.2007, 09:02    Titel:  | 
				     | 
			 
			
				
  | 
			 
			
				Hi,
 
 
wenn das ganze noch aktuell ist, und ich das Problem richtig verstanden habe... was sich so anhoert als kommen sich da mehrere Threads in die quere... dann koennte Dir evtl. das hier weiterhelfen wo es um etwas aehnliches geht...
 
 
http://forum.qbasic.at/viewtopic.php?t=4547 _________________
   | 
			 
		  | 
	
	
		| Nach oben | 
		 | 
	
	
		  | 
	
	
		Anistasius
 
 
  Anmeldungsdatum: 18.01.2006 Beiträge: 37
 
  | 
		
			
				 Verfasst am: 05.09.2007, 18:32    Titel:  | 
				     | 
			 
			
				
  | 
			 
			
				Hallo!
 
 
Ja, das ist noch brandaktuell :-/
 
Vielen Dank für den Hinweis. 
 
 
Ich bin gerade dabei Wrapper-Lib u. Demo an FB0.17  anzupassen.
 
Ein büschen hakelt es noch mit den Signalen. Entweder das File-Fenster funktioniert nicht richtig oder ich bekomme in Eingabezeile und Block keinen Schreibcursor <grübel>
 
....wenn ich mir vorstelle ich hätte das GTK direkt mit meiner Faktura KF verarbeitet und müßte das nun im ganzen Quelltext korrigieren, wäre ich reif für die Sauerstoffdusche. Aber so muß ich das Problem nur einmal im Wrapper beseitigen  
 
..sobald es angepaßt ist, lade ich das Päckchen nochmal hoch.
 
 
Viele Grüße
 
Anistasius | 
			 
		  | 
	
	
		| Nach oben | 
		 | 
	
	
		  | 
	
	
		Eternal_pain
 
  
  Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
  | 
		
			
				 Verfasst am: 08.09.2007, 07:24    Titel:  | 
				     | 
			 
			
				
  | 
			 
			
				zwischen 0.17 und der neusten 0.18.1b liegen zwar keine Welten (wie bei 0.16 und 0.17b) aber dennoch wurde das eine oder andere noch geaendert/verbessert bzw behoben... waere also ratsam nochmal upzudaten    
 
 
Hoffe aber das dieses Projekt ansonsten gut vorran kommt, hoert sich naemlich recht interessant an    _________________
   | 
			 
		  | 
	
	
		| Nach oben | 
		 | 
	
	
		  | 
	
	
		 |