Frankie Avalon 4 / 4 / 0 Регистрация: 14.10.2012 Сообщений: 64 |
||||||||||||
1 |
||||||||||||
11.03.2013, 22:16. Показов 12840. Ответов 16 Метки нет (Все метки)
Добрый вечер.
Добавлено через 9 минут
прошу помощи, как исправить и оптимизировать код?
__________________
0 |
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
11.03.2013, 22:16 |
Ответы с готовыми решениями: Ошибка ‘UNTIL’ expected but ‘END’ found {$APPTYPE CONSOLE} var
interface uses
16 |
angstrom |
||||
11.03.2013, 22:21 |
2 |
|||
Думаешь написание кода в одну строку освобождает от необходимости писать операторные скобки (begin/end)? |
ВАСИЛЕВС 561 / 484 / 168 Регистрация: 14.02.2012 Сообщений: 1,561 |
||||||||
11.03.2013, 22:28 |
3 |
|||||||
Строка 59: «;» не поставили и вообще
Оптимизация 46 — 47:
1 |
Frankie Avalon 4 / 4 / 0 Регистрация: 14.10.2012 Сообщений: 64 |
||||
11.03.2013, 22:31 [ТС] |
4 |
|||
Спасибо за ответы!
выбивает ошибку Миниатюры
0 |
angstrom |
|
11.03.2013, 22:33 |
5 |
В указанной строке как раз не всё исправлено. |
Frankie Avalon 4 / 4 / 0 Регистрация: 14.10.2012 Сообщений: 64 |
||||||||
11.03.2013, 22:37 [ТС] |
6 |
|||||||
Просто процитировал. Вот обновленный вариант:
0 |
ВАСИЛЕВС 561 / 484 / 168 Регистрация: 14.02.2012 Сообщений: 1,561 |
||||||||
11.03.2013, 22:45 |
7 |
|||||||
Это зачем? Я же писал
У вас же два варианта ответа mrYes или mrNo. Если не первое, тогда разве не второе? Добавлено через 1 минуту
0 |
4 / 4 / 0 Регистрация: 14.10.2012 Сообщений: 64 |
|
11.03.2013, 22:53 [ТС] |
8 |
Насчет ошибки: у вас Form2 существует? Да, созданы две формы, в каждой 3 элемента.
0 |
angstrom |
|
11.03.2013, 22:56 |
9 |
При вызове Form2.Show в событии OnCreate первой формы, вторая ещё не существует. Перенеси код в OnShow. |
ВАСИЛЕВС 561 / 484 / 168 Регистрация: 14.02.2012 Сообщений: 1,561 |
||||
11.03.2013, 22:57 |
10 |
|||
Ну наверно в Unit1 добавить:
0 |
angstrom |
|
11.03.2013, 23:00 |
11 |
У ТС это есть. О причине ошибки смотри выше. |
Frankie Avalon 4 / 4 / 0 Регистрация: 14.10.2012 Сообщений: 64 |
||||
11.03.2013, 23:24 [ТС] |
12 |
|||
Опять ошибка, теперь уже при чтении файла при нажатии на баттон, строки 62-94. Ребят выручайте.
Миниатюры
0 |
angstrom |
|
11.03.2013, 23:30 |
13 |
При нажатии на кнопку, файл уже присоединён в OnCreate. Зачем? |
4 / 4 / 0 Регистрация: 14.10.2012 Сообщений: 64 |
|
11.03.2013, 23:45 [ТС] |
14 |
Убрал повторное присоединение, ошибка та же. Как я понял ошибка при открытии текстового файла и преобразования содержимого в переменную. Но я просто не знаю как это правильно реализовать.
0 |
angstrom |
||||
11.03.2013, 23:51 |
15 |
|||
Попробуй так.
|
Frankie Avalon 4 / 4 / 0 Регистрация: 14.10.2012 Сообщений: 64 |
||||
12.03.2013, 00:20 [ТС] |
16 |
|||
Спасибо огромное, все работает. Единственно что теперь после сохранение в файл первая форма открывается, а вторая не хочет скрываться.Уже перепробовал Free, close, hide, visible false — ничего не хочет ее скрывать.
0 |
angstrom |
||||
12.03.2013, 00:29 |
17 |
|||
Не нужно добавлять в код ничего лишнего. Форму освобождать самому, если не создавал, нельзя.
|
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
12.03.2013, 00:29 |
Помогаю со студенческими работами здесь Statement expected but end of file found Ошибка Statement expected but end of file found
interface uses [Error] Unit1.pas(43): Declaration expected but end of file found interface uses
и вот сам код Ошибка: Expected END but received ELSE … Искать еще темы с ответами Или воспользуйтесь поиском по форуму: 17 |
Типов сообщений компилятора — более двухсот. Рассмотрим перечень наиболее встречающихся сообщений класса Error
- 0. <Что-то1> expected but <Что-то2> found. Обычно это сообщение возникает при синтаксической ошибке.Например,в случае небаланса скобок,компилятор сообщит: ‘)’ expected but ‘;’ found (вместо ожидавшейся скобки найдена запятая).
Компилятор часто сообщает, что ‘end’ ожидается,например:x:= 5,7; здесь неуместен разделитель-запятая, а сообщается про end. (‘END’ expected but ‘,’ found)
- 1. <Имя> is not a type identifier. Данное <Имя> не является именем типа.
- 2. ‘;’ not allowed before ‘Else’. Перед else нельзя ставить точку с запятой
- 3. Abstract method must be virtual or dynamic. Абстрактный метод должен быть виртуальным или динамическим.
- 4. Ambiguous overloaded call to <Имя блока>. Компилятор не может однозначно выбрать перегружаемый блок. Измените параметр.
- 5. Array type required. Ошибка возникает в случаях, когда в индексе элемента массива указано больше уровней, чем предусмотрено описанием, и если массив не описан. Например, после объявления двумерного массива х или простой переменной х ошибочно записывают элемент х[2,1,1] (в нем показано три измерения).
- 6. Assignment to FOR-loop variable <Имя>. Присваивание значения параметру FOR-цикла в теле цикла.
Например, вследствие описки дважды используется имя i в кратном цикле:
For i:= 1 to n do For i:= 1 to m do ...
- 7. Break or Continue outside of loop. Break или Continue — не в цикле.
- 8. Cannot initialize local variables. Локальные переменные запрещено инициализировать (задавать им значения при описании).
- 9. Cannot assign to/read a read-only/write-only property. Присвоение значения свойству read/only и чтение свойства write/only запрещены.
- 10. Constant expression expected.В этом месте должна стоять константа или константное выражение, например константа выбора в структуре Case.
- 11. Constant expression violates subrange bounds. Выход значения константы из диапазона. Контроль не полон. Например, «сойдет с рук» присваивание x:=3000000000, где х имеет тип integer, но начение х будет искажено.
- 12. Constant or type identifier expected. Требуется имя типа или тип-диапазон.
- 13. Could not compile used unit <Имя>. Компиляция присоединенного модуля <Имя> невозможна.
- 14. Data type too large. Тип определяет структуру размером более 2 Гбайт; это слишком много.
- 15. Declaration expected but <Что-то> found. Пропущено описание или оператор.
- 16. Declaration of <Имя> differs from previous declarations… Данный заголовок блока не соответствует упреждающему объявлению блока.
- 17. Default parameter <Имя> must be by-value or constant. Необязательный параметр (со значением по умолчанию) не должен вызываться по ссылке.
- 18. Expression expected. В этом месте программы должно стоять выражение.
- 19. Expression too complicated. Выражение излишне сложно для компиляции.
- 20. File type not allowed here. В этом месте или в этой роли файловую переменную нельзя использовать. Например, она не может быть формальным параметром-значением.
- 21. For loop control variable must be simple local variable. Параметр цикла должен быть простой локальной (описанной в этом же блоке) переменной.
- 22. For loop control variable must have ordinal type. Параметр цикла должен иметь порядковый тип.Вещественный тип запрещен.
- 23. Function needs result type. В заголовке функции надо указывать тип ее результата.
- 24. Identifier expected but <Что-то> found. В этом месте должно стоять имя. Например, пропущено имя функции после Function.
- 25. Identifier redeclared <Имя>.<Имя> описано повторно, но в пределах блока имя можно описать лишь раз. Проверьте, не обозначена ли локальная переменная тем же именем, что и формальный параметр блока.
- 26. Illegal character in input file <знак>. Запретный знак, например «русская» буква, либо вы оставили скобку }, убрав открывающую скобку {.
- 27. Illegal type in Read/Readln (Write/Writeln) statement. Элемент запрещенного типа в списке ввода/вывода.
- 28. Incompatible types <указание типов>. Несоответствие типов по присваиванию или типов операндов одной операции. Сообщение выдается и при неверном использовании структур. Например, z — запись, ошибочно записано присваивание z:= 0 (работать надо с полями записи).
- 29. Invalid function result type. Недопустимый тип результата функции.
- 30. Label already defined: <Метка>. <Метка> уже помечает другой оператор.
- 31. Left side cannot be assigned to. He может быть такой левой части в присваивании. Примеры: попытка присвоить значение файловой переменной, присвоение значения формальному параметру-константе.
- 32. Line too long. В строке программного текста больше 255 знаков.
- 33. Low bound exceeds high bound. Нижняя граница превышает верхнюю.
- 34. Missing operator or semicolon.Пропуск операции (например перед скобкой) или пропуск точки с запятой. При пропуске ‘;’ маркер ошибки стоит на очередном предложении (объявлении или операторе).
- 35. Missing parameter type. He указан тип формального параметра-значения или параметра процедурного типа.
- 36. Not enough actual parameters. He хватает фактических параметров.
- 37. Need to specify at least one dimension … Нужно задавать в операторе SetLength хотя бы один размер динамического массива.
- 38. Number of elements differs from declaration. Число элементов в структурной константе не соответствует ее описанию.
- 39. Operator not applicable to this operand type. Операция не применима к операндам данного типа. Например: ‘А’ or ‘В’; ‘Text1’* ‘Text2’.
- 40. Order of fields in record constant differs from declaration. Порядок полей в записи-константе не соответствует описанию записи.
- 41. Ordinal type required. Требуется порядковый тип (например, в индексе).
- 42. Out of memory. Компилятору не хватает памяти.
- 43. Statement expected but <Что-то> found. В этом месте должен стоять оператор. Сообщение выдается во всех случаях, когда в тело блока или секцию инициализации ошибочно помещают описание (<Что-то>). Ошибочная форма обращения к процедуре Procedure <Имя> или к функции Function <Имя> также вызывает сообщение.
- 44. Sets may have at most 256 elements. Множество (тип Set) не может содержать более 256 элементов.
- 45. Slice standard function only allowed as open array argument. Функцию Slice можно использовать лишь как фактический параметр
- 46. Statement not allowed in interface part. Предложения в секции интерфейса программного модуля недопустимы.
- 47. Syntax error in real number. Синтаксическая ошибка в записи числа вещственного типа.
- 48. There is no overload version of <Имя> that can be called with these arguments.Не предусмотрен перегружаемый блок <Имя>, который мог бы вызываться с таким аргументом. Пример: IntToStr(x), где х – выражение вещественного типа.
- 49. Too many actual parameters. Фактических параметров больше, чем формальных.
- 50. Type actual and formal var parameters must be identical. Тип фактического параметра должен быть идентичен типу формального параметра-переменной.
- 51. Type of expression must be <Тип>. Выражение должно быть указанного типа. Например,после While и Until должно стоять логическое выражение.
- 52. Undeclared identifier: <Имя>.Не описано <Имя>. Проверьте есть ли описание в нужном месте,нет ли описок в имени. Если указано имя компонента формы, проверьте,поместили ли компонент на данную форму.
- 53. Unexpected end of file in comment started on line <N>. Неожиданный конец файла при незавершенном комментарии, начало комментария — в строке N.
- 54. Unit name mismatch: <Имя>. Имя модуля ошибочно.
- 55. Unsatisfied forward or external declaration <Имя>. Отсутствует описание блока, объявление которого было дано (заголовок в интерфейсе или в описании объектного типа, либо упреждающее описание).
- 56. Unterminate string. He закрыта апострофом строка-константа типа string.
Рассмотрим также некоторые сообщения классов warning и hint.
- Return value of function <Имя> might be undefined. В теле функции нет присваивания ее результата.
- Variable <Имя> might not have been initialized. Указывает имя переменой, которой не задали значения.
- For-Loop variable <Имя> may be undefined after loop. Попытка использования значения параметра For-цикла после завершения этого цикла.
- Text after final ‘END.’ ignored by compiler. Текст, идущий за конечной строкой модуля, игнорируется компилятором.
- Variable <Имя> is declared but never used in <Имя блока>. Обращает внимание на переменную <Имя>, описанную,но не нашедшую применения.
- Value assigned to <Имя> never used. Хотя бы одно значение переменной <Имя> никак не использовано.
Несколько рекомендаций
Сосредотачивайтесь на первом сообщении компилятора. Исправление хотя бы одной ошибки и повторная компиляция может значительно уменьшить число сообщений об ошибках,поэтому не упорствуйте, стремясь понять сразу причину каждого сообщения.
Не удаляйте прежний вариант кода,пока не убедитесь,что ошибка устранена. Лучше на время закомментировать код,заключив его в скобки: { код }
Компилятор не анализирует, как будет выполняться программа, поэтому выход значения индекса из диапазона выявляет только если индекс задан константным выражением. Деление на ноль вообще пропускается, кроме оператора div, в случае если делитель — константное выражение.
Содержание
- Error unit1 pas 43 expected but found
- Error unit1 pas 43 expected but found
- Помогите с Delphi, не могу разобраться с ошибками
- Почему выдаёт ошибку? Где я накосячила? Ошибка: unit1.pas(120,5) Fatal: Syntax error, «;» expected but «ELSE» found
Error unit1 pas 43 expected but found
Screenshot_1.png
[Error] Unit1.pas(402): ‘;’ expected but ‘BEGIN’ found
[Ошибка] Unit1.pas (402): ‘;’ как ожидается, но ‘BEGIN’ найдено
Не понятно что за ошибка вроде бы все правильно!
Помогите буду очень благодарен !
Решение в следующем сообщении
[Error] Unit1.pas(402): ‘;’ expected but ‘BEGIN’ found
Ожидал точку с запятой, а наткнулся на BEGIN.
И, кстати, мне интересно, зачем у вас Block объявлен, как string, где максимальная длина — 255 символов, если вы туда помещаете результат работы метода get компонента idHTTP, что существенно будет превышать этот объём?
как string, где максимальная длина — 255 символов
Точку с запятой после Block: string поставить забыли.
Вам же написано:
Ожидал точку с запятой, а наткнулся на BEGIN.
И, кстати, мне интересно, зачем у вас Block объявлен, как string, где максимальная длина — 255 символов, если вы туда помещаете результат работы метода get компонента idHTTP, что существенно будет превышать этот объём?
Источник
Error unit1 pas 43 expected but found
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ICQClient, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Button1: TButton;
ICQClient1: TICQClient;
procedure Button1Click(Sender: TObject);
procedure ICQClient1Login(Sender: TObject);
procedure ICQClient1MsgAck(Sender: TObject; UIN: String; ID: Word);
private
< Private declarations >
public
< Public declarations >
end;
var
Form1: TForm1;
procedure TForm1.Button1Click(Sender: TObject);
begin
ICQClient1.UIN:=номер аськи; //Номер аськи с кторой отсылаем
ICQClient1.Password:=’пароль’; //пароль той аськи
icqclient1.Login(); //конект
end;
procedure TForm1.ICQClient1Login(Sender: TObject);
begin
var S: string; //Например объяви сперва такую переменную
skycar | Дата: Воскресенье, 05.02.2012, 21:07 | Сообщение # 4 |
|
Нельзя объявлять переменные внутри процедуры или функции после begin, перенеси её объявление ДО ключевого слова begin |
z1pp0 | Дата: Воскресенье, 05.02.2012, 21:11 | Сообщение # 5 |
|
S:=Edit1.Text + ‘;’ + Edit2.Text + ‘;’+ Edit3.Text; теперь в этом беда? |
skycar | Дата: Воскресенье, 05.02.2012, 21:14 | Сообщение # 6 |
Добавлено (05.02.2012, 21:14) |
|
z1pp0 | Дата: Воскресенье, 05.02.2012, 21:18 | Сообщение # 7 |
|
[Ошибка] Unit1.pas(41): Identifier redeclared: ‘S’ [Ошибка] Unit1.pas(41): ‘,’ or ‘:’ expected but ‘+’ found [Ошибка] Unit1.pas(41): ‘,’ or ‘:’ expected but ‘.’ found [Ошибка] Unit1.pas(41): ‘,’ or ‘:’ expected but ‘.’ found [Ошибка] Unit1.pas(42): Type expected but ‘BEGIN’ found [Фатальная ошибка] Project1.dpr(5): Could not compile used unit ‘Unit1.pas’ _______________________________________________ uses type var procedure TForm1.Button1Click(Sender: TObject); procedure TForm1.ICQClient1Login(Sender: TObject); procedure TForm1.ICQClient1MsgAck(Sender: TObject; UIN: String; ID: Word); Источник Помогите с Delphi, не могу разобраться с ошибкамиuses type procedure Button1Click(Sender: TObject); var procedure TForm1.Button1Click(Sender: TObject); randomize; [Error] Unit1.pas(102): Declaration expected but end of file found Источник Почему выдаёт ошибку? Где я накосячила? Ошибка: unit1.pas(120,5) Fatal: Syntax error, «;» expected but «ELSE» foundprocedure TForm1.RadioButton1Change(Sender: TObject); Button1.Enabled:=True; —-исходный кусок ———— З. Ы. внимательнее с синтаксисом. лучше код форматировать отступами, вроде так: Источник Adblock |
- Печать
Страницы: [1] Вниз
Тема: Помогите зеленому с паскалем. (Прочитано 4165 раз)
0 Пользователей и 1 Гость просматривают эту тему.

wannabebrucelee
В общем в универе ща паскаль проходят, хочу познать его на уровне решения лаб , но есть проблема. У меня чёт не получается настоить инструменталий или я чёто не то делаю.
В общем ubuntu 9.10, на неё поставил Lazarus.
В source editor пишу:
program hello;
var
i;
begin
i := 0;
WriteLn(i);
Write (‘Hello’);
ReadLn;
end.
Потом нажимаю на зелёную стрелку и вылазит сообщение: unit1.pas(1,1) Fatal: Syntax error, «UNIT» expected but «PROGRAM» found
Что я делаю не так ( чую, что я всё делаю не так…), Но просто никогда не пользовался подобными программами. Я просто боле мене знаком с вебом(php, css) и там всё совсем по другому.
В общем помогите глупому быдлокодеру разобраться с инструменталием.

MaSsoL
Может тип переменной объявить?

jef

wannabebrucelee
program hello;
var
i: Word;
begin
i:= 0;
WriteLn(i);
Write(‘Hello’);
ReadLn;
end.
вроде так.
Так?)
Ну это всё тоже самое выдаёт и получается.

wl
Учите Паскаль, все же придется это сделать.
Разберитесь чем unit отличается от program.
unit1.pas(1,1) Fatal: Syntax error, «UNIT» expected but «PROGRAM» found
unit (модуль) — это библиотека функций и классов, а program — это программа.
Модулей в программе может быть много, но точка входа в исполняемый код всего одна, и она в программе.
Я никогда не программировал в лазарусе, а паскаль еще 10 лет назад в институте забыл как страшный сон.
Но думаю, что там надо организовать проект, дать возможность отработать визардам, чтобы компилятор получил на вход правильную команду.
Возможно, лазарус — это стрельба из пушки по воробьям, и в Вашем случае достаточно будет free pascal и текстового редактора с подсветкой синтаксиса.
На свете феньки есть такие, брат Горацио, которых лохи просто не секут. (Шекспир, «Гамлет», вольный перевод)

wannabebrucelee
А как free pascal установить? Просто через поиски выдаёт на лазарус в основном и на ссылки, где я мало чё понимаю. И блокнот с подстветкой синстаксиса как установить? Пожалуйста, направьте на путь истинный.

Protopopulus
Синтаксис подсвечивается в стандартном gedit.
Установить — sudo apt-get install fpc (в терминале)
Если ты владеешь знаниями, то и знания владеют тобой. (с) Protopopulus

wannabebrucelee
rm -rf ~/fpcinstall
mkdir ~/fpcinstall
cd ~/fpcinstall
wget ftp://ftp.chg.ru/pub/lang/pascal/fpc/dist/2.4.0/i386-linux/deb/*.deb
dpkg-scanpackages ./ | gzip -c9 > Packages.gz
grep «deb file:///$HOME/fpcinstall/ /» /etc/apt/sources.list || sudo echo «deb file:///$HOME/fpcinstall/ /» >> /etc/apt/sources.list
sudo apt-get update
sudo apt-get install fpc
Я вот чё в нете ща нашёл, и установил, это нормально? Я ничё не наворочил?
Ну вот я пишу код в gedit а потом куда и что мне сохранять? в каком формате? И как выводить результат работы прграммы?

Protopopulus
Нормально все установил, молодец.
А по поводу написания… Сохраняешь в любой текстовый (plain-text) документ, можешь даже с расширением pas. А потом с терминала компилякаешь его:
fpc -TLINUX /path/to_document
Потом запускаешь:
/path_to/program
Программа будет иметь название исходного файла минус расширение .pas и лежать в той же директории, что и исходник.
Если ты владеешь знаниями, то и знания владеют тобой. (с) Protopopulus

wannabebrucelee
спасибо, пока вроде всё работает, ну я ещё обращусь, если чё)
- Печать
Страницы: [1] Вверх
INTELLIGENT WORK FORUMS
FOR COMPUTER PROFESSIONALS
Contact US
Thanks. We have received your request and will respond promptly.
Log In
Come Join Us!
Are you a
Computer / IT professional?
Join Tek-Tips Forums!
- Talk With Other Members
- Be Notified Of Responses
To Your Posts - Keyword Search
- One-Click Access To Your
Favorite Forums - Automated Signatures
On Your Posts - Best Of All, It’s Free!
*Tek-Tips’s functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.
Posting Guidelines
Promoting, selling, recruiting, coursework and thesis posting is forbidden.
Students Click Here
Urgent help on who to coùmunicate to external applicationUrgent help on who to coùmunicate to external application(OP) 26 Sep 15 20:33 Hi all: I have imported a library of a software to delphi7 , I have got a file which called WINFIOLLib_TLB.pas.which contain a procedure and interface . in order to comunicate to that sofware I have found this code on the net but it doesen’t work properly . the first fault I got is ‘:’ expected but ‘=’ found on TForm1 = class(TForm). CODE —>uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TWFEvent = class (TInterfacedObject, IWFEvent) TForm1 = class(TForm) Button1: TButton; Memo1: TMemo; OpenDialog1: TOpenDialog; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); procedure FormDblClick(Sender: TObject); private { Private declarations } public { Public declarations } procedure Notify(event: SYSINT; const text: WideString); safecall; end; var Form1: TForm1; WinFIOL_Application1: TWinFIOL_Application; implementation {$R *.dfm} procedure TWFEvent.Notify(event: SYSINT; const text: WideString); safecall; begin; Form1.Memo1.Lines.Add(IntToStr (Event)); Form1.Memo1.Lines.Add(String (Text)); procedure TForm1.FormDblClick(Sender: TObject); Var Ch: IWFChannel; Event: TWFEvent; begin Ch := WinFiol_Application1.GetChannelPointer(WinFiol_Application1.GetCurrentChannel); WinFiol_Application1.GetCurrentChannel <> 0 Event := TWFEvent.Create; // EMask := WFEVENTMASK_ALL; // Ch.Advise(Channel.Event, EMask); end; procedure TForm1.FormCreate(Sender: TObject); begin WinFIOL_Application1 := TWinFIOL_Application.Create(self); end; procedure TForm1.Button1Click(Sender: TObject); Var Chn_Name: String; New_Ch: Integer; begin OpenDialog1.InitialDir := 'C:Program FilesElement ManagementChnFiles'; If OpenDialog1.Execute Then Chn_Name := OpenDialog1.FileName Else Exit; WinFIOL_Application1.OpenChannelFile(Chn_Name, 0, New_Ch); WinFiol_Application1.GetChannelPointer(New_Ch).SetReadBuffer(512, 4); end; end. NB: all fault code are summurized bellow: [Error] Unit1.pas(25): Undeclared identifier: ‘TWinFIOL_Application’ what is the wrong on this code ? thanks for your help and suggestions Red Flag SubmittedThank you for helping keep Tek-Tips Forums free from inappropriate posts. |
Join Tek-Tips® Today!
Join your peers on the Internet’s largest technical computer professional community.
It’s easy to join and it’s free.
Here’s Why Members Love Tek-Tips Forums:
Talk To Other Members
- Notification Of Responses To Questions
- Favorite Forums One Click Access
- Keyword Search Of All Posts, And More…
Register now while it’s still free!
Already a member? Close this window and log in.
Join Us Close
Приступим к обработке событий. Начнем
с нажатия кнопки Вычислить.
Активизируйте кнопку, с которой будем
работать, затем перейдите к окнуObjectInspectorи переключитесь на вкладкуEvents(события). На ней вы обнаружите
список всех возможных событий для
активного компонента (в данном случае
кнопки). Нас интересует событиеOnClick,
возникающее при нажатии кнопки. Чтобы
запрограммировать обработчик этого
события, сделайте двойной щелчок мыши
в поле значения. Появится окно редактора
кода с заготовкой для нашего обработчика.
(Рис.
4.1) Окно редактора
Между procedureиbeginвпишите объявления переменных, а междуbeginиendалгоритм вычисления квадратного
уравнения.
procedure
TForm1.Button1Click(Sender: TObject);
var
a,
b, c: Integer;
d,
x1, x2: Real;
begin
a
:= StrToInt(Edit1.Text);
b
:= StrToInt(Edit2.Text);
c
:= StrToInt(Edit3.Text);
d := sqr(b)
— 4 * a * c;
if
d < 0 then
begin
Edit4.Text := ‘Корней нет’;
Edit5.Text := ‘Корней нет’;
end
else
begin
x1 := (-b — sqrt(d)) / (2 * a);
Edit4.Text := FloatToStr(x1);
x2 := (-b + sqrt(d)) / (2 * a);
Edit5.Text
:= FloatToStr(x2);
end;
end;
При кодировании исходного кода Delphiбудет подсказывать, и помогать выбрать
правильный метод или свойство из списка
(функция завершения кода). Для активации
списка просто введите имя объекта,
напримерEdit1, и
поставьте точку, для принудительного
вывода списка нажмитеCtrl+пробел,
для удаления, если он не нуженEsc.
(Рис.
4.2) Функция завершения кода
(Рис
4.3) Общий вид
5. Компиляция и исправление синтаксических ошибок
Обычно программа редко сразу начинает
работать так, как надо, или работает
правильно только на некотором ограниченном
наборе исходных данных. Это свидетельствует
о том, что в программе есть алгоритмические
ошибки. Процесс поиска и устранение
ошибок называется отладкой.
Ошибки, которые могут быть в программе,
принято делить на три группы:
-
синтаксические;
-
ошибки времени выполнения;
-
алгоритмические.
Синтаксические ошибки, их также называют
ошибками времени компиляции (Compile-time
error), наиболее легко устранимы. Их
обнаруживает компилятор, а программисту
остается только внести изменения в
текст программы и выполнить повторную
компиляцию.
(Рис
5.1) Ошибка при компиляции
Наиболее часто встречающиеся синтаксические
ошибки:
[Error] Unit1.pas(42):
‘:=’ expected but
‘=’ found— Вместо
ожидаемого символа (или набора символов,
например :=) в тексте программы встречается
иное.
[Error] Unit1.pas(43): Missing operator or
semicolon – пропущена
точка с
запятой — ;
[Error] Unit1.pas(49): Undeclared identifier:
‘x’ – Не
объявленный идентификатор.
Проверьте правильность имени
идентификатора. Возможно вы пропустили
какой-нибудь символ напримерx1.
[Error] Unit1.pas(57):
‘;’ expected but
‘.’found– Неправильно
составлены блоки заканчивающиеся наend. Часто ошибка встречается
в циклах.
[Error] Unit1.pas(51): ‘)’ expected but ‘;’
found – Пропущена
закрывающаяся скобка.
Ошибка встречается при вызове
методов, процедур или функций с
параметрами. Внимательно проверьте
количество открывающихся и закрывающихся
скобок должно быть одинаковым.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #