![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Не работает программа. [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> в языке Делфи нет. Прежде чем писать ерунду, потрудитесь ознакомиться с литераторуй или документацией по использщуемому языку.