|
|
Strona 1 z 1
|
[ Posty: 2 ] |
|
dynamiczne kontrolki button
Autor |
Wiadomość |
iluvathar
Rejestracja: 2012-05-27, 20:44 Posty: 11
|
dynamiczne kontrolki button
Witam Poszukuje informacji czy z poziomu AmBasic możne stworzyć formularz posiadający dynamiczną listę kontrolek button. Idealnym rozwiązaniem jest sytuacja gdzie każdy z dynamicznych buttonów byłby podpięty pod inną funkcję. Niestety tak się chyba nie da więc spróbowałem w ten sposób ale cały czas dostaje błąd ominięcia definicji zmiennej. Kod: dispatch grid string sTabOpis(4) = "AAA", "BBB", "CCC", "DDD" int iTabClick(4) = 0,0,0,0
record rLoopRec string name_[100] int sub openNewMsg() select case name_ case "AAA" message sTabOpis(1) openNewMsg = 1 case "BBB" message sTabOpis(2) openNewMsg = 2 case "CCC" message sTabOpis(3) openNewMsg = 3 case "DDD" message sTabOpis(4) openNewMsg = 4 case "X" message "Close" openNewMsg = -1 case else message "ERR" error "" endselect endsub endrec
int sub Click() message "ClickMe" Click = 2 endsub
rLoopRec rLoop(4) rLoop(1).name_ = "AAA" rLoop(2).name_ = "BBB" rLoop(3).name_ = "CCC" rLoop(4).name_ = "X"
int sub countButtons(string sOpis, int y, rLoopRec rValue) iTabClick(y) = Button sOpis, 600, 10 + (30 * (y - 1)), 100, 25, rValue.openNewMsg() endsub
int sub loopButtons(int iSize) int iLoop for iLoop = 1 to iLoop > iSize countButtons(sTabOpis(iLoop), iLoop, rLoop(iLoop)) next iLoop endsub
int sub Window() //Fotmularz form "opis", 800, 300 Control "Grid", grid, 4, 4, 586, 215 //Metoda generująca listę buttonyów loopButtons(size(sTabOpis)) Button "&Anuluj",400, 250, 100, 25, -1 int result = execform(OnCommand) //openNewWindow(result) //Rezultat operacji otwarcia formularza select case result case -1 error "" endselect
endsub
Int sub OnCommand(Int id, Int msg) endsub
Window() Chciał bym aby każdy z dostępnych buttonów pełnił różną funkcję. Prosił bym o informację czy takie rozwiązanie jest wykonalne, może jakiś przykład.
|
2013-10-31, 09:57 |
|
|
Autor |
Wiadomość |
Mix-soft.pl
|
|
|
rafal
Ekspert
Rejestracja: 2007-11-16, 15:08 Posty: 4000 Pomógł: 448
|
Re: dynamiczne kontrolki button
Jak dla mnie to zbyt wysoki poziom. Nie bardzo byłem w stanie przeanalizować co jest do czego. Proponuję obsłużyć Twoje przyciski w OnCommand() Kod: dispatch grid string sTabOpis(4) = "AAA", "BBB", "CCC", "DDD" int iTabClick(4) = 0,0,0,0
record rLoopRec string name_[100] int sub openNewMsg() select case name_ case "AAA" message sTabOpis(1) openNewMsg = 1 case "BBB" message sTabOpis(2) openNewMsg = 2 case "CCC" message sTabOpis(3) openNewMsg = 3 case "DDD" message sTabOpis(4) openNewMsg = 4 case "X" message "Close" openNewMsg = -1 case else message "ERR" error "" endselect endsub endrec
int sub Click() message "ClickMe" Click = 2 endsub
rLoopRec rLoop(4) rLoop(1).name_ = "AAA" rLoop(2).name_ = "BBB" rLoop(3).name_ = "CCC" rLoop(4).name_ = "X"
int sub countButtons(string sOpis, int y, rLoopRec rValue) iTabClick(y) = Button sOpis, 600, 10 + (30 * (y - 1)), 100, 25, 1 endsub
int sub loopButtons(int iSize) int iLoop for iLoop = 1 to iLoop > iSize countButtons(sTabOpis(iLoop), iLoop, rLoop(iLoop)) next iLoop endsub
int sub Window() //Fotmularz form "opis", 800, 300 Control "Grid", grid, 4, 4, 586, 215 //Metoda generująca listę buttonyów loopButtons(size(sTabOpis)) Button "&Anuluj",400, 250, 100, 25, -1 int result = execform(OnCommand) //openNewWindow(result) //Rezultat operacji otwarcia formularza select case result case -1 error "" endselect
endsub
int sub OnCommand(Int id, Int msg)
// sprawdzamy od który przycisk został użyty int iLoop for iLoop = 1 to iLoop > Size(iTabClick) if iTabClick(iLoop) == id then message using "Wykonuje Akcje dla przycisku %s" + lf, sTabOpis(iLoop) endif next iLoop endsub
Window()
|
2013-10-31, 17:04 |
|
|
|
Strona 1 z 1
|
[ Posty: 2 ] |
|
Kto jest online |
Użytkownicy przeglądający to forum: Nie ma żadnego zarejestrowanego użytkownika i 25 gości |
|
Nie możesz tworzyć nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz dodawać załączników
|
|
|
|