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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 15.03.2015, 20:06
Вовайн Вовайн вне форума
Новичок
 
Регистрация: 14.02.2015
Сообщения: 68
Версия Delphi: Delphi EX7 21
Репутация: 10
По умолчанию подстраиваемый dbgrid

У меня есть формы одинакового вида их много. Мне нужно сделать 1 форму с dbgrid. Чтобы при нажатии кнопки, он сам выбирал нужную мне таблицу. Что я сделал. Создал новую форму с dbgrid. На обработчик кнопки прописал
Код:
procedure TForm1.N15Click(Sender: TObject);
begin
datamodule1.tDform10.tablename:='Оперативная память Samsung';
datamodule1.tDform10.active:=true;
form70.show;
end;
Не работает. Что не так?
Ответить с цитированием
  #2  
Старый 15.03.2015, 22:26
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Цитата:
Сообщение от Вовайн
...Что не так?
Вероятно "Оперативная память Samsung"
Ответить с цитированием
  #3  
Старый 15.03.2015, 22:37
Вовайн Вовайн вне форума
Новичок
 
Регистрация: 14.02.2015
Сообщения: 68
Версия Delphi: Delphi EX7 21
Репутация: 10
По умолчанию

Цитата:
Сообщение от Alegun
Вероятно "Оперативная память Samsung"
Название таблицы, которая как раз на tDform10 совпадает.
Ответить с цитированием
  #4  
Старый 15.03.2015, 22:41
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Попробуйте её переименовать ненадолго, напр. в "tmp" и проверьте

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

З.Ы.З.Ы. Оказалось первой строки не хватает
Код:
datamodule1.tDform10.active:= false;
...

Последний раз редактировалось Alegun, 15.03.2015 в 22:56.
Ответить с цитированием
Этот пользователь сказал Спасибо Alegun за это полезное сообщение:
Вовайн (16.03.2015)
  #5  
Старый 16.03.2015, 00:17
Аватар для Uniq!
Uniq! Uniq! вне форума
Местный
 
Регистрация: 29.09.2010
Сообщения: 539
Версия Delphi: Delphi XE3
Репутация: 374
По умолчанию

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

Тогда делаете так:
1) Создаёте новую форму.
2) В public ветке создаёте function с Именем ViewTable, которая будет принимать потомка TTable, который вы и будете через DataSource отображать в DBGrid

В сухом остатке:

Код:
procedure TFormMain.Button1Click(Sender: TObject);
begin
    with TFormBasicFunc.Create(Application) do
      try
        // ... не помню как деактивировать таблицу
        Table.TableName := 'имя таблицы';
        // ... не помню как активировать таблицу
        Execute(Table);
      finally
        Free;
      end;
end;

А Execute представляет из себя лишь:

Код:
public
    function TFormBasicFunc.Execute(aTable: TDataSet): boolean;

...

function TFormBasicFunc.Execute(aTable: TDataSet): boolean;
begin
  DataSourceTable.DataSet := aTable;
  // ... не помню как построить все колонки в DBGrid
  Result := ShowModal = mrOk;
end;

Таким образом вы ИЗ формы в Форму передаёте информацию через внутренние функции, пользуясь основными принципами ООП.
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо Uniq! за это полезное сообщение:
Freeman (16.03.2015), Вовайн (16.03.2015)
  #6  
Старый 16.03.2015, 09:15
Вовайн Вовайн вне форума
Новичок
 
Регистрация: 14.02.2015
Сообщения: 68
Версия Delphi: Delphi EX7 21
Репутация: 10
По умолчанию

Цитата:
Сообщение от Alegun
Попробуйте её переименовать ненадолго, напр. в "tmp" и проверьте

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

З.Ы.З.Ы. Оказалось первой строки не хватает
Код:
datamodule1.tDform10.active:= false;
...
Так должно быть? Ничего не изменилось.
Код:
procedure TForm1.J1Click(Sender: TObject);
begin
datamodule1.tDform10.active:= false;
datamodule1.t9.tablename:='Оперативная память Kingston';
datamodule1.t9.active:=true;
form70.show;
end;
Ответить с цитированием
  #7  
Старый 16.03.2015, 09:17
Вовайн Вовайн вне форума
Новичок
 
Регистрация: 14.02.2015
Сообщения: 68
Версия Delphi: Delphi EX7 21
Репутация: 10
По умолчанию

Цитата:
Сообщение от Uniq!
Если я правильно понимаю, то задача стоит в открытии опр. таблицы в другой форме?.
Что за опр таблица?
Ответить с цитированием
  #8  
Старый 16.03.2015, 09:32
Аватар для Uniq!
Uniq! Uniq! вне форума
Местный
 
Регистрация: 29.09.2010
Сообщения: 539
Версия Delphi: Delphi XE3
Репутация: 374
По умолчанию

Цитата:
Сообщение от Вовайн
Что за опр таблица?
Определённую (т.е. её имя известно заранее)
Ответить с цитированием
Этот пользователь сказал Спасибо Uniq! за это полезное сообщение:
Вовайн (16.03.2015)
  #9  
Старый 16.03.2015, 14:00
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Цитата:
Сообщение от Вовайн
...Ничего не изменилось...
У вас разные источники данных, а дибисетка одна - может ей ещё нужно явно указывать необходимый DataSource
Ответить с цитированием
  #10  
Старый 16.03.2015, 17:56
Вовайн Вовайн вне форума
Новичок
 
Регистрация: 14.02.2015
Сообщения: 68
Версия Delphi: Delphi EX7 21
Репутация: 10
По умолчанию

Цитата:
Сообщение от Alegun
У вас разные источники данных, а дибисетка одна - может ей ещё нужно явно указывать необходимый DataSource
Это огромная куча их получится у меня штук так 25. А по другому можно как нибудь?
Ответить с цитированием
  #11  
Старый 16.03.2015, 21:20
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Имелось ввиду
Код:
DBGrid1.DataSource:= datamodule1.t9;
всёравно ведь имя таблицы явно задаётся, и источник тоже так можно указывать
Ответить с цитированием
Этот пользователь сказал Спасибо Alegun за это полезное сообщение:
Вовайн (16.03.2015)
  #12  
Старый 17.03.2015, 10:26
Вовайн Вовайн вне форума
Новичок
 
Регистрация: 14.02.2015
Сообщения: 68
Версия Delphi: Delphi EX7 21
Репутация: 10
По умолчанию

Цитата:
Сообщение от Alegun
Имелось ввиду
Код:
DBGrid1.DataSource:= datamodule1.t9;
всёравно ведь имя таблицы явно задаётся, и источник тоже так можно указывать
[dcc32 Error] Unit39.pas(233): E2010 Incompatible types: 'TDataSource' and 'TADOTable'
Ответить с цитированием
  #13  
Старый 17.03.2015, 10:37
Аватар для Uniq!
Uniq! Uniq! вне форума
Местный
 
Регистрация: 29.09.2010
Сообщения: 539
Версия Delphi: Delphi XE3
Репутация: 374
По умолчанию

Цитата:
Сообщение от Вовайн
[dcc32 Error] Unit39.pas(233): E2010 Incompatible types: 'TDataSource' and 'TADOTable'
Код:
DBGrid1.DataSource.DataSet:= datamodule1.t9;
Ответить с цитированием
Этот пользователь сказал Спасибо Uniq! за это полезное сообщение:
Вовайн (17.03.2015)
  #14  
Старый 17.03.2015, 11:05
Вовайн Вовайн вне форума
Новичок
 
Регистрация: 14.02.2015
Сообщения: 68
Версия Delphi: Delphi EX7 21
Репутация: 10
По умолчанию

Цитата:
Сообщение от Uniq!
Код:
DBGrid1.DataSource.DataSet:= datamodule1.t9;
Ответить с цитированием
  #15  
Старый 17.03.2015, 15:31
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Всё, пошёл перелив из пустого в порожнее, так результата не будет, выкладывайте свои наработки, нужно видеть "в живую"
Ответить с цитированием
Этот пользователь сказал Спасибо Alegun за это полезное сообщение:
Вовайн (17.03.2015)
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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