KRField.pas

 

Типы данных

  • TKRFieldDateTime – список возможных вариантов отображения текущего значения как даты
    • fdtNone – текущее значение не является датой
    • fdtTime – отображать текущее значение как время
    • fdtDate – отображать текущее значение как дату
    • fdtDateTime – отображать текущее значение как дату и время

TKRFieldValueEvent = procedure (Sender: TObject; var AValue: Variant) of object;

  • TKRFieldValueEvent – событие передающее текущее значение до его отображения, для возможности корректировки
    • Sender – указатель на текущий объект класса TKRField
    • AValue – текущее значение

Переменные

  • KRFldMsgMaximumLimit – сообщение о превышении максимального предела. Маска максимального предела [#Value]
  • KRFldMsgMinimumLimit – сообщение о преодолении минимального предела.
    Маска минимального предела [#Value]
  • KRFldMsgAskBeforeInput – вопрос подтверждения ввода значения. Маска текущего значения [#Value]
  • KRFldMsgIncorrectValue – сообщение о некорректном вводе значения

Классы

Класс TKRField

Родительский класс TCustomEdit

Интерфейсы: IKRTimer

TKRField – компонент удаленного управления и мониторинга для ввода/вывода значения переменной класса TKRVariable

Свойства класса TKRField

property Variable: TKRVariable;

  • Variable – переменная, значение которой будет отображаться. Если свойство VarSet пусто, то данная переменная будет использоваться и для ввода значения

property VarSet: TKRVariable;

  • VarSet – переменная для ввода значения

property ValType: TVarType;

  • ValType – тип переменной. Устанавливается автоматически при добавлении переменной в поле Variable, но может быть изменено. Изменять данное значение есть смысл в том случае если предполагается корректировка значения до его вывода/ввода с помощью событий OnShowValue и OnSetValue

property Format: String;

  • Format – формат вывода значения. В зависимости от типа значения переменной используются разные функции форматирования. Для целочисленного значения Format, для значения с плавающей точкой FormatFloat. Если свойство DateTime не равно fdtNone, то для форматирования используется функция FormatDateTime

property Timer: TKRTimer;

  • Timer – таймер класса TKRTimer для обновления значения в поле

property EnterAftExit: boolean;

  • EnterAftExit – если значение равно False, то для ввода значения нужно нажать клавишу Enter. Если значение равно True, то ввод происходит при потере фокуса

property ErrorColor: TColor;

  • ErrorColor – цвет фона при ошибке в переменной Variable

property ErrorFontColor: TColor;

  • ErrorFontColor – цвет шрифта при ошибке в переменной Variable

property ChangeFontColor: TColor;

  • ChangeFontColor – цвет шрифта при редактировании

property InputMax: Variant;

  • InputMax – максимальный предел для ввода значения. Если введенное пользователем значение превыситзаданный предел, то отобразится диалоговое окно с сообщением из переменной KRFldMsgMaximumLimit

property InputMin: Variant;

  • InputMin – минимальный предел для ввода значения. Если введенное пользователем значение будет меньше заданного предела, то отобразится диалоговое окно с сообщением из переменной KRFldMsgMinimumLimit

property AskBeforeInput: boolean;

  • AskBeforeInput – если включить данное свойство, то перед вводом значения отобразится диалоговое окно с подтверждающим вопросом из переменной KRFldMsgAskBeforeInput

property ErrorToHint: boolean;

  • ErrorToHint – если включить данное свойство, то в всплывающей подсказке будет выводится текущая ошибка переменной Variable

property DateTime: TKRFieldDateTime;

  • DateTime – свойство типа TKRFieldDateTime, которое говорит о том, что значение нужно рассматривать как дату
События класса TKRField

property OnSetValue: TKRFieldValueEvent;

  • OnSetValue – событие вызывается при вводе значения до его отправки в переменную для возможной корректировки

property OnShowValue: TKRFieldValueEvent;

  • OnShowValue – событие вызывается при обновлении значения до его вывода для возможной корректировки
Скачать:
Пример работы с полями ввода/вывода KRField в Delphi

Примеры использования:

  • Мини SCADA система на Delphi
  • Пример передачи данных по протоколу Modbus

 

Поделиться:

Delphi-программирование: блог Delphi-программиста

Andrey Опубликовано: 12 Сентябрь 2016

Приветствую всех читателей блога. Совсем недавно делал мини-программу по получению информации из фтп-сервера, то есть. Другими словами простенький фтп-клиент. Я не буду здесь рассказывать, как сделать полноценный фтп-клиент, я расскажу, как использовать компонент TListView для отображения информации фтп-сервера. Причем информация будет отображаться с иконками, ассоциируемые в Вашей системе Windows.

Скажу сразу, тот пример, который будем рассматривать мы в данной статье, основан на компоненте TidFTP из вкладки Indy Clients, но смысл остается тем же, если Вы будете использовать компонент, например библиотеки Synapse.

На форме у меня компонент TListView, в свойстве ViewStyle у меня выставлен vsReport, либо же можно vsIcon. У меня рабочий проект выглядит следующим образом (свойство ViewStyle=vsReport):

ФТП-клиент Delphi

Читать полностью »

Метки: ftp, idFTP, Indy, Indy Clients, ListView, TListView, иконки, ФТП

Другое, Мои работы Комментарии (0) »

Andrey Опубликовано: 26 Январь 2016

Приветствую всех. Продолжу я Вам рассказывать про некоторые задачи, которые было мне интересно рассматривать и соответственно как-то реализовывать.

Хочу рассказать о том, как мне пришлось организовать прием и отправку писем на своем сервере, на предприятии. Я уже рассказывал, что у нас на предприятии установлен свой собственный Microsoft Exchange. Весь прием и отправку я организовал через него, но, я поставил промежуточный собственный почтовый сервер, который выполнял всю грязную работу: обработка ошибок при отправке почты, при приеме почты, автоматическая отправка писем в заданное время, проверка почты в заданной время и так далее.

Данная статья будет разбита на серию, наверное, из трех. В сегодняшней статье я хотел бы рассказать, как установить и настроить промежуточный свой собственный почтовый сервер, который очень удобный, по моему мнению. Вторая статья будет содержать информацию о том, как читать и получать письма, а третья статья будет посвящена отправке писем.

Если честно, почему я пошел на такую схему? Не знаю, мне показалось это более удобным, чем постоянно администраторов просить посмотреть, почему сервер мои подключения отклоняет частые, либо почему сервер почтовый недоступен. Использую промежуточный сервер, я письмо отправил, если сервер Microsoft Exchange не доступен, ничего страшного, письмо будет лежать в папке для отправки, как только сервер оклемается, сразу же произойдет его доставка. То же самое касается и приема писем. Я ни о чем не беспокоюсь. Мне достаточно лишь организовать прием и отправку писем в автоматическом режиме.

Читать полностью »

Метки: Courier Mail Server, idMessage, Mail Server, SMTP

Сеть и интернет Комментарии (0) »

Andrey Опубликовано: 12 Январь 2016

Доброго времени суток дорогие читатели блога. Хочу поздравить Вас с прошедшими праздниками, пожелать в Новом Году всего самого наилучшего, выполнению всех желаний, чтобы у Вас было все, как Вы задумали. Теперь давайте вернемся непосредственно к самой статье.

Давайте продолжим нашу тему по работе с checkboxes в TDBGrid с использованием вычисляемого поля (предлагаю вспомнить первую часть статьи). В данной статье мы рассмотрим, как можно вообще работать с отмеченными записями подобным образом.

То есть, когда у нас значение поля checkboxes хранилось в поле таблицы (True или False, 1 или 0), можно было циклом или запросом выбрать нужные нам записи, здесь ситуация почти похожая.

В данной статье мы рассмотрим следующие нюансы:

  • Поиск нужного значения (отмечаем запись checkboxes)
  • Удаление отмеченных записей
  • Выборка отмеченных записей
  • Отметка всех записей отображенных в TDBGrid
  • Снятие отметки всех записей отображенных в TDBGrid

На самом деле, подобным образом с отмеченными записями можно производить любые операции. Это связано с тем, что идентификатор этих записей у нас хранятся в универсальном списке TList. А если у нас есть идентификатор записи, то можно его и удалить с таблицы и найти и так далее.

Давайте начнем с того, что нам необходимо поместить идентификаторы отмеченных записей в сам список TList (у меня переменная списка – ListSelect). Тут необходимо определиться, по какому событию мы будем добавлять в наш список идентификаторы записей. Обычно это делается, когда пользователь нажимает на сам checkboxes, но у меня еще сделано таким образом, что выделять (отмечать) запись можно и клавишей пробел (Space) с переходом на последующую строку. Поэтому, отмечать записи можно по любому событию, как будет удобно.

Читать полностью »

Метки: checkboxes, DBGrid, dbgrideh, ehlib

Базы данных Комментарии (5) »

Andrey Опубликовано: 28 Декабрь 2015

Приветствую читателей блога. Сегодняшняя статья будет посвящена работе с DBF-файлами, без использования ADO, BDE и компонентов доступа к данным. Я уже рассказывал про работу с DBF-файлами, это описано в этой статье.

Многим не нравится работа с ADO, BDE, так как для работы программы, которая была написана с использованием данной технологии, необходимо наличие установленных драйверов поставщика данных, BDE, dll-библиотеки и так далее.

В данной статье я расскажу как можно быстро и очень просто создавать DBF-таблицы, заполнять их данными и производить другие манипуляции с данными. Все это будет осуществляться при помощи бесплатного компонента TDBF. Я про него тоже мельком рассказывал уже, но всего лишь пару слов. Но очень часто им пользуюсь, когда необходимо осуществить доступ к DBF-таблицам.

Поначалу у меня были проблемы с использованием данного компонента, в частности с кодировками таблицами, но в итоге все разрешилось. Теперь он в моей коллекции, тем более является совершенно бесплатным. Скачать сам компонент можно по этой ссылке, там же есть и пример работы, а также инструкция с описанием методов, свойств компонента. Я Вам расскажу быстро самое основное, то есть, как открыть таблицу, как добавить данные или как создать новую DBF-таблицу.

Читать полностью »

Метки: Ado, BDE, DBF, TDBF

Базы данных Комментарии (3) »

Andrey Опубликовано: 15 Декабрь 2015

Доброго времени суток всем. В этой статье я хотел бы поговорить о том, как можно сделать checkboxes в ячейках для любой базы данных в нужном для Вас гриде (Grid). Я уже писал подобную статью  и рассказывал, как в ячейках грида отображать checkboxes, но здесь речь пойдет совсем о другом способе, на мой взгляд, более правильным и лучшим.

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

Сегодня я расскажу только Вам, как отобразить checkboxes в ячейках, а в другой статье уже речь пойдет о том, как перемещаться по данному набору данных, отмечать все ячейки, снимать выделение всех ячеек (checkboxes), работать только с отмеченными данным и так далее. Таким образом, данная статья будет состоять из двух частей.

Читать полностью »

Метки: checkboxes, DBGrid, dbgrideh, ehlib

Базы данных Комментарии (6) »

Страница 1 из 4112345. ..102030…»Последняя »

Delphi XE10 TQUERY SAVETOFILE — NAKEDNASAD

  1. #DELPHI XE10 TQUERY SAVETOFILE FULL
  2. #DELPHI XE10 TQUERY SAVETOFIL 1958

    Текущий год => 2008 (на момент написания) Обратите внимание, что 49 обрабатывается как 2049 следующим образом:

    #Delphi xe10 tquery savetofile code

    ShowMessage(‘ c = ‘+ FormatDateTime(‘c’, myDate)) Пример кода: Отображение эффекта настроек локального формата даты ShowMessage(‘ tt = ‘+ FormatDateTime(‘tt’, myDate)) ShowMessage(‘ t = ‘+ FormatDateTime(‘t’, myDate)) ShowMessage(‘hh:nn: ss.zzz = ‘+ FormatDateTime(‘hh:nn:ss.zzz’, myDate)) Только время — числовые значения с ведущими нулями ShowMessage(‘ h:n:s.z = ‘+ FormatDateTime(‘h:n:s.z ‘, myDate)) Только время — числовые значения без начальных нулей Используйте настройки ShortDateFormat + LongTimeFormat ĭddd d of mmmm yyyy = Mon День 5 июня 2000 г. Пример кода: Отображение всех типов данных форматирования поля времени Используйте короткие имена для дня, месяца и добавьте текст произвольной формы (‘of’) įormatDateTime(‘ddd d of mmm yyyy’, myDate)) dddd d of mmmm yyyy’, myDate)) Только дата — числовые значения с начальными нулями Только дата — числовые значения без начальных нулей (кроме года)

    #Delphi xe10 tquery savetofile full

    Настройте нашу переменную TDateTime с полной датой и временем:

    #Delphi xe10 tquery savetofile windows

    Устанавливает пороговое значение столетия для двухзначного преобразования строки года – загрузите этот веб-сайт как программу Windows. Пример кода: Отображение всех типов данных форматирования поля даты. Символ, используемый для разделения отображаемых полей времени. Короткая версия формата времени в строку — преобразует строку даты и времени в значение TDateTime — определяет значение AM в процедуре DateTimeToString — определяет значение PM в процедуре DateTimeToString Длинная версия время в строковом формате – компактная версия даты в строковом формате – массив названий дней месяца, начиная с 1 = январь Длинная версия даты в строковом формате – массив названий дней недели, начиная с 1 = воскресенье – массив дней месяца имена, начиная с 1 = январь Символ, используемый для разделения отображаемых полей даты, преобразует значения даты и времени TDateTime в строку. это локальная копия глобальных переменных форматирования, которые делают подпрограмму потокобезопасной. Вы предоставляете запись FormatSettings перед вызовом. Версия 2 этой функции предназначена для использования в потоках. В дополнение к этому форматированию на различные из вышеперечисленных параметров влияют следующие переменные с их значениями по умолчанию: Важно: если вы хотите видеть такие символы, как dd, в форматированном выводе, поместив их в «метки», они не будут интерпретироваться как элементы даты или времени. В строке форматирования можно использовать следующие (не азиатские) строки символов форматирования: Это форматирование лучше всего поясняется в примере кода.Строка форматирования может содержать смесь обычных символов (которые передаются без изменений в строка результата) и символы форматирования данных. Форматирование определяется строкой Formatting. Функция FormatDateTime обеспечивает расширенное форматирование значения TDateTime DateTime в строку. Расширенное форматирование переменной TDateTime в строку — форматирование: строка DateTime: TDateTime — форматирование: строка DateTime : TDateTime const FormatSettings : TFormatSettings Основы Delphi : Команда FormatDateTime Основы Delphi

    ссылка: logging_variables [mAirList Wiki]

    Содержание

    • Переменные регистрации

      • Общие переменные

      • Информация о воспроизводимом элементе

      • Дополнительные переменные для протоколирования многокомпонентных/форм-данных HTTP POST

      • Дополнительные переменные для импорта плейлиста/рекламы (шаблон имени файла)

      • ФорматДатеВремя

      • Последующие элементы

    Общие переменные

    %Y Текущий год как ГГГГ
    Текущий год как ГГ
    Текущий месяц как ММ
    %D Текущий день как DD
    %h Текущий час как ЧЧ
    %m Текущая минута как ММ
    %s Текущая секунда как SS
    %w ISO 8601 неделя года
    %T{Format} Текущая дата/время с использованием форматирования FormatDateTime (см. ниже)
    %S{Format} Время начала в FormatDateTime форматирование (используется для остановки регистрации)
    %t Символ табуляции ( ASCII 9)
    %r Символ CR ( ASCII 13)
    %n Символ новой строки ( ASCII 10)
    %% Создает знак % на выходе
    %g Уникальный идентификатор связанной операции воспроизведения
    %R{Key} Данные выполнения
    %# Общее количество текущих прослушивателей на всех подключениях кодировщика
    %${Digits} Индекс файла (используется для экспорта файла с пользовательским шаблоном имени файла)
    %x Имя компьютера
    %X Имя экземпляра
    Художник
    %b Название
    %l Общая продолжительность в секундах с дробями
    %l{Формат} Общая продолжительность, в формате FormatDateTime
    %L Общая продолжительность в формате ЧЧ:ММ:СС
    %d Фактическая продолжительность воспроизведения в секундах DirectSound (для остановки записи)
    %e Фактическая продолжительность воспроизведения, в секундах с дробями (для остановки записи)
    %e{Format} Фактическая продолжительность воспроизведения в формате FormatDateTime (для остановки записи)
    %p Эффективная продолжительность воспроизведения, в секундах с дробями
    %p{Format} Эффективная продолжительность воспроизведения в формате FormatDateTime (начиная с версии 6. 3)
    %P Эффективная продолжительность воспроизведения, ЧЧ:ММ:СС
    %F Прогнозируемое время окончания (время начала + продолжительность), в формате FormatDateTime
    %c{Тип} Кий-маркер, в секциях с дробями
    %E Тип конца
    %I Тип элемента (внутренний идентификатор)
    %J Тип элемента (удобочитаемый)
    %u{Ключ} Значение атрибута
    %C Комментарий
    %U ID внутренней базы данных
    %V Внешний идентификатор
    %k Имя файла значка
    %K Данные значка в виде строки BASE64
    %1 Имя файла с путем
    %2 Имя файла без пути
    %3 Имя файла без пути и расширения
    %4 Имя файла без пути, только первый символ
    %i{Ключ} Необработанные данные тега файла

    Дополнительные переменные для протоколирования многокомпонентных/форм-данных HTTP POST

    Следующие переменные поддерживаются только в журнале HTTP POST multipart/form-data.

    Они должны быть введены в поле «значение» как есть, без других строк/переменных вокруг них.

    %ALBUMART Обложка альбома (при наличии), в виде данных в двоичной форме (начиная с версии 6.3.3)

    Дополнительные переменные для импорта плейлиста/рекламы (шаблон имени файла)

    %B Номер блока
    %2B Номер блока, две цифры, впереди 0
    %3B Номер блока, три цифры, впереди 0
    %N Номер региона
    %2N Номер региона, две цифры, впереди 0
    %3N Номер региона, три цифры, впереди 0

    ФорматДатеВремя

    Для некоторых переменных требуется строка формата времени в нотации Delphi FormatDateTime, см. http://www.delphibasics.co.uk/RTL.asp?Name=FormatDateTime.

    Последующие позиции

    Используя знаки + в переменных, вы можете получить доступ к данным последующих (очередных) элементов в плейлисте.