Большой Воронежский Форум
» Программирование>Процедура в Delphi не работает
mexx 10:33 13.11.2006
Помогите, только начал изучать делфи. Вот написал процедуру для своей программы. А она не работает. Вот часть кода:


implementation
procedure OpenFile; //общая процедура открытия
var
f:TextFile;
fName:String[80];
buf:String[255];
n1:String[15];
n2:String[15];
n:String[15];
new:word;
begin
n1:='data/logs/';
n2:='.txt';
n:=Edit1.Text;
fName:=n1+n+n2;
AssignFile(f,fName);
{$I-}
Reset(f);
if IOResult<>0 then
begin
new:=MessageDlg('Дневник с таким именем не существует. Хотите создать его?', mtInformation,[mbYes,mbNo],0);
if new=mrYes then Rewrite(f);
end;
button2.Enabled:=True;
Memo2.Clear;
while not EOF(f) do
begin
readln(f, buf);
Memo2.Lines.Add(buf);
end;
CloseFile(f);
label4.Caption:='Личный Дневник '+ Edit1.Text;
end;

{$R *.dfm}


procedure TForm1.Button1Click(Sender: TObject); //открыть
begin
OpenFile;
end;

procedure TForm1.N7Click(Sender: TObject);
begin
OpenFile;
end;

Я создал процедуру OpenFile; которая открывает файл F, а если его нет - создает таковой.
она используется при нажатии кнопки один и подпункта меню 7
вроде все сделано как надо, но при компиляции делфи говорят ошибку. Типа не объявлено Edit1, button2, label4, Memo2.
Я что-то не догоняю, где их надо объявлять? Ведь в самом начале программы они объявлены. Если я написал что-то неправильно, то пожайлуста исправте. [Ответ]
Yandex 11:43 13.11.2006
Хе-хе, попробуй так
Form1.Memo2.Clear


И еще - проверку на существование файла нав лучше сделать через
uses SysUtils;
...
FileExists (<filename>);
[Ответ]
mexx 20:11 13.11.2006
О, да, заработало. Спасибо. Я только первый раз в делфи столкунулся с процедурами. Топик можно закрыть.
[Ответ]
mexx 19:35 17.11.2006
Ещё один нубский вопрос: как сделать, чтоб при нажатии на кнопку появлялась новая форма? [Ответ]
AIM-9M 11:04 18.11.2006
Сначала надо создать новую форму (Form1), затем написать код на кнопку

Form1.Show (или Form1.ShowModal) [Ответ]
FireStream 00:01 02.12.2006
mexx просто интереса ради. ты случаем не с ПММ 1 курс? а то там есть один препод что оччень любит при кодинге в дельфях вместо прелестных fileexists() вставлять отруб ошибок в компилляторе. При этом добивается тогоже от студентов.....

Или может это я туплю а все уважающие себя прогеры так и делаюд ))) [Ответ]
AIM-9M 09:46 02.12.2006
Уважающие себя прогеры на Turbo Pascal так делают, а на Дельфи это все равно что гвозди микроскопом забивать. [Ответ]
FireStream 16:25 02.12.2006
к слову о гвоздях микроскопом... видел одну замечательную прогу ) вобщемявно писал начинающий дельфиец. там в одном мемте он пытался узнать какой из объектов вызвал обработчик.....

короче он n раз делал так
nflag:=i;

а потом

if i = 1 then ;
if i = 2 then ;

дыквот. после всего этого он заслал мне вмыло эту прогу и сказал "зацени какую афигительную весч я написал" ))) [Ответ]
m16a1 11:02 04.12.2006
Это еще что, вот тут один суперкодер (немного писавший на Паскале), решил перейти на C++. И вот он пишет сравнение:
if ( i = 15){
//do something
} else{
//тоже какая-то хня
}
Вапрос: почиму у меня всегда в сравнении получается true.
Я ушел пацтул... [Ответ]
mexx 11:02 04.12.2006

Сообщение от :
mexx просто интереса ради. ты случаем не с ПММ 1 курс?

Не пока только в 10 классе учусь. И делфи тока начал изучать.)) [Ответ]
AIM-9M 16:06 04.12.2006

Сообщение от m16a1:
Это еще что, вот тут один суперкодер (немного писавший на Паскале), решил перейти на C++. И вот он пишет сравнение:
if ( i = 15){
//do something
} else{
//тоже какая-то хня
}
Вапрос: почиму у меня всегда в сравнении получается true.
Я ушел пацтул...

Задумался на 10 секунд, но потом понял! [Ответ]
Pengvin 16:28 04.12.2006

Сообщение от m16a1:
Это еще что, вот тут один суперкодер (немного писавший на Паскале), решил перейти на C++. И вот он пишет сравнение:
if ( i = 15){
//do something
} else{
//тоже какая-то хня
}

А я когда си начинал изучать тоже такое писал а щас в дельфях пишу "==" а все сила привычки. [Ответ]
FireStream 17:02 04.12.2006

Сообщение от m16a1:
Это еще что, вот тут один суперкодер (немного писавший на Паскале), решил перейти на C++. И вот он пишет сравнение:
if ( i = 15){
//do something
} else{
//тоже какая-то хня
}
Вапрос: почиму у меня всегда в сравнении получается true.
Я ушел пацтул...


Да. дельфийцу непривычно..... для меня когдато было шоком увидеть в PHP конструкции типа

Сообщение от :
$$S

$ru_arr['hello world']='привет мир'

[Ответ]
mexx 09:40 21.12.2006
Люди, дайте ссылку на учебник по делфям, где бы описывались подробно все стандартные объекты
особенно интересует ToolBar, StatusBar, TMonthCalendar. Хотелось бы узнать, что с ними можно
сделать, например можно ли сделать так, чтобы когда мы щелкаем на какую-либо дату в календаре,
выполнялось нужное нам действие(например создается файл с именем этой даты).
Также не могу изменить цвет рамки в объекте GroupBox, он почему-то всегда черный. [Ответ]
Kikoz 12:04 21.12.2006
mexx, Архангельский, правда это перевод хелпа почти дословный
Так чта используй хелп, и я не шучу.
Кроме того, все что ты спрашиваешь может потянуть на понимание принципов работы Win32, хорошо бы представлять себе, что VCL обертка над Win32. Как только это поймешь, так сможешь делать со стандратными компонентами все что угодно.
Ну и еще надо понять, что можно создать свой компонент отнаследовавашись от стандартного. Тогда можно из "казлища сделать агнца"
[Ответ]
gloomdemon 14:09 21.12.2006
Kikoz, +1
Народ хватит фигнёй страдать. Открывайте хелп и читайте, там всё то же самое что в большинстве книжек написано касательно "где бы описывались подробно все стандартные объекты особенно интересует ToolBar, StatusBar, TMonthCalendar." [Ответ]
Вверх