Модераторы: mihanik
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Множество кнопок 
:(
    Опции темы
Izuver
Дата 11.10.2006, 23:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 352
Регистрация: 13.6.2006
Где: Омск

Репутация: 2
Всего: 2



На форме существует около 40 кнопок, все они отвечают за запись в разные ячейки, но ячейки последовательные (A1, A2,A3......A40) и данные которые записываются тоже последовательные (1,2,3....40)

Как осуществить единый код, чтоб не прописывать каждую?
PM MAIL ICQ   Вверх
ElMichael
Дата 12.10.2006, 01:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 18.5.2006
Где: г. Благовещенск ( Амур.обл.)

Репутация: нет
Всего: нет



Пример для Delphi:

Обязательное условие: один обработчик нажатия для всех кнопок

1) Введи для каждой кнопки в свойстве "Tag" порядковый номер, соответствующий ячейке
Код

procedure TForm1.Button1Click(Sender: TObject);
var
   NumButton: Integer;
begin
  NumButton := (Sender as TButton).Tag;
  // NumButton - это и есть искомый номер ячейки(кнопки)
  ...
end;

2) Если кнопки не переименованы, то воспользуйся конструкцией типа  

Код

procedure TForm1.Button1Click(Sender: TObject);
var
   NumButton: Integer;
begin
  NumButton := StrToInt(Copy((Sender as TButton).Caption, 7, Length((Sender as TButton).Caption) - 6));
  // NumButton - это и есть искомый номер ячейки(кнопки)
  ...
end;




Это сообщение отредактировал(а) ElMichael - 12.10.2006, 01:11
PM MAIL ICQ   Вверх
Naghual
Дата 12.10.2006, 09:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1893
Регистрация: 15.5.2004
Где: Украина, Днепр

Репутация: 7
Всего: 49



Пользуйся массивом кнопок.


--------------------
Я желаю всем Счастья!
PM ICQ Skype   Вверх
Izuver
Дата 13.10.2006, 00:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 352
Регистрация: 13.6.2006
Где: Омск

Репутация: 2
Всего: 2



Цитата(Naghual @ 12.10.2006,  09:15)
Пользуйся массивом кнопок.

Как это, заключить CommandButton_Click в For ... to ... Next?
PM MAIL ICQ   Вверх
Naghual
Дата 13.10.2006, 09:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1893
Регистрация: 15.5.2004
Где: Украина, Днепр

Репутация: 7
Всего: 49



Прости пожалуйста.
Это в VB возможно но не в VBA

Добавлено @ 09:36 
А для VBA нужно искать более оптимальное интерфейсное решение.
Поясни, зачем тебе столько кнопок? Что за действия такие выполняются?


--------------------
Я желаю всем Счастья!
PM ICQ Skype   Вверх
Izuver
Дата 14.10.2006, 00:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 352
Регистрация: 13.6.2006
Где: Омск

Репутация: 2
Всего: 2



Цитата(Naghual @ 13.10.2006,  09:32)
Поясни, зачем тебе столько кнопок? Что за действия такие выполняются?

А ты представь такое, представь что это не только кнопки, это OptionButton и TextBox.
PM MAIL ICQ   Вверх
Staruha
Дата 15.10.2006, 23:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1292
Регистрация: 1.2.2004
Где: Казань

Репутация: 13
Всего: 27





--------------------
Возмездие настигнет
PM MAIL   Вверх
Izuver
Дата 16.10.2006, 22:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 352
Регистрация: 13.6.2006
Где: Омск

Репутация: 2
Всего: 2



Цитата(Staruha @ 15.10.2006,  23:09)
http://forum.vingrad.ru/index.php?showtopi...03&hl=label

Думаю эту проблему я решил здесь http://www.forum.vingrad.ru/index.php?showtopic=112499
Я не знаю кокого элемента, под каким событием совершить код.

Расскажу на примере той темы:
На форме 2 ряда переключателей по 22 шт. При нажатии 11-го происходит:
Код

Private Sub OptionButton11_Click()
Label1 = Cells(13, 2)
For i = 23 To 44
Controls("OptionButton" & i).Enabled = True
Next i
OptionButton33.Enabled = False
End Sub

Чтоб не рисовать 44 таких кода нужон один

PM MAIL ICQ   Вверх
Дмит
Дата 17.10.2006, 22:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 117
Регистрация: 21.4.2006
Где: г.Волгоград

Репутация: 8
Всего: 9



Здесь пример для создания массива CheckBox на листе, через класс.
Может поможет.
PM MAIL WWW   Вверх
Naghual
Дата 17.10.2006, 23:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1893
Регистрация: 15.5.2004
Где: Украина, Днепр

Репутация: 7
Всего: 49



Создай одну процедуру с параметром - индексом Оптиона.
Пропиши ее вызов в событии каждого Оптиона, но с указанием его Номера как параметра.

Далее, все действия выполняются в этой одной общей процедуре.



--------------------
Я желаю всем Счастья!
PM ICQ Skype   Вверх
Izuver
Дата 17.10.2006, 23:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 352
Регистрация: 13.6.2006
Где: Омск

Репутация: 2
Всего: 2



Цитата(Дмит @ 17.10.2006,  22:29)
Здесь пример для создания массива CheckBox на листе, через класс.
Может поможет.

Да, оно. Сейчас вот разберу все что написано и подумаю можно это для формы пименить.

Это сообщение отредактировал(а) Izuver - 18.10.2006, 00:02
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование, связанное с MS Office"
mihanik staruha

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами



  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • Оставляйте свои записи в "Книге отзывов о работе администрации"
  • А вот тут лежит FAQ нашего подраздела


Если Вам понравилась атмосфера форума, заходите к нам чаще!
С уважением mihanik и staruha.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование, связанное с MS Office | Следующая тема »


 




[ Время генерации скрипта: 0.0464 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.