Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.07.18;
Скачать: CL | DM;

Вниз

Компиляция программы   Найти похожие ветки 

 
ALEIIIKA   (2004-07-05 09:05) [0]

Во время компиляции программы выдает сообщение об ошибке:
Declaration expected but "IF" found
в строке

if ComboBox1.Text<>"" then
 begin
   Canvas.Font.Color:=clRed;
   Canvas.Font.Size:=18;
 end;
,
пробовал компилировать из командной строки - все компилируется нормально. EXE  файл создается.
Если убираешь строку проверки условия, то ругается на то, что не знает что такое Канвас, помогите в чем причина.


 
KADAN ©   (2004-07-05 09:14) [1]

а этот exe-файл запускается?


 
ALEIIIKA   (2004-07-05 09:18) [2]

Да запускается и работает нормально.


 
ALEIIIKA   (2004-07-05 09:20) [3]

Но еще одна фишка:

var
x : integer;
begin
 ......
 {выполняются действия}
 используется x
 ......
 x := 3; // а здесь выдает аналогичную ошибку
end;

файл компилируется в командной строке без ошибок, и нормально работает, а из среды - никак


 
KADAN ©   (2004-07-05 09:25) [4]

то есть аналогичную? опять говорит что if не нужен? или Canvas не объявлена?


 
Ega23 ©   (2004-07-05 09:26) [5]

Код всей процедуры давай.


 
Digitman ©   (2004-07-05 09:30) [6]


> Declaration expected but "IF" found
> в строке
>
> if ComboBox1.Text<>"" then


ошибка где-то выше по тексту, а не в этой строке

Declaration expected but "IF" found означает, что при синтакс.разборе предыдущего оператора компилятор ожидал некий токен, подразумевающий некую обязательную декларацию (например, некоего идентификатора), а вместо этого обнаружил оператор IF, что недопустимо в тек.контексте


 
KADAN ©   (2004-07-05 09:33) [7]


> Digitman ©   (05.07.04 09:30) [6]

Однако, файл компилируется в командной строке без ошибок, и нормально работает


 
Reindeer Moss Eater ©   (2004-07-05 09:36) [8]

Однако, файл компилируется в командной строке без ошибок, и нормально работает

Другой файл компилируется, а не этот


 
Ega23 ©   (2004-07-05 09:37) [9]

Однако, файл компилируется в командной строке без ошибок, и нормально работает

Это ещё ничего не значит. Давай код ВСЕЙ процедуры.


 
Andr ©   (2004-07-05 10:41) [10]

Или хотя бы предыдущую строчку :)


 
Anatoly Podgoretsky ©   (2004-07-05 10:53) [11]

И другой не компилирует, вот запускается другой это точно.


 
ZZZubec ©   (2004-07-05 11:54) [12]

Насколько вижу я из твоего примера:

>Если убираешь строку проверки условия, то ругается на то, что >не знает что такое Канвас, помогите в чем причина.

Очевидно у компонента TComboBox есть класс TCanvas, поэтому, когда ты убираешь условие, он не может понять чей Canvas, для правильной транскрипции попоробуй написать:
ComboBox1.Canvas.Font.Color:=clRed;
ComboBox1.Canvas.Font.Size:=18;

Всех реград! 8)


 
ALEIIIKA   (2004-07-05 12:51) [13]

Все нашел, оказывается в конце одной длинной строки потерялся end
теперь все работает.
Всем спасибо


 
Mim1 ©   (2004-07-05 17:27) [14]

Тоже из раздела не верь глазам своим.

[2004-07-02 16:18:55] <qdron> народ!!!!!!!!
[2004-07-02 16:19:00] <qdron> ДАйте хелпу
[2004-07-02 16:21:42] <Mim> Привет
[2004-07-02 16:21:49] <Mim> Какую хелпу?
[2004-07-02 16:22:08] <qdron> по проге
[2004-07-02 16:22:17] <qdron> воть кусок исходного текста
[2004-07-02 16:22:28] <Mim> ыыы
[2004-07-02 16:24:06] <qdron> unit Unit1;
[2004-07-02 16:24:06] <qdron> interface
[2004-07-02 16:24:06] <qdron> uses
[2004-07-02 16:24:06] <qdron>  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
[2004-07-02 16:24:06] <qdron>  Dialogs, StdCtrls;
[2004-07-02 16:24:06] <qdron> Type
[2004-07-02 16:24:06] <qdron> TForm1 = class(TForm)
[2004-07-02 16:24:08] <qdron> ListBox1: TListBox;
[2004-07-02 16:24:08] <qdron> Button1: TButton;
[2004-07-02 16:24:10] <qdron> procedure Button1Click(Sender: TObject);
[2004-07-02 16:24:10] <qdron> private
[2004-07-02 16:24:21] <qdron> ругаеться на строку- unit Unit1;
[2004-07-02 16:25:37] <Mim> а как ругается?
[2004-07-02 16:26:01] <qdron> матом:)
[2004-07-02 16:26:21] <Mim> Наверное говорит что unit это зарезервированное слово ? :)
[2004-07-02 16:27:41] <qdron> [Warning] Unit1.pas(41): Symbol "faVolumeID" is specific to a platform
[2004-07-02 16:43:52] <Mim> ты это к чему
[2004-07-02 16:46:47] <Mim> Вообщем можно это отключить
[2004-07-02 16:46:47] <Mim> {$WARN UNIT_PLATFORM OFF}
[2004-07-02 16:48:11] <qdron> неа не как
[2004-07-02 16:48:31] <Mim> Мдя :(
[2004-07-02 16:48:52] <Mim> The whole unit is tagged (using the platform hint directive) as one that contains material that may not be available on all platforms. If you are writing cross-platform applications, it may cause a problem. For example, a unit that uses objects defined in OleAuto might be tagged using the PLATFORM directive
[2004-07-02 16:48:52] <Mim> The $WARN UNIT_PLATFORM ON/OFF compiler directive turns on or off all warnings about the platform directive in units where the platform directive is specified.
[2004-07-02 16:49:09] <Mim> Должно исправляться
[2004-07-02 16:49:53] <Mim> Смотри в общем в справке раздел Warning messages
[2004-07-02 16:50:19] <Mim> В настройках проекта должна быть галочка делающая тоже самое
[2004-07-02 16:50:32] <Mim> Если это не срабатывает то ищи ее
[2004-07-02 16:50:46] <Mim> название в стиле WARN UNIT_PLATFORM
[2004-07-02 16:51:19] <qdron> кстать у тя русского delphi Help нету?
[2004-07-02 16:51:37] <Mim> Не только у меня
[2004-07-02 16:51:44] <Mim> его вообще не существует
[2004-07-02 16:52:19] <qdron> Есть
[2004-07-02 16:52:32] <Mim> есть издевательства над справкой, которые хелпом назвать нельзя
[2004-07-02 16:52:32] <qdron> у мя за спиной такой счастливый сидит с ним....
[2004-07-02 16:52:43] <qdron> только эта сволочь не доет его
[2004-07-02 16:52:49] <Mim> Книгой эта справка называется?
[2004-07-02 16:52:51] <Mim> :)
[2004-07-02 16:53:42] <Mim> Все равно без знания технического английского серьезным програмистом не стать
[2004-07-02 16:53:52] <qdron> нет
[2004-07-02 16:54:03] <Mim> хотябы на уровне чтения справки
[2004-07-02 16:54:11] <qdron> обычный delphi help только русский
[2004-07-02 16:54:18] <Mim> :)
[2004-07-02 16:56:39] <qdron> блин...чеж ей не хватает...то??!
[2004-07-02 16:56:53] <qdron> могеть и правда изза платформы....?
[2004-07-02 16:57:44] <Mim> Он говорит что эта константа специфична для платформы
[2004-07-02 16:57:58] <Mim> то есть под линуксом не пойдет твоя программа
[2004-07-02 16:58:09] <Mim> Причем это не эррор а варнинг
[2004-07-02 16:58:34] <Mim> то есть програтмма компилится, нормально
[2004-07-02 16:58:42] <Mim> но просто при этом ругается
[2004-07-02 17:06:34] <qdron> нет не компилиться ругаеться на эту строку и все я имею явные подозрения что проста нада чтото перед этой строкой поставить
[2004-07-02 17:06:42] <qdron> есстесно не //
[2004-07-02 17:16:34] <Mim> Ну что я могу сказать
[2004-07-02 17:16:43] <Mim> чудес на свете не бывает
[2004-07-02 17:16:53] <Mim> И если один челове мне гоорит
[2004-07-02 17:16:57] <Mim> что вода горит
[2004-07-02 17:17:03] <Mim> то что я могу ответить
[2004-07-02 17:17:23] <Mim> Всегда при warning"е компилится
[2004-07-02 17:17:30] <Mim> А у тебя чудо :)
[2004-07-02 17:17:44] <Mim> Может ошибка следующей строкой у тебя идет?
[2004-07-02 17:38:01] <qdron> нет
[2004-07-02 17:38:27] <qdron> хатя....еси я удаляю эту строку т...выдаеть типа ошибка....
[2004-07-02 17:38:39] <qdron> и так до самого конца все остальные строки непральные....
[2004-07-02 17:38:44] <qdron> а энто не реально....
[2004-07-02 17:43:30] <Mim> смешно
[2004-07-02 17:43:50] <Mim> Давай чт оли весь код сюда
[2004-07-02 17:47:14] <qdron> сюда?
[2004-07-02 17:47:18] <qdron> шутишь чтоль?
[2004-07-02 17:47:37] <qdron> я во первых затрахаюсь.....во вторых ваш бот меня забанит
[2004-07-02 17:48:13] <Mim> Блин, выложи хоть процедуру
[2004-07-02 17:48:19] <Mim> в которой бага
[2004-07-02 17:50:54] <qdron> unit Unit1;
[2004-07-02 17:50:55] <qdron> interface
[2004-07-02 17:50:55] <qdron> uses
[2004-07-02 17:50:55] <qdron>   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
[2004-07-02 17:50:55] <qdron>   Dialogs, StdCtrls;
[2004-07-02 17:50:56] <qdron> type
[2004-07-02 17:50:56] <qdron>   TForm1 = class(TForm)
[2004-07-02 17:50:58] <qdron>     ListBox1: TListBox;
[2004-07-02 17:50:58] <qdron>     Button1: TButton;
[2004-07-02 17:51:00] <qdron>     procedure Button1Click(Sender: TObject);
[2004-07-02 17:51:00] <qdron>   private
[2004-07-02 17:51:58] <Mim> Ладно, давай тогда в приват мне

<там>
[2004-07-02 17:56:06] <Mim> Назови чтоли модуль как нибудь по другому
[2004-07-02 17:56:15] <Mim> Например unit Mim1;
[2004-07-02 17:56:33] <Mim> Больше ошибок не вижу
[2004-07-02 17:56:40] <Mim> Давай остальной код
<тут мне в приват свалилось три куска никчемного кода>
<на канале>

[2004-07-02 18:03:09] <Mim> Ладно забей я домой
[2004-07-02 18:03:26] <qdron> я тебе почти докидал
[2004-07-02 18:06:25] <Mim> У меня компилится
[2004-07-02 18:06:25] <Mim> C:\>dcc32 mod1.pas
[2004-07-02 18:06:25] <Mim> Borland Delphi Version 15.0
[2004-07-02 18:06:25] <Mim> Copyright (c) 1983,2002 Borland Software Corporation
[2004-07-02 18:06:25] <Mim> mod1.pas(19) Warning: File not found: "mod1.dfm"
[2004-07-02 18:06:25] <Mim> mod1.pas(33) Warning: Symbol "faVolumeID" is specific to a platform
[2004-07-02 18:06:25] <Mim> mod1.pas(73)
[2004-07-02 18:06:25] <Mim> 74 lines, 0.33 seconds, 1192 bytes code, 8 bytes data.
[2004-07-02 18:06:42] <Mim> Ошибок синтаксиса нет


Отсюда вывод. Если ктото говорит то чего быть не может не верь - он врет


 
ламер ©   (2004-07-05 19:01) [15]

> ALEIIIKA   (05.07.04 12:51) [13]
> Все нашел, оказывается в конце одной длинной строки потерялся end
> теперь все работает.
> Всем спасибо
вот именно поэтому каждый begin и end должен стоять на отдельной строке. строго друг под другом.


 
афвуд   (2004-07-05 21:23) [16]

Ага. и ещё Можно ставить end сразу после того как написа begin. По крайней мере я себе это усвоил - помогает Ни разу с тех пор end"ов не терял.


 
GEN++ ©   (2004-07-05 23:28) [17]

> ALEIIIKA  
Можно еще так:

  for i:=1 to 15 do
   begin
     .....
     .....
     if i=5 then
       begin
         .....
         ....
       end ;//if i=5
       
   end;//for i:=1 to 15 <b/>


 
Amoeba ©   (2004-07-06 12:50) [18]

Установи пакет экспертов Castalia (очень недурная штука!) - и более таких потерь не будет.

Скачивать отсюда:
http://www2.0zones.com:808/SoftDown.asp?ID=548
А здесь кряк:
http://www2.0zones.com:808/SoftDown.asp?ID=11279

Подробности о Castalia здесь:
http://www.delphi-expert.com/castalia2/


 
Sandman25 ©   (2004-07-06 17:26) [19]

[18] Amoeba ©   (06.07.04 12:50)

У меня Castalia вызывала AV при нажатии Shift+I и при выходе из среды. Пришлось снести


 
Amoeba ©   (2004-07-06 17:36) [20]

У меня Castalia 2.3 с Delphi5 работает нормально.


 
Sandman25 ©   (2004-07-06 17:38) [21]

У меня была 2.2 и Delphi6. Попробую 2.3, спасибо!


 
Agent13 ©   (2004-07-06 18:15) [22]


> Ага. и ещё Можно ставить end сразу после того как написа
> begin.

Точно! 100% действует. Проверено на себе.


 
Amoeba ©   (2004-07-06 18:31) [23]


> Sandman25 ©   (06.07.04 17:38) [21]

По указанным мной ссылкам сейчас выложена уже версия 2.4 (вышла несколько дней назад)



Страницы: 1 вся ветка

Текущий архив: 2004.07.18;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.062 c
3-1088249786
Амир
2004-06-26 15:36
2004.07.18
Две таблицы


14-1088403217
ИМХО
2004-06-28 10:13
2004.07.18
Десять негритят Агаты Кристи


3-1088174881
*boba*
2004-06-25 18:48
2004.07.18
Запрос?


11-1076769216
RA
2004-02-14 17:33
2004.07.18
Меня часто вспрашивают: "А зачем оно надо?".


1-1088754538
Iconka
2004-07-02 11:48
2004.07.18
про StringGrid