Deutsch
Bugs und vermeintliche

X11RC7: Problem mit &BmpCol

 

Sato
Pinto
Hallo

In der neuen und künftigen Xprofan version habe ich Probleme mit der Systemvariavel &BmpCol
KompilierenMarkierenSeparieren
Mit Xprofan 10 funktioniert es, bei Print &BmpCol wird richtig 2 ausgegeben

Gruss
Sato P.
 
Sato Pinto
WIN XP Home
XPROFAN 11
14.06.2008  
 




Jac
de
Lad
Versuch mal
KompilierenMarkierenSeparieren
declare BMPC&
bmpc&=&BmpCol
print BMPC&

If BMPC&<> 2

    drawtext 10,50,Grafik als monochrom konvertieren

Endif

 
Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)
Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
14.06.2008  
 



Thema verschoben und umbenannt.
 
14.06.2008  
 




RGH
Vielleicht hilft ein komplettes Beispielprogramm weiter. In dem angezeigten Code wird keine Bitmap geladen und isr &BmpCol daher undefiniert.

Gruß
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
14.06.2008  
 




Sato
Pinto
Hallo Roland

Vielleicht hilft diese kleine Proc die ein wenig abgespeckt ist
Was ich mache ist ein monochrome Graphic von 120x94 pixel auf ein dialog zu laden und schreibe in eine datei den binären code der ganzen graphic der anschliessend über die serielle schnitstelle auf einen microcontroller gesendet wird. Das funktioniert immer bis zur Xprofan10, mit der neue Xprofan version nicht mehr den die &bmpcol variavel liefert einen anderen Wert der nicht 2 ist. Nach dem laden der graphic überprüfe ich ob die grösse und es monochrom ist, fals nicht, wird es abgebrochen und die digitaliesierungs routine wird nicht durchgeführt.
KompilierenMarkierenSeparieren
proc converte_94x120

    graphic wählen zum laden

    if bombeiro120&

        temp$ = pfad$+Imagens\Bombeiros\120X94\

    elseif carga120&

        temp$ = pfad$+Imagens\Excesso de carga\120X94\

    endif

    LoadPicDialog(temp$,Seleccione o grÃ	fico,BMP)

    ifnot file$ =

        dlg2& = @Create(dialog,%hwnd,,110,210,150,150)
        @SetWindowPosition(dlg2&,-1,0,0,120,94,(2+(1+$40))) on top
        male die graphic auf ein dialog und konvertiere es anschliessend in binären code
        startpaint dlg2&
        loadbmp file$,0,0;0
        endpaint
        print %bmpx, ,%bmpy, ,&bmpcol

        If (%bmpx <> 120) or (%bmpy <> 94)

            @MessageBox((t#.translate(Converta por favor o grÃ	fico para 120x94 pixels e tente de novo)),(t#.translate(Tamanho errado)),48)
            @destroyWindow(dlg2&)
            return

        Endif

        If &BmpCol <> 2

            @MessageBox((t#.translate(Converta e guarde o grÃ	fico como monocromÃ	tico com um utilitÃ	rio como o Paint)),(t#.translate(Tamanho errado)),48)
            @destroyWindow(dlg2&)
            return

        Endif

        Hier kommt die konvertierungs routine

    Endif

Endproc

proc LoadPicDialog

    parameters local$,Titulo$,Nome$
    declare ofn#,Result&
    declare DefView&,Status%------VariÃ	vel para Hook
    Nome$=Nome$+z*.bmp;*.jpe;*.jpeg;*.jpg;*.gifzz--Filtro (ajustar se necessÃ	rio)
    dim ofn#,Gl_puffer&+256---------------Structura (Win2000/NT/XP) + Buffer
    clear ofn#
    long ofn#,0=Gl_puffer&----------------Tamanho da Estrutura para GetOpenFileName (76 para Win9x)
    long ofn#,4=%hwnd-------------Janela hirarquicamente superior
    long ofn#,12=addr(Nome$)------Filtro/Tipo
    long ofn#,28=ofn#+Gl_puffer&----------Inicio Buffer
    long ofn#,32=255--------------Tamanho Buffer
    long ofn#,44=addr(local$)------pfad inicial
    long ofn#,48=addr(Titulo$)-----Titulo
    long ofn#,52=$880024----------Flags
    long ofn#,68=procaddr(OpenFileHook,4)
    Result&=external(COMDLG32,GetOpenFileNameA,ofn#)
    file$=string$(ofn#,Gl_puffer&)
    casenot Result&:Result$=
    casenot Result&:file$=
    procaddr(OpenFileHook,-4)
    dispose ofn#
    return Result$
    return file$

endproc


In der neuen hilfe steht %BmpCol anstatt &BmpCol

Grüsse aus Portugal
Sato P.
 
Sato Pinto
WIN XP Home
XPROFAN 11
15.06.2008  
 




Sato
Pinto
Hallo Roland

Hier ein kleines Beispiel der bei mir bis Xprofan10 funktioniert
Vielleicht kannst damit sehen wo der Fehler steckt

Gruss
Sato

3 kB
Hochgeladen:22.06.2008
Ladeanzahl118
Herunterladen
 
Sato Pinto
WIN XP Home
XPROFAN 11
22.06.2008  
 




RGH
Sato Pinto
Hallo Roland

Hier ein kleines Beispiel der bei mir bis Xprofan10 funktioniert
Vielleicht kannst damit sehen wo der Fehler steckt

Gruss
Sato


Hallo,
ich habe es herausgefunden: Seit XProfan 11 kann auch LoadBmp (bzw. DrawPic, wie der Befehl jetzt heißt), auch die anderen Formate und benutzt daher OLE zum Laden der Bitmap und nicht mehr wie bisher meine selbstgeschriebene Routine. OLE liefert aber das Bild passend zum DC des Bildschirms gerendert zurück und daher hat nach dem Laden das Bild die entsprechenden Werte. Im Speicher vor dem Zeichnen liegt das Bild also tatsächlich als eine Bitmap vor, die die gleiche Farbtiefe, wie der Bildschirm hat.
Mal schauen, ob ich für .BMP und .RLE wieder meine alte Routine ausgrabe und das alte Verhalten wieder herstelle.

Gruß
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
22.06.2008  
 




Sato
Pinto
Hallo Roalnd

Danke für Deine Bemühung

Gruss
Sato
 
Sato Pinto
WIN XP Home
XPROFAN 11
22.06.2008  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

2.716 Betrachtungen

Unbenanntvor 0 min.

Themeninformationen

Dieses Thema hat 4 Teilnehmer:

Sato Pinto (4x)
RGH (2x)
Jac de Lad (1x)
iF (1x)


Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie