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

procedure frmMain_TableGrid1_OnCellClick (Sender: TObject; ACol, ARow: Integer);
var
    rId:string;
begin
    rId:=SQLEXecute('SELECT id FROM request WHERE id='+ frmMain.TableGrid1.sqlValue);
    //showmessage(rId);
end;
procedure frmNote_Button8_OnClick (Sender: TObject; var Cancel: boolean);
begin
    showmessage(rId);
end;
+Form1.TableGrid1.sqlValue

Не помогло, скорее из-за того, что на вызванной форме две таблицы, где запись производится не в основную, а вспомогательную. Т.к. для основной все работает и через стандартный инструмент.

А можно по больше с глобальной переменной... т.е. в нее, переменную, как в регистр, помещается значение, и его можно использовать где угодно? и как ее использовать?

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

Использовал тогда такую конструкцию

SQLExecute('UPDATE client SET name = "'+frmNote.Edit1.Text+'" WHERE id='+frmNote.ComboBox7.sqlValue);

Все хорошо, но приходится создавать и прятать элемент ComboBox7

Подскажите, еще способы, сп.

279

(8 replies, posted in Russian)

При попытке прокрутить свойства выскочила ошибка... после закрытия и новой попытке - снова ошибка повторилась. И так раз 10. Потом сообщение перестало выскакивать и просто отказала работать прокрутка вкладки "свойств".

Спасибо, помогло...

Или скрипт принудительного указания расположения курсора в текстовых полях... Т.е. когда нажимаешь кнопку открытия формы срабатывал скрипт на указание положения... Спасибо.

В моем проекте курсор не везде появляется при создание новой записи и редактирование и каждый раз приходится тыкать мышкой на поле.

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

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

283

(63 replies, posted in Russian)

Нашлась ошибка. Когда имеешь длинную форму в разработке (не загруженную программу), что даже появляется прокрутка справа, спускаешься вниз, и начинаешь форму уменьшать до пропадания прокрутки, то вверх не подняться, только помогает перезагрузка программы. Вот....

284

(54 replies, posted in Russian)

Спасибо Дмитрий, терь, как надо...

285

(54 replies, posted in Russian)

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

Подскажите, возможно свойством в графе курсора изменить его положение...?

286

(54 replies, posted in Russian)

Да, чтоб не потерялось:

Осталось добиться, как настроить поле ComboBox, чтоб при курсор всегда оставался в конце слова, т.е. при "отказе в добавлении" курсор перемещается в начало слова.

287

(54 replies, posted in Russian)

Язык сообщение подтверждения меняется в зависимости от языка системы при использовании MESSAGEBOX.

заменил строку с MessageDlg на :

if IDYES = MESSAGEBOX('Добавить новый "Брэнд": ' + frmNew.ComboBox4.Text,'Подтверждение',MB_YESNO+MB_ICONQUESTION) THEN

взято из http://myvisualdatabase.com/forum/viewtopic.php?id=3084

288

(54 replies, posted in Russian)

Как обычно, Дмитрий не понимает моих надписей smile  Извините, за фамильярность...

Переход по кн. Enter

if Key=13 then frmEmployee.SetFocusNextControl;

Получилось такое

procedure frmNew_ComboBox4_OnCloseUp (Sender: TObject);
begin
    //Переход на след. поле
    if (frmNew.ComboBox4.dbItemID <> -1) then frmNew.SetFocusNextControl else
    //Ввод новой надписи автозаполнения в таблицу
    if (frmNew.ComboBox4.dbItemID = -1) and (frmNew.ComboBox4.Text <> '') then
    begin
        if 6 = MessageDlg('Добавить новый "Брэнд": ' + frmNew.ComboBox4.Text, mtConfirmation, mbYes + mbNo, 0) then
        begin
            SQLExecute('INSERT INTO brand (name) VALUES ("'+frmNew.ComboBox4.Text+'")');
            UpdateDatabase('brand');
            //Использование последнего id
            frmNew.ComboBox4.dbItemID := Last_Insert_id;
            //Переход на след. поле
            frmNew.SetFocusNextControl;
        end;
     end;
end;

Осталось добиться, как настроить поле ComboBox, чтоб при курсор всегда оставался в конце слова, т.е. при "отказе в добавлении" курсор перемещается в начало слова.
Было б ваще шик если перевести название и кнопки в MessageDlg...

289

(54 replies, posted in Russian)

Вроде, так работает

if (frmNew.ComboBox4.dbItemID <> -1) then frmNew.ComboBox4.text := frmNew.ComboBox4.text else frmNew.ComboBox4.dbItemID := Last_Insert_id;

290

(54 replies, posted in Russian)

Я так понимаю, надо написать условие по выборке по ID. Т.к. у нас есть новая запись с последним ID и запись из таблицы с присвоенным ID.
Потому что, если убрать,

frmNew.ComboBox4.dbItemID := Last_Insert_id

то выбранная запись, из списка ComboBox остается.
А с ней происходит замена на пустое поле при выборе значения из списка при выполнение события OnCloseOn в ComboBox...
Или нужна проверка на дубликат... Непонятно... Требуется помощь smile

291

(54 replies, posted in Russian)

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

И можно сделать выход из ComboBox через Enter. А то вызывает ощущение "замешательства", что делать, чтоб выйти и все осталось как надо... smile

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

292

(54 replies, posted in Russian)

Дмитрий, подскажите:

Как можно написать условие, чтоб ваш скрипт понимал, что ComboBox заполнен и ничего не предпринимать.
А то, я его поставил в процедуру OnCloseOn и при выборе из списка содержимое стирается.

Да, еще подскажите как переместить курсор после заполнения на следующие поле, так понимаю надо задействовать TabOrder... Спасибо

sibprogsistem, огромное...

Интегрировал в свой проект и заработало...

Еще раз спасибо. Пойду другие вопросы генерировать smile

sibprogsistem, вашего первого примера, мне показалось, что дата и статус должны быть в одно отдельной таблице, но тогда нужен скрит, чтоб выбиралась самая первая и последняя даты для отображения в главном гриде...
Начертания начальной задумки прикрепил smile

Блин, как так мое сообщение не верицировалось...

Суть такова, что все равно не то smile. Сейчас получился пример записной книжки, кот. Дмитрий советовал брать за пример...
Рядом, но нет. Данная мысль появилась, из-за того, что клавиша сохранить не может сохранять в две таблицы...
А надо мне так, пример действия,
поступила заявка, у кот. есть дата приемки и присвоен признак - "В работе", и надо чтоб данная дата и признак, попали в грид, кот. расположен в форме просмотра. Там же, в форме просмотра, добавлять кл. "Ведение истории" новые даты и признаки, и все это должно принадлежать одной заявкам, а не всем...

Таблица в просмотре должна отображать записи выбранной строки главной записи, и может быть дополнено через кл. ведение истории. А получается таблица "b" в просмотре отображает все записи.

Все же не то... дополнил Ваш пример.

Спасибо, буду ждать.

В форме frmNew, замысленно, при нажатии "сохранить" надпись "в работе" с датой приемки должны записаться в две таблицы request и statistic, при чем значения таблицы statistic должны быть индивидуальны для каждой заявки (как раньше писал "атрибут"). Его, атрибут получается присвоить только при нажатие "новая", но мне не хотелось бы вызывать еще одну форму для записи, а ограничится одной клавишей "сохранить".

собрал

procedure frmNew_Button2_OnClick (Sender: TObject; var Cancel: boolean);
var
    tNameManufacturer : string = IntToStr(frmNew.ComboBox1.DbItemID);
    tDate : string = FormatDateTime('yyyy-mm-dd',frmNew.DateTimePicker1.DateTime);
begin
   if frmAddNote.dbAction ='NewRecord' then
   begin
    // запись в таблицы базы данных
    SQLExecute('INSERT INTO statistic (data1, id_notice) VALUES ("'+tDate+'", "'+tNameManufacturer+'")');
      // обновление таблицы данных главной формы
    frmMain.TableGrid1.dbUpdate;
      //закрытие формы
    frmNew.Close;
    end;
end;

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