 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 19.08.2006, 17:57 Titel: mit oder ohne -s gui compiliert? |
|
|
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 |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 19.08.2006, 18:57 Titel: |
|
|
Cool
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 |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 20.08.2006, 11:04 Titel: |
|
|
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 |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 20.08.2006, 13:00 Titel: |
|
|
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 |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 20.08.2006, 13:31 Titel: |
|
|
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 )
Ich konnte übergeben, was ich wollte, es ist nie eine Extension angekommen..
..also habe ich die Funktion geändert und es klappt
(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'
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 |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 20.08.2006, 21:51 Titel: |
|
|
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 |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 20.08.2006, 22:52 Titel: |
|
|
Hi volta,
au prima, saug ich mir gleich
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 |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 20.08.2006, 23:22 Titel: |
|
|
Das tröstet mich ein wenig..
Ich bin nämlich immer noch auf der Suche nach Konfigurationsfehlern in meiner NeuInstallation
[Edit]
Jetzt hamse das Gemecker mitgekricht:
freebasic.net ist wieder da
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 |
|
 |
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1876 Wohnort: D59192
|
Verfasst am: 21.08.2006, 10:58 Titel: |
|
|
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 |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 21.08.2006, 18:26 Titel: |
|
|
..weil XP die Fortentwicklung von ME ist
So, jetzt Ernst:
Ich benutze weiter MAX_PATH, denn das funktioniert genauso
(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 |
|
 |
|
|
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.
|
|