для новичков

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

для новичков

Сообщение Анастасия » 16.01.2010 17:17:14

Существует ли литература по работе с лазарусом?!
Аватара пользователя
Анастасия
новенький
 
Сообщения: 15
Зарегистрирован: 16.01.2010 13:48:22
Откуда: Чехов

Re: для новичков

Сообщение Mr.Smart » 16.01.2010 17:30:34

Анастасия
Для программирования на Lazarus подойдёт любая книга по Delphi 7.
Специализированной литературы пока нет. Книга возможно скоро появится. Этим занимается человек с нашего форума Kubanych http://freepascal.ru/forum/viewtopic.php?f=23&t=5173&st=0&sk=t&sd=a :wink:
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: для новичков

Сообщение Анастасия » 16.01.2010 22:00:41

Пока выйдет книга, я завалю сессию...)
Аватара пользователя
Анастасия
новенький
 
Сообщения: 15
Зарегистрирован: 16.01.2010 13:48:22
Откуда: Чехов

Re: для новичков

Сообщение Mr.Smart » 16.01.2010 22:09:45

Анастасия - Всё будет ОК :wink:
Если будут какие вопросы и что-то не будет получаться, смело обращайтесь на этот форум. Сообщество FreePascal.ru Вам с удовольствием поможет! :wink:
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: для новичков

Сообщение Анастасия » 16.01.2010 22:46:02

Тогда не могли бы помочь Вы мне?
Нужен каскад кнопок(чтоб одна вызывала другую) а четвертая выдавала сообщение "привет" :oops:
буду очень благодарна)
Аватара пользователя
Анастасия
новенький
 
Сообщения: 15
Зарегистрирован: 16.01.2010 13:48:22
Откуда: Чехов

Re: для новичков

Сообщение Mr.Smart » 16.01.2010 23:06:16

Как я понял. На форме одна кнопка при нажатии она меняет своё название, а при четвёртом выдаёт сообщение?

Добавлено спустя 5 минут 27 секунд:
з.ы.
Я так понимаю, что это у вас лабораторная работа. Выложите формулировку задания...
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: для новичков

Сообщение Logos » 17.01.2010 01:00:31

предистория:

Знать ВСЕ не дано никому и не раз сталкивался с ситуацией, когда на тематических форумах задавая вопрос - получаешь ответ о том, что решение просто, но ты слишком глуп и невнимателен и ленив и еще куча подобного... Но так это не всегда! Иногда не хватает времени, иногда желания, иногда возможностей...

Решение:

...............................
Код: Выделить всё
type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    { Private declarations }
    counter:integer;
    buttons:array of tbutton;
    procedure bclick(sender:tobject);

...............................
Код: Выделить всё
procedure TForm1.bclick(sender: tobject);
begin
   if counter = 5 then
   showmessage('Привет.')
   else
      begin
         setlength(buttons,counter);
         buttons[counter-1]:=tbutton.Create(self);
         buttons[counter-1].Parent:=form1;
         buttons[counter-1].OnClick:=bclick;
         buttons[counter-1].Caption:='Кнопка '+inttostr(counter);
         buttons[counter-1].Left:=30;
         buttons[counter-1].Top:=counter*30;
         buttons[counter-1].Show;
         if counter<>1 then buttons[counter-2].OnClick:=nil;
         
         inc(counter);
      end;

end;

procedure TForm1.FormCreate(Sender: TObject);
begin
   counter:=1;
   bclick(sender);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
   buttons:=nil;
end;


Послесловие:

1. Решение не самое изящное. (набросал поздно, уставший и выпивший)

2. На тройку, для лабораторной должно хватить.

3.В наброске комментарии не ставил сознательно....

работу с динамическими массивами читать тут:
http://old.softerra.ru/review/program/20000/page1.html

создание компонентов во время работы программы читать тут:
http://www.delphisources.ru/pages/faq/b ... nents.html

4.Если Анастасия заинтересуется, то она сможет выяснить "моменты" реализации и, значит, я потратил время не зря и среди знающих людей станет на одного больше. Если нет - то она просто сдаст работу.
Последний раз редактировалось Logos 17.01.2010 01:08:54, всего редактировалось 1 раз.
Logos
новенький
 
Сообщения: 37
Зарегистрирован: 25.03.2006 22:33:11

Re: для новичков

Сообщение Mr.Smart » 17.01.2010 01:03:23

Logos
Всё конечно хорошо, но поместите свой код в тег [code]. Уважайте форумчан!
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: для новичков

Сообщение Logos » 17.01.2010 01:12:57

Mr.Smart писал(а):Logos
Всё конечно хорошо, но поместите свой код в тег [code]. Уважайте форумчан!


Искренне не хотел проявить неуважение к форумчанам.

Я не являюсь постоянным (каждодневно-читающим) гостем форума и ответил просто "как обычно", никоим образом не имея цели задеть кого либо...

Признаюсь - о теге [code] я просто не знал.
Logos
новенький
 
Сообщения: 37
Зарегистрирован: 25.03.2006 22:33:11

Re: для новичков

Сообщение скалогрыз » 17.01.2010 01:50:00

Анастасия писал(а):Существует ли литература по работе с лазарусом?!

90% литературы и интернет ресурсов по Delphi, применимы к Лазарусу.

2 logos: надо было кроме кода, готовый проект в архиве к сообщению приаттачить ;)
скалогрыз
долгожитель
 
Сообщения: 1803
Зарегистрирован: 03.09.2008 02:36:48

Re: для новичков

Сообщение Logos » 17.01.2010 02:13:14

скалогрыз писал(а):2 logos: надо было кроме кода, готовый проект в архиве к сообщению приаттачить ;)


:D Боюсь, что это не помогло-бы, поскольку набросал в блокноте, открыв один из "старых" проектов и за компиляцию проекта без ошибок поручится-бы не смог. :D
Logos
новенький
 
Сообщения: 37
Зарегистрирован: 25.03.2006 22:33:11

Re: для новичков

Сообщение скалогрыз » 17.01.2010 02:42:19

ок.
вот 2 проекта, оба решают поставленную задачу, только один:
статический - 4 кнопки заранее выложены на форму, и одна кнопка показывает другу (visible:=true)

другой - динамический: как раз, то что logos прописал ;)
нужно думать, что именно динамический требуется на лабораторной...
скалогрыз
долгожитель
 
Сообщения: 1803
Зарегистрирован: 03.09.2008 02:36:48

Re: для новичков

Сообщение Анастасия » 17.01.2010 11:20:53

Спасибо, конечно, я оценила работу. и статестический, и динамический выдают ошибки:
project1.lpr(19,1) Error: Can't open resource file: project1.res
project1.lpr(19,1) Fatal: There were 1 errors compiling module, stopping
Изначальное задание: Создать каскад кнопок, чтоб одна вызывала другую, а четвертая вызывала сообщение "Привет"
Аватара пользователя
Анастасия
новенький
 
Сообщения: 15
Зарегистрирован: 16.01.2010 13:48:22
Откуда: Чехов

Re: для новичков

Сообщение Mr.Smart » 17.01.2010 11:24:38

Анастасия
Это ошибка в самой среде Lazarus. Перед запуском программы сохраните сначала проект.
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: для новичков

Сообщение Анастасия » 17.01.2010 11:44:20

Может я не правильно сохраняю (проект->сохранить проект), но все равно выдает ошибку
Аватара пользователя
Анастасия
новенький
 
Сообщения: 15
Зарегистрирован: 16.01.2010 13:48:22
Откуда: Чехов

След.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 17

Рейтинг@Mail.ru