Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

прошу подсказку [D6, Paradox]


Timka ©   (2002-04-02 08:59:00) 

Подскажите пожалуйста: есть несколько компонентов ТТable и по одному TDBGrid и TControlTab, при переключении с закладки на закладку выполняются практически одни и те-же действия для вывода данных из таблиц в TDBGrid, я решил это через оператор case, но у меня масса таблиц и кнопок, для каждой структура в основном повторяется и в принципе единственное, что меняется, это TDBDrid.DataSource и TTable.IndexNameField. Для кнопок, типа вставить запись, удалить и т.п. тоже приходится использовать CASE, что при десятке таблиц мягко говоря расстраивает, не говоря уже о том, что загромождает текст, увеличивает вероятность ошибки и затрудняет переделку. А теперь вопрос: можно ли пойти каким-либо другим путём, что-бы применить что-то типа Sender as... или т.п.? (все TTable в DataModule, многие таблицы взаимосвязаны...)


Timka   (2002-04-04 11:51:00) [1]

понял, спасибо


VAleksey   (2002-04-04 06:38:00) [2]

Да в другой


Timka   (2002-04-03 19:26:00) [3]

to deleon :
БОЛЬШОЕ СПАСИБО ЗА ПРИМЕР!!! чувствую, эта метода мне ещё здорово пригодится... :)))

to VAleksey :
круто. Ж:( сижу у зеркала, ощупываю уши... прикидываю длину...

ВСЕМ ОГРОМНОЕ СПАСИБО ЗА ПОМОЩЬ!!!

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

перенёс из dbf в парадокс с помощью BathMove записи, сделал сортировку для табле по текстовому полю по типу хелпа дельфи.
работает в 95процентах случаев. только. Симптомы :
есть запись СОЛЬ - отсортировывается только если первая буква - латиницей
запись ОГУРЦЫ - никак не отсортировывается, (впереди пробела нет)
если изменяю в через DBGrid - всё нормально. Пока не закрою дельфи. При поторном открытии - всё возвращается обратно. при этом в одном сеансе всё нормально,разные проекты видят изменение. через SQL explorer - изменения в таблицах постоянные.
хорошо что таблица маленькая, случайно заметил. а если не 100 а 1000 записей? как с этим бороться?
или этот вопрос лучше задать в другой ветке?


VAleksey   (2002-04-02 15:50:00) [4]

Ха, можно по моему еще проще:
в юнете формы в разделе Public пиши: MyTable:TTable;
При перемещении по TabSheet - ам делай следующее
MyTable:=Table1;
И вызывай для MyTable какие хочешь методы и действия !!!!
В данном случае все будет применятся для Table1 !


Aleksandr   (2002-04-02 13:06:00) [5]

Ну, а не проще через свойство Tag использовать все? На то параметр Sender в методах и есть, чтобы неявно обращаться... Хотя, может, я чего-то недопонимаю, но у меня в одной программе аналогичный механизм с кучей таблиц и TabControl... Правда, я там не плодил пачку компонент, а в зависимости от закладки заполнял TQuery...


deleon   (2002-04-02 12:59:00) [6]

type
IPage = record
DataSource: TDataSource;
AddProc: TNotifyEvent;
EditProc: TNotifyEvent;
DelProc: TNotifyEvent;
end;

function DataSource1: TDataSource;
function DataSource2: TDataSource;
function DataSource3: TDataSource;

const
IPageArray[0..2]of IPage =
((DataSource: DataSource1; AddProc: Button1Click; EditProc:
Button2Click; DelProc: Button3Click),
......................

implementation

function DataSource1: TDataSource;
begin
Result := MainForm.SuperDataSource1;
end;

Все приблизительно так...фух, аж устал :)))


Timka   (2002-04-02 12:50:00) [7]

гмм... я, конечно, жутко извиняюсь, но не очень представляю, как именно выглядят указатели на объекты , а тем более на события этих объектов. Не могли бы Вы привести прмерчик? и если можно, подскажите, где это можно подробнее посмотреть? Плиииз...


Johnmen   (2002-04-02 09:31:00) [8]

Или написать необходимые процедуры и ф-ии, параметрами которых будут указатели на необходимые объекты...


deleon   (2002-04-02 09:11:00) [9]

Опиши массив типа, который будет содержать в себе указатели на события кнопок, DataSet"ы и др. информацию, затем сделай процедуру типа LoadPage(); в которой опиши действия по чтению данных из соответствующего элемента массива(соответствующего закладке) и присвоения этих данных куда надо, IndexName, DataSet...При правильной организации массива и процедуры загрузки, все будет работать без глюков...Это один из вариантов, как это можно сделать :)))


Наверх

Титульная страница Поиск, карта сайта Написать письмо