Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Не работает программа. [D7, XP]


Дмитрий ©   (2009-04-21 21:07:00) 

Ребята подскажите пожалуйста новичку.
Я делаю програмку, в которой нужно  в Edit ввести цифры и после нажатия кнопки "Показать" должен загрузиться txt файл (в Memo1 )
название которого совпадает с введнными цифрами.
А если ввести цифры для которых файлов нет, написать, что таких файлов не найдено.
Например ввожу 101 - должен загрузится 101.txt.
Вот код:
unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, XPMan;

type
 TForm1 = class(TForm)
   Button1: TButton;
   Button2: TButton;
   Button3: TButton;
   Memo1: TMemo;
   Edit1: TEdit;
   Label1: TLabel;
   Label2: TLabel;
   XPManifest1: TXPManifest;
   procedure Button3Click(Sender: TObject);
   procedure Button1Click(Sender: TObject);
   procedure Button2Click(Sender: TObject);
   procedure Edit1KeyPress(Sender: TObject; var Key: Char);

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

var
 Form1: TForm1;

implementation

{$R *.dfm}
Uses Unit2;
procedure TForm1.Button3Click(Sender: TObject);
begin
Close;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Form1.Enabled:=False;
Form2.Show;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
if Edit1.Text=('101') then Memo1.Lines.LoadFromFile('baza\101.txt')
or if Edit1.Text=('102') then Memo1.Lines.LoadFromFile('baza\102.txt')
or if Edit1.Text=('103') then Memo1.Lines.LoadFromFile('baza\103.txt')
or if Edit1.Text=('123') then Memo1.Lines.LoadFromFile('baza\123.txt')
or if Edit1.Text=('406') then Memo1.Lines.LoadFromFile('baza\406.txt')
else
begin
ShowMessage('Такого файла не найдено!');
end;

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in ['0'..'9', #8,'a','b','c','d','e','f',#13]) then Key := #0;
if not (Key in ['0'..'9', #8,'a','b','c','d','e','f',#13]) then ShowMessage('Недопустимый символ !');
if(Key = #13) then Form1.Button2.Click;
end;
end.

При компиляции на последнем END
обработчика Button2 - красная строка.
Подскажите где тут ошибка.
Заранее благодарю.


Германн   (2009-04-22 01:25:00) [1]


> Дмитрий   (22.04.09 00:11) [15]
>
> Спасибо всем за ответ!  Разобрался.
>

Учебник по основам Паскаля уже купил?


Дмитрий   (2009-04-22 00:11:00) [2]

Спасибо всем за ответ!  Разобрался.


DVM   (2009-04-21 22:51:00) [3]


> Я имею в виду, за скрытие причины Exception, если что :)

я понял, и я ждал этого :)


Игорь Шевченко   (2009-04-21 22:50:00) [4]

DVM ©   (21.04.09 22:42) [11]


> да ладно, сойдет, иначе длинно выходит писать долго.


Я имею в виду, за скрытие причины Exception, если что :)


DVM   (2009-04-21 22:48:00) [5]


> Servy ©   (21.04.09 22:34) [9]
>
> > [8]
>
>
> А если Memo1 = nil, зачем оно мне кажет, что файла не найдено?
>  Или если там файл размером в 8 Гб? Вариант из [7] лучше
> ^_^.

тогда убрать вообще все :)

procedure TForm1.Button2Click(Sender: TObject);
begin
Memo1.Lines.LoadFromFile(Format('baza\%s.txt',[Edit1.Text]));
end;

Будут вполне информативные сообщения на любой чих.


DVM   (2009-04-21 22:42:00) [6]


> Игорь Шевченко ©   (21.04.09 22:38) [10]


> А за такой код в приличном обществе канделябром бьют и больно
> :)

да ладно, сойдет, иначе длинно выходит писать долго.


Игорь Шевченко   (2009-04-21 22:38:00) [7]

easy ©   (21.04.09 22:15) [7]
DVM ©   (21.04.09 22:25) [8]

аж завидно...

DVM ©   (21.04.09 22:25) [8]

А за такой код в приличном обществе канделябром бьют и больно :)


Servy   (2009-04-21 22:34:00) [8]

> [8]


А если Memo1 = nil, зачем оно мне кажет, что файла не найдено? Или если там файл размером в 8 Гб? Вариант из [7] лучше ^_^.

А еще мне казалось, что не в правилах этого форума давать готовый код, но направлять новичков на путь истинный ^_^.


DVM   (2009-04-21 22:25:00) [9]

procedure TForm1.Button2Click(Sender: TObject);
var
filename:string;
begin
filename:= Format('baza\%s.txt',[Edit1.Text]);
try
  Memo1.Lines.LoadFromFile(filename);
except
  ShowMessage('Такого файла не найдено!');
end
end;


easy   (2009-04-21 22:15:00) [10]

procedure TForm1.Button2Click(Sender: TObject);
var
 filename:string;
begin
 filename:= Format('baza\%s.txt',[Edit1.Text]);
 if FileExists(filename) then
   Memo1.Lines.LoadFromFile(filename)
 else
   ShowMessage('Такого файла не найдено!');
end;


DVM   (2009-04-21 22:07:00) [11]

и or замени на else еще


DVM   (2009-04-21 22:06:00) [12]


> Дмитрий   (21.04.09 21:07)  


> Подскажите где тут ошибка.


procedure TForm1.Button2Click(Sender: TObject);
begin
if Edit1.Text=('101') then Memo1.Lines.LoadFromFile('baza\101.txt')
or if Edit1.Text=('102') then Memo1.Lines.LoadFromFile('baza\102.txt')
or if Edit1.Text=('103') then Memo1.Lines.LoadFromFile('baza\103.txt')
or if Edit1.Text=('123') then Memo1.Lines.LoadFromFile('baza\123.txt')
or if Edit1.Text=('406') then Memo1.Lines.LoadFromFile('baza\406.txt')
else
 ShowMessage('Такого файла не найдено!');
end;


Игорь Шевченко   (2009-04-21 22:01:00) [13]


> Подскажите где тут ошибка.


на последнем end


AlexDan   (2009-04-21 21:48:00) [14]

даже турбопаскалю детей не учат, а надо бы..).


Игорь Шевченко   (2009-04-21 21:26:00) [15]


> Не работает программа


какой кошмар


Servy   (2009-04-21 21:22:00) [16]

> Подскажите где тут ошибка.


Каждому begin'у должен соответствовать свой end. В приведенной программе это правило нарушено.

Кроме того, конструкции if <условие1> then <операция1> or <условие2> then <операция2> в языке Делфи нет. Прежде чем писать ерунду, потрудитесь ознакомиться с литераторуй или документацией по использщуемому языку.


Наверх

Титульная страница Поиск, карта сайта Написать письмо