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 - Verwendung in Sub?

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



Anmeldungsdatum: 08.08.2006
Beiträge: 994
Wohnort: Niederbayern

BeitragVerfasst am: 28.08.2020, 18:47    Titel: sGUI - Verwendung in Sub? Antworten mit Zitat

Ich habe folgenden Quellcode in etwa:
Code:
#INCLUDE ONCE "WINDOWS.BI"

'
#include ONCE "sGUI\sGUI.bas"
#include once "sGUI\ComboBox.bas"
using sGUI

DECLARE SUB DATEI_LADEN

SCREENRES 640, 640, 32,, &h04
InitGFX

' ComboBox aktivieren/definieren
DIM AS EventHandle PTR event=new EventHandle
DIM AS Gadget PTR ComboBox=AddComboBox (event,110,156,42,40)

FOR j = 1 TO 195
   TO_AppendLine(ComboBox,STR(j))
NEXT

UpdateGadget(ComboBox)
SetComboBoxVal(ComboBox,1)'Eintrag 1 auswählen
GadgetOff(ComboBox)

DIM AS INTEGER mausx, mausy, wheel, mausk

DO

GETMOUSE mausx, mausy, wheel, mausk

' Datei laden
SELECT CASE mausx
   CASE 80 TO 140
      SELECT CASE mausy
         CASE 300 TO 350
            DATEI_LADEN ' Textdatei wird geladen
            SetComboBoxVal(ComboBox, 1) ' Eintrag 1 wird definiert
      END SELECT
END SELECT

IF MULTIKEY(&h01) THEN END
SLEEP 1
LOOP

SUB DATEI_LADEN
   
   ' Textdatei laden und auf dem Bildschirm anzeigen
   
END SUB


Beim Aufruf der SUB Datei_laden, zeigt der mir auf dem Bildschirm den Inhalt der Textdatei an (wird in der SUB DATEI_LADEN auf dem Bildschirm angezeigt). Leider ist es so, dass nach dem Aufruf von "SetComboBoxVal(ComboBox, 1)" ein paar Leerzeichen angezeigt werden. Diese überdecken das andere angezeigte, den geladenen Text. Nicht gerade Optimal! Kann ich irgendwas machen, dass nach dem Aufruf von "SetComboBoxVal(ComboBox, 1)" keine Leerzeichen angezeigt werden? In der Sub, kann ich "SetComboBoxVal(ComboBox, 1)" nicht aktivieren, da ich eine Fehlermeldung bekomme. ComboBox nicht deklariert? Gibt es eine Möglichkeit, "SetComboBoxVal(ComboBox, 1)" in der Sub zu aktivieren/setzen? Problem ist, dass die ComboBox nicht auf der aktiven Seite angezeigt wird! Ich habe mehrere Bildschirmseiten und nur auf der Seite 3 wird die Box aktiviert.

Ich kann ja schlecht, 2x den Inhalt der Datei auf dem Bildschirm anzeigen lassen. Das wäre nicht gerade Optimal.

Edit: Jetzt habe ich eine Idee?! Mal schauen, ob das klappt...
Wahrscheinlich nicht.
_________________
SHELL SHUTDOWN -s -t 05
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



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

BeitragVerfasst am: 28.08.2020, 20:16    Titel: Antworten mit Zitat

Zur zweiten Frage:
Eine SUB folgt ganz normal den Sichtbarkeitsregeln, die für Variablen nun einmal gelten: lokale Variablen im Hauptprogramm (wie hier ComboBox) sind im Unterprogramm nicht sichtbar. Du kannst die Variable z. B. an die SUB als Parameter übergeben, dann kannst du dort auch auf sie zugreifen.
_________________
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
ALWIM



Anmeldungsdatum: 08.08.2006
Beiträge: 994
Wohnort: Niederbayern

BeitragVerfasst am: 28.08.2020, 20:59    Titel: Antworten mit Zitat

nemored hat Folgendes geschrieben:
Zur zweiten Frage:
Eine SUB folgt ganz normal den Sichtbarkeitsregeln, die für Variablen nun einmal gelten: lokale Variablen im Hauptprogramm (wie hier ComboBox) sind im Unterprogramm nicht sichtbar. Du kannst die Variable z. B. an die SUB als Parameter übergeben, dann kannst du dort auch auf sie zugreifen.

Stimmt! An diese Möglichkeit habe ich gar nicht dran gedacht. Vielen herzlichen Dank für die Info! Müsste jetzt funktionieren. Zumindest sieht es auf den ersten Blick danach aus. Musste den Quellcode dafür leider etwas umschreiben. Wollte ich zwar vermeiden, aber wenn es nicht anders geht, hilft es nicht...
_________________
SHELL SHUTDOWN -s -t 05
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Bibliotheken 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