Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/32: Рейтинг темы: голосов - 32, средняя оценка - 4.91
-2 / 0 / 0
Регистрация: 28.10.2009
Сообщений: 150
1

Как написать код для кнопки "Обновить"?

15.10.2011, 12:20. Показов 5886. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте. Только начал изучать Делфи. Подскажите пожалуйста код для кнопки обновления данных в DBGrid? Вот код:
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
unit Unit1_2;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DBCtrls, StdCtrls, Mask, DB, Grids, DBGrids, DBTables, ExtCtrls,
  Spin;
 
type
  TForm1 = class(TForm)
    DataSource1: TDataSource;
    Table1: TTable;
    DBGrid1: TDBGrid;
    Table1Dep: TStringField;
    Table1Fam: TStringField;
    Table1Nam: TStringField;
    Table1Par: TStringField;
    Table1Year_b: TSmallintField;
    Table1Sex: TStringField;
    Table1Charact: TMemoField;
    Table1Photo: TGraphicField;
    Label1: TLabel;
    DBEdit1: TDBEdit;
    Label2: TLabel;
    DBEdit2: TDBEdit;
    Label3: TLabel;
    DBEdit3: TDBEdit;
    Label4: TLabel;
    DBEdit4: TDBEdit;
    Label5: TLabel;
    DBEdit5: TDBEdit;
    Label6: TLabel;
    DBEdit6: TDBEdit;
    Label7: TLabel;
    DBMemo1: TDBMemo;
    Label8: TLabel;
    DBImage1: TDBImage;
    Table1Age: TSmallintField;
    DBNavigator1: TDBNavigator;
    RGF: TRadioGroup;
    CBDep: TComboBox;
    Button1: TButton;
    Label9: TLabel;
    SEmin: TLabel;
    SEmax: TLabel;
    SEmin1: TSpinEdit;
    SEmax1: TSpinEdit;
    Label12: TLabel;
    procedure Table1CalcFields(DataSet: TDataSet);
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure RGFClick(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
 Var Year, Month, Day:Word;
  procedure TForm1.Table1CalcFields(DataSet: TDataSet);
  begin
  Table1Age.Value:=Year- Table1Year_b.Value;
  end;
 
procedure TForm1.FormCreate(Sender: TObject);
begin
Table1.Active:=true;
CBDep.ItemIndex :=0;
DecodeDate(Date,Year,Month,Day);
end;
 
procedure TForm1.FormDestroy(Sender: TObject);
begin
Table1.Active:=false;
end;
 
procedure TForm1.RGFClick(Sender: TObject);
begin
Table1.IndexName:='depfio';
if (RGF.ItemIndex=0) then Table1.Filtered:=false //отсутствие фильтрации
else begin if (RGF.ItemIndex=2) //фильтрация по отделу 'Dep=’…’’
then Table1.Filter:='Dep='''+CBDep.Text+''''
else if (RGF.ItemIndex=3) //фильтрация по возрасту Year_b<=… и Year_b>=…
then begin
Table1.Filter:='(Year_b<='+IntToStr(Year-SEMin1.Value) +')and(Year_b>='+IntToStr(Year-SEMax1.Value)+')';
Table1.IndexName:='Year';
end
else begin //фильтрация по отделу и по возрасту
Table1.Filter:='(Dep='''+CBDep.Text+''')and(Year_b<='+IntToStr(Year-SEMin1.Value)
+')and(Year_b>='+IntToStr(Year-SEMax1.Value)+')';
end;
Table1.Filtered:=true;
end;
end;
Ссылка на мой проект (файлы Unit1_2.dfm и Unit1_2.pas) : http://www.fayloobmennik.net/1071391
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.10.2011, 12:20
Ответы с готовыми решениями:

Как написать код для кнопки добавить?
У меня есть код, он почти работает, но кнопка добавить не работает с 267 строчки начинается кнопка...

Как написать код для кнопки закрытия программы?
Добрый день. Хочу написать форму без верхней панельки. Закрывать программку хочу с помощью кнопки....

Моя программа расчета. Как написать код для кнопки.
Делаю программу, которая должна расчитывать формулу. помогите реализовать следующее событие. При...

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

Не получается написать код для кнопки
Игра &quot;Карты&quot;. Раскладываются карты сначала Трусу, потом себе, сортируются (в моем случае по...

8
1302 / 708 / 107
Регистрация: 25.05.2011
Сообщений: 2,158
Записей в блоге: 51
15.10.2011, 13:02 2
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
uses DB;
 
<...>
 
// абсолютный переход к заданной строке в DataSet
procedure DSMoveTo(ds: TDataSet; index: integer);
begin
  ds.MoveBy(index-ds.RecNo);
end;
 
// при refresh= false просто открывает DataSet если он закрыт
procedure DSReopen(ds: TDataSet; refresh:boolean = true);
var p: integer;
begin
  if (refresh)or (not ds.Active) then
  with ds do begin
   if Active then p:=RecNo else p:=1;
   Close; Open; DSMoveTo(ds,p);
  end;
end;
 
<...>
 
// для того чтобы обновить данные в DBGrid достаточно:
 
DSReopen(DBGrid1.DataSource.DataSet);
не вижу у вас изменения данных, зачем вам обновлять DbGrid?
1
-2 / 0 / 0
Регистрация: 28.10.2009
Сообщений: 150
15.10.2011, 13:06  [ТС] 3
У меня происходят изменения в параметре "возраст" и при нажатии на кнопку "обновить" должны обновляться данные в таблице.
0
1263 / 706 / 62
Регистрация: 21.12.2009
Сообщений: 2,255
15.10.2011, 13:11 4
Для этого надо просто переоткрыть набор.
......
Delphi
1
2
3
Table1.Close;
Table1.Open;
.....
Если вы действительно начинающий, приучите себя к мысли, что
1. Использовать в качестве наборов данных объекты типа TTable или его аналоги не надо.
2. Не стоит работать с компонетами линейки BDE. Это - отмирающая технология.
3. Не прикасайтесь к файл-серверным СУБД (парадокс, семество dbf-ных БД и пр.). Начинайте с освоения клиент - серверных технологий.
1
-2 / 0 / 0
Регистрация: 28.10.2009
Сообщений: 150
15.10.2011, 13:31  [ТС] 5
А где-то нужно прописывать имя кнопки Button1? И можно ли написать код обновления на основе события OnClick?

Добавлено через 3 минуты
SAMZ спасибо за советы. Я действительно только начинаю изучать. Просто изучаю по книге Архангельского "Программирование в Delphi7" и пытаюсь сделать пример программы, который там описан. А там используют именно эти элементы.

Добавлено через 12 минут
Метод "переоткрытия набора" не помог...
0
1263 / 706 / 62
Регистрация: 21.12.2009
Сообщений: 2,255
15.10.2011, 16:21 6
Цитата Сообщение от AXS Посмотреть сообщение
И можно ли написать код обновления на основе события OnClick?
Нужно!
1
-2 / 0 / 0
Регистрация: 28.10.2009
Сообщений: 150
17.10.2011, 09:29  [ТС] 7
Спасибо за помощь, всё получилось!
0
1263 / 706 / 62
Регистрация: 21.12.2009
Сообщений: 2,255
17.10.2011, 11:10 8
Цитата Сообщение от AXS Посмотреть сообщение
Просто изучаю по книге Архангельского "Программирование в Delphi7"
Присмотритесь все же к более продвинутым технологиям. Мои рекомендации для начала

1. Мир InterBase. Архитектура, администрирование и разработка приложений баз данных в InterBase
2. InterBase и Firebird. Практическое руководство для умных пользователей и начинающих разработчиков
3. Мартин Грабер. SQL
0
250 / 71 / 18
Регистрация: 10.04.2010
Сообщений: 532
Записей в блоге: 3
18.10.2011, 09:29 9
Обновляешь все датасеты и усе!
0
18.10.2011, 09:29
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.10.2011, 09:29
Помогаю со студенческими работами здесь

Написать код для кнопки - сложение чисел
как написать код для кнопочки самой простой? чтобы она считала два числа

Как написать код этой кнопки
Всем привет.Ребят как написать код этой кнопки в css?

как написать код кнопки-таймера
подскажите какнаписать код кнопки-таймера.:gsmile: таймер на 1 мин. по окончании времени...

Написать код для кнопки поиск, добавление и удаление строки в базе данных
Можете помочь? написать код для кнопки поиск, добавление и удаление строки в базе данных..

Написать код для кнопки "Найти".
Добрый день! Ребята, помогите пожалуйста написать код для кнопки &quot;Найти&quot;. Задание: Вырезать,...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru