Deutsch
Forum

Dialog "zerstört" nach Druckbefehl

 

thb
Hallo,
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 Forum 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 über das Element fahre. Nicht nur, dass es hässlich aussieht, der Systemfont ist auch breiter, 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 ich den Druck abbreche. Verschiebe ich den 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
Hallo,

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 für alle Fenster und den Druck den selben Font nutzen möchte. Ich verwende USEFONT nur noch für die Druckausgabe und die Ausgabe auf dem Fenster mit DrawText.

Um den Font für 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 für die Druckausgabe oder Ausgabe auf dem Fenster mit DrawText verwenden!
2. SETDIALOGFONT nur mit einem Fonthandle benutzen, und niemals mit 1.

Gruß
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  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

7.735 Betrachtungen

Unbenanntvor 0 min.
H.Brill06.06.2021
HofK20.07.2016
Pauli21.08.2013
mein02.06.2013
Mehr...

Themeninformationen

Dieses Thema hat 3 Teilnehmer:

thb (2x)
Jörg Sellmeyer (1x)
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