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:

Hilfen zu Funktionen und Konstanten der WinAPI

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



Anmeldungsdatum: 14.01.2014
Beiträge: 38

BeitragVerfasst am: 16.01.2014, 14:27    Titel: Hilfen zu Funktionen und Konstanten der WinAPI Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 16.01.2014, 14:47    Titel: Petzold Antworten mit Zitat

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
_________________

Der Markt regelt das! | 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
BD



Anmeldungsdatum: 14.01.2014
Beiträge: 38

BeitragVerfasst am: 16.01.2014, 19:15    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
MOD
Fleißiger Referenzredakteur


Anmeldungsdatum: 10.09.2007
Beiträge: 1003

BeitragVerfasst am: 16.01.2014, 19:38    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
BD



Anmeldungsdatum: 14.01.2014
Beiträge: 38

BeitragVerfasst am: 17.01.2014, 12:13    Titel: Antworten mit Zitat

@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
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 17.01.2014, 16:19    Titel: Antworten mit Zitat

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. lächeln
_________________

Der Markt regelt das! | 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
BD



Anmeldungsdatum: 14.01.2014
Beiträge: 38

BeitragVerfasst am: 19.01.2014, 16:19    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 19.01.2014, 16:29    Titel: Antworten mit Zitat

Von Leerzeichen in Pfaden würde ich grundsätzlich abraten. Genauso von Dollarzeichen, Fragezeichen, internationalen Spezialzeichen (ä, â, å, á, ...) usw.
_________________

Der Markt regelt das! | 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
BD



Anmeldungsdatum: 14.01.2014
Beiträge: 38

BeitragVerfasst am: 19.01.2014, 21:03    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

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

Solche Zeichen nicht zu unterstützen ist auch komplett veraltetes Denken. Die WinAPI kann schon seit ewigkeiten mit Unicode-Pfaden umgehen. zwinkern
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
BD



Anmeldungsdatum: 14.01.2014
Beiträge: 38

BeitragVerfasst am: 19.01.2014, 22:33    Titel: Antworten mit Zitat

Deswegen oben der Tipp, dass $C (im Pfad) korrekt verarbeitet wird. lächeln
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 -> Windows-spezifische Fragen 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