Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 14.05.2007, 06:57
Аватар для Amon
Amon Amon вне форума
Прохожий
 
Регистрация: 14.05.2007
Сообщения: 4
Репутация: 10
По умолчанию Создание TTable во время запуска


Если не трудно подскажите пожалуйста как сделать следующее. Вот кусок кода, мне нужно закоментированные строки как-то прописать, но я не могу перевести из одного формата в другой...

procedure TForm1.FormCreate(Sender: TObject);
var
T: TTabSheet;
P: TPageControl;

begin
Info.Open;
P := TPageControl.Create(application);
with P do begin
Parent := Form1;
Name:='PageControl1';
MultiLine:=True;
align:=alClient;
OnChange:=PageControl1Change;
end;
While not Info.Eof do begin
T := TTabSheet.Create(P);
with T do begin
Visible := True;
Caption := '№ '+Info.FieldByName('NLine').AsString;
PageControl := P;
end;

with TTable.Create(Self) do begin
Name:='Table'+Info.FieldByName('Line').AsString;
DatabaseName:='\\server\Common\COMNET\asorm';
TableName:='Line'+Info.FieldByName('Line').AsStrin g+'.dbf';
Parent :=Self;
end;

with TDataSource.Create(Self) do begin
Name:='DataSource'+Info.FieldByName('Line').AsStri ng;
//DataSet:='Table'+Info.FieldByName('Line').AsString ;
Parent :=Self;
end;

with TDBGrid.Create(Self) do begin
Name:='DBGrid'+Info.FieldByName('Line').AsString;
//DataSource:='DataSource'+Info.FieldByName('Line'). AsString;
align:=alClient;
Parent :=T;
end;
Info.Next;
end;
P.ActivePage := P.Pages[1];
P.ActivePage := P.Pages[0];
end;
__________________
Per aspera ad mortis
Ответить с цитированием
  #2  
Старый 14.05.2007, 09:40
Аватар для Decoding
Decoding Decoding вне форума
Местный
 
Регистрация: 03.06.2006
Адрес: Почту найдете на моем сайте
Сообщения: 576
Версия Delphi: D10.2
Репутация: 214
По умолчанию

//DataSet:='Table'+Info.FieldByName('Line').AsString ;
//DataSource:='DataSource'+Info.FieldByName('Line'). AsString;

DataSet и DataSource - это поля типа TDataSet и TDataSource соответственно. А ты пытаешься в эти поля строки записать…

Последний раз редактировалось Decoding, 19.06.2007 в 11:57.
Ответить с цитированием
  #3  
Старый 14.05.2007, 10:22
Аватар для Amon
Amon Amon вне форума
Прохожий
 
Регистрация: 14.05.2007
Сообщения: 4
Репутация: 10
По умолчанию


Это я показал для примера что мне нужно получить.
Вопрос в том как это получить????
__________________
Per aspera ad mortis
Ответить с цитированием
  #4  
Старый 14.05.2007, 12:01
Аватар для Decoding
Decoding Decoding вне форума
Местный
 
Регистрация: 03.06.2006
Адрес: Почту найдете на моем сайте
Сообщения: 576
Версия Delphi: D10.2
Репутация: 214
По умолчанию

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

Код:
 
procedure TForm1.Button1Click(Sender: TObject);
var
  t: TTable;
begin
   t := TTable.Create( self );
   DataSource1.DataSet := t;
end;

это же относится и к DataSource
Ответить с цитированием
  #5  
Старый 14.05.2007, 14:32
Аватар для Amon
Amon Amon вне форума
Прохожий
 
Регистрация: 14.05.2007
Сообщения: 4
Репутация: 10
По умолчанию


Decoding, если не трудно, можешь мой пример перевести на свой дал, а то я чего-то не догоняю немного просто первый раз сталкиваюсь с созданием компонента (
__________________
Per aspera ad mortis
Ответить с цитированием
  #6  
Старый 14.05.2007, 18:30
Аватар для Decoding
Decoding Decoding вне форума
Местный
 
Регистрация: 03.06.2006
Адрес: Почту найдете на моем сайте
Сообщения: 576
Версия Delphi: D10.2
Репутация: 214
По умолчанию

Чтото типа этого

procedure TForm1.FormCreate(Sender: TObject);
var
T: TTabSheet;
P: TPageControl;
table: TTable;
ds: TDataSource;
grid: TDBGrid;
begin
Info.Open;
P := TPageControl.Create(application);
with P do begin
Parent := Form1;
Name:='PageControl1';
MultiLine:=True;
align:=alClient;
OnChange:=PageControl1Change;
end;
While not Info.Eof do begin
T := TTabSheet.Create(P);
with T do begin
Visible := True;
Caption := '¹ '+Info.FieldByName('NLine').AsString;
PageControl := P;
end;
table := TTable.Create(Self);
Name:='Table'+Info.FieldByName('Line').AsString;
table.DatabaseName:='\\server\Common\COMNET\asorm' ;
table.TableName:='Line'+Info.FieldByName('Line').A sString+'.dbf';
ds := TDataSource.Create(Self);
ds.Name:='DataSource'+Info.FieldByName('Line').AsS tring;
ds.DataSet:=table;
grid := TDBGrid.Create(Self);
grid.Name:='DBGrid'+Info.FieldByName('Line').AsStr ing;
grid.DataSource:=ds;
grid.align:=alClient;
grid.Parent :=T;
end;
Info.Next;
end;
P.ActivePage := P.Pages[1];
P.ActivePage := P.Pages[0];
end;
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 00:55.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter