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

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

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

Студворк — интернет-сервис помощи студентам
Здравствуйте. Только начал изучать Делфи. Подскажите пожалуйста код для кнопки обновления данных в 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
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.10.2011, 12:20
Ответы с готовыми решениями:

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

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

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

8
 Аватар для Alex_pac
1302 / 708 / 107
Регистрация: 25.05.2011
Сообщений: 2,158
Записей в блоге: 51
15.10.2011, 13:02
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  [ТС]
У меня происходят изменения в параметре "возраст" и при нажатии на кнопку "обновить" должны обновляться данные в таблице.
0
1263 / 706 / 62
Регистрация: 21.12.2009
Сообщений: 2,256
15.10.2011, 13:11
Для этого надо просто переоткрыть набор.
......
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  [ТС]
А где-то нужно прописывать имя кнопки Button1? И можно ли написать код обновления на основе события OnClick?

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

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

1. Мир InterBase. Архитектура, администрирование и разработка приложений баз данных в InterBase
2. InterBase и Firebird. Практическое руководство для умных пользователей и начинающих разработчиков
3. Мартин Грабер. SQL
0
 Аватар для Z3oM
250 / 71 / 18
Регистрация: 10.04.2010
Сообщений: 532
Записей в блоге: 3
18.10.2011, 09:29
Обновляешь все датасеты и усе!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.10.2011, 09:29
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru