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:

sGUI - eine kleine GUI Simulation
Gehe zu Seite Zurück  1, 2, 3, 4, 5, 6, 7, 8, 9, 10  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Projektvorstellungen
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Muttonhead



Anmeldungsdatum: 26.08.2008
Beiträge: 505
Wohnort: Jüterbog

BeitragVerfasst am: 11.09.2014, 20:11    Titel: Antworten mit Zitat

!!! Bitte das Archiv einfach nochmal neu laden, und weitertesten, wenn stabil dann kommt die Version ins Portal !!!

@nemored:
Wow, der Karteneditor ist ein richtiger Stresstest für ComboBox und sGUI

Zitat:
Ich würde die ComboBox ja nicht nur bei Klick auf den Pfeil öffnen, sondern auch beim Klick auf das Textfeld (mir fehlen gerade die richtigen Begriffe).

dies sollte jetzt so funktionieren


Zitat:
Wenn die ComboBox geöffnet ist und ich auf den Pfeil klicke, würde ich erwarten, dass sie sich wieder schließt - stattdessen öffnet sich die Box nochmal, während ein Klick auf eine andere ComboBox lediglich die vorige schließt; etwas verwirrend. happy


Die ist die erste Auswirkung dess Herausnehmens der aufbereiteten Variablen für Systemereignisse aus dem Eventhandle. Der "Klickvorgang" ist quasi
eine Sequenz die Durchlaufen werden muß (Hit->Hold->Release-Released), Der Selector ist ein unabhängiger Eventhandle mit eigenem
Loop, benutzt aber die selben globalen Variablen. Der kurze Abstecher in den Selector "zerstört" quasi die Sequenz.
Das ist jetzt gefixt. Wenn nicht weitere Probleme mit den globalen Variablen auftauchen, nach Murphy werden sie aber ...... grinsen

Bei meinen Tests mit den Comboboxen die mir Vista hier so bietet habe ich festgestellt, das Ding was ich als Selector bezeichne verschwindet nur
wenn etwas ausgewählt wurde, oder ein Klick irgendwo außerhalb des Selectors. Dabei kann sogar ein völlig anderes Control angeklickt werden, dieses
reagiert jedoch nicht. Er sperrt auch den CloseButton. Mal sehen...


@Sebastian

Das Scrollbar (oder der,die ????) ist nun folgendermaßen geändert worden:
Die Größe der Pfeile sind leider fix.
Wird das Teil nun so klein, daß der Platz für den Container kleiner als 10px wird, werden die Pfeile weggelassen.

@Roland
naja, manchmal wird es wiederbelebt lächeln

Mutton
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4214
Wohnort: ~/

BeitragVerfasst am: 11.09.2014, 21:45    Titel: Antworten mit Zitat

Muttonhead hat Folgendes geschrieben:
@nemored:
Wow, der Karteneditor ist ein richtiger Stresstest für ComboBox und sGUI

Jetzt weißt du ja, warum ich die für so wichtig gehalten habe. grinsen

Wenn beim Klick auf ein neues Control erst die ComboBox geschlossen wird und noch keine neue Anwahl stattfindet, wäre das meiner Meinung nach nicht so schlimm. Du könntest dann eher Close-Button (und ggf. ESC) innerhalb des Controls auswerten und ggf. von dort aus direkt EXITEVENT setzen. Weiß nicht, ob das eine Option ist.

Zitat:
Das Scrollbar (oder der,die ????) ist nun folgendermaßen geändert worden:
Die Größe der Pfeile sind leider fix.
Wird das Teil nun so klein, daß der Platz für den Container kleiner als 10px wird, werden die Pfeile weggelassen.

Wenn die Liste nicht größer ist als der angezeigte Bereich, könnten Pfeile und Scrollleiste eigentlich auch wegfallen.
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Roland Chastain



Anmeldungsdatum: 05.12.2011
Beiträge: 183
Wohnort: Dakar, Senegal

BeitragVerfasst am: 19.09.2014, 09:19    Titel: Antworten mit Zitat

Hallo Muttonhead!

Ich habe sGUI vom 18.09.2014 gesehen. Sehr hübsch!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Muttonhead



Anmeldungsdatum: 26.08.2008
Beiträge: 505
Wohnort: Jüterbog

BeitragVerfasst am: 19.09.2014, 14:22    Titel: Antworten mit Zitat

Danke Roland lächeln

Ja, bezeichne es nun als Release der Version 0.8.4!

@nemored: der Karteneditor in folgender Kombination kompiliert ordnungsgemäß aber stürzt beim Start einfach ab:
FB1.00+karteneditor+aktueller sGUI aus dem Portal neutral
mit FB0.9 scheint alles zu funktionieren

>ReadCards


Mutton
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Muttonhead



Anmeldungsdatum: 26.08.2008
Beiträge: 505
Wohnort: Jüterbog

BeitragVerfasst am: 25.09.2014, 20:06    Titel: Antworten mit Zitat

...Ich möchte nun wirklich nicht flamen: Ein paar Umstände machten es mal wieder
erforderlich, mich mit Linux auseinander zu setzen...
Und an einen bestimmten OffTopic Beitrag wollte ichs nicht hängen.

Hier ist mein Bericht:

Die Kombination aus DAU (in diesem Fall ich), einem alten schwachbrüstigen Rechner
und der aktuellen LUBUNTU / UBUNTU(jonglierte mit beiden) Version 14.04.1 schienen geradezu perfekt.
In eine Virtualisierung installiert wars zu langsam. Den Brenner raus (wer braucht schon zwei)
und eine alte 80GB IDE HD stattdessen angeschlossen (Fixierung via Teppichklebeband im Brennerschacht *hust*).

LiveDVD rein, nach reichlich Laden: schwarzer Bildschirm traurig. War der virtuelle Rechner moderner als der Host?
Letztlich brachte F6 und einfach ein Sternchen an eine der Optionen (tatsächlich egal welche Option!) das LiveSystem zum erwachen.

...Bis man nach etlichen Neuinstallationen (auf beiden bootfähigen Festplatten war wohl mittlerweile je einmal Grub als Bootloader) und etwas Herumspielen im BIOS (das immer jene HD versucht hochzufahren, die den falschen Loader der vorherigen Installation hatte) ähhhm... einen LINUX Desktop in 640x480 sieht, können schonmal zwei Urlaubstage vergehen... Den DAU hatte ich schon erwähnt ?

Schnell den 640x480 großen Firefox aufgemacht und Google und die Ubuntu Gemeinde hilft einem weiter
mit einem Terminal, "xrandr" + diversen Optionen, auf immernoch selbiger Auflösung.Leider erfolglos lächeln.

Letztlich war einfach ein LINUX nvidia Treiber nachzuinstallieren.

Jetzt steht das System, inclusive FB + Geany, will nur noch in GRUB die MENÜ-Reihenfolge ändern.


Mutton
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Muttonhead



Anmeldungsdatum: 26.08.2008
Beiträge: 505
Wohnort: Jüterbog

BeitragVerfasst am: 12.12.2014, 19:28    Titel: Antworten mit Zitat

Im internationalen Forum schraubt derzeit Petan an einer stark gepimpten Version Daumen rauf! von sGUI herum und hat einen Fehler (neben anderen, deren Priorität ich anders einschätze) im Menüsystem entdeckt.
Dies betrifft die Kommandos MenuOn/Off()
Bei "regulärer" Benutzung der betreffenden Befehle sollte es normalerweise keine Probleme geben. Wer möchte kann das Bugfix an bekannter Stelle herunterladen.

PS:
da derzeit leider "nur" ein Report über Petans Veränderungen zu verfolgen ist, bezieht sich das aktuelle Bugfix lediglich auf mein letztes Release.

Mutton
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Muttonhead



Anmeldungsdatum: 26.08.2008
Beiträge: 505
Wohnort: Jüterbog

BeitragVerfasst am: 18.12.2014, 13:59    Titel: Antworten mit Zitat

Derzeit versuche ich das Menüsystem durch etwas Schlankeres zu ersetzen.
Das Archiv enthält ein Demo.
Mich würden mal Meinungen zu zwei Sachen interessieren:

*Bedienbarkeit, falls es als PullDown eingesetzt werden würde. Das "Klickverhalten" unterscheidet sich doch ein wenig vom "normal"

*Art der Erstellung des Menüsystems

http://www.muttonhead.homepage.t-online.de/data/sGUI_v0.8.44_preview.zip

Mutton
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
RockTheSchock



Anmeldungsdatum: 04.04.2007
Beiträge: 133

BeitragVerfasst am: 18.12.2014, 23:19    Titel: Antworten mit Zitat

Ich habe sGUI bisher noch nie benutzt, aber ich hatte mal unter QB ein Menu geschrieben:
Da konnte man das Menü folgendermaßen erstellen:
Code:
CreateMenu "Menu3"
   NewItem "Item1"
   CreateMenu "Untermenu"
      NewItem "Item1"
      NewItem "Item2"
      CreateMenu "Untermenu von Untermenu"
         NewItem "Item1"
         NewItem "Item2"
      EndCreate
      NewItem "Item4"
   EndCreate
   NewItem "Item3"
   NewItem "Item4"
   NewItem "Item5"
EndCreate



Daran angelehnt konnte das folgendermaßen ausschauen, wobei der erste Teil ein bisschen als Erklärung dient

Code:
Namespace sGUI
   'Dim mstack As Stack

   Type Event extends Object
      description As String
   End Type

   Sub DefaultListener(e As Event)
      Print e.description
   End Sub
   Type callback As Sub(e As Event)



   Declare Sub addMenu(title As String)
   Declare Sub addItem(title As String, listener As Callback=@DefaultListener)
   Declare Sub addCheckItem(title As String, listener As Callback=@DefaultListener,checked As Integer=0)
   Declare Sub addSeperator()
   Declare Sub EndMenu()




   Type Menu extends Object
      Public:
      Declare Constructor()
      Declare Constructor(title As String)
      Declare Sub addItem(title as String)
   End Type

   Type ContextMenu extends Menu
      Declare Constructor()
      Declare Constructor(title As String)
   End Type



   Type Item extends Menu
      Declare Constructor(title As String="")
   End Type

   Type CheckItem extends Item
      Declare Constructor(title As String)
   End Type


End Namespace



Using sGUI

Dim As ContextMenu m = ContextMenu("Context Menü")

addItem("Eintrag aktiv")                  'neues item mit defaultcallback
addItem("Eintrag inaktiv",0)              'item ohne callback inaktiv
addCheckItem("Checkmark")
addCheckItem("Checkmark checked",,1)
addSeperator()
addMenu("Submenue aktiv")
   addItem("Eintrag")
   addItem("Eintrag")
   addMenu("Submenue in Submenue")
      addItem("Eintrag")
      addItem("Eintrag")
   EndMenu()
EndMenu()
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Muttonhead



Anmeldungsdatum: 26.08.2008
Beiträge: 505
Wohnort: Jüterbog

BeitragVerfasst am: 19.12.2014, 09:31    Titel: Antworten mit Zitat

Danke Rock für die Syntax Inspiration, das schaut gut aus. Werd mich da mal anlehnen.

Mutton
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
RockTheSchock



Anmeldungsdatum: 04.04.2007
Beiträge: 133

BeitragVerfasst am: 19.12.2014, 14:29    Titel: Antworten mit Zitat

Ich würde auf jeden Fall PullDown Menüs bevorzugen. Was auf jeden Fall fehlt ist die Tastaturbedienung. Ich erwarte von einer guten GUI mit der Tastatur bedienbar zu sein. Z.b. ist es unter Windows üblich SHIFT+F10 für Kontextmenü, Pfeiltasten zum navigieren, Enter zum bestätigen und evt. Kurztasten zu Menüpunkten als Option nutzen zu können. Grundsätzlich sollten aber alle Tastenkombinationen individuell gestaltbar sein.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Muttonhead



Anmeldungsdatum: 26.08.2008
Beiträge: 505
Wohnort: Jüterbog

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

nichts Weltbewegendes... mehr Kosmetik und nur ein Preview!!!
*ein Versuch mit BitmapFonts(vorzugsweise erzeugt mit Charset2FBFont). Für einige Controls habe ich dann doch einen fixed Font bevorzugt, die Rechnerei war mir zu viel...
*dadurch sind ein paar Parameter die vorher Zeichen/Zeilenzähler waren nun zu Pixelzählern mutiert
*da ich ein paar Speicherlecks entdeckt habe, werde ich nun doch alles zusätzlich allozierte Zeugs in Listen packen. das ist hier im Preview erst teilweise realisiert!!

Das Menüsystem wird wieder eingebaut, auf Basis des hier gezeigten Popup menüs


http://www.muttonhead.homepage.t-online.de/data/sGUI_preview.zip

viel Spaß beim Testen

Mutton
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Roland Chastain



Anmeldungsdatum: 05.12.2011
Beiträge: 183
Wohnort: Dakar, Senegal

BeitragVerfasst am: 06.06.2015, 21:35    Titel: Antworten mit Zitat

Schön! Daumen rauf!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Elor



Anmeldungsdatum: 12.07.2013
Beiträge: 205
Wohnort: Konstanz

BeitragVerfasst am: 25.03.2016, 14:40    Titel: Antworten mit Zitat

Hab heute das BMPSimpleGadget aus probiert und nur ein schwarzes Fenster erhalten (FBC 64-Linux). Es gibt da wieder Inkompatibilitäten zwischen den Datentypen "Integer und Long" beim einlesen der Breite und Höhe. Das Laden mit "BLoad" Funktioniert aber!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Muttonhead



Anmeldungsdatum: 26.08.2008
Beiträge: 505
Wohnort: Jüterbog

BeitragVerfasst am: 25.03.2016, 15:01    Titel: Antworten mit Zitat

@Elor:
generell kann ich sagen dass das "aktuelle Release *hust*" an etlichen Stellen nicht 64bit kompatibel ist.
Das lag damals einfach darin begründet kein entsprechendes OS benutzt zu haben.

muss mal sehen ob ich ne angepasste Version finde
... suchend...

in deinem Fall scheint es zu genügen die "sGUI_GadgetType.bas" anzupassen:
gadw und gadh as integer<32>

Code:
type Gadget extends node
  event       as _EventHandle ptr'Zeiger auf den EventHandle dem dieses Gadget bei Erstellung zugeordnet worden ist
  sel         as integer    'Gadget Selektion
  over        as integer    'Flag, wenn 1 >>> Maus ist überm Gadget
  act         as integer    'Gadget Aktivierung
  posx        as integer    'PositionX
  posy        as integer    'PositionY
  gadw        as integer<32>    'Gadgetbreite
  gadh        as integer<32>    'Gadgethöhe
  caption     as string     'GadgetText / Bezeichnung
  Ctrl(15)    as integer    'Steuerungsvariablen, je nach Gadgettyp unterschiedlich oder auch gar nicht genutzt
  useextTO    as integer    'wenn 1 dann benutzen alle TO_Routinen benutzen das in extTObject verlinkte Textobjekt
 
  'Callbacks(?) sind es wirklich welche?
  DoDraw      as sub      (gad as Gadget ptr)                                     'Platzhalter Zeichenroutine
  DoAction    as function (refgad as Gadget ptr, action as integer) as integer    'Platzhalter für Ereignis-Routine
  DoUpdate    as sub      (gad as Gadget ptr)                                     'Platzhalter Update
 
  'folgende "Objekte" gehören diesem Gadget, reservieren zusätzlichen Speicher und werden
  'über den Destruktor des Gadgets wieder gelöscht
  subevent    as _EventHandle ptr 
  TObject     as _TextObject ptr
  Background  as FB.Image ptr
  Mask        as FB.Image ptr
  Unselected  as FB.Image ptr
  Selected    as FB.Image ptr
 
  'folgende Pointer sind Zugriffe auf externe Objekte
  extTObject   as _TextObject ptr'externes Textobjekt
  gad(7) as Gadget ptr           'enthält bis zu 8 Pointer der Gadgets die dem SubEvent zugeordnet sind
 
  'alte Vergleichswerte
  oldact as integer
 
  declare destructor
  declare sub SaveBackGround
end type





Mutton
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Elor



Anmeldungsdatum: 12.07.2013
Beiträge: 205
Wohnort: Konstanz

BeitragVerfasst am: 25.03.2016, 17:32    Titel: Antworten mit Zitat

Jetzt breitet sich bei mir gerade Verwirrung aus!? Also erst mal, es Funktioniert! Die frage ist aber warum? Also, die Variablen (Gadw und Gadh) in der „Gadget-Class“ hab ich jetzt, so wie von dir vorgeschlagen, in 32Bit-Integer umgewandelt. Die Bildbreite und Höhe wird aber in der „BMPSimpleGadget.bas“- Funktion „AddBMPSimpleGadget (...)“ so eingelesen:
Code:

function AddBMPSimpleGadget (event as EventHandle ptr,PosX as integer,PosY as integer,fus as string,fs as string="",fm as string="") as Gadget ptr
  function=0

  if gad then
    dim as Integer GadWidth,GadHeight, ff=freefile
    open  fus for binary as #ff
      get #ff, 19, GadWidth
      get #ff, 23, GadHeight
    close #ff
....

Da es sich hier aber um Integer handelt, also 8Byte bei 64Bit-Systemen, müßte sich die Höhenangabe des Bildes im HighWord der Breitenangabe befinden!? Wie kommt also dieses HighWord in die Variable Gadh? Wenn ich es umgekehrt mache, also die GadWidth und GadHeight Variablen auf 32Bit setze, funktioniert es ja auch, was mir auch logischer erscheint. Ich hab zwar einen verdacht, behalte ich jetzt aber erst mal für mich, muss da erst noch was probieren, mit der sGUI hat das dann aber nichts mehr zu tun!
Edit: HighWord ist falsch, sind ja nur 2Byte, ich meinte da HighDWord!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4214
Wohnort: ~/

BeitragVerfasst am: 25.03.2016, 18:31    Titel: Antworten mit Zitat

Mir ist übrigens neulich aufgefallen, dass sGUI\ComboBox.bas folgende Includes enthält:
Code:
#include once "sGUI\MiniSelector.bas"
#include once "sGUI\ComboArrowDwn.bas"
#include once "sGUI\ComboBox_Basis.bas"

Wenn der Ordner sGUI nicht im Stammverzeichnis liegt, sondern z. B. im Unterverzeichnis include\, oder sonst eine andere Ordnerstruktur gewählt wird, gibt das Probleme - allerdings scheint das die einzige Datei zu sein, die noch explizit auf den Ordner sGUI\ zugreifen will.
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Muttonhead



Anmeldungsdatum: 26.08.2008
Beiträge: 505
Wohnort: Jüterbog

BeitragVerfasst am: 25.03.2016, 19:07    Titel: Antworten mit Zitat

@nemored: Oh... aber warum funktioniert das dann überhaupt? ein wenig irritiert...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4214
Wohnort: ~/

BeitragVerfasst am: 25.03.2016, 19:22    Titel: Antworten mit Zitat

Include-Dateien werden der Reihe nach im aktuellen Ordner der einbindenden Datei, im Ordner des Programms und im allgemeinen Bibliothekenordner gesucht. In welcher Reihenfolge weiß ich jetzt zwar nicht genau, aber die steht in der Referenz - es funktioniert auf jeden Fall dann, wenn im Hauptprogramm-Ordner der Unterordner sGUI\ liegt, oder aber ohne Pfadangabe, wenn die sich includierenden Dateien alle auf selber Ebene liegen.
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Elor



Anmeldungsdatum: 12.07.2013
Beiträge: 205
Wohnort: Konstanz

BeitragVerfasst am: 25.03.2016, 22:32    Titel: Antworten mit Zitat

Ich hab noch mal herum experimentiert, wie der an die Höhendaten des Bildes kommt ist mir immer noch schleierhaft! Ich würde aber in jedem Fall nicht die internen Datentypen ändern, sondern diejenigen, die die Daten aus der Bitmapdatei lesen. Also GadWitdth und GadHeight in der Funktion „AddBMPSimpleGadget (...)“ (wer weiß was da noch alles kommt?).
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Muttonhead



Anmeldungsdatum: 26.08.2008
Beiträge: 505
Wohnort: Jüterbog

BeitragVerfasst am: 28.03.2016, 20:41    Titel: Antworten mit Zitat

na langer Zeit mal wieder ein Preview:
http://www.muttonhead.homepage.t-online.de/data/sGUI_v0.8.5_alpha.zip

ne Menge Zeugs wurde mal wieder umgemodelt. Dem Thread Zeugs geschuldet, welcher aber wieder entfernt wurde,... bin da iwie glücklos lächeln
Nichts desto...
Kommentare willkommen

Mutton
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Projektvorstellungen Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite Zurück  1, 2, 3, 4, 5, 6, 7, 8, 9, 10  Weiter
Seite 9 von 10

 
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