![]() |
OnDropDown(TCombobox)
in einer combobox stehen 5einträge (5 datume? oder datums? :roll: )
sobald ein item angeklickt wurde, wird anhand von dem datum der tag auf einen button geschrieben.
Delphi-Quellcode:
Es wäre doch aber schon cooler, sobald man die Dropdownliste öffnet und darin navigiert, das (ähnlich wie mouseover also ohne anklicken) der tag auf den button steht.
ShortDateFormat := 'dddd';
... datum := StrToDate(cbdatum.items[cbdatum.itemindex]); Button2.Caption := DateToStr(datum);
Delphi-Quellcode:
...
begin with cbdatum do ShortDateFormat := 'dddd'; days[1] := 'Sunday'; ... datum := StrToDate(cbdatum.items[cbdatum.itemindex]); Button2.Caption := DateToStr(datum); end; |
Re: OnDropDown(TCombobox)
Hi,
Daten ist die Mehrzahl, ein Datum, zwei Daten. Gilt auch für die Daten in deinem Rechner, hier wäre die Einzahl Datum. Da dies die einzigste von dir gestellte Frage war hoffe ich, die ist beantwortet :mrgreen: Ob ein solcher Wechsel cooler ist oder nicht, darüber kann man streiten. Finde einen Button mit einem Datum drauf klingt irgendwie merkwürdig (aber ich kenne den Kontext nicht). Gruß Der Unwissende |
Re: OnDropDown(TCombobox)
Moin Danku,
wenn Du mit Tasten oder Mausrad navigierst kannst Du das so machen:
Delphi-Quellcode:
Direkt mit MouseOver habe ich nichts gefunden.
type
TForm1 = class(TForm) //... procedure WMCOMMAND(var Msg : TMessage); message WM_COMMAND; //... end; implementation procedure TForm1.WMCOMMAND(var Msg: TMessage); begin if Msg.WParamHi = CBN_SELCHANGE then begin if ComboBox1.ItemIndex > -1 then begin Button1.Caption := ComboBox1.Items[ComboBox1.ItemIndex]; end; end; inherited; end; |
Re: OnDropDown(TCombobox)
ja das geht. aber das anzeigen beim einzelnen markieren mit aktiver dropdownlist geht noch nicht so wie ich mir das vorstelle. naja mal sehen was ich noch machen kann.
morgen stelle ich das fertige programm vor. |
Re: OnDropDown(TCombobox)
Hallo Chris,
die Einschränkungen bei deinem Code machen deinen Ansatz eigentlich überflüssig, da das gleiche Ergebnis auch durch das Ereignis OnChange() der ComboBox erreicht werden kann:
Delphi-Quellcode:
Um auf die Mausbewegungen reagieren zu können muss man sich wohl den Fenstergriff der drop-down Liste mit CB_GETCOMBOBOXINFO besorgen und diesem Fenster eine eigene WindowProc unterschieben (subclassing).
procedure TDemoForm.DateComboChange(Sender: TObject);
begin with DateCombo do if ItemIndex > -1 then StatusBar.SimpleText := LongDayNames[DayOfWeek(StrToDate(Items[ItemIndex]))]; end; Freundliche Grüße vom marabu |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:13 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