GetMenuItem альтарнатива для panel
Naykon
Дата: Суббота, 19.07.2014, 12:51:17 | Сообщение # 1
Сообщений: 439
Репутация: -4 [ +/- ]
Не фанат Panel но часто ей пользоваться удобней. как получить не номер нажатого элемента а содержание (%s).
_wS_
Дата: Воскресенье, 20.07.2014, 02:14:41 | Сообщение # 2
Ну очевидно же, если нет таких функций, то текст в переменных хранить надо.
Naykon
Дата: Воскресенье, 20.07.2014, 11:01:44 | Сообщение # 3
Сообщений: 439
Репутация: -4 [ +/- ]
это я и хотел узнать... тогда не удобно(
«SeReGa»☆
Дата: Понедельник, 21.07.2014, 10:57:12 | Сообщение # 4
Сообщений: 395
Репутация: 37 [ +/- ]
что сложного то?
Код
AmauntTransmit(client) { new Handle:Amaunt = CreatePanel(); decl String:AmauntCRD[64]; SetPanelTitle(Amaunt, "==Выберите количество=="); Format(AmauntCRD, sizeof(AmauntCRD), " 50 "); DrawPanelItem(Amaunt,AmauntCRD); Format(AmauntCRD, sizeof(AmauntCRD), " 100 "); DrawPanelItem(Amaunt,AmauntCRD); Format(AmauntCRD, sizeof(AmauntCRD), " 200 "); DrawPanelItem(Amaunt,AmauntCRD); Format(AmauntCRD, sizeof(AmauntCRD), " 300 "); DrawPanelItem(Amaunt,AmauntCRD); Format(AmauntCRD, sizeof(AmauntCRD), " 400 "); DrawPanelItem(Amaunt,AmauntCRD); Format(AmauntCRD, sizeof(AmauntCRD), " 500 "); DrawPanelItem(Amaunt,AmauntCRD); Format(AmauntCRD, sizeof(AmauntCRD), " 1000 "); DrawPanelItem(Amaunt,AmauntCRD); Format(AmauntCRD, sizeof(AmauntCRD), "=================="); DrawPanelText(Amaunt,AmauntCRD); Format(AmauntCRD, sizeof(AmauntCRD), "Отмена"); DrawPanelItem(Amaunt,AmauntCRD); SendPanelToClient(Amaunt, client, Select_amaunt, 0); CloseHandle(Amaunt); }
Сообщение отредактировал «SeReGa»☆ - Понедельник, 21.07.2014, 10:57:48
BarD
Дата: Понедельник, 21.07.2014, 12:23:22 | Сообщение # 5
Сообщений: 943
Репутация: 137 [ +/- ]
«SeReGa»☆, а как ты эту переменную потом в Callback вытащишь? В ней будет храниться последняя запись, т.е. "Отмена". Ему нужно вытащить ту, которую нажали. Значит для каждого итема нужно создать свою переменную или массивом сделать. Код
AmauntTransmit(client) { new Handle:Amaunt = CreatePanel(); decl String:AmauntCRD[64][7]; SetPanelTitle(Amaunt, "==Выберите количество=="); Format(AmauntCRD[0], 64, " 50 "); DrawPanelItem(Amaunt,AmauntCRD); Format(AmauntCRD[1], 64, " 100 "); DrawPanelItem(Amaunt,AmauntCRD); Format(AmauntCRD[2], 64, " 200 "); DrawPanelItem(Amaunt,AmauntCRD); Format(AmauntCRD[3], 64, " 300 "); DrawPanelItem(Amaunt,AmauntCRD); Format(AmauntCRD[4], 64, " 400 "); DrawPanelItem(Amaunt,AmauntCRD); Format(AmauntCRD[5], 64, " 500 "); DrawPanelItem(Amaunt,AmauntCRD); Format(AmauntCRD[6], 64, " 1000 "); DrawPanelItem(Amaunt,AmauntCRD); DrawPanelItem(Amaunt,"Выход"); SendPanelToClient(Amaunt, client, Select_amaunt, 0); CloseHandle(Amaunt); } public Select_amauntHandle:Amaunt, MenuAction:action, client, option) { if (action == MenuAction_Select) { PrintToChat(client, "Вы выбрали: %s", AmauntCRD[option - 1]); } }
Сообщение отредактировал BarD - Понедельник, 21.07.2014, 12:23:31
«SeReGa»☆
Дата: Понедельник, 21.07.2014, 12:27:54 | Сообщение # 6
Сообщений: 395
Репутация: 37 [ +/- ]
BarD, об єтом я не подумал)..
TEIN
Дата: Понедельник, 21.07.2014, 13:51:51 | Сообщение # 7
Сообщений: 563
Репутация: 78 [ +/- ]
Одно но, AmauntCRD объявлять до функции
«SeReGa»☆
Дата: Понедельник, 21.07.2014, 15:05:04 | Сообщение # 8
Сообщений: 395
Репутация: 37 [ +/- ]
в ДАННОМ СЛУЧАЕ да ,но если просто показать текст я бы использовал свой код.
BarD
Дата: Понедельник, 21.07.2014, 15:46:26 | Сообщение # 9
Сообщений: 943
Репутация: 137 [ +/- ]
TEIN, да, извини, не заметил. :)