Součástí novějších Delphi jsou i dvě méně známé, ale zajímavé komponenty: TValueListEditor a TButtonedEdit. První slouží k zadávání nebo editaci dvojice klíč a hodnota, druhá komponenta je TEdit s volitelnou možností až dvou tlačítek (vpravo a vlevo).
Zvláště první je celkem zajímavá. Takto vypadají obě dvě v design módu.
U TValueListEditor lze nastavit chování (tj. povolit editaci atd, názvy sloupců, styl kreslení…). Kromě toho lze provádět vlastní kreslení buňky přes OnDrawCell, což se někdy taky hodí.
Pokud tedy TButtonedEdit přiřadíme imagelist a nastavíme viditelnost a vlastnosti tlačítek přes property LeftButton a RightButton, můžeme napsat nejprimitivnější přidávání řádků (obsluha pravého tlačítka TButtonedEdit).
procedure TForm1.btn1RightButtonClick(Sender: TObject);
begin
lstValueListEditor.InsertRow(btn1.Text, IntToStr(Random(10)), True);
end;
Takto editujeme libovolný text. Což opět nemusí být to pravé ořechové. Naštěstí máme i větší možnosti.
procedure TForm1.FormCreate(Sender: TObject);
begin
lstValueListEditor.InsertRow('Text Položka', '', True);
lstValueListEditor.InsertRow('Klíč combo', 'val1', True);
with lstValueListEditor.ItemProps[1] do
begin
EditStyle := esPickList;
PickList.CommaText := 'val1,val2,val3';
end;
lstValueListEditor.InsertRow('Klíč tlačítko', 'hodnota', True);
with lstValueListEditor.ItemProps[2] do
begin
EditStyle := esEllipsis;
end;
end;
První řádek je libovolný text, druhý je výběr z možností přes seznam a třetí je tlačítko. V třetím případě je obsluha tlačítka přes OnEditButtonClick.
Datum: 2011-03-15 23:16:00 Tagy: komponenty, začátečníci, VCL