Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Дизамич.созданный 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


Наверх

Титульная страница Поиск, карта сайта Написать письмо