Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.04.2012, 21:01   #1
VitalikA
Пользователь
 
Регистрация: 06.04.2012
Сообщений: 23
По умолчанию "Программа напоминалка" - плохо работает

Мне нужно сделать программу напоминания.
Сам все сделал.
В основе такой текст:

Код:
procedure TForm1.tmr1Timer(Sender: TObject);
begin
Tense:=TimeToStr(time);
lbl1.Caption:=TimeToStr(time);
if edt 2.text=lbl1.Caption then
begin
ShowMessage('AAA');
n:=1;
end;
end;

procedure TForm1.tmr2Timer(Sender: TObject);
begin
if
TenseEdit2=Tense then
beep
end;

procedure TForm1.btn11Click(Sender: TObject);
begin
tmr2.Enabled:=True;
end;
////////////////////////////
edt 2.text -сюда пишеться время напоминания.


Потом я решил сделать возможность сохранять напоминания и тему. Напоминания в один ТХТ файл, время напоминания в другой ТХТ файл. Из тех ТХТ файлов время, и тема вставляются в прежние EDIT.
Проблема вот в чем: если написать время напоминания, сохранить его. Очистить EDIT, а затем взять вставить сохраненные время, то почему-то напоминание не срабатывает! Почему?

(если сделать все то же что описал выше а затем в окне EDIT удалить и дописать одну цифру то напоминание срабатывает).


/////////////////////////////////////////////////////////////////////////////////
Текст кнопок сохранить и вставить

procedure TForm1.btn5Click(Sender: TObject);
begin
AssignFile(F1,'ClocK1.txt');
Rewrite(F1);
Writeln(F1,edt1.Text);
CloseFile(F1);

AssignFile(EF1,'EClocK1.txt');
Rewrite(EF1);
Writeln(EF1,edt2.Text);
CloseFile(EF1);

end;


procedure TForm1.btn6Click(Sender: TObject);
begin
edt1.Clear;
edt2.Clear;
AssignFile(F1,'ClocK1.txt');
Reset(F1);
if IOResult=0 then
begin
while not Eof(F1) do
begin
Read(F1,FF1);
edt1.Text:=edt1.Text+FF1;
end;
CloseFile(F1);
end;

AssignFile(EF1,'EClocK1.txt');
Reset(EF1);
if IOResult=0 then
begin
while not Eof(EF1) do
begin
Read(EF1,EFF1);
edt2.Text:=edt2.Text+EFF1;
end;
CloseFile(EF1);
end;
end;

////////////////////////////////////////////
текст проверки ввода времени

procedure TForm1.edt2KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in[':','0'..'9',decimalseparator,#8]) then key:=#0;
end;

//////////////////////////////////////////
Текст кнопки очистки

procedure TForm1.btn2Click(Sender: TObject);
begin
Edt1.text:='Тема нагадування 1';
Edt2.text:='ГГ:ХХ:СС';
end;

И еще кое-какой текст
procedure TForm1.FormCreate(Sender: TObject);
begin
Edt1.text:='Тема нагадування 1';
Edt2.text:='ГГ:ХХ:СС';
edt3.Text:='Тема нагадування 2';
edt4.Text:='ГГ:ХХ:СС';
edt5.Text:='Тема нагадування 3';
edt6.Text:='ГГ:ХХ:СС';

clock1:=False;
clock2:=False;
clock3:=False;
n:=0;
TenseEdit2:=edt2.Text;
TenseEdit4:=edt4.Text;
TenseEdit6:=edt4.Text

end;

________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 07.04.2012 в 10:42.
VitalikA вне форума Ответить с цитированием
Старый 10.04.2012, 02:29   #2
VitalikA
Пользователь
 
Регистрация: 06.04.2012
Сообщений: 23
По умолчанию

Так кто не будуть мне поможет???
VitalikA вне форума Ответить с цитированием
Старый 10.04.2012, 02:35   #3
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

А в чем проблема-то?
Человек_Борща вне форума Ответить с цитированием
Старый 10.04.2012, 07:42   #4
dmitriegorovih
Ещё не
Форумчанин
 
Аватар для dmitriegorovih
 
Регистрация: 04.01.2010
Сообщений: 517
По умолчанию

Хм с первого взгляду здесь вроде ошибка
Код:
procedure TForm1.tmr1Timer(Sender: TObject);
begin
Tense:=TimeToStr(time);
lbl1.Caption:=TimeToStr(time);
if edt 2.text=lbl1.Caption then
begin
ShowMessage('AAA');
n:=1;
end;
end;

procedure TForm1.tmr2Timer(Sender: TObject);
begin
if
TenseEdit2=Tense then
beep
end;

procedure TForm1.btn11Click(Sender: TObject);
begin
tmr2.Enabled:=True;
end;
////////////////////////////
edt 2.text -сюда пишеться время напоминания.


Потом я решил сделать возможность сохранять напоминания и тему. Напоминания в один ТХТ файл, время напоминания в другой ТХТ файл. Из тех ТХТ файлов время, и тема вставляются в прежние EDIT.
Проблема вот в чем: если написать время напоминания, сохранить его. Очистить EDIT, а затем взять вставить сохраненные время, то почему-то напоминание не срабатывает! Почему?

(если сделать все то же что описал выше а затем в окне EDIT удалить и дописать одну цифру то напоминание срабатывает).


/////////////////////////////////////////////////////////////////////////////////
Текст кнопок сохранить и вставить

procedure TForm1.btn5Click(Sender: TObject);
begin
AssignFile(F1,'ClocK1.txt');
Rewrite(F1);
Writeln(F1,edt1.Text);
CloseFile(F1);

AssignFile(EF1,'EClocK1.txt');
Rewrite(EF1);
Writeln(EF1,edt2.Text);
CloseFile(EF1);

end;


procedure TForm1.btn6Click(Sender: TObject);
begin
edt1.Clear;
edt2.Clear;
AssignFile(F1,'ClocK1.txt');
Reset(F1);
if IOResult=0 then
begin
while not Eof(F1) do
begin
Read(F1,FF1);
//edt1.Text:=edt1.Text+FF1;
//А надо вот так вроде
edt1.Text:=FF1;
end;
CloseFile(F1);
end;

AssignFile(EF1,'EClocK1.txt');
Reset(EF1);
if IOResult=0 then
begin
while not Eof(EF1) do
begin
Read(EF1,EFF1);
//edt2.Text:=edt2.Text+EFF1;
//А надо вот так вроде
edt2.Text:=EFF1;
end;
CloseFile(EF1);
end;
end;

////////////////////////////////////////////
текст проверки ввода времени

procedure TForm1.edt2KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in[':','0'..'9',decimalseparator,#8]) then key:=#0;
end;

//////////////////////////////////////////
Текст кнопки очистки

procedure TForm1.btn2Click(Sender: TObject);
begin
Edt1.text:='Тема нагадування 1';
Edt2.text:='ГГ:ХХ:СС';
end;

И еще кое-какой текст
procedure TForm1.FormCreate(Sender: TObject);
begin
Edt1.text:='Тема нагадування 1';
Edt2.text:='ГГ:ХХ:СС';
edt3.Text:='Тема нагадування 2';
edt4.Text:='ГГ:ХХ:СС';
edt5.Text:='Тема нагадування 3';
edt6.Text:='ГГ:ХХ:СС';

clock1:=False;
clock2:=False;
clock3:=False;
n:=0;
TenseEdit2:=edt2.Text;
TenseEdit4:=edt4.Text;
TenseEdit6:=edt4.Text

end;
Воображение важнее, чем знания. (Albert Einstein)
dmitriegorovih вне форума Ответить с цитированием
Старый 10.04.2012, 21:57   #5
VitalikA
Пользователь
 
Регистрация: 06.04.2012
Сообщений: 23
По умолчанию

Всеравно не работает
VitalikA вне форума Ответить с цитированием
Старый 10.04.2012, 22:25   #6
VitalikA
Пользователь
 
Регистрация: 06.04.2012
Сообщений: 23
По умолчанию

Тепер нужно сделать программу по другому. Написал код. Но почему-то после срабатывания программа зависает. В чем проблема?
Код:
 unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, ExtCtrls;

type
  TForm1 = class(TForm)
    strngrd1: TStringGrid;
    tmr1: TTimer;
    tmr2: TTimer;
    procedure FormCreate(Sender: TObject);
    procedure tmr1Timer(Sender: TObject);
    procedure tmr2Timer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  i :Integer;
  T :string;


implementation

{$R *.dfm}

 

procedure TForm1.FormCreate(Sender: TObject);
begin
strngrd1.ColWidths[0]:=75;
strngrd1.ColWidths[1]:=75;
strngrd1.ColWidths[2]:=233;
strngrd1.cells[0,0]:='Äàòà';
strngrd1.cells[1,0]:='Ãîäèíà';
strngrd1.cells[2,0]:='Ïîâ³äîìëåííÿ';

end;


procedure TForm1.tmr1Timer(Sender: TObject);
begin
for i:=1 to 10 do
if strngrd1.cells[1,i]=T then
begin
showmessage('111');
end;
end;

procedure TForm1.tmr2Timer(Sender: TObject);
begin
T:=TimeToStr(Time);
end;

end.
VitalikA вне форума Ответить с цитированием
Старый 10.04.2012, 22:29   #7
VitalikA
Пользователь
 
Регистрация: 06.04.2012
Сообщений: 23
По умолчанию

Так тоже зависает (сразу после появления showmessage);
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, ExtCtrls;

type
  TForm1 = class(TForm)
    strngrd1: TStringGrid;
    tmr1: TTimer;
    tmr2: TTimer;
    procedure FormCreate(Sender: TObject);
    procedure tmr1Timer(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  i :Integer;
  T :string;


implementation

{$R *.dfm}

 

procedure TForm1.FormCreate(Sender: TObject);
begin
strngrd1.ColWidths[0]:=75;
strngrd1.ColWidths[1]:=75;
strngrd1.ColWidths[2]:=233;
strngrd1.cells[0,0]:='Äàòà';
strngrd1.cells[1,0]:='Ãîäèíà';
strngrd1.cells[2,0]:='Ïîâ³äîìëåííÿ';

end;


procedure TForm1.tmr1Timer(Sender: TObject);
begin
T:=TimeToStr(Time);
for i:=1 to 10 do
if strngrd1.cells[1,i]=T then
showmessage('111');
end;


end.
VitalikA вне форума Ответить с цитированием
Старый 11.04.2012, 00:09   #8
VitalikA
Пользователь
 
Регистрация: 06.04.2012
Сообщений: 23
По умолчанию

Хотя уже тоже работает
Теперь мне нужно сделать чтоби я мог сохранять то что записано в stringgrid но у меня не работает вот код что нужно сделать чтоби я мог записать в таблицу цифри удалить а потом назад их вернуть?
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, ExtCtrls, StdCtrls, Menus, ComCtrls;

type
  TForm1 = class(TForm)
    strngrd1: TStringGrid;
    tmr1: TTimer;
    lbl1: TLabel;
    lbl2: TLabel;
    lbl3: TLabel;
    mm1: TMainMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    N4: TMenuItem;
    stat1: TStatusBar;
    btn1: TButton;
    btn2: TButton;
    procedure FormCreate(Sender: TObject);
    procedure tmr1Timer(Sender: TObject);
    procedure btn1Click(Sender: TObject);
    procedure btn2Click(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  type TMemory=record
  Dat:string[15];
  Tim:string[15];
  Text:string[30];
  end;
  var

  Memory:array[1..1000] of Tmemory;
  A:TMemory;
  var k:Integer;

  i :Integer;
  T :string;
  D :string;
  Mem :TMemory;


implementation

{$R *.dfm}

 

procedure TForm1.FormCreate(Sender: TObject);
begin
strngrd1.ColWidths[0]:=120;
strngrd1.ColWidths[1]:=75;
strngrd1.ColWidths[2]:=75;
strngrd1.ColWidths[3]:=233;
strngrd1.cells[1,0]:='Дата';
strngrd1.cells[2,0]:='Година';
strngrd1.cells[3,0]:='Повідомлення';

for i:=1 to 101 do
strngrd1.cells[0,i]:='Нагадування '+inttostr(i);

end;


procedure TForm1.tmr1Timer(Sender: TObject);
begin
D:=DateToStr(Date);
T:=TimeToStr(Time);
lbl2.Caption:=DateToStr(Date);
lbl3.Caption:=TimeToStr(Time);

for i:=1 to 101 do
if strngrd1.cells[1,i]=D then
if strngrd1.cells[2,i]=T then
begin
lbl1.Caption:=strngrd1.cells[3,i];
Beep
end;
end;


procedure TForm1.btn1Click(Sender: TObject);
begin
Mem:=Memory[k];
for k:=1 to 101 do
begin
strngrd1.cells[1,k]:=A.Dat;
strngrd1.cells[2,K]:=A.Tim;
strngrd1.cells[3,K]:=A.Text;

end;
end;

procedure TForm1.btn2Click(Sender: TObject);
begin
for k:=1 to 101 do
with A do
begin
Dat:=strngrd1.cells[1,k];
Tim:=strngrd1.cells[2,K];
Text:=strngrd1.cells[3,K];
end;
end;

end.
VitalikA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
МасОС не работает ,хоть и Видит,Интернет и "сломалась" "Сеть" =/ ApxuKILLER Операционные системы общие вопросы 2 05.05.2011 08:22
[Pascal] Почему-то не работает программа "Множества" zifanchuck Помощь студентам 1 27.11.2010 22:24
Почему не работает Case txt Like "текст1", "текст2" Oooleg Microsoft Office Excel 2 15.07.2009 10:08
если пользователь наберет какой-то другой символ не "y" или "n" и нажмет enter, программа проигнорирует skobets Общие вопросы C/C++ 2 03.06.2008 06:51