Einzelnen Beitrag anzeigen

Benutzerbild von Pr0g
Pr0g

Registriert seit: 21. Mai 2004
809 Beiträge
 
Delphi 7 Personal
 
#1

Fehler beim Zeichnen einer Form, wenn diese nicht Hauptforum

  Alt 2. Okt 2004, 17:19
Hallo,

ich hoffe der Titel ist einigermaßen passend. Nun also zu meinem Problem:

Ich habe eine Klasse von TForm abgeleitet und übernehme deren Zeichnroutinen. Die Form wird also komplett von mir geskinnt. Das klappt soweit auch perfekt, solange es die Hautpform ist. Wird die Form jedoch erst später mit "Show" oder "ShowModal" angezeigt, so kommt es zu einem kleinen Fehler:

Klickt man mit der Maus auf die Titelleiste (nicht auf die Buttons darauf), so werden die Buttons einmal von Windows gezeichnet, lässt man die Maus wieder los, so wird meine Routine genutzt. Dies geschicht nur einmal. Wiederholt man den Vorgang, so passiert nichts ungewöhnliches. Erst wenn man das Fenster schließt und erneut öffnet.

Hier mal zwei Bilder, das erste zeigt das Fenster wie es sein soll, das zweite, wie es aussieht, wenn Windows einmal den Button zeichnet. Der geskinnte Button ist noch etwas groß, da er von einer anderen Klasse kommt und noch nicht angepasst ist, das Problem tritt aber in beiden Klassen auf:

http://pr0g.net/temp/skinform_painterror1.gif http://pr0g.net/temp/skinform_painterror2.gif

Die normale Zeichenroutine wird ja von mir abgefangen, daher kann ich es mir nicht richtig erklären. Muetze1 (auch hier im Forum unterwegs) hatte mir gesagt, dass es an der VCL liegen könnte.

Hat vielleicht jemand nen Tipp, wie ich das Problem beheben kann?

Edit #1: Paar Rechtschreibfehler rausgenommen

MfG Pr0g
  Mit Zitat antworten Zitat