[Delphi] voorkomen van een focus

Pagina: 1
Acties:

  • FendtVario
  • Registratie: Januari 2002
  • Laatst online: 12-05-2025

FendtVario

The leader drives Vario!

Topicstarter
Voor een applicatie heb ik een splashscreen gemaakt met een TTrackBar als progressbar. Met de eigenschappen SelStart en SelEnd kan ik heel simpel een balkje kan laten zien wat netjes heen en weer schuift zolang de controle duurt. Ik heb hiervoor gekozen omdat ik van te voren niet kan zeggen hoe lang de controle duurt en toch graag aan de de gebruiker wil laten zien dat het programma niet vastgelopen is.

Het probleem is echter dat een TTrackbar focusable is. Omdat het ook het enige component is (buiten een paar labels) krijgt deze de focus en dus zo'n lelijk stippellijntje. Ik heb het een en ander nagezocht op google om dit te voorkomen maar dat leverde niet veel op. Is er een manier om dit op een simpele manier te voorkomen of moet ik op zoek naar een ander componet?

www.fendt.com | Nikon D7100 | PS5


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 07-05 22:49

curry684

left part of the evil twins

Ik dacht dat dit gewoon werkte:
C++:
1
2
3
4
Form::OnEnter(...)
{
Form->FocusControl->SetFocus();
}

On the other hand kun je zo'n balkje natuurlijk ook in 5 minuten zelf even deriven van TGraphicControl ipv een focusable control ervoor te misbruiken :)

Professionele website nodig?


  • whoami
  • Registratie: December 2000
  • Laatst online: 11:45
Heb je geen 'CanFocus' property ?

/wilde gok modus

https://fgheysels.github.io/


  • FendtVario
  • Registratie: Januari 2002
  • Laatst online: 12-05-2025

FendtVario

The leader drives Vario!

Topicstarter
@Curry, die had ik al geprobeerd maar dat werkt niet :).

@whoami: Alles wat vanaf TWinControl komt heeft een CanFocus; TTrackBar override en CanFocus altijd False? Is te proberen natuurlijk.

www.fendt.com | Nikon D7100 | PS5


  • Tomatoman
  • Registratie: November 2000
  • Laatst online: 13:39

Tomatoman

Fulltime prutser

Misbruik nooit controls met een andere look & feel voor doelen waarvoor ze niet bestemd zijn. Dat geeft alleen maar verwarring bij de gebruiker. Zelfs als jouw TTrackbar niet focusable is, zal de gebruiker verward zijn. Hij zal zich afvragen waar dat ding voor dient en waarom hij hem niet kan bedienen :).

Bij een TProgressBar kun je de Minimum en Maximum properties instellen. Pas gewoon de waarde van Maximum aan, dan gaat alles goed. Stel dat je na het creëren van ieder form de progress met 10 verhoogt en dat je 7 forms creëert. Dan zet je Maximum op 70 en werkt alles heel eenvoudig. Als je ooit nog eens besluit een extra form toe te voegen hoef je niet allerlei code aan te passen, maar verhoog je Maxium gewoon tot 80.

Wil je toch een TTrackBar gebruiken, dan kun je Enabled op false zetten.

Een goede grap mag vrienden kosten.


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 07-05 22:49

curry684

left part of the evil twins

Dude je bent echt in 5 minuten klaar als je even een TGraphicControl derived en even de Paint overload, ziet er nog mooier uit ook en geen ranzige hacks ;)

Professionele website nodig?


  • whoami
  • Registratie: December 2000
  • Laatst online: 11:45
Eensch met tomatoman eigenlijk.

https://fgheysels.github.io/


Verwijderd

Eens, al is een Paint override op een TGraphicControl ook niet zo'n beroerd idee.
Maar voor je 't weet heb je dan weer een component van 300+ regels omdat 't wel handig is wanneer je designtime dingetjes in kunt stellen, tekst in je control kunt displayen, enz. enz...

Maar 't blijft wel leuk om te maken. :)

  • FendtVario
  • Registratie: Januari 2002
  • Laatst online: 12-05-2025

FendtVario

The leader drives Vario!

Topicstarter
tomatoman schreef op woensdag 02 maart 2005 @ 17:33:
Misbruik nooit controls met een andere look & feel voor doelen waarvoor ze niet bestemd zijn. Dat geeft alleen maar verwarring bij de gebruiker. Zelfs als jouw TTrackbar niet focusable is, zal de gebruiker verward zijn. Hij zal zich afvragen waar dat ding voor dient en waarom hij hem niet kan bedienen
Als je 'm runtime ziet dan weet je niet eens dat het origineel een TTrackbar is. Alle ticks zijn weg, heeft geen sleepblokje meer dus er kan alleen nog een vervelende developer zijn die roet in het eten gooit.

Ik weet dat het niet zo'n nette hack is maar soms wil je ff snel iets voor elkaar hebben. Nu zat ik dus alleen nog met de focusRect. Ik zelf ben niet zo bedreven in het maken van visuele componenten dus dit was ff snel :Y)

Edit: Enabled := False does the trick. Mocht ik nog eens zin hebben ga ik wel aan de slag voor een nieuw component.

[ Voor 8% gewijzigd door FendtVario op 02-03-2005 18:17 ]

www.fendt.com | Nikon D7100 | PS5


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 07-05 22:49

curry684

left part of the evil twins

Verwijderd schreef op woensdag 02 maart 2005 @ 17:58:
Eens, al is een Paint override op een TGraphicControl ook niet zo'n beroerd idee.
Maar voor je 't weet heb je dan weer een component van 300+ regels omdat 't wel handig is wanneer je designtime dingetjes in kunt stellen, tekst in je control kunt displayen, enz. enz...

Maar 't blijft wel leuk om te maken. :)
Dan ziet het er iig uit zoals je wilt en niet als een misbruikte TTrackBar ;)

Professionele website nodig?


  • FendtVario
  • Registratie: Januari 2002
  • Laatst online: 12-05-2025

FendtVario

The leader drives Vario!

Topicstarter
Afbeeldingslocatie: http://occidopagus.nl/~chris/images/trackbar.png
Zo ziet het er dus niet uit, gebruiker kan er niets mee. Balkje loopt netjes heen en weer. Heb wel besloten binnenkort aan de slag te gaan voor een echt component.

www.fendt.com | Nikon D7100 | PS5

Pagina: 1