![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Дизамич.созданный POPUP и его события onClick
Officeman © (2005-11-30 08:53:00)=) есть табличка LVx (ListView), на её основе создаю(Добавляю) элементы в POPUP. примерно так:
var
NewItem: TMenuItem;
I,xi : integer;
begin
selectstone.Items.Clear;
//стандартный итем (всегда присутствует)
NewItem := TMenuItem.Create(Self);
NewItem.Caption := 'Снять камень';
selectstone.Items.Add(NewItem);
//всё из таблицы LVs
for xi:=0 to LVs.Items.Count-1 do begin
NewItem := TMenuItem.Create(Self);
NewItem.Caption := lvs.Items.Item[xi].SubItems[0];
selectstone.Items.Add(NewItem);
end;
end;
как теперь прописать действия onClick? для каждого элемента
Все дейтсвия дубут ссылатся на табличку LVs (ListView), т.е. будут отличатся лишь индексом (номер строки)
это надо для того чтобы: использовать своего рода подстановочные таблички. Есть основная таблица. и ещё одна подстановочная - из неё будут братся элементы в основную (через POPUP)
если это неполучится. придётся делать через Combobox, но это неудобно.
SergGG (2005-11-30 11:38:00) [1]Попробуй так:
public
{ Public declarations }
procedure WMClick(var Msg:TWMMenuSelect);message messages.WM_MENUSELECT;
end;
var NewItem:array[0..10]of TMenuItem;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
I,xi : integer;
begin
selectstone.Items.Clear;
//стандартный итем (всегда присутствует)
NewItem[0] := TMenuItem.Create(Self);
NewItem[0].Caption := 'Ñíÿòü êàìåíü';
selectstone.Items.Add(NewItem[0]);
//всё из таблицы LVs
for xi:=1 to 10 do begin
NewItem[xi] := TMenuItem.Create(Self);
NewItem[xi].Caption := FloatToStr(xi);
selectstone.Items.Add(NewItem[xi]);
end;
end;
procedure TForm1.WMClick;
begin
if msg.IDItem>0 then
begin
ShowMessage(NewItem[msg.IDItem-1].Caption);
end;
end;
Officeman (2005-11-30 10:02:00) [2]~~~~~~~ снимаю вопрос с обсуждения ~~~~~~~~~~
слишком много городить надо. я сделаю с помощью Combobox