Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Програмировать под Windows на PASCAL (http://forum.oszone.net/showthread.php?t=192210)

RasKolbas 24-11-2010 21:08 1550813

Програмировать под Windows на PASCAL
 
Здравствуйте! Решаю задачи для института, задачи простые: вычислить число, написав программу на любом доступном языке. Пишу на Паскале, который изучал когда-то в коледже, другими пока не владею. Использую рабочую среду BORLAND PASCAL 7.0.

Правда програмировать на Паскале пока умею только под DOS, что не есть гуд: во первых - текст на чёрном текстовом экране смотрится не очень эстэтично, во вторых - скомпилированная досовская программа может не заработать под современной операционной системой WinXP или Win7, так например возникает ошибка деления на ноль из-за казалось бы безобидной процедуры ClrScr - очистка экрана.

Собственно, абстрактный вопрос - как на Паскале создавать виндовые программы? Собственно в рабочей среде в "Compiler Options" можно "Compiler settings for" установить в "Windows target", я так понимаю при этом будет создано приложение WIN32, но этого мало, нужно же вместо досовских использовать другие процедуры ввода-вывода: создание окна, вывод текста и значений в этом окне. Пытался через поисковик найти справочник по виндовым процедурам - но ничего не нашёл.

Собственно вопрос, помогите найти справочник по виндовым процедурам или какое-либо руководство, которое поможет разобраться как всё-таки програмировать на Паскале под Windows. Или мне стоит версию компилятора сменить? Советы перейти на другой язык не принимаются, у меня нет сейчас столько времени чтобы начать изучать что-то совершенно новое.

opel431 24-11-2010 21:35 1550844

Поищите Джеффри РИХТЕР "Эффективные win приложения".
Ну, и скорее всего Lazarus.

lxa85 24-11-2010 22:00 1550866

RasKolbas, из бесплатного - ищи на торрентах Turbo версию Delphi.
Либо Lazarus. (FreePascal) Других компиляторов Pascal мне не встречалось. (Паскаль-подоные "может быть", но не паскаль, и не обжект-паскаль)

Любезный 24-11-2010 22:57 1550904

Цитата:

из бесплатного - ищи на торрентах Turbo версию Delphi.
Это уже будет пиратская версия, ибо раздача ключей даже на бесплатный Turbo Delphi Explorer уже давно прекращена.

Рекомендую для начала Lazarus - это сейчас единственное бесплатное средство быстрой разработки на базе компилятора FreePascal, причём не только под Windows. Это гораздо проще, чем самому создавать классы окон и.т.п. Создаёте приложение с одной главной формой, кидаете на него компоненты (поля для отображения и ввода текста, кнопки, списки и.т.п), настраиваете эти компоненты и программируете, что программа должна делать при нажатии на кнопки и.т.д.

Emis 25-11-2010 10:10 1551126

Pascal and Delphi на сколько я знаю почти одно и тоже.
По этому можно скачать бесплатную Lite версию. Вам же не нужно писать супер программ.
Ну а там есть все стандартные компоненты. (Lite есть на официальном сайте.)

RasKolbas 25-11-2010 17:59 1551483

Цитата:

Цитата Emis
Pascal and Delphi на сколько я знаю почти одно и тоже. »

То есть синтаксис там такой же, и стандартные (арифметические и строковые) процедуры и функции такие же?

Цитата:

Цитата PhilB
Знакомая ошибка - это не из-за win, нужно использовать другую версию библиотеки.

Что на что надо обновить?

А какая среда из перечисленных (Lazarus, Delphi и FreePascal лучше руссифицирована)? Какая минимальнее? (лишние прибамбасы не нужны).

Сегодня взял в библиотеке учебник по Delphi.

PhilB 25-11-2010 18:31 1551508

FreePascal - по сути свободный компилятор object pascal + простая IDE (на типа, что в Borland Pascal). Пригоден для разработки консольных приложений.

Lazarus - свободное IDE для разработки + библиотеки (втч визуальные). Оно еще даже не имеет версии 1 и пока слабовато, хотя вполне пригодно.
В Lazarus FreePascal используется как компилятор.

Delphi - коммерческое IDE для разработки + библиотеки (втч визуальные).

Касаемо русификации - и у Lazarus, и у Delphi есть русские версии. Они, в целом, похожи, и Lazarus разрабатывается как альтернатива Delphi.

Лично я от Delphi давно отказался, так как оно стоит денюжку и немалую.

Цитата:

Цитата RasKolbas
Цитата PhilB:
Знакомая ошибка - это не из-за win, нужно использовать другую версию библиотеки »

Я потому и удалил сообщение, что точно не помню. Помню, что проблема была и она менялась заменой библиотеки, гдt ClrScr (наверно, crt).

Любезный 25-11-2010 19:40 1551547

Цитата:

То есть синтаксис там такой же, и стандартные (арифметические и строковые) процедуры и функции такие же?
Стандартные - да. Но там несколько другой принцип. Если в консольном приложении Вы пишете строку
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 1552450

Второй день изучаю Delphi. Впервые столкнулся с объектно-ориентированным программированием - ну теперь как освою и Си не так страшно будет изучать.
Так же впервые столкнулся с визуальным программированием. Вот тут возникает один вопрос, я конечно понимаю, что я это всё в литературе изучу, но хотелось бы забежать вперёд. Когда я визуально создаю новую форму ну скажем с именем с именем Form2 у меня в коде модуля появляется следующий текст:
Код:

type
  TForm2 = class(TForm)
      private
        { Private declarations }
      public
        { Public declarations }
  end;
var
  Form2: TForm2

а если я сделаю наоборот: наберу код описывающий форму. то новая форма у меня в окне не появится, в то время как мне хотелось бы с ней визуально поработать: изменить расположения кнопок например. Как с этим разобраться?

Любезный 27-11-2010 10:53 1552598

Цитата:

Впервые столкнулся с объектно-ориентированным программированием - ну теперь как освою и Си не так страшно будет изучать.
Ох, и намаешься ты с этим Си... Я после Паскаля на Си программировать не буду ни за что.

Что касается вопроса... Проект Delphi имеет главный файл с расширением dpr (ради интереса посмотри его исходник в меню Project - View Source), в котором описано, какие unit-ы включены в этот проект. Собственно форма на Delphi записывается в два файла - unit с расширением pas и саму форму - файл с тем же именем, что и unit, но его расширение dfm. Первый файл содержит приведённый тобой код, а второй - описание всех объектов, размещённых на форме, и их свойств, задаваемых через Object Inspector. Руками ты редактируешь только pas-файл, а при визуальном создании среда работает со всеми файлами проекта. За счёт этого - вот такое поведение среды.

RasKolbas 27-11-2010 14:32 1552713

Цитата:

Цитата Любезный
Проект 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 1552728

Цитата:

Возможно ли делать не многомодульную программу, а описать все формы в основном коде?
По-моему так можно делать лишь при наличии нескольких одинаковых форм.

Можно ещё динамически создать форму и её компоненты из кода. Но это весьма геморное дело. Честно говоря, сам так никогда не делал.

Цитата:

Я так понимаю, dfm-файл - двоичный, поэтому ручками подредактировать его не получится? Возможно ли его создать каким-либо другим способом, кроме File-New-Form, чтобы одновременно с созданием формы не создавался новый модуль?
dfm-файл двоичный в старых версиях Delphi. Если не ошибаюсь, начиная с версии 2006 его можно редактировать и руками тоже. Однако лезть в него из кода программы рекомендуется

Любезный 27-11-2010 15:19 1552742

Кстати, так как я в этом не большой спец, дам интересную ссылку. Посмотрите ответы на вопрос и статьи по ссылкам, указанным в ответах - думаю, многое будет ясно.
http://www.delphikingdom.com/asp/ans...IDAnswer=68068

Вот ещё кое-что
http://www.delphikingdom.com/asp/ans...IDAnswer=77021


Время: 00:27.

Время: 00:27.
© OSzone.net 2001-