1 (edited by iacovlogica 2015-09-23 20:13:06)

Topic: Редактор скриптов

Здравствуйте Дмитрий !
Здравствуйте все !   )))

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

1.  Каждый раз при загрузке проекта все процедуры развернуты.( попробуйте что то найти )
2.  Некорректно работает раскрывающийся список свойств
3.  Нет подсветки синтаксиса операторов, функций и тд. и тп.
4.  Нет встроенной справки по Фастскипту
( просто дописать на русском что какая функция делает и что особенно важно свойства объектов вкратце там где F(x)  )
5.  Список свойств не работает для скриптовых объектов
6.  Не корректно работает DateTimePicker ( 3 ошибки несчитая отсутствия милисекунд )


...что вспомню допишу

Re: Редактор скриптов

iacovlogica
Приветствую,


1. Планирую сделать кнопку, позволяющую все разом развернуть или свернуть процедуры.
2. Пожалуйста, опишите подробней.
3. Операторы подсвечиваются  (например for to do, if then else, begin end и т.д.)
4. Планирую для каждой функции сделать краткое описанием, но в тоже время почти все функции стандартные для Delphi
5. Согласен, необходима доработка.
6. Пожалуйста, опишите подробней.
7. Относительно SQLite, дата должна быть только в двойных кавычках, для MySQL апострофы.


по поводу примера, не совсем понял, что вы хотели показать.


спасибо за замечания )

Dmitry.

3 (edited by iacovlogica 2015-09-23 11:55:12)

Re: Редактор скриптов

http://rghost.ru/7zssYBHWk

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

Re: Редактор скриптов

Спасибо.


Компонент DateTimePicker в принципе не может изменять одновременно дату и время, к сожалению не могу повлиять на это, так уж решили разработчики Delphi. Поэтому для ввода одновременно даты и времени (для поля типа DateTime) используется два компонента, подробней можно прочитать здесь
http://myvisualdatabase.com/help_ru/com … icker.html (Подробней о свойстве "Calendar")

Dmitry.

5 (edited by iacovlogica 2015-09-24 09:35:31)

Re: Редактор скриптов

DriveSoft wrote:

(Подробней о свойстве "Calendar")

Для sql запроса их надо сводить в скрипте
http://rghost.ru/6g7Szx2zV
но и после того как в datatimepicker точно находится то что надо выборка через SQL запрос происходит только по дате но не по времени .
... но прогнав .sqldatetime через поле Edit.text происходит чудо и все сразу ищется и выводится .
...мистика
так же мне непонятно поведение SQLExecute
.Text := SQLExecute( 'SELECT data FROM sd WHERE id=10' );    Работает
.Text := SQLExecute( 'SELECT data FROM sd WHERE id>10' );    Не работает
.Text := SQLExecute( 'SELECT data FROM sd WHERE ORDER BY id' );   Не работает
по всей видимости запрос может передать только одно поле из базы данных

Re: Редактор скриптов

iacovlogica wrote:

так же мне непонятно поведение SQLExecute
.Text := SQLExecute( 'SELECT data FROM sd WHERE id=10' );    Работает
.Text := SQLExecute( 'SELECT data FROM sd WHERE id>10' );    Не работает
.Text := SQLExecute( 'SELECT data FROM sd WHERE ORDER BY id' );   Не работает
по всей видимости запрос может передать только одно поле из базы данных

Да, SQLExecute предназначена для получения только одной записи из поля.



вот так можно вернуть множественный результат

procedure Form1_Button1_OnClick (Sender: string; var Cancel: boolean);  
var
    Results: TDataSet;
begin
    SQLQuery('SELECT name, sort FROM person', Results);
    while not Results.Eof do
    begin
        Form1.Memo1.Lines.Add( Results.FieldByName('name').AsString;
        Form1.Memo1.Lines.Add( Results.FieldByName('sort').AsString;
        Results.Next;
    end;
    Results.Free;
end;
Dmitry.

7 (edited by iacovlogica 2015-09-28 06:32:15)

Re: Редактор скриптов

Дабы не быть голословным http://rghost.ru/8ZYb8sydq  ( Ошибка с DateTimePicker )

спасибо за пример выше !!

Re: Редактор скриптов

Дмитрий как мне вставить в запрос , которым заполняется combobox , опцию   DISTINCT ? ,   для заполнения  уникальными полями.
И второй вопрос как отключить возможность пустого выбора ? ( пустая строка при открытии  combobox c возвратом  -1 )

Re: Редактор скриптов

iacovlogica
1. Вы можете заполнить ComboBox произвольным SQL запросом, пример:

Form1.ComboBox1.dbSQLExecute ('SELECT DISTINCT fieldname, id FROM tablename');

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



2. Для кнопки с действием "Сохранить запись" создайте событие OnClick, в котором можно проконтролировать корректность данных в компонентах, пример:

procedure Form2_Button1_OnClick (Sender: string; var Cancel: boolean);
begin
    if Form2.ComboBox1.dbItemID=-1 then
    begin
        ShowMessage('Выберите значение в ComboBox');
        Cancel := True; // отменяет действие кнопки
    end;
end;

также вы можете сделать внешний ключ обязательным для заполнения (при создании связи в таблице БД, раскройте опции "Дополнительно")

Dmitry.