Показать полную графическую версию : Програмировать под Windows на PASCAL
RasKolbas
24-11-2010, 21:08
Здравствуйте! Решаю задачи для института, задачи простые: вычислить число, написав программу на любом доступном языке. Пишу на Паскале, который изучал когда-то в коледже, другими пока не владею. Использую рабочую среду BORLAND PASCAL 7.0.
Правда програмировать на Паскале пока умею только под DOS, что не есть гуд: во первых - текст на чёрном текстовом экране смотрится не очень эстэтично, во вторых - скомпилированная досовская программа может не заработать под современной операционной системой WinXP или Win7, так например возникает ошибка деления на ноль из-за казалось бы безобидной процедуры ClrScr - очистка экрана.
Собственно, абстрактный вопрос - как на Паскале создавать виндовые программы? Собственно в рабочей среде в "Compiler Options" можно "Compiler settings for" установить в "Windows target", я так понимаю при этом будет создано приложение WIN32, но этого мало, нужно же вместо досовских использовать другие процедуры ввода-вывода: создание окна, вывод текста и значений в этом окне. Пытался через поисковик найти справочник по виндовым процедурам - но ничего не нашёл.
Собственно вопрос, помогите найти справочник по виндовым процедурам или какое-либо руководство, которое поможет разобраться как всё-таки програмировать на Паскале под Windows. Или мне стоит версию компилятора сменить? Советы перейти на другой язык не принимаются, у меня нет сейчас столько времени чтобы начать изучать что-то совершенно новое.
Поищите Джеффри РИХТЕР "Эффективные win приложения".
Ну, и скорее всего Lazarus.
RasKolbas, из бесплатного - ищи на торрентах Turbo версию Delphi.
Либо Lazarus. (FreePascal) Других компиляторов Pascal мне не встречалось. (Паскаль-подоные "может быть", но не паскаль, и не обжект-паскаль)
Любезный
24-11-2010, 22:57
из бесплатного - ищи на торрентах Turbo версию Delphi.
Это уже будет пиратская версия, ибо раздача ключей даже на бесплатный Turbo Delphi Explorer уже давно прекращена.
Рекомендую для начала Lazarus - это сейчас единственное бесплатное средство быстрой разработки на базе компилятора FreePascal, причём не только под Windows. Это гораздо проще, чем самому создавать классы окон и.т.п. Создаёте приложение с одной главной формой, кидаете на него компоненты (поля для отображения и ввода текста, кнопки, списки и.т.п), настраиваете эти компоненты и программируете, что программа должна делать при нажатии на кнопки и.т.д.
Pascal and Delphi на сколько я знаю почти одно и тоже.
По этому можно скачать бесплатную Lite версию. Вам же не нужно писать супер программ.
Ну а там есть все стандартные компоненты. (Lite есть на официальном сайте.)
RasKolbas
25-11-2010, 17:59
Pascal and Delphi на сколько я знаю почти одно и тоже. »
То есть синтаксис там такой же, и стандартные (арифметические и строковые) процедуры и функции такие же?
Знакомая ошибка - это не из-за win, нужно использовать другую версию библиотеки.
Что на что надо обновить?
А какая среда из перечисленных (Lazarus, Delphi и FreePascal лучше руссифицирована)? Какая минимальнее? (лишние прибамбасы не нужны).
Сегодня взял в библиотеке учебник по Delphi.
FreePascal - по сути свободный компилятор object pascal + простая IDE (на типа, что в Borland Pascal). Пригоден для разработки консольных приложений.
Lazarus - свободное IDE для разработки + библиотеки (втч визуальные). Оно еще даже не имеет версии 1 и пока слабовато, хотя вполне пригодно.
В Lazarus FreePascal используется как компилятор.
Delphi - коммерческое IDE для разработки + библиотеки (втч визуальные).
Касаемо русификации - и у Lazarus, и у Delphi есть русские версии. Они, в целом, похожи, и Lazarus разрабатывается как альтернатива Delphi.
Лично я от Delphi давно отказался, так как оно стоит денюжку и немалую.
Цитата PhilB:
Знакомая ошибка - это не из-за win, нужно использовать другую версию библиотеки »
Я потому и удалил сообщение, что точно не помню. Помню, что проблема была и она менялась заменой библиотеки, гдt ClrScr (наверно, crt).
Любезный
25-11-2010, 19:40
То есть синтаксис там такой же, и стандартные (арифметические и строковые) процедуры и функции такие же?
Стандартные - да. Но там несколько другой принцип. Если в консольном приложении Вы пишете строку
writeln ('Hello World!');
то в Delphi (по моему, в Lazarus тоже) нужно сначала кинуть на форму компонент TLabel (надпись) и в обработчике события формы OnCreate или OnShow написать такую строку:
Label1.Caption:='Hello World!';
То есть, мы работаем с компонентами, каждый из которых имеет свойства и события. Свойства можно задать в инспекторе объектов, а можно и из кода программы. События возникают при каких-либо действиях с программой и её компонентами. Часть из них мы должны обработать - то есть, написать обработчики, в которых мы указываем, что делать с тем или иным компонентом в нужный момент.
Рекомендую для начала ознакомиться с циклом статей:
http://www.delphikingdom.com/lyceum/seminar.asp?ID=3
И вообще советую зарегистрироваться на этом сайте и исследовать его - там полно материалов как для начинающих, так и для программистов. Можете задавать вопросы - Вам помогут.
По русификации - Delphi не русифицирован вообще (вернее, я как-то видел пиратскую русификацию одной из версий, но работать с ней невозможно), а Lazarus - грят, есть русская версия. Но сам я с ним не работаю, потому подтвердить не могу.
RasKolbas
27-11-2010, 00:34
Второй день изучаю Delphi. Впервые столкнулся с объектно-ориентированным программированием - ну теперь как освою и Си не так страшно будет изучать.
Так же впервые столкнулся с визуальным программированием. Вот тут возникает один вопрос, я конечно понимаю, что я это всё в литературе изучу, но хотелось бы забежать вперёд. Когда я визуально создаю новую форму ну скажем с именем с именем Form2 у меня в коде модуля появляется следующий текст:
type
TForm2 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2
а если я сделаю наоборот: наберу код описывающий форму. то новая форма у меня в окне не появится, в то время как мне хотелось бы с ней визуально поработать: изменить расположения кнопок например. Как с этим разобраться?
Любезный
27-11-2010, 10:53
Впервые столкнулся с объектно-ориентированным программированием - ну теперь как освою и Си не так страшно будет изучать.
Ох, и намаешься ты с этим Си... Я после Паскаля на Си программировать не буду ни за что.
Что касается вопроса... Проект Delphi имеет главный файл с расширением dpr (ради интереса посмотри его исходник в меню Project - View Source), в котором описано, какие unit-ы включены в этот проект. Собственно форма на Delphi записывается в два файла - unit с расширением pas и саму форму - файл с тем же именем, что и unit, но его расширение dfm. Первый файл содержит приведённый тобой код, а второй - описание всех объектов, размещённых на форме, и их свойств, задаваемых через Object Inspector. Руками ты редактируешь только pas-файл, а при визуальном создании среда работает со всеми файлами проекта. За счёт этого - вот такое поведение среды.
RasKolbas
27-11-2010, 14:32
Проект Delphi имеет главный файл с расширением dpr (ради интереса посмотри его исходник в меню Project - View Source) »
Естественно я его видел. В нем есть команда, которая рисует форму на экране:
Application.CreateForm(TForm2, Form2);
А описание того, что это за форма такая Form2 содержится в модуле который прикручен к программе строкой:
Unit2 in 'Unit2.pas' {Form2};
Возможно ли делать не многомодульную программу, а описать все формы в основном коде?
и саму форму - файл с тем же именем, что и unit, но его расширение dfm »
Я так понимаю, dfm-файл - двоичный, поэтому ручками подредактировать его не получится? Возможно ли его создать каким-либо другим способом, кроме File-New-Form, чтобы одновременно с созданием формы не создавался новый модуль?
Любезный
27-11-2010, 14:53
Возможно ли делать не многомодульную программу, а описать все формы в основном коде?
По-моему так можно делать лишь при наличии нескольких одинаковых форм.
Можно ещё динамически создать форму и её компоненты из кода. Но это весьма геморное дело. Честно говоря, сам так никогда не делал.
Я так понимаю, dfm-файл - двоичный, поэтому ручками подредактировать его не получится? Возможно ли его создать каким-либо другим способом, кроме File-New-Form, чтобы одновременно с созданием формы не создавался новый модуль?
dfm-файл двоичный в старых версиях Delphi. Если не ошибаюсь, начиная с версии 2006 его можно редактировать и руками тоже. Однако лезть в него из кода программы рекомендуется
Любезный
27-11-2010, 15:19
Кстати, так как я в этом не большой спец, дам интересную ссылку. Посмотрите ответы на вопрос и статьи по ссылкам, указанным в ответах - думаю, многое будет ясно.
http://www.delphikingdom.com/asp/answer.asp?IDAnswer=68068
Вот ещё кое-что
http://www.delphikingdom.com/asp/answer.asp?IDAnswer=77021
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.