• Сервис онлайн-записи на собственном Telegram-боте
    Тот, кто работает в сфере услуг, знает — без ведения записи клиентов никуда. Мало того, что нужно видеть свое расписание, но и напоминать клиентам о визитах тоже. Нашли самый бюджетный и оптимальный вариант: сервис VisitTime.
    Для новых пользователей первый месяц бесплатно.
    Чат-бот для мастеров и специалистов, который упрощает ведение записей:
    Сам записывает клиентов и напоминает им о визите;
    Персонализирует скидки, чаевые, кэшбэк и предоплаты;
    Увеличивает доходимость и помогает больше зарабатывать;


  • Иллюстрированный самоучитель по Turbo Pascal

    Диалоговое окно выбора режима

    В этом фрагменте мы расширили набор нестандартных команд (константы cmСаn,…, cmAdd), ввели новую функцию Control и предусмотрели необходимые процедуры в теле обработчика событий. Заметим, что режимы редактирования записи и добавления новой записи очень схожи по организации диалога с пользователем, поэтому он" реализуются в рамках одной процедуры AddItem и управляются параметром обращения к ней.

    Функция Control используется для создания диалогового окна выбора продолжения. В качестве значения этой функции будет возвращаться одна из пяти новых команд. В начальном варианте функция возвращает команду cmСаn, что интерпретируется обработчиком событий как указание на завершение работы с диалоговым окном. Поэтому, если Вы вставите указанный текст в программу и запустите ее, поведение программы останется прежним.

    Займемся реализацией функции Control. Она должна создать диалоговое окно выбора режима, получить с его помощью команду, идентифицирующую выбранный режим, и вернуть эту команду в качестве своего значения:

    Function Control: Word;
    {Получает команду из основного диалогового окна}
    const
    X = 1;
    L = 12;
    DX= 13;
    But: array [0..4]of String [13] = {Надписи на кнопках:}
    ('~1~ Выход ','~2~Убрать ','~3~ Искать ',
    '~4~ Изменить ','~5~ Добавить ');
    Txt: array [0..3]of String [52] = (
    {Справочный текст:}
    'Убрать – удалить запись, выделенную цветом',
    'Искать – искать запись, начинающуюся нужными буквами',
    'Изменить – изменить поле (поля) выделенной записи',
    'Добавить – добавить новую запись'); var
    R: TRect;
    D: PDialog;
    k: Integer;
    begin
    R.Assign(7.6.74.15);
    D: = New{PDialog,Init(R, 'Выберите продолжение:'));
    with D do
    begin
    for k: = 0 to 3 do {Вставляем поясняющий текст}
    begin
    R.Assign(l,l+k,65.2+k);
    Insert(New(PStaticText,Init(R,#3+Txt[k])))
    end;
    for k: = 0 to 4 do {Вставляем кнопки:}
    begin
    R.Assign(X+k*DX,6,X+k*DX+L,8);
    Insert(New(PButton, Init(R,But[k],cmCan+k,bfNormal)))
    end;
    SelectNext(False); {Активизируем первую кнопку}
    end;
    Control: = DeskTopA.ExecView(D); {Выполняем диалог}
    end; {Control}
    

    Сначала создается диалоговое окно с заданными размерами (чтобы программе стал доступен тип TDialog, укажите в предложении Uses модуль Dialogs). Затем в цикле:

    for k: = 0 to 3 do
    

    В окно вставляется поясняющий текст (см. рис.15.10).

    Иллюстрированный самоучитель по Turbo Pascal › Введение в Turbo Vision › Диалоговое окно выбора режима
    Рис. 15.10. Диалоговое окно функции Control

    Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.