![]() |
Rand um gedrückten Button entfernen
Liste der Anhänge anzeigen (Anzahl: 1)
Mal wieder ein neuer Thread, mit einer kurzen, schmerzlosen Frage...
Ich habe das Problem in meinem Programm, dass mich diese gestrichelten Linien stören, sobald in einen Button drücke, da es zum Teil schlicht weg gesagt, sch...öner sein könnte :angel2: In den Eigenschaften der Buttons (BitBtns) habe ich nichts entsprechendes gefunden, bzw entdecken können, was mir das abschalten der Linie ermöglicht... Ist dies unter Delphi überhaupt möglich, bzw is dies generell möglich? Nager //Im Anhand hab ich das ganze mal als Bild festgehalten, falls es Probleme mit meiner Erläuterung gibt ;) |
Re: Rand um gedrückten Button entfernen
Hallo,
setze entweder den Fokus auf ein anderes Control (Control.SetFocus;) oder benutze TSpeedButton, dort gibt es keinen solchen Rand. Grüße |
Re: Rand um gedrückten Button entfernen
Zitat:
|
Re: Rand um gedrückten Button entfernen
Hallo Nils,
dann müsstest du den Vorschlag mit TSpeedButton aber auch lassen, da dieser über keinen Fokus verfügt und man somit beim gleichem Ergebnis herauskommt. Wer sich an dem Rand stört und auf Fokusierung verzichten kann, sollte somit zufrieden stellbar sein. |
Re: Rand um gedrückten Button entfernen
Man könnte auch einen eigenen Button programmieren und den Rand dort weglassen bzw. entsprechend färben. Ordentlicher geht es wirklich nicht mehr, denn ein Button ohne Fokus ist imho Mist. Dass ein Speedbutton keinen Fokus hat, wusste ich übrigens nicht mehr.
|
Re: Rand um gedrückten Button entfernen
Was für nachteile gäbe es denn konkret für mich, wenn ich den Focus verliere? O.o?
|
Re: Rand um gedrückten Button entfernen
Man kann dann nicht mehr per Tastatur navigieren.
|
Re: Rand um gedrückten Button entfernen
Hallo Nagetier,
wenn du wirklich auf das FocusRect verzichten möchtest, kannst du die folgende Unit hinter Buttons in die USES-Anweisung aufnehmen.
Delphi-Quellcode:
Gruß Hawkeye
unit unit_BitBtnNoFocus;
interface uses Messages, Controls, Buttons; type TBitBtn = class (Buttons.TBitBtn) private procedure CNDrawItem(var Message: TWMDrawItem); message CN_DRAWITEM; end; implementation uses Windows; procedure TBitBtn.CNDrawItem(var Message: TWMDrawItem); begin with Message.DrawItemStruct^ do itemState := itemState and (not ODS_FOCUS); inherited; end; end. |
Re: Rand um gedrückten Button entfernen
Sowas hatte mich auch gestörrt, also der Rand.
Glaub aber, dass mit dem Focus besser wäre, da es überall funktioniert. Dieser Rand taucht auch bei Checkbox auf, was mich doch ein klein wenig störrt. Bei der Checkbox hat man keine Alternative wie den SppedButton. |
Re: Rand um gedrückten Button entfernen
Perfekt, ich nutze BitBtns nur an einer Stelle des Programms, und dort stören die Ränder manchmal extrem, da sie durch verschiedenfarbige Beschriftung komische Farben annehmen, aber durch deinen Tip hat sich das erledigt...
Achja, Nachteile = keine man muss dort nicht mit der Tastatur arbeiten :) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:55 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz