| |
|
|
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. |
|
|
| |
|
|
|
Jac de Lad | |
|
| 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. |
|
|
| |
|
|
|
RGH | Vielleicht hilft ein komplettes Beispielprogramm weiter. In dem angezeigten Code wird keine Bitmap geladen und isr &BmpCol daher undefiniert.
Saluto 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 un datei den binären code der ganzen graphic der anschliessend circa 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$
ss=s4 href='./../../funktionsreferenzen/xprofan/endproc/'>endproc
In der neuen hilfe steht %BmpCol anstatt &BmpCol
Grüsse aus Portugal Sato P. |
|
|
| |
|
|
|
Sato Pinto | Hallo Roland
Hier ein kleines Beispiel der bei mir bis Xprofan10 funktioniert Vielleicht kannst damit sehen wo der Fehler steckt
Gruss Sato |
|
|
| |
|
|
|
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
Ciao, ich habe es herausgefunden: Seit XProfan 11 kann auch LoadBmp (bzw. DrawPic, wie der Befehl jetzt è), 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 per .BMP und .RLE wieder meine alte Routine ausgrabe und das alte Verhalten wieder herstelle.
Saluto 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 per Deine Bemühung
Gruss Sato |
|
|
| |
|
|