Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

помогите построить алгоритм работы, и написать код

9.0K
14 ноября 2006 года
nur87
50 / / 19.10.2006
всем привет
и так имеется допустим 100 событии и каждая имеет свой номер:
1 событие - 1
............
100 событие - 100
имеется RichEdit1, в котором имеется номера событий, допустим в RichEdit1 записано 1 23 45 в каждую строчку, и соответственно надо сделать эти события.

так вот загвозка. как прописать все эти 100 событий и запускать их в зависимости от того, какое событие написано в RichEdit1

заранее всем благодарен
241
14 ноября 2006 года
Sanila_san
1.6K / / 07.06.2005
RichEdit обязательно надо использовать? TListBox не катит? Ведь проще.
309
14 ноября 2006 года
el scorpio
1.1K / / 19.09.2006
Sanila_san
Без разницы, всё равно будет использоваться метод TStrings::Add (AnsiString).
 
Код:
DebugOutput->Lines->Add (Event_Name);
//или
DebugOutput->Lines->Strings [DebugOutput->Lines->Count-1] =
     DebugOutput->Lines->Strings [DebugOutput->Lines->Count-1] + " " + Event_Name;



Другое дело, представляете ли Вы себе что такое это "событие". Для Builder - это струкрура с двумя неименованными полями:
1. Указатель на объект-обработчик
2. Указатель на вызываемый метод обработчика
И обязательным параметром "Источник" - это указатель на объект, являющийся генератором события
С объектной точки зрения, вызов обработчика производится так: "Обработчик"->"Метод" ("Источник", "Прочие_параметры");

Формат объявления функции типа "обработчик события" можно посмотреть, указав билдеру найти объявление для TNotifyEvent.
Исходя из этого, следует уточнить алгоритм решения вопроса.
241
14 ноября 2006 года
Sanila_san
1.6K / / 07.06.2005
Я с чисто пользовательской точки зрения предположил, что события заранее известны, поэтому можно было бы сделать более простой интерфейс. Хотя, конечно, большой разницы для написания кода нет.
309
14 ноября 2006 года
el scorpio
1.1K / / 19.09.2006
Единственное, что можно, это:
"Format ("%p %p %p, ARRAYOFCONST ((this, &(this->Called_Method), Sender)));"
Должен сформировать строку, содержащую три значения:
1. Адрес объекта-обработчика;
2. Адрес вызванного метода;
3. Адрес объекта-генератора.
Вот только использовать сию инфу будет........ затруднительно :D
9.0K
14 ноября 2006 года
nur87
50 / / 19.10.2006
Цитата:
RichEdit обязательно надо использовать? TListBox не катит? Ведь проще.


Цитата:
Исходя из этого, следует уточнить алгоритм решения вопроса.

ну просто имеется 100 событий.
1-допустим загрузить картинку 1.jpeg
2-345.gpeg
3-5567.jpeg
4-условие( и исходя из условия загрузка того или иного файла)
и в зависимости какое число в RichEdit1 выполнять соответсвующие события

309
15 ноября 2006 года
el scorpio
1.1K / / 19.09.2006
Цитата:
и в зависимости какое число в RichEdit1 выполнять соответсвующие события


В таком случае, это не "событие", а "действие" - прошу не вводить в заблуждение неверной терминологией.
Кчлм подразумевается однотипное действие (загрузка картинки), то можно просто создать массив параметров для одной функции.

 
Код:
const AnsiString Files [] = {"File1.jpg", "File2.jpg", и так далее};
const int Files_Size = sizeof (Files) / sizeof (AnsiString);
///.............
TForm1::Button1Click ()
{
     int Index = Edit1->Text.ToInt();
     if ((Index >= 0) && (Index < Files_Size))
         Image1->Picture->LoadFromFile (Files [Index]);
    else throw ERangeError ("Неверный номер файла");
}

В общем, идея ясна.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог