Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];

Вниз

сравнение 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.056 c
15-1273179971
Германн
2010-05-07 01:06
2010.08.27
Video CD


2-1266744427
Тима
2010-02-21 12:27
2010.08.27
передача массива в функцию


15-1274046713
Германн
2010-05-17 01:51
2010.08.27
То ли день сегодня такой, то ли...


15-1271847638
Scot Storch
2010-04-21 15:00
2010.08.27
БД кожгалантерейного магазина


2-1269157020
Delphist2
2010-03-21 10:37
2010.08.27
вставка из буфера





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский