Im Fenster ist Hintergrund sichtbar

Grafische Primitive, XbaseParts und Darstellungsfragen allgemein.

Moderator: Moderatoren

Antworten
KHKDampflok
UDF-Programmierer
UDF-Programmierer
Beiträge: 68
Registriert: Do, 14. Dez 2006 20:55
Wohnort: 22946 Trittau
Kontaktdaten:

Im Fenster ist Hintergrund sichtbar

Beitrag von KHKDampflok »

Hallo erstmal,

ich habe mir einen neuen Rechner zugelegt, der schneller ist als der bisherige und auf Windows 7 umgestellt. Prompt habe ich ein Problem. Ich benutze ein farbiges Bild als Hintergrund. Wenn ich jetzt bestimmte Fenster öffne, kommt es manchmal vor, das der XbpStatic-Bereich nicht angezeigt wird, sondern das Hintergrundbild durchscheint. Andere XBase-Parts wie Pushbuttons, BitMaps etc. werden dagegen angezeigt. Natürlich passiert es auch nicht immer, so daß der Fehler auch nicht reproduzierbar ist.
Die Fenster werden alle mit einem :visible := .F. mit anschließendem :show() aufgebaut. Versuche,
das :visible durch :hide() zu ersetzen, brachte keine Änderung.
Wer weiß Rat ?

Gruß Karl-Heinz aus Trittau
Mit xbase habe ich ein Triebfahrzeugsarchiv "LOKLISTE" erstellt. Dieses Archiv enthält Daten aller Eisenbahntriebfahrzeuge vom "ADLER" bis zum ICE. Genaueres erfährt man unter www.lokliste.de, wo man auch eine kostenlose DEMO-Version herrunterladen kann !!!
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2828
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 259 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

Re: Im Fenster ist Hintergrund sichtbar

Beitrag von UliTs »

Hallo Karl-Heinz,

welches Windows 7 und welche xBase++-Version hast Du im Einsatz?

Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Benutzeravatar
brandelh
Foren-Moderator
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: Im Fenster ist Hintergrund sichtbar

Beitrag von brandelh »

In der Hilfe steht :visible unter Konfiguration, wird also zwischen :NEW() (INIT) und:CREATE()
verwendet um Eigenschaften für die Erzeugung des Objektes festzulegen.
:visible := .t. (teilweise auch ein Parameter hinten) veranlaßt das Fenster/Control sofort nach :create() sichtbar zu werden (nicht unbedingt im sichtbaren Bereich).
:visible := .f. bleibt unsichtbar bis :show() aufgerufen wird.
Nach Create kann man solche Werte zwar ändern, aber erst mit :configure() wirkt sich das aus.
Leider nicht immer so, wie man es will, daher gibt es zu den meisten Einstellungen auch Methoden um das zu schalten:
Beispiel: :editable => :setEditable()

In deinem Beispiel könnte ein "Durchscheineffekt" von Windows 7 oder ein repaint Problem vorliegen.
oStatic:invalidateRect() könnte eventuell helfen, kostet aber Zeit (wenn man es dauernd aufruft).
Gruß
Hubert
KHKDampflok
UDF-Programmierer
UDF-Programmierer
Beiträge: 68
Registriert: Do, 14. Dez 2006 20:55
Wohnort: 22946 Trittau
Kontaktdaten:

Re: Im Fenster ist Hintergrund sichtbar

Beitrag von KHKDampflok »

Hallo Uli, Hallo Hubert,

die XBase-Version ist 1.90.355 und Windows 7 Home Premium Service Pack 1 verwende ich. Ich habe mittlerweile herausgefunden, das ich mit einer Zählschleife FOR ... NEXT den Fehler eleminieren kann, aber das ist doch nicht der Weisheit letzter Schluß, oder ? Ich hab aber vergessen zu erwähnen, daß der Fehler auch bei meinem Leptop mit Windows XP ab und zu auftritt.

MfG Karl-Heinz
Mit xbase habe ich ein Triebfahrzeugsarchiv "LOKLISTE" erstellt. Dieses Archiv enthält Daten aller Eisenbahntriebfahrzeuge vom "ADLER" bis zum ICE. Genaueres erfährt man unter www.lokliste.de, wo man auch eine kostenlose DEMO-Version herrunterladen kann !!!
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2828
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 259 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

Re: Im Fenster ist Hintergrund sichtbar

Beitrag von UliTs »

Hallo Karl-Heinz,

ich vermute mal, dass Du die 64-Bit-Version von Windows im Einsatz hast.
Was Du mit der Schleife meinst, verstehe ich nicht. Meinst Du, dass Du an bestimmten Stellen im Programmcode Warteschleifen eingebaut hast?

Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
KHKDampflok
UDF-Programmierer
UDF-Programmierer
Beiträge: 68
Registriert: Do, 14. Dez 2006 20:55
Wohnort: 22946 Trittau
Kontaktdaten:

Re: Im Fenster ist Hintergrund sichtbar

Beitrag von KHKDampflok »

Hallo Uli,

im Einsatz ist die 32-Bit Version und die FOR .. NEXT-Schleife ist vor dem :show() eingebaut

Gruß Karl-Heinz

PS. ich habe im XbpStatic-Fenster kein :SetColorBG eingebaut, kann das evtl. der Fehler sein ?
Bisher lief es halt auch ohne
Mit xbase habe ich ein Triebfahrzeugsarchiv "LOKLISTE" erstellt. Dieses Archiv enthält Daten aller Eisenbahntriebfahrzeuge vom "ADLER" bis zum ICE. Genaueres erfährt man unter www.lokliste.de, wo man auch eine kostenlose DEMO-Version herrunterladen kann !!!
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2825
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 96 Mal
Danksagung erhalten: 13 Mal

Re: Im Fenster ist Hintergrund sichtbar

Beitrag von georg »

Hallo, Karl-Heinz -


wenn Du keine expliziten Einstellung vornimmst, werden die über Windows eingestellten Farben etc. verwendet.

Hast Du zu Deinem Programm eine manifest-Datei im Verzeichnis? Also, wenn das Programm DLDB.exe heisst, wäre dies die DLDB.exe.manifest.


Gruss,

Georg

P.S.: ein Screenshot wäre vielleicht beim Verstehen des Problems hilfreich, und ein wenig mehr vom Code ebenfalls.
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Re: Im Fenster ist Hintergrund sichtbar

Beitrag von AUGE_OHR »

KHKDampflok hat geschrieben:die XBase-Version ist 1.90.355 und Windows 7 Home Premium Service Pack 1 verwende ich.
mit oder ohne XP - Manifest ?
ich gehe mal davon aus das du es "abgeschaltet" hast um kein visual Style zu haben.

wenn es sich um XbpStatic mit "Text" handelt würde ich :ClipChildren := .T. versuchen
dito auch bei der :drawingArea

Code: Alles auswählen

   #IF XPPVER < 01900333
      oGroup:drawingArea:ClipChildren := .F.
   #ELSE
      oGroup:drawingArea:ClipChildren := .T.
   #ENDIF
gruss by OHR
Jimmy
KHKDampflok
UDF-Programmierer
UDF-Programmierer
Beiträge: 68
Registriert: Do, 14. Dez 2006 20:55
Wohnort: 22946 Trittau
Kontaktdaten:

Re: Im Fenster ist Hintergrund sichtbar

Beitrag von KHKDampflok »

Hallo Jimmy und die Anderen,

ich habe das Problem, zwar nicht elegant, aber doch selbst gelöst, in dem ich den Computer vor Anzeige des XbpStatic-Teils bis 500.000 zählen lasse. Der Verzögerungsfaktor ist für spätere Rechnergenerationen auch noch wählbar, aber verstehen kann ich das Ganze nach wie vor nicht !!!

Gruß

Karl-Heinz
Mit xbase habe ich ein Triebfahrzeugsarchiv "LOKLISTE" erstellt. Dieses Archiv enthält Daten aller Eisenbahntriebfahrzeuge vom "ADLER" bis zum ICE. Genaueres erfährt man unter www.lokliste.de, wo man auch eine kostenlose DEMO-Version herrunterladen kann !!!
Antworten