![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
|
Проблема в организации повторяющегося кода.
Код:
procedure TForm1.dxBarButton1Click(Sender: TObject); var DBNames : TStringList; DBName : string; NewItem : TTreeNode; begin DBNames := TStringList.Create; MyConnection1.GetDatabaseNames(DBNames); cxTreeView1.Items.BeginUpdate; for DBName in DBNames do begin NewItem := cxTreeView1.Items.Add(nil,DBName); NewItem.ImageIndex := 0; NewItem.SelectedIndex := 0; NewItem.HasChildren := True; end; cxTreeView1.Items.EndUpdate; DBNames.Free; end; Получаю список БД с сервера MySQL. Создаю "корень дерева". Далее обрабатываю OnExpanding (при развёртывании ветки), получая полный список таблиц Код:
procedure TForm1.cxTreeView1Expanding(Sender: TObject; Node: TTreeNode;
var AllowExpansion: Boolean);
var
TblNames : TStringList;
TblName : string;
NewItem : TTreeNode;
begin
MyConnection1.Database := Node.Text;
MyConnection1.Connect;
TblNames := TStringList.Create;
MyConnection1.GetTableNames(TblNames);
cxTreeView1.Items.BeginUpdate;
Node.DeleteChildren;
for TblName in TblNames do
begin
NewItem := cxTreeView1.Items.AddChild(Node,TblName);
NewItem.ImageIndex := 1;
NewItem.SelectedIndex := 1;
end;
cxTreeView1.Items.EndUpdate;
TblNames.Free;
end;Дальше у таблиц будут "колонки"... и вот тут запара. Нужно писать третий раз "по сути" один и тот же код. Как этот процесс ГРАМОТНО организовать? |