|
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 |
BD
Anmeldungsdatum: 15.01.2014 Beiträge: 38
|
Verfasst am: 16.01.2014, 15:27 Titel: Hilfen zu Funktionen und Konstanten der WinAPI |
|
|
Wie ich festgestellt habe, fand ich bei der Suche nach Problemlösungen nur sehr wenige ausführliche Beschreibungen der Funktionen und Konstanten und wie man sie in FreeBASIC nutzen kann. Am Beispiel der Funktion SendMessage() wurde zwar BM_SETIMAGE im FBEdit zur Auswahl vorgeblendet, jedoch STM_SETIMAGE nicht. Diese Konstanten wurden auch bei der Suche in den Hilfedateien nicht erwähnt. Erst später, als ich den Konstantennamen kannte, fand ich ihn auch in der WinAPI-Hilfe. Nur ein Durchsuchen der .bi-Dateien von FreeBASIC brachte mir anfangs STM_SETIMAGE ans Tageslicht. Auch sind in den Hilfedateien keinerlei Beispiele vorgesehen. Bei einem Problem weiß man immer nur, dass es eine Funktion oder eine entsprechende Konstante geben muss, rätselt aber herum, wie diese nun heißen mag.
Meine Frage ist: Gibt es eine Auflistung besonders der Konstanten und ihrer Verwendungsmöglichkeiten und gibt es Hilfedateien, die auch Beispiele zu der Verwendung ihrer Funktion beinhalten?
Durch die VBA-Programmierung ist man hier extrem "verwöhnt" und vermisst so etwas.
Auf der BASIC-Schiene hatte ich damals bereits mit dem allerersten BASIC-Interpreter angefangen. Über TurboBASIC, PowerBASIC zu Visual Basic for Applications in Excel, Word und Access. Und jetzt mit FreeBASIC wieder zurück zu einer eigenständigen Entwicklungsumgebung. Von daher kennt man viele Variationen an Funktionen, doch da ich gerade nur unter VBA die WinAPI (mehr automatisch durch VBA-Funktionen) genutzt habe, ist dies nicht wirklich in FreeBASIC übernehmbar. Von daher mein Anliegen, wenn möglich die manchmal nervtötende und manchmal auch fruchtlose Sucherei etwas einzudämmen. |
|
Nach oben |
|
|
Sebastian Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 16.01.2014, 15:47 Titel: Petzold |
|
|
Hallo,
die Entwicklung von Benutzeroberflächen mit nichts als dem puren Win32-API ist auch sehr mühselig, finde ich.
Über den Einstieg in "Lutz_Ifers WinAPI Tutorial" hinaus findet man Informationen bspw. im "Petzold":
http://www.freebasic-portal.de/buchempfehlungen.html (gleich das erste)
Ansonsten ist die MSDN Library die offizielle Doku zur WinAPI-Entwicklung. Häufig findet man, was man sucht, wenn man bei Google einfach MSDN+SetEnumFooBarEx (Beispiel) eingibt.
Ansonsten gibt es auch hier noch Material: http://www.codingcrew.de/programmierung/win32hlp.php
Deutlich angenehmer als WinAPI-GUIs finde ich GTK+. Wenn man seine Oberflächen mit dieser Bibliothek erstellt, laufen die Programme auch 1:1 unter Windows und Linux, während man beim WinAPI natürlich auf Windows beschränkt ist.
GTK+ ist (m. M. n.) leichter verständlich als die "Low-Level"-WinAPI-GUI-Entwicklung und die Dokumentation ist hilfreich.
Außerdem gibt es mit Glade und GladeToBac auch ein Tool, um den grundsätzlichen Aufbau der Oberfläche "zusammenklicken" zu können.
Der Nachteil von GTK+ ist, dass man zusätzliche DLLs mitliefern muss. Wenn man das WinAPI verwendet, braucht man nichts mitzuliefern, wenn man sein Programm in Umlauf bringt.
Viele Grüße!
Sebastian _________________
Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen! |
|
Nach oben |
|
|
BD
Anmeldungsdatum: 15.01.2014 Beiträge: 38
|
Verfasst am: 16.01.2014, 20:15 Titel: |
|
|
Vielen Dank für die Links.
Aus Lutz_Ifers WinAPI Tutorial habe ich mir auch für einige Problemlösungen Anregungen geholt. Besonders im Zusammenspiel zwischen FreeBASIC und der WinAPI war es sehr hilfreich. Leider hat man meist ein anderes Problem als das dort beschriebene, aber mit etwas Kreativität und Herumprobieren und auch hier im Forum Nachfragen funktioniert es.
GTK+ werde ich mir auf jeden Fall näher anschauen.
Schön ist eben, dass man durch die WinAPI ein Stand Alone Programm hat und das reizt mich daran, diesen schwierigeren Weg zu gehen.
Von Glade höre ich jetzt zum ersten Mal. Das werde ich mir ebenfalls ansehen.
FreeBASIC erinnert mich wirklich sehr an mein ehemaliges PowerBASIC, dass ich mich dort gleich "heimisch" fühlte, wenn da die WinAPI nicht wäre. Doch irgendwie bekommt man schon alles zum Laufen.
Erstmal vielen Dank. Da habe ich, was besonders die WinAPI angeht, noch einiges an Lektüre vor mir. |
|
Nach oben |
|
|
MOD Fleißiger Referenzredakteur
Anmeldungsdatum: 10.09.2007 Beiträge: 1003
|
Verfasst am: 16.01.2014, 20:38 Titel: |
|
|
Aus einem anderen Thread: http://forum.qbasic.at/viewtopic.php?p=104595#104595
Das Problem wirst du leider mit allen großen GUIs und Libraries haben. Es ist nicht die Aufgabe von FreeBASIC, alle Libs, die man in FB nutzen kann, bis ins Detail zu beschreiben. Das ist sogar unmöglich.
Vielmehr muss man sich als Nutzer einer Lib an die Hersteller der Lib wenden und dortige Codes und Tutorials nach FB übersetzen. Das gilt eben auch für die WinAPI, deren Referenz MSDN ist und dessen C-Beispiele man nach FB übersetzen muss. |
|
Nach oben |
|
|
BD
Anmeldungsdatum: 15.01.2014 Beiträge: 38
|
Verfasst am: 17.01.2014, 13:13 Titel: |
|
|
@MOD: Alle zu beschreiben wäre wirklich zuviel verlangt. Es gibt ja auch ständig neue.
Da die WinAPI allerdings eine recht "gängige" API ist, dachte ich nur, dass es da schon Einiges an Beispielen etc. gäbe, ich es nur nicht gefunden habe.
Ich habe inzwischen damit begonnen, mir besonders für die Dialog-Objekte und deren Eigenschaften eine Beispiel-Applikation zu schreiben, deren einziger Sinn es ist, das Zusammenspiel von FreeBASIC und WinAPI an gängigen Objekten zu zeigen. Der Programmcode dient mir dann als "Nachschlagewerk", wenn ich in einem anderen Programm eine ähnliche Funktionalität benötige. |
|
Nach oben |
|
|
Sebastian Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 17.01.2014, 17:19 Titel: |
|
|
BD hat Folgendes geschrieben: | Ich habe inzwischen damit begonnen, mir besonders für die Dialog-Objekte und deren Eigenschaften eine Beispiel-Applikation zu schreiben, deren einziger Sinn es ist, das Zusammenspiel von FreeBASIC und WinAPI an gängigen Objekten zu zeigen. Der Programmcode dient mir dann als "Nachschlagewerk", wenn ich in einem anderen Programm eine ähnliche Funktionalität benötige. |
Du bist übrigens jederzeit eingeladen, deine gesammelten Erfahrungen und Codes im FreeBASIC-Portal als Code-Beispiel oder Tutorial zu veröffentlichen, um anderen Programmierern ein bisschen Hilfestellung zu geben. Dann könnten andere auf deinen Recherchen aufbauen und müssten nicht auch wieder bei 0 anfangen. _________________
Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen! |
|
Nach oben |
|
|
BD
Anmeldungsdatum: 15.01.2014 Beiträge: 38
|
Verfasst am: 19.01.2014, 17:19 Titel: |
|
|
Ja, natürlich gerne.
Mir ist zum Beispiel noch etwas Grundsätzliches im FBEdit aufgefallen. Dort ist in der FbEdit.ini ein Eintrag zum Menüpunkt Compiler Version:
Code: | 5=Compiler Version,cmd.exe "/k $C\fbc.exe -version" |
dieser führt, wenn man FreeBASIC in einem Verzeichnis mit Verzeichnisnamen mit Leerstellen hat, zu einem Fehler
Man sollte diesen abändern auf:
Code: | 5=Compiler Version,cmd.exe "/k "$C\fbc.exe" -version" |
dann funktioniert es auch dann, wenn Leerzeichen im FreeBASIC-Pfad sind. |
|
Nach oben |
|
|
Sebastian Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
|
BD
Anmeldungsdatum: 15.01.2014 Beiträge: 38
|
Verfasst am: 19.01.2014, 22:03 Titel: |
|
|
Naja, das stört Windows nicht, den Ordner für Programme "Program Files (x86)" zu nennen, und da sind nunmal Leerzeichen drin. Was in Windows vorkommt, muss FreeBASIC nunmal verarbeiten können. Auch die Programme wissen nie, auf welch eine Umgebung sie treffen. In Windows-Zeiten sind nunmal auch japanische Katakana, Hiragana und Kanji-Zeichen in Datei- und Pfadnamen möglich. |
|
Nach oben |
|
|
Jojo alter Rang
Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 19.01.2014, 23:14 Titel: |
|
|
Solche Zeichen nicht zu unterstützen ist auch komplett veraltetes Denken. Die WinAPI kann schon seit ewigkeiten mit Unicode-Pfaden umgehen. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
|
|
Nach oben |
|
|
BD
Anmeldungsdatum: 15.01.2014 Beiträge: 38
|
Verfasst am: 19.01.2014, 23:33 Titel: |
|
|
Deswegen oben der Tipp, dass $C (im Pfad) korrekt verarbeitet wird. |
|
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.
|
|