Menü Hintergrund weiß nach disablen und enablen
-
Eigentlich nur, wenn Du den Menüeinträgen einen Imageindex grösser -1 zugeordnet hast. Prüfe auch mal die Einstellungen von der ImageList; vor allem BkColor, BkBlend (Standard clNone), Masked (False) usw.
Gruss Stefan
-
also es liegt jetzt definitiv an der ImageList, denn nachdem ich diese in das neue Projekt eingefügt hab tritt das Problem auch dort auf. Sobald ich dem Menü eine Image List gebe wird beim disablen der Menüeinträge der Hintergrund weiß und beim enablen bleibt der Hintergrund dann trotzdem weiß.
Den Menüeinträgen Date und Hilfe habe ich keine Bilder zugeordnet, das heißt der ImageIndex steht auf -1.
Achso BkColor ist auf clNone.
Was könnte ich dagegen tun?
MfG
-
Hat jemand eine Idee wie ich den Standard grauen Hintergrund beibehalten kann?
-
Hi Destiniy
Habe deine Konstellation mal aufgesetzt; kann hier keine Probleme feststellen.
Auch eine eingebundene ImageList macht keinen Zoff.Was du schilderst, ist ein fast sicheres Zeichen, dass sich das Formular selbst nicht neu zeichnet.
Sollte nach Disable oder Enable der Code[code] Form->Repaint(); [/code]eventuell abhelfen, ist trotzdem noch ein Problem da. Eventuell musst du DoubleBuffering setzen...??
-
Destiniy schrieb:
Hat jemand eine Idee wie ich den Standard grauen Hintergrund beibehalten kann?
Lass die ImageList weg und/oder die Manifest-Datei, oder benutze einen BCB neuer als Version 6.
http://groups.google.com/group/borland.public.delphi.vcl.components.using.win32/browse_thread/thread/e2bbd082ec392dab/4b792b7a47b8dacd?hl=de
-
ich hab das Projekt mal hier hocgeladen (http://rs144.rapidshare.com/files/58315319/Unit1.zip)
eine neuere Borland Version als 6 kann ich leider nicht verwenden da ich dafür keine Lizenz habe. Die ImageList weglassen möchte ich nicht, da ich dieverse Bilder in anderen Einträgen benutze.
Ea muß doch auch eine normale Lösung geben?
MfG
-
Ich habe dein Projekt bei mir getestet und konnte deinen Fehler nicht nachvollziehen. Es funktioniert alles einwandfrei.
-
Und wenn du, wie schon angedeutet, per OnDrawItem alles (einschliesslich Text) selber zeichnest?
Oder: Wenn du die Professional- oder Enterprise-Version hast, dann könntest du dich natürlich auch im VCL-Sourcecode auf die Suche nach dem Bug in der ImageList-Implementation machen.
-
hast du die Version 6 des Builders verwendet?
Ich habe es jetzt auch noch mal auf einem anderen Rechner ausprobiert mit der selben Builderversion. Selbes Problem wenn ich die Menüs (der Hintergrund des Wortes Datei oder Hilfe) disable wird der Hintergrund der Menüs weiß und bleibt auch so
Könnte das an der Builder Version liegen?
MfG
-
Natürlich habe ich den BCB6 (Enterprise) genommen (Build 10.166).
-
ich hab die prefessional VErsion Build 10.161
aber ich denke so komme ich nicht weiter.
Wie funktioniert das mit dem selber zeichnen?
MfG
-
also ich hab es mit selber Zeichnen Hinbekommen, dass der Hintergrund grau bleibt, doch mit welcher Anweisung mach ich den Text so grau?
void __fastcall TForm1::Test1DrawItem(TObject *Sender, TCanvas *ACanvas, TRect &ARect, bool Selected) { ACanvas->Brush->Color = clBtnFace; ACanvas->FillRect(ARect); DrawText(ACanvas->Handle, Test1->Caption.c_str(), -1, &ARect, DT_SINGLELINE | DT_VCENTER | 1); }
-
Bin mir nicht ganz sicher, was du meinst, aber vielleicht reicht ja der Hinweis auf TCanvas::Pen.
-
Oder möglicherweise Canvas::Font::Color.
-
Danke habs mit font color hinbekommen