Старый 13.11.2006, 10:33   #1   
Moderator
 
Аватар для mexx
 
Сообщений: 2,261
Регистрация: 21.01.2004

mexx вне форума Не в сети
Question Процедура в Delphi не работает

Помогите, только начал изучать делфи. Вот написал процедуру для своей программы. А она не работает. Вот часть кода:


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.
Я что-то не догоняю, где их надо объявлять? Ведь в самом начале программы они объявлены. Если я написал что-то неправильно, то пожайлуста исправте.
  Ответить с цитированием
Старый 13.11.2006, 11:43   #2   
Кэп Улитка
 
Аватар для Yandex
 
Сообщений: 8,067
Регистрация: 04.05.2005
Возраст: 43

Yandex вне форума Не в сети
Хе-хе, попробуй так
Form1.Memo2.Clear


И еще - проверку на существование файла нав лучше сделать через
uses SysUtils;
...
FileExists (<filename>);
  Ответить с цитированием
Старый 13.11.2006, 20:11   #3   
Moderator
 
Аватар для mexx
 
Сообщений: 2,261
Регистрация: 21.01.2004

mexx вне форума Не в сети
О, да, заработало. Спасибо. Я только первый раз в делфи столкунулся с процедурами. Топик можно закрыть.
  Ответить с цитированием
Старый 17.11.2006, 19:35   #4   
Moderator
 
Аватар для mexx
 
Сообщений: 2,261
Регистрация: 21.01.2004

mexx вне форума Не в сети
Ещё один нубский вопрос: как сделать, чтоб при нажатии на кнопку появлялась новая форма?
  Ответить с цитированием
Старый 18.11.2006, 11:04   #5   
асинхроник
 
Аватар для AIM-9M
 
Сообщений: 976
Регистрация: 15.10.2004
Возраст: 40
Записей в дневнике: 3

AIM-9M вне форума Не в сети
Сначала надо создать новую форму (Form1), затем написать код на кнопку

Form1.Show (или Form1.ShowModal)
  Ответить с цитированием
Старый 02.12.2006, 00:01   #6   
Членъ Партии
 
Аватар для FireStream
 
Сообщений: 276
Регистрация: 27.10.2004

FireStream вне форума Не в сети
mexx просто интереса ради. ты случаем не с ПММ 1 курс? а то там есть один препод что оччень любит при кодинге в дельфях вместо прелестных fileexists() вставлять отруб ошибок в компилляторе. При этом добивается тогоже от студентов.....

Или может это я туплю а все уважающие себя прогеры так и делаюд )))
  Ответить с цитированием
Старый 02.12.2006, 09:46   #7   
асинхроник
 
Аватар для AIM-9M
 
Сообщений: 976
Регистрация: 15.10.2004
Возраст: 40
Записей в дневнике: 3

AIM-9M вне форума Не в сети
Уважающие себя прогеры на Turbo Pascal так делают, а на Дельфи это все равно что гвозди микроскопом забивать.
  Ответить с цитированием
Старый 02.12.2006, 16:25   #8   
Членъ Партии
 
Аватар для FireStream
 
Сообщений: 276
Регистрация: 27.10.2004

FireStream вне форума Не в сети
к слову о гвоздях микроскопом... видел одну замечательную прогу ) вобщемявно писал начинающий дельфиец. там в одном мемте он пытался узнать какой из объектов вызвал обработчик.....

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

а потом

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

дыквот. после всего этого он заслал мне вмыло эту прогу и сказал "зацени какую афигительную весч я написал" )))
  Ответить с цитированием
Старый 04.12.2006, 11:02   #9   
бухаю
 
Сообщений: 17
Регистрация: 07.12.2005

m16a1 вне форума Не в сети
Это еще что, вот тут один суперкодер (немного писавший на Паскале), решил перейти на C++. И вот он пишет сравнение:
if ( i = 15){
//do something
} else{
//тоже какая-то хня
}
Вапрос: почиму у меня всегда в сравнении получается true.
Я ушел пацтул...
  Ответить с цитированием
Старый 04.12.2006, 11:02   #10   
Moderator
 
Аватар для mexx
 
Сообщений: 2,261
Регистрация: 21.01.2004

mexx вне форума Не в сети
Цитата:
mexx просто интереса ради. ты случаем не с ПММ 1 курс?
Не пока только в 10 классе учусь. И делфи тока начал изучать.))
  Ответить с цитированием
Старый 04.12.2006, 16:06   #11   
асинхроник
 
Аватар для AIM-9M
 
Сообщений: 976
Регистрация: 15.10.2004
Возраст: 40
Записей в дневнике: 3

AIM-9M вне форума Не в сети
Цитата:
Сообщение от m16a1
Это еще что, вот тут один суперкодер (немного писавший на Паскале), решил перейти на C++. И вот он пишет сравнение:
if ( i = 15){
//do something
} else{
//тоже какая-то хня
}
Вапрос: почиму у меня всегда в сравнении получается true.
Я ушел пацтул...
Задумался на 10 секунд, но потом понял!
  Ответить с цитированием
Старый 04.12.2006, 16:28   #12   
IGBT
 
Аватар для Pengvin
 
Сообщений: 535
Регистрация: 09.10.2005

Pengvin вне форума Не в сети
Цитата:
Сообщение от m16a1
Это еще что, вот тут один суперкодер (немного писавший на Паскале), решил перейти на C++. И вот он пишет сравнение:
if ( i = 15){
//do something
} else{
//тоже какая-то хня
}
А я когда си начинал изучать тоже такое писал а щас в дельфях пишу "==" а все сила привычки.
  Ответить с цитированием
Старый 04.12.2006, 17:02   #13   
Членъ Партии
 
Аватар для FireStream
 
Сообщений: 276
Регистрация: 27.10.2004

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

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

Цитата:
$$S

$ru_arr['hello world']='привет мир'
  Ответить с цитированием
Старый 21.12.2006, 09:40   #14   
Moderator
 
Аватар для mexx
 
Сообщений: 2,261
Регистрация: 21.01.2004

mexx вне форума Не в сети
Люди, дайте ссылку на учебник по делфям, где бы описывались подробно все стандартные объекты
особенно интересует ToolBar, StatusBar, TMonthCalendar. Хотелось бы узнать, что с ними можно
сделать, например можно ли сделать так, чтобы когда мы щелкаем на какую-либо дату в календаре,
выполнялось нужное нам действие(например создается файл с именем этой даты).
Также не могу изменить цвет рамки в объекте GroupBox, он почему-то всегда черный.
  Ответить с цитированием
Старый 21.12.2006, 12:04   #15   
Форумец
 
Сообщений: 2,418
Регистрация: 05.10.2005
Возраст: 44

Kikoz вне форума Не в сети
mexx, Архангельский, правда это перевод хелпа почти дословный
Так чта используй хелп, и я не шучу.
Кроме того, все что ты спрашиваешь может потянуть на понимание принципов работы Win32, хорошо бы представлять себе, что VCL обертка над Win32. Как только это поймешь, так сможешь делать со стандратными компонентами все что угодно.
Ну и еще надо понять, что можно создать свой компонент отнаследовавашись от стандартного. Тогда можно из "казлища сделать агнца"
  Ответить с цитированием
Старый 21.12.2006, 14:09   #16   
Адепт GWS
 
Аватар для gloomdemon
 
Сообщений: 196
Регистрация: 14.09.2006

gloomdemon вне форума Не в сети
Kikoz, +1
Народ хватит фигнёй страдать. Открывайте хелп и читайте, там всё то же самое что в большинстве книжек написано касательно "где бы описывались подробно все стандартные объекты особенно интересует ToolBar, StatusBar, TMonthCalendar."
  Ответить с цитированием
Поиск в теме: 



Быстрый переход:

  Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Support by DrIQ & Netwind