Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
terri
8 / 8 / 4
Регистрация: 12.05.2014
Сообщений: 233
#1

Есть ли способ сделать так, чтобы таблица была статической на форме, а содержание было динамическим?

28.05.2014, 18:14. Просмотров 1395. Ответов 40
Метки нет (Все метки)

Привет всем. Можно ли сделать так, чтобы таблица была статической на форме делфи, а содержание было динамическим?
Например: Есть кнопка "Продавцы" и при нажатии открывается таблица "Продавцы" и там все написано про продавцов, но есть еще кнопка "Закупщики", которая должна открывать таблицу "Закупщики". Вот меня интересует момент такой:
вместо открытия новой таблица "Закупщики" в старой таблице "Продавцы" должны измениться столбцы под те названия, кот. есть в "Закупщики".
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.05.2014, 18:14
Ответы с готовыми решениями:

Можно ли сделать так, чтобы Panel можно было бы передвигать по форме мышкой?
Можно ли сделать так, чтобы Panel можно было бы передвигать по форме мышкой?

Как сделать чтобы таблица была не растянутой?
Как сделать чтобы таблица была не растянутой? какой код нужно написать

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

Как сделать так, чтобы форма не была за панелью задач?
Как сделать так, чтобы форма не была за панелью задач? Использовал свойство...

Как сделать так, чтобы компонент RadioGroup нельзя было изменять?
как сделать так чтобы компонент RadioGroup нельзя было изменять?

40
northener
пофигист широкого профиля
3419 / 2319 / 630
Регистрация: 15.07.2013
Сообщений: 13,712
28.05.2014, 21:05 #2
Цитата Сообщение от terri Посмотреть сообщение
Можно ли сделать так, чтобы таблица была статической на форме делфи, а содержание было динамическим?
Можно. Менять динамически свойство Dataset у компонента TDataSource, к которому привязан компонент TDBGrid (который ты наверно и называешь "статической таблицей на форме").
0
terri
8 / 8 / 4
Регистрация: 12.05.2014
Сообщений: 233
28.05.2014, 22:38  [ТС] #3
А как это сделать именно?
0
northener
пофигист широкого профиля
3419 / 2319 / 630
Регистрация: 15.07.2013
Сообщений: 13,712
28.05.2014, 23:57 #4
Delphi
1
2
3
DBGrid1.DataSource.DataSet:=Table1;
или
DBGrid1.DataSource.DataSet:=Table2;
0
terri
8 / 8 / 4
Регистрация: 12.05.2014
Сообщений: 233
29.05.2014, 00:29  [ТС] #5
Мне это прописывать в ту кнопку, где нужно будет вывести нужную мне таблицу в гриде?
0
northener
пофигист широкого профиля
3419 / 2319 / 630
Регистрация: 15.07.2013
Сообщений: 13,712
29.05.2014, 00:34 #6
Цитата Сообщение от terri Посмотреть сообщение
Мне это прописывать в ту кнопку, где нужно будет вывести нужную мне таблицу в гриде?
Да. Только имена компонентов TDBGrid и TTable подставь свои, если они у тебя другие.
0
terri
8 / 8 / 4
Регистрация: 12.05.2014
Сообщений: 233
29.05.2014, 01:03  [ТС] #7
Спасибо. Завтра попробую
0
northener
29.05.2014, 02:07
  #8

Не по теме:

Цитата Сообщение от terri Посмотреть сообщение
Спасибо. Завтра попробую
Приходите завтра (с)
:)

0
terri
8 / 8 / 4
Регистрация: 12.05.2014
Сообщений: 233
29.05.2014, 22:28  [ТС] #9
[Error] Unit5.pas(117): Incompatible types: 'TDataSet' and 'String'
Почему ошибка?
Delphi
1
sDBGrid1.DataSource.DataSet:='Работники';
0
northener
пофигист широкого профиля
3419 / 2319 / 630
Регистрация: 15.07.2013
Сообщений: 13,712
30.05.2014, 01:55 #10
Цитата Сообщение от terri Посмотреть сообщение
Почему ошибка?
Потому что тут должно быть имя переменной типа TTable, а не имя таблицы в БД.
0
terri
8 / 8 / 4
Регистрация: 12.05.2014
Сообщений: 233
30.05.2014, 02:53  [ТС] #11
В смысле? Как именно написано дожно быть?
0
northener
пофигист широкого профиля
3419 / 2319 / 630
Регистрация: 15.07.2013
Сообщений: 13,712
30.05.2014, 03:06 #12
Цитата Сообщение от terri Посмотреть сообщение
В смысле? Как именно написано дожно быть?
Грамотно быть должно написано.
У тебя сейчас есть хоть какой-то код, который показывает хоть одну таблицу? Если есть покажи. Я скажу что туда нужно добавить или изменить. Иначе я пас.
0
droider
Universal
Эксперт Pascal/Delphi
4397 / 2445 / 763
Регистрация: 04.10.2012
Сообщений: 8,887
30.05.2014, 10:25 #13
terri, достаточно указать DataSource (источник данных)
Delphi
1
DBGrid1.DataSource :=DataSource1;
или
Delphi
1
DBGrid1.DataSource :=DataSource2;
в зависимости от необходимой таблицы, которая в нем указана.


Надеюсь, что связка компонентов у Вас правильная.
0
Пытливый
1379 / 690 / 249
Регистрация: 29.05.2013
Сообщений: 3,107
30.05.2014, 12:50 #14
Вот простенький код, который читает имена таблиц из базы. Заносит их в список и по клику на элемент списка открывает выбранную таблицу:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
unit Unit24;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, ADODB, Grids, DBGrids, StdCtrls;
 
type
  TForm24 = class(TForm)
    ADOConnection1: TADOConnection;
    DBGrid2: TDBGrid;
    DataSource1: TDataSource;
    ADOTable1: TADOTable;
    ListBox1: TListBox;
    procedure FormCreate(Sender: TObject);
    procedure ListBox1Click(Sender: TObject);
  end;
 
var
  Form24: TForm24;
 
implementation
 
{$R *.dfm}
 
procedure TForm24.FormCreate(Sender: TObject);
begin
 ADOConnection1.Open;
 ADOConnection1.GetTableNames(ListBox1.Items);
end;
 
procedure TForm24.ListBox1Click(Sender: TObject);
begin
 ADOTable1.Close;
 ADOTable1.TableName := ListBox1.Items[ListBox1.ItemIndex];
 ADOTable1.Open;
end;
 
end.
0
terri
8 / 8 / 4
Регистрация: 12.05.2014
Сообщений: 233
30.05.2014, 16:53  [ТС] #15
Цитата Сообщение от northener Посмотреть сообщение
У тебя сейчас есть хоть какой-то код, который показывает хоть одну таблицу? Если есть покажи. Я скажу что туда нужно добавить или изменить. Иначе я пас.
Я могу показать в скайпе, если можно

Добавлено через 8 минут
Цитата Сообщение от droider Посмотреть сообщение
DBGrid1.DataSource :=DataSource2;
Оно не меняет название столбцов
0
droider
Universal
Эксперт Pascal/Delphi
4397 / 2445 / 763
Регистрация: 04.10.2012
Сообщений: 8,887
30.05.2014, 16:56 #16
terri, да, меняется содержимое, а названия колонок в DBGrid Вы должны прописывать программно, при смене датасорса.
0
terri
8 / 8 / 4
Регистрация: 12.05.2014
Сообщений: 233
30.05.2014, 17:29  [ТС] #17
Вот так делать?
Delphi
1
2
3
With DBGrid1 do begin
Columns[0].Title.Caption := 'Название ячейки/столбца';
Columns[0].FieldName := 'Название в бд';
0
droider
Universal
Эксперт Pascal/Delphi
4397 / 2445 / 763
Регистрация: 04.10.2012
Сообщений: 8,887
30.05.2014, 20:02 #18
terri, почти
Delphi
1
2
3
4
5
6
7
With DBGrid1 do begin
DataSource :=DS1; //указываем источник данных
Columns[0].Title.Caption := 'Название_столбца1';
Columns[1].Title.Caption := 'Название_столбца2';
...
// ит.д.
end;
Также
Delphi
1
2
3
4
5
6
7
With DBGrid1 do begin
DataSource :=DS2; //указываем  другой источник данных
Columns[0].Title.Caption := 'Название_столбца1';
Columns[1].Title.Caption := 'Название_столбца2';
...
// ит.д.
end;
1
terri
8 / 8 / 4
Регистрация: 12.05.2014
Сообщений: 233
30.05.2014, 20:24  [ТС] #19
Благодарствую тебе. Попробую попозже сделать
Вроде работает, но данные из DataSource другого не показываются((
0
droider
Universal
Эксперт Pascal/Delphi
4397 / 2445 / 763
Регистрация: 04.10.2012
Сообщений: 8,887
30.05.2014, 20:37 #20
Цитата Сообщение от terri Посмотреть сообщение
данные из DataSource другого не показываются
код?
0
30.05.2014, 20:37
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.05.2014, 20:37

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

Как сделать так что, если на 2 форме значение label.caption поменялось, то и на 1 форме у label.caption было такое же
У меня есть 2 формы. На них есть по одному label. Как сделать так что, если на...

Как сделать чтобы контролы типа Button можно было перетаскивать по форме?
Пока только начинаю разбираться в Delphi перерыл кучу примеров и уроков но не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru