Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.08.27;
Скачать: CL | DM;

Вниз

сравнение 2-х строк, если они равны то вывод формы-сообщения   Найти похожие ветки 

 
gvozdkoff   (2010-04-01 09:32) [0]

здравствуйте мастера своего дела !
решил напистаь программку , суть следующая.
Программа напоминалка по дате.

на форме есть DateTimePicker1 - в нем задаем нужную нам дату.
в свойстве DateTimePicker1Change пишу
edit2.Text:=formatdatetime("dd.mm.yyyy", datetimepicker1.Date);

Далее, значение edit2.text записывается в файл, в нулевую строку файла f.Strings[0]
......
f.Strings[0]:=edit2.text;
f.SaveToFile("date.txt");
f.Free;

на форме есть элемент edit1 который отображает системную дату.
И значение edit1.text записывается во первую строку файла
f.Strings[1]

А сейчас нужно сравнить эти 2 строки.
if  s0=s1   then  form2.ShowModal;

Все это написано в  procedure TForm1.FormCreate.
компилируется нармально, а при запуске выдает ошибку
access violation at address 00452D99, но после этого всеравно запускается, на сравнение строк не работает , тоесть form2 не открывается,
Буду рад если поможете советом, спасибо


 
И. Павел ©   (2010-04-01 09:38) [1]

Может быть:
- Form2 не создается при запуске программы
- F.Free, а потом опять работа с F

Что такое s0 и s1 - как они определяются? Судя по описанию - программка маленькая и, наверное, можно выложить сюда функции целиком.


 
{RASkov} ©   (2010-04-01 09:39) [2]

> [0] gvozdkoff   (01.04.10 09:32)
> Буду рад если поможете советом, спасибо

Иправляй ошибку в своем коде... Для помощи тебе мало информации, хоть и достаточно много букв написано...
может f не создан...

> Все это написано в  procedure TForm1.FormCreate.

а тут говориш что
> в свойстве DateTimePicker1Change пишу
> edit2.Text:=formatdatetime("dd.mm.yyyy", datetimepicker1.Date);


 
gvozdkoff   (2010-04-01 09:41) [3]

Павел спасибо, что откликнулись, действительно программка небольшая.

var
 Form1: TForm1;

implementation

uses Unit2;

{$R *.dfm}

var DateTime : TdateTime;
procedure TForm1.FormCreate(Sender: TObject);
var name: string;
   f:TStrings;
   s0:string;
   s1:string;
   s2:string;
begin
f:=TStringList.Create();
f.LoadFromFile("date.txt");
s0:=f.Strings[0] ;
s1:=f.Strings[1] ;
s2:=f.Strings[2] ;
label1.FocusControl:=button1;

DateTime:=date;
Edit1.Text:=DateToStr(Date);
edit2.Text:=f.Strings[0];
edit3.Text:=f.Strings[1];
f.Strings[2]:=edit1.text;
f.SaveToFile("date.txt");
f.Free;

if  s0=s2   then  form2.ShowModal;
//if  s1=s2   then  form2.show;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
close;
end;

procedure TForm1.DateTimePicker1Change(Sender: TObject);
begin
edit2.Text:=formatdatetime("dd.mm.yyyy", datetimepicker1.Date);
button2.Visible:=true;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  name: string;
   f:TStrings;
      begin
f:=TStringList.Create();
f.LoadFromFile("date.txt");
f.Strings[0]:=edit2.text;
f.SaveToFile("date.txt");
f.Free;
end;

procedure TForm1.DateTimePicker2Change(Sender: TObject);
begin
edit3.Text:=formatdatetime("dd.mm.yyyy", datetimepicker2.Date);
button3.Visible:=true;
end;

procedure TForm1.Button3Click(Sender: TObject);
var
  name: string;
   f:TStrings;
      begin
f:=TStringList.Create();
f.LoadFromFile("date.txt");
f.Strings[1]:=edit3.text;
f.SaveToFile("date.txt");
f.Free;
end;

end.


 
{RASkov} ©   (2010-04-01 09:44) [4]

и конечно же если все это стандартно написано средой, т.е. создание форм, то форма Form2 в методе Create главной формы еще не создана....
но это уже говорит о том, что строки сравниваются как раз.... и сравнение дает true...


 
gvozdkoff   (2010-04-01 09:44) [5]

to {RASkov}
дело в том, что если добавить на форму кнопку с обработчиком onclick
if  s0=s2   then  form2.ShowModal; то все работает


 
{RASkov} ©   (2010-04-01 09:47) [6]

> [3] gvozdkoff   (01.04.10 09:41)

убери Form2 из автосоздаваемых форм и сам ее когда нужно создавай....


 
{RASkov} ©   (2010-04-01 09:48) [7]

> [5] gvozdkoff   (01.04.10 09:44)

конечно.... так как "по умолчанию" среда создаст все формы которые автосоздаваемые... только в порядке очереди.... сначала главная, но в ее методе ONCreate еще ни одна форма не создана.... смотри файл *.dpr


 
И. Павел ©   (2010-04-01 09:50) [8]

Можно код и OnCreate перенести в OnShow


 
И. Павел ©   (2010-04-01 09:50) [9]

Можно код из OnCreate перенести в OnShow


 
gvozdkoff   (2010-04-01 10:05) [10]

to {RASkov},
спасибо , я понял )), вторая форма не успевает создаваться, поэтому так и выходит,  пробовал убрать form2 из автосоздаваемых, перевел ее в availabel forms, dpr оже пробовал подправить, нот видимо руки у меня не оттуда, спасибо, я понял в чем было дело


 
gvozdkoff   (2010-04-01 10:07) [11]

to И. Павел
действительно, код перенес в OnShow, и все чудесным образом заработало, товарищи !!!, огромное вам спасибо. ВЫ СИЛА !!!



Страницы: 1 вся ветка

Текущий архив: 2010.08.27;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.074 c
15-1275150659
Vitalii_____
2010-05-29 20:30
2010.08.27
Форумы по CUDA на русском


2-1266331529
Zalm
2010-02-16 17:45
2010.08.27
idFTP


2-1274112210
Vass
2010-05-17 20:03
2010.08.27
Удалить конкретный элемент из массива компонентов


2-1266158692
FIL-23
2010-02-14 17:44
2010.08.27
Tchar и его графики


2-1273431911
FIL-23
2010-05-09 23:05
2010.08.27
как пользоваться sql