Deutsch
Forum

Druck- / Fenster - Problem

 

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...

11 kB
Hochgeladen:20.11.2008
Ladeanzahl65
Herunterladen
 
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
 
20.11.2008  
 




Thomas
Freier
Das Sicherste ist, allen Elementen ein "SETFONT nnn,nnn" zu verpassen. Andere Versuche, den Quell des Übels zu finden, habe ich aufgegeben.
 
Gruß Thomas
Windows XP SP2, XProfan X2
20.11.2008  
 




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.
KompilierenMarkierenSeparieren
CLS
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


KompilierenMarkierenSeparieren
cls
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

}

 
20.11.2008  
 




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.
 
Gruß Thomas
Windows XP SP2, XProfan X2
20.11.2008  
 




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.
 
20.11.2008  
 




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  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

4.234 Betrachtungen

Unbenanntvor 0 min.
Manfred Barei26.07.2015
Georg Teles14.10.2014
Peter Max Müller11.12.2011
Julian Schmidt21.09.2011

Themeninformationen

Dieses Thema hat 4 Teilnehmer:

E.T. (7x)
Thomas Freier (3x)
iF (3x)
RGH (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