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:

Fehler und fehlendes in Commctrl.bi

 
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
E-P-S



Anmeldungsdatum: 16.09.2004
Beiträge: 500
Wohnort: Neuruppin

BeitragVerfasst am: 10.04.2010, 12:35    Titel: Fehler und fehlendes in Commctrl.bi Antworten mit Zitat

Hi zusammen, bei verschiedenen Controls (TreeView, ListView, StatusBar etc. ) ist mir aufgefallen das es einige Fehler und fehlendes in der Commctrl.bi gibt.

Einige Zeilen sind auch auskommentiert, insbesondere Makros, weil es anscheinend nicht richtig funktioniert.

Gibt es neuere, bereinigte Varianten von deren Existienz ich nichts weis?

Ich benutze die Compiler Version 0.20.0 Beta.
_________________
Man kann sich öfter als zweimal im Leben halb tot lachen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
MOD
Fleißiger Referenzredakteur


Anmeldungsdatum: 10.09.2007
Beiträge: 1003

BeitragVerfasst am: 10.04.2010, 12:59    Titel: Antworten mit Zitat

In meiner Version sind genau zwei auskommentierte #define Zeilen und meine Version stammt auch aus der 0.20.0 Version des Compilers.

Die .bi aus der 0.21.0 SVN Version unterscheidet sich wiederrum nicht von der, die der 0.20.0 Version beiliegt.

Entweder du hast eine noch ältere Version oder irgendwas ist da kaputt. Notfalls den aktuellen C-Header runterladen und mit SWIG FB übersetzen lassen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
E-P-S



Anmeldungsdatum: 16.09.2004
Beiträge: 500
Wohnort: Neuruppin

BeitragVerfasst am: 10.04.2010, 13:37    Titel: Antworten mit Zitat

Auskommentiert ist in der Tat nicht viel, jedoch sind einige Makros fehlerhaft, habe jetzt schon 3 korrigiert, eines konnte ich nicht korrigieren weil ich den Code nicht kapiert hab zwinkern

Korrekturen:
Code:
#define ListView_DeleteAllItems(w) cint(SNDMSG(w,LVM_DELETEALLITEMS,0,0))   
#define ListView_GetCallbackMask(w) cint(SNDMSG(w,LVM_GETCALLBACKMASK,0,0))

#define TreeView_HitTest(w,p) cast(HTREEITEM,SNDMSG((w),TVM_HITTEST,0,cast(LPARAM,cast(TV_HITTESTINFO ptr,p))))


Den hier kapier ich nicht:
Code:
''''''' #define TreeView_GetItemRect(w,i,p,c) *cast(HTREEITEM ptr,p)=(i) : SNDMSG((w),TVM_GETITEMRECT,c,cast(LPARAM,cast(LPRECT,p)))


Zudem sind mir schon 2 Strukturen aufgefallen die ich korrigieren musste.

Code:
type TV_HITTESTINFO
   pt as POINT
   flags as UINT
   hItem as HTREEITEM
end type

type LPTVHITTESTINFO as TV_HITTESTINFO ptr


Die andere weis ich leider nicht mehr.

Übersetzt der SWIG das denn 1:1 korrekt so das man es direkt benutzen kann? Ich denke mal das hierdurch eher die Fehler entstehen. Das ganze ist zumindest sehr ärgerlich weil ich ewig zugebracht hab die Fehler herauszufinden.
_________________
Man kann sich öfter als zweimal im Leben halb tot lachen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
MOD
Fleißiger Referenzredakteur


Anmeldungsdatum: 10.09.2007
Beiträge: 1003

BeitragVerfasst am: 10.04.2010, 14:28    Titel: Antworten mit Zitat

Ja gut, das ist blöd.
Da sind wohl ein paar Klammern verschluck worden.

Laut meiner commctrl.h muss das eine Macro so aussehen:
Code:
#Define TreeView_GetItemRect (w, i, p, c) *Cast(HTREEITEM Ptr, p) = (i):Cast(Integer, SNDMSGA((w), TVM_GETITEMRECT, Cast(WPARAM, c), Cast(LPARAM, Cast(RECT Ptr, p)))


Deine erwähnten Strukturen kommen so nicht in meinem C-Header vor, da heißt TV_HITTESTINFO tagTVHITTESTINFO bzw. TVHITTESTINFO, also so wie in der FB-Version auch.

Hab SWIG am C-Header versucht, es hat aber leider komplett versagt, wenn es funktioniert hätte, wären aber wenige bis keine Fehler drin, so dass es sich immer lohnt SWIG auszuprobieren.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
E-P-S



Anmeldungsdatum: 16.09.2004
Beiträge: 500
Wohnort: Neuruppin

BeitragVerfasst am: 10.04.2010, 14:37    Titel: Antworten mit Zitat

Die Strukturen hießen tatsächlich anders. Das Problem ist das sie laut MSDN so heißen sollten.

Wenn man nun in die Hilfe guckt und seine Variable versucht mit TV_HITTESTINFO zu erstellen, und das so nicht vorkommt, dann sucht man schon wieder ne halbe Stunde herum bis einem auffällt das die Struktur einfach anders heißt - saublöd.

Danke auf jeden Fall für das Makro.

Wer kontrolliert das eigentlich und werden Korrekturen noch irgendwie eingepflegt oder liegt die Entwicklung auf Eis?

Ich frag nur weil das letzte Update doch schon einige Zeit her ist.
_________________
Man kann sich öfter als zweimal im Leben halb tot lachen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
MOD
Fleißiger Referenzredakteur


Anmeldungsdatum: 10.09.2007
Beiträge: 1003

BeitragVerfasst am: 10.04.2010, 14:41    Titel: Antworten mit Zitat

Die Entwicklung geht seit einiger Zeit wieder voran, wenn auch nur schleppend. Dazu gibt es jede Menge Nachrichten im FreeBASIC-Portal und auch einen tagesaktuellen Compiler aus den SVNs.

Die Header werden aber denk ich mal nicht überprüft sondern eher durch die Community aktualisiert. Also kannst du ja hier etwas tun grinsen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 10.04.2010, 19:18    Titel: Antworten mit Zitat

Nunja teilweise sind die FB-Header von Windows noch auf dem Stand von Windows 95. Warum allerdings einige Namen anders sind, kann ich mir nicht wirklich erklären. SWIG ändert daran nämlich (eigentlich) nichts...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
E-P-S



Anmeldungsdatum: 16.09.2004
Beiträge: 500
Wohnort: Neuruppin

BeitragVerfasst am: 10.04.2010, 20:42    Titel: Antworten mit Zitat

Schade das das so ist zwinkern

generell nerft mich nur das man Stunde um Stunde zubringt um solche Fehler zu lokalisieren.

Ich mag FB eigentlich sehr, aber bei sowas beginne ich es zu hassen zwinkern

Glücklicherweise, für FB, fehlt es mir an Alternativen, ausser ich wollte mich mit C++ o.ä. rumschlagen. Somit werd ich in den sauren Apfel beissen und so weitermachen wie bisher.

PureBasic gefällt mir an und für sich auch sehr gut, aber vieles muß man auch hier tricksen und das Event System verträgt sich (leider) nicht mit der SDK mit der ich PlugIns für trueSpace schreibe.
_________________
Man kann sich öfter als zweimal im Leben halb tot lachen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
HorstD



Anmeldungsdatum: 01.11.2007
Beiträge: 110

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

Zitat:
Glücklicherweise, für FB, fehlt es mir an Alternativen, ausser ich wollte mich mit C++ o.ä. rumschlagen. Somit werd ich in den sauren Apfel beissen und so weitermachen wie bisher.



Eine alternative ist noch Powerbasic.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 11.04.2010, 11:44    Titel: Antworten mit Zitat

EPS, C++ ist eig. fast immer ein Segen. Man kann schließlich fast alle Bibliotheken ohne weiteres benutzen, hat die aktuellsten Header, echte Klassen mit echter Vererbung usw. usf. Ich weiß gar nicht was viele Leute an C/C++ so schlimm finden. Klar das ist dann kein BASIC mehr. . .
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
E-P-S



Anmeldungsdatum: 16.09.2004
Beiträge: 500
Wohnort: Neuruppin

BeitragVerfasst am: 11.04.2010, 12:04    Titel: Antworten mit Zitat

Zum einen ist es einfach der Syntax der Sprache der mir nicht zugänglich ist (so oft ich es auch versucht hab).

Die vielen Klammern und Bezeichner der Variablen sowie Funktionen etc. lassen die Übersichtlichkeit leiden. Man muß für jeden "Unsinn" irgend nen Header einbinden, wobei ein Anfänger schon ewig sucht um herauszufinden welchen.

Zum anderen stört mich das man ein Projekt erstellt, noch keine einzige Zeile Code getippt hat und man dennoch schon rund 8 Dateien erstellt bekommt. Das ist einfach unübersichtlich und verwirrend.

In Basic schreib ich eine Datei, compiliere und habe eine weitere (mal von der OBJ und der LIB abgesehen). Das ist klar, simpel und strukturiert.

Wohlgemerkt lesen kann ich den Code halbwegs. Ich hab schließlich die gesamten Header Dateien der SDK für trueSpace von C++ nach FreeBasic übersetzt. Mit anderen Worten: Ich weis schon was dort geschieht wenn ich den Code lese.

Aber Code lesen und schreiben ist zweierlei.

Gut für den der es kann, denn mit C++ kann man am ehesten alles erreichen was man möchte.

Aber so schlecht ist FreeBasic für meine Ansprüche nicht und abgesehen von den Fehlern die ich so finde stört mich eigentlich nur das es keine Listen gibt. Vererbung usw. hab ich bis dato noch nicht vermisst.

Gut, manch einer könnte nun einwerfen das auch FreeBasic allgemein mit Basic weniger zu tun hat als mit C++ aber ich hab mich einfach dran gewöhnt und der Mensch ist nunmal ein Gewohnheitstier.
_________________
Man kann sich öfter als zweimal im Leben halb tot lachen.
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