Topic: По TableGrid, вкладки

Когда дважды кликаешь на строчку записи в TableGrid появляется форма добавления новой записи (ОНА ЖЕ РЕДАКТИРОВАНИЯ) на которой присутствует PageControl а на нем несколько вкладок (разделов) TabSheet:  рисунки, музыка, Фильмы и т.д., которые помимо основных параметров имеют дополнительные. Например На вкладке Фильмы такие параметры как  - кассовый сбор. При добавлении новой записи я самостоятельно выбираю вкладку, чтобы внести дополнительные характеристики, а при изменении записи или двойной клик на строчку записи в гриде открывает форму а в ней вкладка остается на старой позиции (с предыдущего редактирования) и приходится смотреть сначала по записи что это а потом вручную нажимать вкладку. Вопрос: как сделать так чтобы при выборе строчки в форме открывалась соответствующая вкладка?

Re: По TableGrid, вкладки

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

procedure Form2_OnShow (Sender: string; Action: string);
begin
    if Action = 'ShowRecord' then
    begin
        if Form2.Edit1.Text <> '' then Form1.PageControl1.ActivePageIndex:= 0; 
        if Form2.Edit2.Text <> '' then Form1.PageControl1.ActivePageIndex:= 1;
        if Form2.Edit3.Text <> '' then Form1.PageControl1.ActivePageIndex:= 2;
    end;
end;
Dmitry.

Re: По TableGrid, вкладки

А могли бы немного прокомментировать запись Action = 'ShowRecord' и  Form2.Edit1.Text <> ''

Re: По TableGrid, вкладки

Action = 'ShowRecord'
Позволяет узнать, для чего была открыта форма.


Может иметь следующие значения:
'Start' - при запуске приложения, только у главной формы.
'NewRecord' - при вызове окна с помощью кнопки с действием Новая запись.
'ShowRecord' - при вызове окна с помощью кнопки с действием Показать запись
'ShowForm' - при вызове окна с помощью кнопки с действием Показать форму
'' - пустая строка, если окно было вызвано с помощью скрипта.



if Form2.Edit1.Text <> '' then Form1.PageControl1.ActivePageIndex:= 0;
дословно можно перевести как:
если в компоненте Edit1, его текстовое содержимое не равно пустоте, то переключаемся  на первую вкладку

Dmitry.

Re: По TableGrid, вкладки

Спасибо получилось!!! Только я вместо <> 'текст'  сделал =  'текст'
то есть:
if Add_Zapis.ComboBox5.Text = 'Фильм' then Add_Zapis.PageControl1.ActivePageIndex:= 0;

Re: По TableGrid, вкладки

Пожалуйста )

Dmitry.