Italia
Foro

Dialog "zerstört" nach Druckbefehl

 

thb
Ciao,
ich möchte gerne aus einer Eingabemaske heraus einen Druck starten (Datenbankanwendung). Nach dem Ausdruck soll der Anwender weitere Eingaben in der Maske machen können.
Zuerst hatte ich Probleme mit der zweiten Seite eines mehrseitigen Ausdruckes, hier hat mir das Foro weitergeholfen, ich muss den Befehl Usefont benutzen. Ausdruck klappt jetzt.
Aaaaber: mein Dialog (der ja im Hintergrund wartet) wird plötzlich nicht mehr mit dem Systemfont (?) dargestellt, zum Teil verändert sich der Dialog sofort bzw. die Veränderung beginnt in dem Moment, wo ich mit der Maus circa das Element fahre. Nicht nur, dass es hässlich aussieht, der Systemfont ist auch più ampia, so dass der Text zum Teil nicht mehr zu lesen ist.
Ich habe das Problem mal von meinem Programm und der Datenbank gelöst, so dass es einen überschaubaren Quelltext gibt:
DECLARE DLG&, DIALOGENDE%,TEXT1&,EDIT1&,BUTTON1&
DEF GETSYSCOLOR(1) !"USER32","GetSysColor"

PROC DIALOG

    DLG&=CREATE("DIALOG",%HWND,"Neues Fenster",22,20,281,182)
    USEFONT "MS Sans Serif",13,0,0,0,0
    SETDIALOGFONT 1
    TEXT1& =@CREATE("TEXT",DLG&,"Irgendein Text",0023,0022,0070,0020)
    EDIT1& =@CREATE("EDIT",DLG&,"Irgendwas",0115,0021,0120,0020)
    BUTTON1& =@CREATE("BUTTON",DLG&,"Testdruck",0026,0082,0208,0030)
    SETFOCUS(DLG&)
    DIALOGENDE%=0

    WHILENOT DIALOGENDE%

        WAITINPUT

        If %KEY=2

            DIALOGENDE%= 1

        ELSEIF CLICKED(EDIT1&)'EDIT

        ELSEIF CLICKED(BUTTON1&)'BUTTON

            UseFont "Arial",0,0,0,0,0'Druck in Arial ohne Textauszeichnung
            StartPrint "*Testausdruck"

            If %Printing

                MoveTo 34, 34
                LineTo 34 + 343, 34
                LineTo 34 + 343, 34 + 343
                LineTo 34, 34 + 343
                LineTo 34, 34
                EndPrint

            EndIf

        ENDIF

    ENDWHILE

    DESTROYWINDOW(DLG&)

ENDPROC

SET("AUTOPAINT",2)
'Das folgende Hauptfenster ist nur zum Testen:
WINDOWTITLE "DUMMY HAUPTFENSTER"
WINDOWSTYLE 63
WINDOW (%maxx-300),10-280,80
CLS RGB(0,0,0)
Color 10,0
PRINT "Bitte aufs Systemmenükreuz klicken "
DIALOG'Dialog aufrufen!

Wenn ich nun den Button klicke, wird der Button in einer anderen Schriftart dargestellt. Der Effekt tritt auch auf, wenn Io l' Druck abbreche. Verschiebe Io l' Windows-eigenen Dialog "Druckereinrichtung", dann werden alle Elemente in meinem Fenster im Systemfont dargestellt (und z.B. der Text ist nicht mehr vollständig zu lesen).
Gibt es eine Möglichkeit, dieses Verhalten zu unterbinden? Vielleicht auch ohne, alle Elemente im Fenster neu zu erstellen?
Thomas
 
17.04.2012  
 




RGH
Ciao,

in solchen Fällen sollte man nicht USEFONT benutzen, um den Font eines Fensters oder Dialoges zu setzen. Der Befehl ist nur sinnvoll, wenn man per alle Fenster und den Druck den selben Font nutzen möchte. Ich verwende USEFONT nur noch per die Druckausgabe und die Ausgabe auf dem Fenster mit DrawText.

Um den Font per ein Fenster/Dialog/Dialogelement gezielt zu setzen, verwende @CREATE("FONT",....), um ein Font-Handle zu erzeugen und SETFONT, um dieses Handle gezielt einem Fenster etc. zuzuweisen bzw. SETDIALOGFONT mit dem Handle als Parameter, um ihn allen weiteren Dialogen bzw. Dialogelementen zuzuweisen.

Merke:
1. USEFONT nur per die Druckausgabe oder Ausgabe auf dem Fenster mit DrawText verwenden!
2. SETDIALOGFONT nur mit einem Fonthandle benutzen, und niemals mit 1.

Saluto
Roland
 
XProfan X2
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
17.04.2012  
 




Jörg
Sellmeyer
Am Besten Du setzt nach dem Erstellen des Hauptfensters die Programmschriftart mit:

fest. Das ist die Standardschriftart, die der User eingestellt hat. Dafür muß mit
 $H windows.ph

die Headerdatei eingebunden werden. Das hat noch den Vorteil, dass Du kein Fonthandle am Programmende löschen mußt.
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
17.04.2012  
 




thb
Perfekt. Danke!
Thomas
 
17.04.2012  
 



Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

7.866 Views

Untitledvor 0 min.
H.Brill06.06.2021
HofK20.07.2016
Pauli21.08.2013
mein02.06.2013
Di più...

Themeninformationen

Dieses Thema hat 3 subscriber:

thb (2x)
Jörg Sellmeyer (1x)
RGH (1x)


Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


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