Forum | | | | E.T. | Folgenden Code hab ich mal aus meinem Programm "herausgeschnitten" und so ein lauffähiges Beispiel erstellt. Das Problem ist nicht das Drucken, sondern das Fenster nach dem Drucken. Fahre ich dann mit der Maus über die einzelnen Elemente, werden diese mit einer völlig anderen Schrift neu gezeichnet (siehe Anhang).
Diese Problem, hier mit einem Fenster, wirkt sich auf mein gesamtes Programm mit allen Dialogen etc. aus .
Das Problem tritt nicht auf, wenn der Drucker-Dialog abgebrochen wird. Also scheint es zwischen StartPrint und EndPrint zu liegen. KompilierenMarkierenSeparieren
Proc Dat_Print
Parameters Seite1%, Seite2%, Seite3%, Seite4%, Seite5%, Vorschau%, DruckDialog%
IfNot Druckdialog%
StartPrint "FFWV druckt..."
ElseIf Druckdialog%
StartPrint "*FFWV druckt..."
EndIf
If %Printing
If Seite1%
DrawText 10,10,"Seite 1"
EndIf
If Seite2%
NextPage
DrawText 10,10,"Seite 2"
EndIf
If Seite3%
NextPage
DrawText 10,10,"Seite 3"
EndIf
If Seite4%
NextPage
DrawText 10,10,"Seite 4"
EndIf
If Seite5%
NextPage
DrawText 10,10,"Seite 5"
EndIf
EndPrint
EndIf
EndProc
Declare Btn1&, Btn2&, Btn3&, Btn4&, Ausw_1&, Ausw_2&, Ausw_3&, Ausw_4&, Ausw_5&, Ausw_6&, Ausw_7&
declare Params%[], HelpWin_Ende%, FrameFont&
Def @GetSysColor(1) !"USER32","GetSysColor" dem Aussehen wegen...
WindowStyle 1024 + $800 + 16
Window (%MaxX-200),(%MaxY-200)-1,1
CLS @GetSysColor(15)
Usefont "MS Sans Serif",14,1,0,0,0
FrameFont& = @Create("Font","MS Sans Serif",14,1,1,0,0)
Setdialogfont FrameFont&
@Create("GroupBox",%HWnd,"Bitte wählen Sie aus, was gedruckt werden soll : ",10,10,370,220)
@Create("GroupBox",%HWnd,"Druck - Einstellungen : ",10,240,370,80)
Setdialogfont 1
Ausw_1& = @Create("CheckBox",%HWnd,"SEITE 1 : Persönliche Daten",20,40,300,20)
Ausw_2& = @Create("CheckBox",%HWnd,"SEITE 2 : Lehrgänge && Auszeichnungen",20,70,300,20)
Ausw_3& = @Create("CheckBox",%HWnd,"SEITE 3 : Beförderungen",20,100,300,20)
Ausw_4& = @Create("CheckBox",%HWnd,"SEITE 4 : Persönliche Ausrüstung",20,130,300,20)
Ausw_5& = @Create("CheckBox",%HWnd,"SEITE 5 : Sonstiges / Text",20,160,300,20)
Ausw_6& = @Create("CheckBox",%HWnd,"Druck - Vorschau verwenden",20,260,300,20)
EnableWindow Ausw_6&,0
Ausw_7& = @Create("CheckBox",%HWnd,"Drucker-Auswahl-Dialog",20,290,300,20)
SetCheck Ausw_1& ,1
SetCheck Ausw_2& ,1
SetCheck Ausw_3& ,1
SetCheck Ausw_4& ,1
SetCheck Ausw_5& ,1
SetCheck Ausw_7& ,1
Btn1& = @Create("Button",%HWnd,"DRUCKEN",40,340,150,25)
Btn2& = @Create("Button",%HWnd,"Abbrechen",210,340,150,25)
Btn3& = @Create("Button",%HWnd,"Alles AN",80,190,100,25)
Btn4& = @Create("Button",%HWnd,"Alles AUS",220,190,100,25)
WhileLoop 200
SetWindowPos %HWnd=(%MaxX/2-200),(%MaxY/2-200) - &loop*2,&loop*2,-1
EndWhile
Clear HelpWin_Ende%
WhileNot HelpWin_Ende%
If @GetCheck(Ausw_1&) OR @GetCheck(Ausw_2&) OR @GetCheck(Ausw_3&) OR @GetCheck(Ausw_4&) OR @GetCheck(Ausw_5&)
EnableWindow Btn1&,1
ElseIf (@GetCheck(Ausw_1&)=0) AND (@GetCheck(Ausw_2&)=0) AND (@GetCheck(Ausw_3&)=0) AND (@GetCheck(Ausw_4&)=0) AND (@GetCheck(Ausw_5&)=0)
EnableWindow Btn1&,0
EndIf
waitinput Print_Wahl
If @Clicked(Btn1&)
Params%[1] = @GetCheck(Ausw_1&)
Params%[2] = @GetCheck(Ausw_2&)
Params%[3] = @GetCheck(Ausw_3&)
Params%[4] = @GetCheck(Ausw_4&)
Params%[5] = @GetCheck(Ausw_5&)
Params%[6] = @GetCheck(Ausw_6&)
Params%[7] = @GetCheck(Ausw_7&)
Dat_Print Params%[1],Params%[2],Params%[3],Params%[4],Params%[5],Params%[6],Params%[7]
ElseIf @Clicked(Btn2&)
HelpWin_Ende% = 1
ElseIf @Clicked(Btn3&)
SetCheck Ausw_1& ,1
SetCheck Ausw_2& ,1
SetCheck Ausw_3& ,1
SetCheck Ausw_4& ,1
SetCheck Ausw_5& ,1
ElseIf @Clicked(Btn4&)
SetCheck Ausw_1& ,0
SetCheck Ausw_2& ,0
SetCheck Ausw_3& ,0
SetCheck Ausw_4& ,0
SetCheck Ausw_5& ,0
EndIf
EndWhile
DestroyWindow(%HWnd)
DeleteObject FrameFont&
End
Kann da wer helfen ??
Ach so, und mit dem orig. Adobe Acrobat-Drucker stürzt der Rechner ab. Das Problem sollte (lt. off. Profan-Forum [...] seid Version 9 behoben sein... |
| | | Grüße aus Sachsen... Mario WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte... | 20.11.2008 ▲ |
| |
| | | SetFont behebt das Problem, myFnt=create("font"...; setFont hCtrl,myFnt |
| | | | |
| | Thomas Freier | Das Sicherste ist, allen Elementen ein "SETFONT nnn,nnn" zu verpassen. Andere Versuche, den Quell des Übels zu finden, habe ich aufgegeben. |
| | | | |
| | E.T. | Du meinst jetz aber nicht, für jedes Objekt den Font einzeln setzen ??
Edit: upps, überschnitten mit Thomas... |
| | | Grüße aus Sachsen... Mario WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte... | 20.11.2008 ▲ |
| |
| | | Das wird wohl das Sicherste sein. KompilierenMarkierenSeparierenCLS
var HFNT&=CREATE("MS Sans Serif",10,0,0,0,0)
var MYBUT&=_SFNT(CREATE("Button",%HWND,"oO",10,10,100,100))
WAITINPUT
end
proc _SFNT
PARAMETERS H&
SETFONT H&,HFNT&
RETURN H&
endproc
KompilierenMarkierenSeparierencls
long hFnt=create("MS Sans Serif",10,,,,),
myBut=_sFnt(create("Button",hWnd,"oO",10,10,100,100))
waitInput
end
_sFnt(long h){
setFont h,hFnt
return h
}
|
| | | | |
| | RGH | Auf den ersten blick halte ich die Zeile "SetDialogFont 1" für den Übeltäter. Immer "SetDialogfont font&" verwenden, also einen mit Create erzeugten Font angeben. Mit "SetDialogFont 0" nimmt man wieder den (eher häßlichen) Systemfont für Dialogelemente.
In dem Zusammenhang: Ein UseFont wirkt sich auf alle folgenden Ausgaben mit DrawText aus und sollte auch nur dafür verwendet werden. "SetDialofont 1" ist ein historisches Relikt und sollte grundsätzlich nicht mehr verwandt werden.
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 | 20.11.2008 ▲ |
| |
| | Thomas Freier | und gleich alle Tooltips mit einschließen, wenn Rolands Tip nicht hilft. |
| | | | |
| | E.T. | Also im meinem Beispiel hats geholfen . Habe wie folgt geändert:
Usefont "MS Sans Serif",14,1,0,0,0 >>>Std_Font& = @Create("Font","MS Sans Serif",14,1,0,0,0)
Setdialogfont 1 >>> Setdialogfont Std_Font&
Werde das jetzt mal ins "richtige" Prog einbauen, mal schauen... (das wird zwar eine Weile dauern, aber naja...)
Danke, Roland und alle anderen !!
mir selbst:
Ach so, und mit dem orig. Adobe Acrobat-Drucker stürzt der Rechner ab. Das Problem sollte (lt. off. Profan-Forum [...] ) seid Version 9 behoben sein...
Gibts dazu noch was neues ?? |
| | | Grüße aus Sachsen... Mario WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte... | 20.11.2008 ▲ |
| |
| | E.T. | SUPER !!! Mit der Lösung von Roland klappts (mit immer noch vertretbarem Aufwand)!!!
David, wo kann ich Roland "paar Sterne" sponsoren ?? Oder ist das abgeschafft ?? |
| | | Grüße aus Sachsen... Mario WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte... | 20.11.2008 ▲ |
| |
| | | Per dem "Menü"-Knopf welcher sich an jedem Beitrag unten anfügt. |
| | | | |
| | E.T. | @IF: Danke, gefunden
...und das Thema pdf-Drucker ist mit Rolands Lösung (hoffentlich) auch geklärt!! |
| | | Grüße aus Sachsen... Mario WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte... | 20.11.2008 ▲ |
| |
| | E.T. | mir selbst
...und das Thema pdf-Drucker ist mit Rolands Lösung (hoffentlich) auch geklärt!!
Schade, wohl doch nicht . Habe jetzt mein Programm weiter ausgebaut. Da jetzt mehr zu drucken ist und dadurch das ereichen von EndPrint länger dauert, stürzt WIN wieder komplett ab ab. Auf allen anderen Druckern funktionierts... |
| | | Grüße aus Sachsen... Mario WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte... | 22.11.2008 ▲ |
| |
|
AntwortenThemenoptionen | 4.201 Betrachtungen |
ThemeninformationenDieses Thema hat 4 Teilnehmer: |