Обсуждение:Процедуры диалога Даты, Периода Дат, Даты+Время

0 (0)
  • Развернуть Обсуждение:Процедуры диалога Даты, Периода Дат, Даты+Время ( Обсуждение примера  14.01.2005 21:09 )
    0(0)
    Во время работы столкнулся с проблемой что в RSL нет функции получения из диалога Времени, наподобие системной GetDate
    Отсюда выросла небольшая библиотечка
    Работает тока с библиотекой VCH 1.10
    Посмотреть пример
    >> Ответить
    • Развернуть конечно, хорошо, но зачем (только) для всего этого целый VCH? - ( Adyan_N  17.01.2005 11:58 )
      0(0)
      Not specified
      >> Ответить
      • Развернуть Замечание логичное :-) А для того что он есть и почему бы им не пользоваться??? :-) ( dik  17.01.2005 12:30 )
        0(0)
        А если уж чуть посерьёзней
        С помощью наследования и VCH хорошо дорисовывать или изменять существующие классы диалога
        3 процедурки - введены для упрощения вызовов - но надо понимать всегда можно работать напрямую с классами
        например в клнечном коде надо было логику ввести по получению периода дат
        вот результат
        /*------------------------------------------------------------------*/
        private class (TFrmDatePeriod) TПериодДат (_Дата:date,_Дата2:date,_Заголовок:string)
            InitTFrmDatePeriod(_Дата,_Дата2,_Заголовок);
            
            lblDate2.Color = Red;
            lblDate2.Text("ПО ДАТУ");
        
            //....................
            MACRO editDateOnChange
                editDate2.Value(editDate.Value+30); // Вот здесь ЛОГИКА!!!
            END;
        end;
        /*------------------------------------------------------------------*/
        private Macro ПолучитьПериодДат(Дата1:date,Дата2:date,Заголовок:string)
            private var Диалог:object, РежимВыхода=false;  
        
            Диалог=TПериодДат(Дата1,Дата2,Заголовок);
            _SetEventDelay(100);
        //    DebugBreak;
            Диалог.ShowModal;
            
            РежимВыхода=Диалог.РежимВыхода;
            if (РежимВыхода)setparm(0,Диалог.Дата); setparm(1,Диалог.Дата2);end;
            Диалог.Dispose;Диалог=null;
            return РежимВыхода;
        End; 
        

        С уважением
        >> Ответить