Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
33 / 58 / 13
Регистрация: 26.05.2011
Сообщений: 756
1

Обновление первой формы после закрытия второй

15.05.2012, 18:02. Показов 1808. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
привет всем. помогите пж, не знаю как обновить 1-ю форму. дело вот в чем, есть 2 формы. во 2-й я установливаю ограничения на время, а в первой форме это время тикает.
время берется из лабела. время то меняется, но не так.

посмотрите прогу и все станет ясно.

помогите пж, а то я совсем больше не могу.
заранее блангодарен.
Вложения
Тип файла: rar Timer.rar (476.9 Кб, 7 просмотров)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.05.2012, 18:02
Ответы с готовыми решениями:

Закрытие первой формы ,без закрытия второй
Добрый день,такой вопрос.Тренируюсь и написал маленькую програмку из 4 форм,где 4 форма появляется...

Открытие второй формы только после ввода пароля на первой
Приветик всем у мня тут проблемка помогите пожалуста мне нада чтобы при нажатии на кнопку...

Обновление label в первой формы после закрытия второй
Добрый день! У меня есть две формы PZ6 и inputForm Вторая вызывается из первой по нажатию кнопки....

Обновление формы после закрытия
После закрытия Form2 нужно чтобы данные на Form1 обновились(datagridview1, textbox1 и textbox2)...

1
3944 / 1869 / 337
Регистрация: 16.03.2012
Сообщений: 3,880
15.05.2012, 19:10 2
Лучший ответ Сообщение было отмечено shilovec5377 как решение

Решение

Замени свои Unit-ы на следующие:
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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, ComCtrls, Vcl.Samples.Gauges,unit3, Gauges;
 
type
  TForm1 = class(TForm)
    Timer1: TTimer;
    Label7: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label1: TLabel;
    ProgressBar1: TProgressBar;
    Gauge1: TGauge;
    Button1: TButton;
    Label2: TLabel;
    procedure FormCreate(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    Procedure ZapuskTimer;
    { Public declarations }
  end;
 
var
  Form1: TForm1;
  TimeVal : TDateTime = 0;
implementation
 
{$R *.dfm}
// Процедура для загрузки ограничений ------------------------------------------
procedure LoadOgrFile;
begin
AssignFile (FileLoadOgr,'ogran.txt');
Reset (FileLoadOgr);   // Открываю файл для чтения
Readln (FileLoadOgr, LOgr[0]);   // Загружаю устанленные часы ограничения
Readln (FileLoadOgr, LOgr[1]);   // Загружаю устанленные минуты ограничения
 
CloseFile (FileLoadOgr);   // Закрываю файл
 
Form1.Label7.Caption := String(LOgr[0]) + ':' + String(LOgr[1])+':00';
 
end;
//==============================================================================
 
 
 
  //На выход функции количество секунд
Function TimeToInteger(T:TDateTime):Integer;
Var
  h,m,s,ms : Word;
Begin
  DecodeTime(T,h,m,s,ms);
  Result:=s+(m+h*60)*60;
End;
 
 
procedure TForm1.Button1Click(Sender: TObject);
begin
Form3.Show;
end;
 
Procedure TForm1.ZapuskTimer;
Begin
  LoadOgrFile;
  //Выключаем таймер.
  Timer1.Enabled := False;
  //Задаём интервал
  Period := StrToTime(Label7.Caption);
  //Определяем конечное время - оно на Period большее текущего времени.
  TimeVal := Time + Period;
  //Показываем начальное время.
  Label1.Caption := FormatDateTime('hh:mm:ss', Period);
 
    //Начальные значения в ProgressBar1
  ProgressBar1.Max:=0;
  ProgressBar1.Max:=TimeToInteger(Period);
  ProgressBar1.Position:=0;
  //////////////////////////////////////////////////////////
  Gauge1.MaxValue:=TimeToInteger(Period);
  /////////////////////////////////////////////
  //Включаем таймер.
  Timer1.Enabled := True;
end;
 
procedure TForm1.FormCreate(Sender: TObject);
var   Period : TDateTime;
begin
  ZapuskTimer;
end;
 
 
 
 
procedure TForm1.Timer1Timer(Sender: TObject);
var
  Temp : TDateTime;
begin
  //Узнаём оставшееся время.
  Temp := TimeVal - Time;
 
  //Отслеживаем момент, когда время истечёт.
  if Temp <= 0 then begin
    //Останавливаем таймер.
    Timer1.Enabled := False;
    //Показываем конечное оставшееся время.
    Label1.Caption := FormatDateTime('hh:nn:ss', 0);
         Timer1.Enabled:=False;
    ShowMessage('bym');
    //Здесь в виде реакции на завершение интервала, можно выполнить
    //какой-то код или вызвать какую-нибудь процедуру
    //...
    //...
    //...
 
    //Выходим.
    Exit;
  end;
 
  //Показыавем оставшееся время.
  Label1.Caption := FormatDateTime('hh:nn:ss', Temp);
 
  ProgressBar1.Position:=ProgressBar1.Max-TimeToInteger(Temp);
  Gauge1.Progress:=Gauge1.MaxValue-TimeToInteger(Temp);
end;
end.
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
unit Unit3;
 
interface
 
uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Samples.Spin,
  StdCtrls, Controls, Spin, Classes;
 
type
  TForm3 = class(TForm)
    SpinEdit1: TSpinEdit;
    SpinEdit2: TSpinEdit;
    Label1: TLabel;
    Label2: TLabel;
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form3: TForm3;
    sOgr              : Array [0..1] of String;
      lOgr              : Array [0..1] of String;
   FileSaveOgr : TextFile;
   FileLoadOgr: TextFile;
implementation
uses unit1;
 
{$R *.dfm}
  // Процедура для сохранения установок в файл -----------------------------------
procedure SaveInFile;
begin
AssignFile (FileSaveOgr, 'ogran.txt');
Rewrite(FileSaveOgr);    // Открываю файл для записи
 
 
SOgr[0] := Form3.SpinEdit1.Text;   // Установленое количество часов
Writeln(FileSaveOgr, SOgr[0]);    // Сохраняю в файл
SOgr[1] := Form3.SpinEdit2.Text;   // Установленое количество минут
Writeln(FileSaveOgr, SOgr[1]);    // Сохраняю в файл
 
CloseFile(FileSaveOgr);    // Закрываю файл
end;
//==============================================================================
 
// Процедура для загрузки ограничений ------------------------------------------
procedure LoadOgrFile;
begin
AssignFile (FileLoadOgr,'ogran.txt');
Reset (FileLoadOgr);   // Открываю файл для чтения
 
 
Readln (FileLoadOgr, LOgr[0]);   // Загружаю устанленные часы ограничения
Readln (FileLoadOgr, LOgr[1]);   // Загружаю устанленные минуты ограничения
 
CloseFile (FileLoadOgr);   // Закрываю файл
 Form1.Label7.Caption := String(LOgr[0]) + ':' + String(LOgr[1])+':00';
end;
//==============================================================================
 
procedure TForm3.Button1Click(Sender: TObject);
begin
SaveInFile;
ShowMessage('Ограничения успешно сохранены');
 end;
 
 
procedure TForm3.Button2Click(Sender: TObject);
begin
  Form1.ZapuskTimer;
  Form3.Close;
end;
 
end.
1
15.05.2012, 19:10
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.05.2012, 19:10
Помогаю со студенческими работами здесь

Отображение второй формы после отправки первой (и скрытие первой)
Добрый день! Подскажите пожалуйста как сделать так, чтобы после отправки формы обратной связи она...

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

Как выполнить функцию после закрытия второй формы
Здравствуйте! Ну вообщем такой вопрос :)

Обновление таблицы dataGridView после закрытия дочерней формы
Доброго времени суток. Собственно говоря есть главная форма, на которой находится dataGridView...


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

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