Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - trackbar umrandung entfernen


gerd8888 - Mi 11.04.12 22:10
Titel: trackbar umrandung entfernen
ich nutzte delphi 2009 win 7
ich habe im program einen hintergrund darauf platziere ich mehrere trackbars.
Das Problem, ich bekomme die Umrandung nicht weg.
Tab-Stop usw. alles schon versucht, geht nicht weg.

Wie bekommt man die Umrandung weg.


trm - Do 12.04.12 00:06

Vielleicht klappt es mit einer Nachricht an das erste Element, welches immer den Focus bekommt:

sendmessage(trackbar1.handle,wm_killfocus,0,0);


jaenicke - Do 12.04.12 06:09

Wenn man den Fokus immer wegnimmt, wird aber ziemlich sicher auch die Trackbar nicht mehr bedienbar sein. Wenn das focus rect nicht gezeichnet werden soll, muss man wohl eine Komponente ableiten und selbst zumindest teilweise zeichnen.


trm - Do 12.04.12 08:00

So, wie ich das verstanden habe, stört der Focus beim ersten Aufrufen der Form.


gerd8888 - Do 12.04.12 19:40

am focus liegt es nicht. es ist die graue umrandung. ich will nur den waagerechten strich und den slider sehen. showselrange=false.
aber die graue umrandung geht nicht weg.


Gausi - Do 12.04.12 19:50

Du meinst doch diese gepunktete Linie, oder? Das ist der Fokus-Rahmen.
tb
Den bekommt man da nicht weg. Der wird von Windows gezeichnet, damit der User das gerade aktive Kontrollelement auf der Form erkennen kann. Wenn du das weghaben willst, musst du dir eine Komponente von trackbar ableiten und selber malen.


gerd8888 - Do 12.04.12 20:00

Ja, das meinte ich. Achso, den kann man nicht wegmachen. Na gut, so schlimm ist dieser Rahmen auch wieder nicht.
Nachdem ich einen Hintergrund habe und darauf die trackbar, schaut es ein bisschen stoerend aus, zumal die Trackbar winzig ist.


trm - Do 12.04.12 20:15

Was Du machen kannst, auch wenn es nicht schön ist: Ein Element, welches auch einen Focus bekommen kann außerhalb des sichtbaren Bereiches Deiner Form. Und beim Start dem Element den Focus geben.

Bsp: Checkbox.left:=50000;Checkbox.setfocus;


Edit:
Wenn der Focus dann nach dem Schieben von einem trackbar wieder stört, kannst Du evtl. für alle trackbars das onmouseup nutzen, um den Focus wieder auf ein anderes Control umzuleiten, in diesem Fall auf die Checkbox :)


gerd8888 - Do 12.04.12 20:53

Hier ein Bild oben Wunschvorstellung und unten leider falsche Darstellung. Warum oben anders als unten weiss ich nicht.

Moderiert von user profile iconNarses: BMP -> PNG


trm - Do 12.04.12 21:04

Stimmt, das ist nicht der Focus.

Vielleicht ist es keine Standardkomponente von Delphi - oder eine Komponente aus einer neueren Version von Delphi.
Schau mal auf http://www.torry.net/ dort gibt es diverse Komponenten.


bummi - Do 12.04.12 21:34

Sieht aus wie ein cxTrackbar, wenn es kein WinControl sein muss lässt sich das aber als Komponente auf Basis eine TGraphicControls mit 2 PNG's in 0,5 - 1 Stunde selbst basteln.