FAQ

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
Аватара пользователя
Admin
Администратор
Сообщения: 3959
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

FAQ

Сообщение Admin »

  1. Шрифты, языки, кодировки, крякозябры
    Конвертация UTF-8 -> Windows 1251 и обратно
    Класс тут

    Код: Выделить всё

     include('Cstr.inc')
    cvt 	cstr
      code
      cvr.set('some text')
      cvt.toutf8()
      ! or
      cvt.toascii()
      message(cvt.str())
    Кракозябры в IDE
    В файле bin\Clarion.env:

    Код: Выделить всё

    CLASYSTEMCHARSET=204
    CLACHARSET=Cyrillic
    Программное переключение раскладки клавиатуры
  2. Другое
    Работаем с internet (http, https, ftp, sftp, ftpes и т.д.)
    Как выгрузить в очередь произвольный SQL-запрос.
    Процедура проверки перед входом в программу.
    Создать процедуру (CheckPassword) для проверки пароля при входе программу test.app
    Процедура Main -> ThisWindow.Run PROCEDURE -> перед Parent (2500)
    вставка кода:

    Код: Выделить всё

    IF NOT CheckPassword() THEN RETURN Level:Cancel END
    
    если 0 то закрывается test.app
    Как воспроизвести в кларион звук.файл
    Вернуть несколько значений в функции
    С10 (С11) - запуск при переустановке windows 10

    Пришлось переустанавливать windows 10, для запуска С10 (С11) понадобилось только сохранить каталог SoftVelocity который находиться

    Код: Выделить всё

    c:\Users\ [ NAME USER ] \AppData\Roaming\SoftVelocity\
    После переустановки бросаем весь каталог в папку

    Код: Выделить всё

    c:\Users\ [ NAME USER ] \AppData\Roaming\
    устанавливаем только Visual C++ и все. Никакой регистрации, все настройки и солюшены остаются в том порядке как были до переустановки windows.
    Позиционирование курсора в эмбедах при ошибке
    Вопрос полный: В clarion6, когда при компиляции обнаруживаются ошибки в эмбедах, то среда позиционируется на них в "полосатом редакторе" и тут же дает их исправлять. А в Clarion10 она открывает сгенеренные сырцы (clw), все правки в которых будут потеряны после очередной кодогенерации. Есть ли какая возможность редактирования ошибок в эмбедах как раньше в clarion6?
    Ответ: Tools - Application Options - IDE. Надо вЫключить опцию "Edit embedded source errors in generated code".
  3. ABC
    Browse. Ручное добавление записи, с обновлением и позиционированием

    Код: Выделить всё

       .......
      ADD(MyFile); IF ERRORCODE() THEN STOP(ERROR()) END
    
      ! встать на созданную запись
      BRWx.ResetFromFile()
      BRWx.ResetQueue(1)
      ThisWindow.Reset(1) 
    
      MyFile:AutoId = Temp_AutoId
      Get(MyFile:AutoId, MyFile:AutoIdKey)
    
      BRWx.Q.MyFile:AutoId = MyFile:AutoId
      Get(Queue:Browse,BRWx.Q.MyFile:AutoId)
      BRWx.ResetFromBuffer()
      BRWx.TakeNewSelection() 
    
    Выбор принтера программно
    Как в C10 создать ABC multi-dll приложение
  4. SQL
    Загрузка SQL запроса в Clarion Queue (Замена или аналог {PROP:SQL})
    Автоинкремент через словарь (MYSQL)
    взято отсюда и подредактировано
    1. На стороне mysql указываем

    Код: Выделить всё

    id INT (11) NOT NULL AUTO_INCREMENT
    Все ниже указанное в DCT (dictonary)
    2. В свойствах таблички на вкладке Options добавьте поле

    Код: Выделить всё

    EMULATEAUTONUMKEY
    типа Boolean. Значение true.
    Благодаря этому кларион сгенерит код добавляющий add(Tаблица) при открытии формы редактирования записи и удаляющий эту запись при нажатии cancel.
    3. Заходите в словарь в свойствах таблички в драйверопшнс добавьте -

    Код: Выделить всё

    /AUTOINC='SELECT LAST_INSERT_ID()'
    Или любой другой запрос, который вернет id (у меня этот работает).
    4. Теперь идем в свойства поля id на вкладку Options, Добавим в User Options новый PropertyLabel, типа boolean. Имя ему укажите

    Код: Выделить всё

    IsIdentity
    Это надо, чтобы кларогенератор знал, что поле id заполняется на сервере.
    Если по полю ID в словаре создали ключ, то в вкладке Attributes надо снять галочку autonumber. Иначе компилятор скажет, что он не согласен.
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Ответить