Архив рубрики: Статьи по Clarion

Вывод popup-меню под кнопкой

Коротенькая статья о выводе контекстного меню

  • Автор: Still Zero
  • Уровень знаний: начальный
  • Подразделы: нет
  • Дата публикации: 27.05.2005

Задача: создать всплывающее (контекстное, popup) меню, вызвать его при нажатии на кнопку, показать меню прямо под кнопкой.
Зачем именно под кнопкой: … так красивее 🙂

Создание меню
В ABC-шаблонах существует класс PopupClass, который предназначен для создания контекстного меню. Подробнее о нем вы можете прочитать в стандартной документации. Описание класса и его код находятся в файлах abpopup.inc, abpopup.clw в каталоге LIBSRC. Читать далее

Вывод данных в документ MS Word

Использование шаблонного документа MS Word для формирования отчета

  • Автор: Still Zero
  • Уровень знаний: начальный
  • Подразделы: нет
  • Дата публикации: 26.05.2005

В моей практике встречалась несколько раз следующая задача: необходимо напечатать отчет, содержащий текст договора. Текст договора размещается на 6-ти страницах. На этих страницах в разных местах размещаются данные из моей программы, например, реквизиты фирм, заключающих договор. Я к тому клоню, что данных мало, а текста безумно много. И если вы попытаетесь набрать текст договора в стандартном форматере отчетов, то, если мягко сказать, проклянете все на свете.
К счастью существует простой и легкий путь для решения этой задачи. Суть метода в использовании шаблона документа. Т.е. у вас существует заготовка отчета, в котором указано в какие места, какие данные вставлять. Остается только открыть этот шаблон и заполнить необходимыми данными.
В качестве шаблона могут выступать документы различных форматов. Вы можете использовать MS Excel, MS Word, Notepad или HTML для подготовки шаблона. В этой статье я расскажу каким образом записать данные в документ MS Word-а при помощи OLE. Читать далее

Динамическое создание строк

Динамическое создание строковых переменных
Когда вы описываете строковую переменную, вы задаете количество символов, которое будет хранится в этой переменной. Если вы не знаете на момент описания строки ее размер, но можете узнать его во время выполнения программы, то можно воспользоваться динамическим созданием строки. Т.е. при описании переменной не указывается ее размер. Размер задается при создании строки, в том месте программы, в котором это будет необходимо.

Зачем
Например:
1) Допустим, что у вас есть текстовый файл. Вы хотите загрузить его содержимое в строковую переменную, а потом отображать эту переменную посредством Text-бокса. Заранее вы не знаете какого размера текстовый файл будет открывать Читать далее

8 с половиной долларов

3rdParty, создание списка открытых окон, переключение между окнами

  • Автор: Still Zero
  • Уровень знаний: advanced
  • Подразделы: нет
  • Дата публикации: 21.10.2005

Главное в нашем деле это идея. Второй момент это возможность ее реализовать, а третий — продать.

Насчет идеи … идею не обязательно придумывать самому, можно подсмотреть как это сделано у других, можно у своих, но развить дальше или сделать лучше. О чем я? О 3rd Party разработках.

3rd Party — сторонние, «третьи» разработки. Это программы для программистов. Средства, позволяющие программисту, т.е. Вам использовать что-то сделанное другими людьми за вас. В Кларионе это могут быть шаблоны, библиотеки, классы, вспомогательные утилиты. 3rd Party разработки для Клариона очень развиты. Читать далее

Редактирование по месту (выбор значения из справочника)

Использование Edit-in-Place для выбора значения из справочника. В Кларионе по умолчанию принята система брауз-форма. Т.е. для редактирования просматриваемых данных открывается дополнительное окно формы, в котором пользователь заполняет необходимые данные.
«Редактирование по месту» оно же Edit-in-Place, оно же EIP, это способ редактирования данных без формы. Редактирование происходит в самом браузе. Такой подход оправдывает себя при внесении небольшого количества данных, т.е. все эти данные будут видны в лист-боксе. Преимущество EIP в отсутствии дополнительного окна. Я был противником использования EIP до недавнего времени. IMHO неудобно и слишком много кода. Но все меняется. В Кларион версии 6 (C6) появилось новое свойство REQ и новый класс EditLookupClass (не описан в документации), и это именно то, чего мне так не хватало.
Как обычно, я приведу пример, код которого вы можете скачать внизу статьи. Читать далее

Иконки в заголовках лист-бокса

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

Идея достаточно проста. Если рассмотреть заголовок как таковой, то он похож на обычную кнопку.


На стандартной кнопке мы легко можем показать иконку. Более того мы можем отцентрировать иконку по правому/левому краю или по центру. Таким образом, наложив стандартную кнопку на заголовок колонки мы добьемся желаемого результата. Поэтому все что нужно, это знать координаты заголовка. Читать далее

Снова сабклассинг

Каким образом обрабатывать сообщения Windows, используя классы.

function expandIt(inID){
  inIDs=eval(inID);
  if (inIDs.style.display=="none"){
    inIDs.style.display="block";
  }else{
    inIDs.style.display="none";
  }
}

Введение
Слова «sub-classing» созвучно со словом «class», и первый перевод этого слова,
который приходит в голову — «подкласс», на самом деле это не так. Сабклассинг и классы это две абсолютно несвязанные вещи.

xClasses (832)

© Still Zero, 2005-2006. Все права защищены.

VIRTUAL — определение виртуальных методов

Переведен стандартный раздел помощи для ключевого слова «VIRTUAL». Рекомендуется к прочтению.
Атрибут VIRTUAL — это атрибут, используемый при описании прототипа метода класса. Определяет, что процедура будет являться виртуальным методом класса.
Это позволяет методам РОДИТЕЛЬСКОГО класса вызывать методы ДОЧЕРНЕГО класса. Атрибут VIRTUAL должен быть объявлен
в обоих прототипах методов: и в родительском и в дочернем классе. Читать далее

В первый класс

Мнение о том каким должен быть «настоящий» класс. Этапы разработки класса. В этой статье я изложу свое мнение о том, каким должен быть настоящий класс, от и до.

Перед прочтением желательно прочитать help по ключевому слову CLASS. Если в процессе чтения вам встретятся незнакомые операторы, команды, ключевые слова — читайте также help и по ним в стандартной помощи Клариона — F1.

Не так давно я в который раз получил задание на создание отчета вида: товар, цена, количество, сумма без НДС, сумма НДС, сумма. Последние три поля являются расчетными.
И мне опять пришлось вспоминать, а вернее выводить формулу для расчета НДС. Расчет НДС можно производить разными путями Читать далее

CLASS — определение класса в Clarion

Переведен стандартный раздел помощи для ключевого слова «CLASS». Рекомендуется к прочтению.
Описание класса:

label CLASS([parentclass])[,EXTERNAL] [,IMPLEMENTS] [,DLL] [,STATIC] [,THREAD]
           [,BINDABLE] [,MODULE( )] [, LINK( )] [, TYPE]
                     [ data members and methods ]
      END

Читать далее