Показать сообщение отдельно
  #13  
Старый 07.07.2010, 20:25
Pigmalion Pigmalion вне форума
Прохожий
 
Регистрация: 01.07.2010
Сообщения: 20
Репутация: 10
По умолчанию

Вот еще вопрос.
Эта процедура рисует прямоугольник,изменяющий цвет прои щелчке, с текстом(спасибо lmikle - упростил)

Код:
procedure CreateBlock(Canvas:TCanvas;x,y,z,x1,y1,x2,y2:integer;
 var Pr:boolean;s:string);
begin
  if Pr
    then Canvas.Brush.Color:=clgreen
    else Canvas.Brush.Color:=clred;
  Canvas.rectangle(x1,y1,x2,y2);
  Canvas.Font.Size:=z;
  Canvas.Font.Color:=clBlack;
  Canvas.TextOut(x,y,s);
  Pr:= not Pr;
end;,

а эта должна изменять цвет линии при щелчке на двух прямоугольниках,которые она соединяет:

Код:
procedure PaintLine(Canvas:Tcanvas;x1,y1,x2,y2:integer;
var Pr1,Pr2,Pr3:Boolean);
begin
 if  not Pr1 and not Pr2 then
  Pr3:=true;
   if Pr3 then
    Canvas.Pen.Color:=clgreen
    else Canvas.Pen.Color:=clred;
     Canvas.Pen.Width:=5;
     Canvas.MoveTo(x1,y1);
     Canvas.LineTo(x2,y2);
     Pr1:= Pr1;
     Pr2:= Pr2;
     Pr3:=not Pr3;
  end;

Но не изменяет, а если перенести Pr:= not Pr; во вторую(как я думал из-за этого первая перекрывает данные второй процедуры),то тоже ничего не выходит.
Ответить с цитированием