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:

mit oder ohne -s gui compiliert?

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



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 19.08.2006, 17:57    Titel: mit oder ohne -s gui compiliert? Antworten mit Zitat

Hi,
ytwinky hatte hier schon eine Möglichkeit gefunden auf '-s gui' zu prüfen.
Beim Experimentieren mit dem Konsoletitel fiel mir eine andere Möglichkeit auf:
Wenn eine Konsole vorhanden ist, hat sie einen Konsolentitel.
Wenn man den Konsolentitel mit GetConsoleTitle abfragt, bekommt man als Funktionsrückgabe die Länge des Titelstrings zurück.
Ist die =0, kein Titel => keine Konsole.
Daraus habe ich eine Funktion gebastelt:
Code:
Option Explicit

#Include once "windows.bi"

Function if_console (Konsole As Integer =0) As Integer '10.08.2006 by Volta
  Dim As Zstring *MAX_PATH Titel = ""
  Dim a as String ="Bitte mit -s gui kompilieren, dann gibt es kein Konsolenfenster!"
  Dim b as String ="Bitte ohne -s gui kompilieren."
  If GetConsoleTitle (@Titel, MAX_PATH) > 0 Then
    If Konsole = 0 Then
      MessageBox FindWindow( 0, Titel ), a, Titel, MB_ICONERROR
      Print a
      'Sleep 'bei Bedarf
    End If
    Return 1
  Else
    If Konsole <> 0 Then
      Print b
      MessageBox 0,"keine Konsole " + Chr(10) + b, "Achtung:", MB_ICONERROR
      End  'sonst hängt das Programm
    End If
    Return 0
  End If
End Function

'nur eine der nächsten Zeilen aktivieren  :)) is klar oder?
if_console (1) 'mit Konsole kompilieren, Programm bricht ohne Konsolefenster ab
'if_console     'keine Konsole bitte, Programm wird mit Hinweistext fortgesetzt
'If if_console = 1 Then End ' oder so abgebrochen.

'erst nach der Konsolenkontrolle einen Screen einstellen
Screen 0
SetConsoleTitle "Dies ist ein Konsolenfenster"
Sleep


Gruß Volta
_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 19.08.2006, 18:57    Titel: Antworten mit Zitat

Cool grinsen
Gruß
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 20.08.2006, 11:04    Titel: Antworten mit Zitat

Hi,
Nein, kein Doppelpost:
hier ein Auszug aus meinem DateiLister:
Code:
Dim As Zstring *MAX_PATH Titel=""
..
'Datei speichern
DateiName = LoadSaveDialog (1, fil, Csv+1, "", Mid("HtmCsv", Csv*3+1, 3))
..
If DateiName<>"" Then MessageBox(Null, DateiName, "Gewählter DateiName", MB_Ok)
'Programm-Ende
If GetConsoleTitle(@Titel, MAX_PATH) > 0 Then
  ?"Eniki..";
  Sleep
End If
End
@volta:
GetConsoleTitel() funktioniert astrein..
Nur zum LoadSaveDialog() habe ich Anmerkungen:
Code:
Function LoadSaveDialog( _
           savedlog As Integer=0, _
           Filter As String="", _
           fltrindex As Integer=1, _
           initdir As String="", _
           strDefExt As String="") As String
  Dim FB_OFN AS OPENFILENAME
  Dim strFile As String*2048
  Dim strFileTitle As String*2048
  Dim As String strdrstr, strcapt

  FB_OFN.lStructSize=Len(FB_OFN)
  FB_OFN.hwndOwner=0 ' nur Console
  FB_OFN.hInstance=0

  If Filter="" Then Filter="Alle Dateien (*.*)" &Chr(0) &"*.*" 'Vorgabe
  If Instr(Filter, Chr(0, 0))=0 Then Filter+=Chr(0, 0)
  FB_OFN.lpstrFilter=StrPtr(Filter)
  FB_OFN.nFilterIndex=fltrindex

  strFile=Space(2047) &Chr(0)
  FB_OFN.lpstrFile=StrPtr(strFile)
  FB_OFN.nMaxFile=Len(strFile)

  strFileTitle=String(2048, 0)
  FB_OFN.lpstrFileTitle=StrPtr(strFileTitle)
  FB_OFN.nMaxFileTitle=Len(strFileTitle)

  strdrstr=initdir
  If initdir="" Then strdrstr="."     ' Vorgabe aktueller Pfad
  FB_OFN.lpstrInitialDir=StrPtr(strdrstr)
  If savedlog Then
    strcapt="Dateien speichern"
    FB_OFN.lpstrTitle=StrPtr(strcapt)
    FB_OFN.lpstrDefExt=StrPtr(strDefExt) 'mußte ich ändern, hat nicht funktioniert :D
    FB_OFN.flags=OFN_EXPLORER Or OFN_LONGNAMES Or OFN_OVERWRITEPROMPT Or OFN_HIDEREADONLY
    If GetSaveFileName(@FB_OFN) Then LoadSaveDialog=Trim(strFile)
  Else
    strcapt="Dateien öffnen"
    FB_OFN.lpstrTitle=StrPtr(strcapt)
    FB_OFN.flags=OFN_EXPLORER Or OFN_LONGNAMES Or OFN_CREATEPROMPT Or _
                   OFN_NODEREFERENCELINKS Or OFN_HIDEREADONLY
    If GetOpenFileName(@FB_OFN) Then LoadSaveDialog=Trim(strFile)
  End If
End Function
..so klappts auch mit der Extensions-Übergabe.
Es war zwar ein wenig Arbeit, die Funktion umzuarbeiten, sie hat mir aber trotzdem eine
Menge Zeit eingespart. Es ist ja auch keine Meckerei, sondern lediglich ein Hinweis darauf,
daß sie in der ursprünglichen Form nicht so funktioniert, wie ich es wollte..
..was die Extensions anbetrifft..
Schönen Sonntag noch
Gruß
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 20.08.2006, 13:00    Titel: Antworten mit Zitat

Hi ytwinky,
verrat mir mal was nicht daran funktionierte?
Code:
      If strDefExt > "" Then
         Dim strdext As String
         strdext = strDefExt
         FB_OFN.lpstrDefExt = StrPtr(strdext)
      End If

Ich vermute du arbeitest mit XP, auf ME konnte ich keinen Fehler damit produzieren.
Gruß Volta
_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 20.08.2006, 13:31    Titel: Antworten mit Zitat

volta hat Folgendes geschrieben:
Ich vermute du arbeitest mit XP, auf ME konnte ich keinen Fehler damit produzieren

Hi volta,
XP SP2, .Net-FW2.0(wg. Monad grinsen)
Ich konnte übergeben, was ich wollte, es ist nie eine Extension angekommen..
..also habe ich die Funktion geändert und es klappt zwinkern
(Es lag nicht am '>' statt '<>' )
Ich wollte, daß der Benutzer nur den Namen eingeben kann und die Extension '.Csv' oder '.Htm' automatisch angehängt wird.
Der DateiLister ist erst am Anfang, ich bin noch am Zusammenstellen der einzelnen 'Module' grinsen
Ich bin zwar sehr vorsichtig dabei(es ist nicht unproblematisch, deine Windows-Funktionen mit meinen Dos-Funktionen zu koppeln), aber es geht..
Gruß
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 20.08.2006, 21:51    Titel: Antworten mit Zitat

Hi ytwinky, danke,
funktioniert nach deiner Schreibweise auch in ME, schätze in anderen Win-Versionen auch.
Ich habe noch ein wenig daran gefeilt und es hier http://Volta.de.tt/dateidialog.html eingestellt.

Gruß Volta
_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 20.08.2006, 22:52    Titel: Antworten mit Zitat

Hi volta,
au prima, saug ich mir gleich grinsen
btw:
Was ist eigentlich mit www.freebasic.net los?
Firefox hat Folgendes geschrieben:
Firefox kann keine Verbindung zu dem Server unter www.freebasic.net aufbauen.
Obwohl Ping und Tracert funktionieren..
Auch SlimBrowser und Opera müssen da leider passen..
Gruß
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

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

Mit
Code:
telnet www.freebasic.net 80

bekommt man auch keine Verbindung.
_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 20.08.2006, 23:22    Titel: Antworten mit Zitat

Das tröstet mich ein wenig..
Ich bin nämlich immer noch auf der Suche nach Konfigurationsfehlern in meiner NeuInstallation grinsen
[Edit]
Jetzt hamse das Gemecker mitgekricht:
freebasic.net ist wieder da happy
Gruß
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 21.08.2006, 10:58    Titel: Antworten mit Zitat

man ich krieg die Kriese...
Die etwas veränderte Funktion LoadSaveDialog läuft so auch nicht auf XP.
XP mag dort keine ZStrings?
Code:
   Dim As ZString *MAX_PATH strFile = Space(MAX_PATH)
...
   Dim As ZString *MAX_PATH strFileTitle = Space(MAX_PATH)
...
Also ändern:
Code:
   Dim As String *1024 strFile = Space(1023)+ chr(0)
...
   Dim As String *1024 strFileTitle = String(1024,Chr(0))
...

Dann habe ich gleich mal auf XP das probiert:
Code:
      If strDefExt > "" Then
         Dim strdext As String
         strdext = strDefExt
         FB_OFN.lpstrDefExt = StrPtr(strdext)
      End If
genau wie ytwinky schrieb: in XP wird hier keine Endung angegeben?
Wie war das mit DIM in FOR .. NEXT, IF .. END IF, DO .. LOOP ....
genau das ist das Problem
Code:
      Dim strdext As String
      If strDefExt > "" Then
         strdext = strDefExt
         FB_OFN.lpstrDefExt = StrPtr(strdext)
      End If
in ME gibt es damit kein Problem, warum nur in XP?
_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 21.08.2006, 18:26    Titel: Antworten mit Zitat

..weil XP die Fortentwicklung von ME ist vor lachen auf dem Boden rollen
So, jetzt Ernst:
Ich benutze weiter MAX_PATH, denn das funktioniert genauso zwinkern
(muß dann aber heißen ..(MAX_PATH-1) &Chr(0), du weißt schon wo..)
volta hat Folgendes geschrieben:
'Dies ist ein Vorschlag/Muster, kann nach eigenem Bedarf geändert werden

Das habe ich auch gemacht, weil ich es für sinnvoll halte, daß (wenigstens) die Erweiterungen
im Programm als Array zur Verfügung stehen:
Code:
Dim Beschreibung(5) As ZString Ptr={@"Basic-", @"Text-", @"Bmp-", @"Exe-", @"Alle "}
Dim Erw(5) As ZString Ptr =        {@".Bas",   @".Txt",  @".Bmp", @".Exe", @".*"}
Dim i
For i=0 To UBound(arrExt)-1
   fil+=*Beschreibung(i) &"Dateien(*" &*Erw(i)+")" &Chr(0) &"*" &*Erw(i) &Chr(0)
Next
fil+=Chr(0)
..und das Beste ist: Es funktioniert..
Gruß
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. 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