| 
| 
 | Вопрос # 5 248/ вопрос решён / | 
 |  Доброго времени суток, уважаемые эксперты!Я пытаюсь программировать простейший графический редактор, типа pаint.
 Но в ходе работы я сталкиваюсь с одной и той же проблемой:
 
 [Error] Unit1.pas(144): Statement expected but 'PROCEDURE' found
 [Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'
 
 Я не знаю уже как её исправить... в приложении выкладываю код.
 Проблемной процедурой является:
 
 procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,  Y: Integer);
 
 Буду очень признательна, если сможете мне помочь =-)
 Приложение:Переключить в обычный режим unit Unit1; interface uses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs, ColorGrd, ExtDlgs, ExtCtrls, Buttons, StdCtrls, Menus; type  TForm1 = class(TForm)    MainMenu1: TMainMenu;    N1: TMenuItem;    N2: TMenuItem;    N3: TMenuItem;    N4: TMenuItem;    N5: TMenuItem;    Panel1: TPanel;    Panel2: TPanel;    Label1: TLabel;    Label2: TLabel;    SpeedButton1: TSpeedButton;    SpeedButton2: TSpeedButton;    SpeedButton3: TSpeedButton;    SpeedButton4: TSpeedButton;    SpeedButton5: TSpeedButton;    SpeedButton6: TSpeedButton;    SpeedButton7: TSpeedButton;    SpeedButton8: TSpeedButton;    Image1: TImage;    OpenPictureDialog1: TOpenPictureDialog;    SavePictureDialog1: TSavePictureDialog;    ColorDialog1: TColorDialog;    ColorGrid1: TColorGrid;    Edit1: TEdit;    Panel3: TPanel;    Label3: TLabel;    Label4: TLabel;    Label5: TLabel;    procedure FormCreate(Sender: TObject);    procedure N4Click(Sender: TObject);    procedure N5Click(Sender: TObject);    procedure Panel1DblClick(Sender: TObject);    procedure Label1DblClick(Sender: TObject);    procedure ColorGrid1Change(Sender: TObject);    procedure N2Click(Sender: TObject);    procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;      Shift: TShiftState; X, Y: Integer);    procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X,      Y: Integer);    procedure Image1MouseUp(Sender: TObject; Button: TMouseButton;      Shift: TShiftState; X, Y: Integer);    procedure SpeedButton1Click(Sender: TObject);  private    { Private declarations }  public    { Public declarations }  end; var  Form1: TForm1;  cl: TColor;  drag: boolean = false;  rect1: boolean = false;  crect1: boolean = false;  circl1: boolean = false;  line1: boolean = false;  pen1: boolean = false;  cpen1: boolean = false;  text1: boolean = false;  brush1: boolean = false;  X1, Y1, X2, Y2: integer;  brsize: byte; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject);begin   image1.Canvas.Brush.Color:=clWhite;   image1.Canvas.FillRect(ClientRect);end; procedure TForm1.N4Click(Sender: TObject);begin   if OpenPictureDialog1.Execute then   image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);end; procedure TForm1.N5Click(Sender: TObject);begin   if SavePictureDialog1.Execute then   image1.Picture.SaveToFile(SavePictureDialog1.FileName);end; procedure TForm1.Panel1DblClick(Sender: TObject);begin   if ColorDialog1.Execute then   cl:=ColorDialog1.Color;end; procedure TForm1.Label1DblClick(Sender: TObject);begin   if ColorDialog1.Execute then   cl:=ColorDialog1.Color;end; procedure TForm1.ColorGrid1Change(Sender: TObject);begin   cl:=ColorGrid1.ForegroundColor;end; procedure TForm1.N2Click(Sender: TObject);begin   image1.Canvas.Brush.Color:=clWhite;   image1.Canvas.FillRect(ClientRect);   rect1:= false;   crect1:= false;   circl1:= false;   line1:= false;   pen1:= false;   cpen1:= false;   text1:= false;   brush1:= false;end; procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;  Shift: TShiftState; X, Y: Integer);begin   if pen1 then     begin        image1.Canvas.Pen.Color:=cl;        drag:=true;        image1.Canvas.MoveTo(X,Y);     end;   if brush1 then     begin        with image1.Canvas do begin        brush.Color:=cl;        floodfill(X,Y,Pixels[X,Y],fsSurface);     end;end; procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,  Y: Integer);begin   if pen1 then      if drag then image1.Canvas.LineTo(X,Y);end; procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;  Shift: TShiftState; X, Y: Integer);begin   drag:= false;end; procedure TForm1.SpeedButton1Click(Sender: TObject);begin   rect1:= false;   crect1:= false;   circl1:= false;   line1:= false;   pen1:= true;   cpen1:= false;   text1:= false;   brush1:= false;end; end.
|  |   Вопрос задала: Haenta (статус: Посетитель)Вопрос отправлен: 1 мая 2011, 21:56
 Состояние вопроса: решён, ответов: 1.
 |  Ответ #1. Отвечает эксперт: Шичко Игорь Здравствуйте, Виктория!Не хватает еще одного end; после 140 строчки
 ...
 if brush1 then
 begin
 with image1.Canvas do
 begin
 brush.Color:=cl;
 floodfill(X,Y,Pixels[X,Y],fsSurface);
 end;
 end;
 ...
 
 В виде рекомендации: когда пишете код, то поставив  begin, сразу ставьте end;, а между ними код.
 
|  | Ответ отправил: Шичко Игорь (статус: 9-ый класс)Время отправки: 1 мая 2011, 22:50
 Оценка за ответ: 5
 Комментарий к оценке: спасибо))теперь только так))
 |  
 Мини-форум вопросаВсего сообщений: 11; последнее сообщение — 2 мая 2011, 17:00; участников в обсуждении: 5. 
|   | Drinkenz (статус: 1-ый класс), 1 мая 2011, 22:17 [#1]:137 строку удалить, она лишняя |  
|   | Haenta (статус: Посетитель), 1 мая 2011, 22:25 [#2]:Она не может быть лишней. это часть операторных скобок.
 А кофе на клавиатуру тоже вирус пролил? |  
|   | Шичко Игорь (статус: 9-ый класс), 1 мая 2011, 22:30 [#3]:После 140 строчки нужен еще один end; |  
|   | Шичко Игорь (статус: 9-ый класс), 1 мая 2011, 22:31 [#4]:if brush1 then begin
 with image1.Canvas do
 begin
 brush.Color:=cl;
 floodfill(X,Y,Pixels[X,Y],fsSurface);
 end;
 end;
 |  
|   | Haenta (статус: Посетитель), 1 мая 2011, 22:36 [#5]:Спасибо =-)) Программа компилируется)) ура)))
 
 а вот эта проблема была только из-за отсутствия end?
 
 просто мы полтора часа вместе с преподавателем пыталась выяснить ошибку, но так и не смогли.
 А кофе на клавиатуру тоже вирус пролил? |  1 мая 2011, 22:54: Статус вопроса изменён на решённый (изменил автор вопроса — Haenta) 
|   | Толяныч (статус: 4-ый класс), 1 мая 2011, 23:00 [#6]:Виктория: > просто мы полтора часа вместе с преподавателем пыталась
 > выяснить ошибку, но так и не смогли.
 
 Невыдуманная история
 - Маяковский, мы вчера с приятелем читали Ваши стихи и ничего в них не поняли.
 - Надо было читать с умным приятелем.
 
 Когда в 'С' я попадал в такую ситуацию со скобками {} , разозлился и за 10 минут написал прогу, которая шерстит мой исходник и находит непарные скобки. Иногда очень помогала.
 |  
|   | Haenta (статус: Посетитель), 1 мая 2011, 23:06 [#7]:Хех))) намёк поняла))
 
 просто думали, что дело не в begin и end.
 и почему-то мне казалось, что Делфи сам пишет недостающие скобки
 А кофе на клавиатуру тоже вирус пролил? |  
|   | min@y™ (статус: Доктор наук), 2 мая 2011, 10:52 [#8]: Цитата (Haenta): и почему-то мне казалось, что Делфи сам пишет недостающие скобки  Ога! А если чётко и с выражением в монитор произнести свою фамилию, то delphi сама весь код напишет.
  Остаётся только сходить в кассу и получить зарплату. Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | Haenta (статус: Посетитель), 2 мая 2011, 16:45 [#9]:min@y™: > А если чётко и с выражением в монитор произнести свою фамилию, то delphi сама весь код напишет.
 
 хаха)))
 это было бы идеально))))
 А кофе на клавиатуру тоже вирус пролил? |  
|   | min@y™ (статус: Доктор наук), 2 мая 2011, 16:54 [#10]: Цитата (Haenta): хаха))) это было бы идеально))))  Тогда бы труд программистов обесценился бы до нуля.
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | Haenta (статус: Посетитель), 2 мая 2011, 17:00 [#11]:min@y™: > Тогда бы труд программистов обесценился бы до нуля.
 
 не думаю =-)))
 ведь произносить свою фамилию с выражением и именно в монитор, тоже уметь надо
  ) А кофе на клавиатуру тоже вирус пролил? |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |