Hallo Zusammen,
wenn ich ein GUI Xbase-Programme starte flackert immer ein Fenster im Hintergrund auf,
bevor das Programmfenster öffnet.
Auch wenn ich die Xbase-Workbensch starte.
Sieht aus wie ein Consolen-Fenster.
Warum ist das so ?
Ist bei meinem Rechner was falsch installiert ?
Muss man sich daran gewöhnen ?
Aufflackern eines Fensters beim Start von Xbase-Programmen
Moderator: Moderatoren
- brandelh
- Foren-Moderator
- Beiträge: 15696
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Aufflackern eines Fensters beim Start von Xbase-Programmen
Das ist die Standardeinstellung, und z.B. bei Debuggen gar nicht übel.
Aber man kann das Ändern
APPSYS.PRG (wird automatisch geladen) zeigt, dass ein Consolenfenster erstellt wird und danach zusätzlich eventuelle XbpDialog() von dir.
Hier ist meine APPSYS Prozedur bei reinen GUI Anwendungen (der Prozedurname kann auch einfach in einer anderen Datei liegen).
Es wird ein Standard MDI Hauptfenster angelegt, mit Standardwerten aus INI gefüttert und zentriert.
Aber man kann das Ändern
APPSYS.PRG (wird automatisch geladen) zeigt, dass ein Consolenfenster erstellt wird und danach zusätzlich eventuelle XbpDialog() von dir.
Hier ist meine APPSYS Prozedur bei reinen GUI Anwendungen (der Prozedurname kann auch einfach in einer anderen Datei liegen).
Es wird ein Standard MDI Hauptfenster angelegt, mit Standardwerten aus INI gefüttert und zentriert.
Code: Alles auswählen
*--------------------------------------------------------------------------------
PROCEDURE AppSys
LOCAL oDlg, oXbp, aPos[2], aSize, aDesktopSize
// GrӇe vom DeskTop feststellen
// und Anwendungsfenster dimensionieren
aDesktopSize := AppDesktop():currentSize()
aSize := {0,0}
aPos[1] := 0.1 * aDesktopSize[1]
aPos[2] := 0.1 * aDesktopSize[2]
aSize[1] := 0.8 * aDesktopSize[1]
aSize[2] := 0.8 * aDesktopSize[2]
// Anwendungsfenster erzeugen (application window)
oDlg := MyHBRootDialog():new( ,, aPos, aSize,, .F. )
#ifdef DEBUG
oDlg:title := HB_PROG_NAME + " * DEBUG *"
#else
oDlg:title := HB_PROG_NAME
#endif
oDlg:ProgName := HB_PROG_NAME
oDlg:ProgVersion := HB_PROG_VERSION
oDlg:ProgVersionMitDatum := HB_PROG_VERSION_MIT_DATUM
oDlg:ProgFreiDatum := HB_PROG_FREI_DATE
oDlg:aProgOwner := HB_PROG_OWNER
oDlg:aProgUser := HB_PROG_USER
oDlg:aLizenzText := HB_PROG_LIZENZ_TEXT
oDlg:UserInfo := "?" // das ist jetzt noch nicht bekannt.
oDlg:NotHideMenuItems := .t. // Immer Bearbeiten und Fenster anzeigen
oDlg:RunInReadOnlyMode := HB_PROG_RunInReadOnlyMode // (-> keine Schreibzugriffe im Programmverzeichnis !)
// Anwendungsfenster systemweit abrufbar machen
RootWindow( oDlg )
// Hintergrundbilder ? in ANW_ALLG.CH und ANW_ALLG.ARC definieren
// oDlg:DlgAboutBitmap := 0 -> Standard kein Hintergrundbild !
// diese beiden Variablen steuern die Darstellung von HB_ABOUT.PRG
oDlg:DlgAboutBitmap := ID_BITMAP_HG1
oDlg:DlgAboutOption := XBP_IMAGE_NORMAL // im kleinen Fenster besser keine Anpassung
// Fensterhintergrund vom Hauptfenster
* oDlg:drawingArea:bitmap := ID_BITMAP_HG1
* oDlg:drawingArea:options := XBP_IMAGE_SCALED // hier ist dies meist schön
oDlg:icon := ICON_APPLICATION
oDlg:close := {|| AppQuit() }
oDLg:taskList := .T.
oDlg:create()
if empty(oDlg:DlgAboutBitmap) // keine Bitmap
// Windowsstandard verwenden
oDlg:DlgAboutBG := XBPSYSCLR_DIALOGBACKGROUND
// oder etwas mehr Pep
oDlg:DlgAboutBG := GraMakeRGBColor({197,215,243}) // ein helles Blau
else
// mit Bitmap auf Transparent schalten !!!
oDlg:DlgAboutBG := XBPSYSCLR_TRANSPARENT
endif
if empty(oDlg:drawingArea:bitmap)
oDlg:drawingArea:SetColorBG( XBPSYSCLR_DIALOGBACKGROUND )
else
oDlg:drawingArea:SetColorBG( XBPSYSCLR_TRANSPARENT )
endif
SetAppWindow( oDlg )
// Hauptmen systemweit abrufbar machen (UDF)
AppMenu( oDlg:menuBar() )
// Mensystem erzeugen (UDF)
MenuCreate( AppMenu(), oDlg )
*################### Wie wird es mit der Hilfe ????
/*
// Online-Hilfe mit UDF bereitstellen
oXbp := XbpHelpLabel():new():create()
oXbp:helpObject := ;
HelpObject( "MDIDEMOG.HLP", "Hilfe fr MDI Grundgerst" )
oDlg:helpLink := oXbp
*/
// Anwendungsfenster anzeigen und Fokus geben
oDlg:show()
SetAppFocus( oDlg )
RETURN
*------------------------------------------------------------------------------------------------------------
CLASS MyHBRootDialog FROM HBRootDialog // Platz für eigene Erweiterungen
ENDCLASS
Gruß
Hubert
Hubert
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9361
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 101 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Re: Aufflackern eines Fensters beim Start von Xbase-Programmen
Einfach das hier irgendwo in den Code:
Code: Alles auswählen
PROCEDURE AppSys() ; RETURN
Herzlich,
Tom
Tom