Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

GTK und Refresh

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Linux-spezifische Fragen
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Anistasius



Anmeldungsdatum: 18.01.2006
Beiträge: 37

BeitragVerfasst am: 26.07.2006, 10:21    Titel: GTK und Refresh Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Anistasius



Anmeldungsdatum: 18.01.2006
Beiträge: 37

BeitragVerfasst am: 20.08.2006, 15:58    Titel: Antworten mit Zitat

Hat sich erledigt.
Wer das gleiche Problem hat, die Funktion heißt:
gtk_timeout_add

Viele Grüße
Anistasius
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Anistasius



Anmeldungsdatum: 18.01.2006
Beiträge: 37

BeitragVerfasst am: 05.08.2007, 14:43    Titel: Antworten mit Zitat

Tja, in der Theorie und bei den Tests funktioniert´s gut.
Aber in einer echten Anwendung macht es die Gretsche... traurig

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 zwinkern

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.... traurig

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
Benutzer-Profile anzeigen Private Nachricht senden
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 30.08.2007, 09:02    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Anistasius



Anmeldungsdatum: 18.01.2006
Beiträge: 37

BeitragVerfasst am: 05.09.2007, 18:32    Titel: Antworten mit Zitat

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 lächeln
..sobald es angepaßt ist, lade ich das Päckchen nochmal hoch.

Viele Grüße
Anistasius
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 08.09.2007, 07:24    Titel: Antworten mit Zitat

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 zwinkern

Hoffe aber das dieses Projekt ansonsten gut vorran kommt, hoert sich naemlich recht interessant an lächeln
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Linux-spezifische Fragen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz