Mam następujący problem:
Wraz ze startem programu tworzę dynamicznie komponenty TListView, TPopupMenu i inne. Następnie zależnie od wybranej przez użytkownika konfiguracji wczytywane są z wybranego pliku .xml dane itemów menu kontekstowego.
Mam mniej więcej coś takiego w pętli (tylko wszystko jest wczytywane z pliku konfiguracyjnego):
- Kod: Zaznacz cały
JakisItem[i] = new TMenuItem(Form1);
JakisItem[i]->Visible = True;
JakisItem[i]->Caption = "To tylko przykład";
JakisItem[i]->OnClick = Form1->OpenForm;
a przed tym wszystkim deklaracja:
- Kod: Zaznacz cały
TMenuItem *JakisItem[10];
Pierwszym problemem jest to, że nie wiem ile itemów zażyczył sobie użytkownik w danym menu kontekstowym, a liczba zmiennych w tablicy musi być przecież podana przed kompilacją programu, więc nie mogę utworzyć ich tyle ile naliczę w pliku konfiguracyjnym. To jest jeden z problemów, na których rozwiązanie nie mogę wpaść.
Drugim problemem jest to, że np: dwa itemy wykonują przy OnClick tą samą procedurę, powiedzmy OpenForm. Informacje jaką czynność mają wykonać odczytują z pliku konfiguracyjnego, gdzie wygląda to mniej więcej tak: 'OpenForm::ItemInfo'. Nie wiem jak w procedurze Form1->OpenForm odczytać który item został kliknięty i który formularz ma utworzyć.
Jeśli coś napisałem niezrozumiale, proszę o informacje co mam dokładniej opisać
Z góry wielkie dzięki za pomoc.