Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.01.2011, 20:27   #1
nick17
Пользователь
 
Регистрация: 05.07.2010
Сообщений: 30
По умолчанию Не работает Canvas на панели (Panel1)

Доброго времени суток! У меня есть Форма (MainForm), и на ней панель (Panel1). И на панели (Panel1) сообщение клика мыши:
Код:
procedure TMainForm.Panel1Click(Sender: TObject);
begin
  Canvas.MoveTo(0,0);
  Canvas.Pen.Color := $FFFF00;
  Canvas.LineTo(100,100);
end;
и вобще ниче не работает)) а хочется, чтоб нарисовалась линия на панели.

если че:
не на панели все работает!
Код:
procedure TMainForm.FormClick(Sender: TObject);
begin
  Canvas.MoveTo(0,0);
  Canvas.Pen.Color := $FFFF00;
  Canvas.LineTo(100,100);
end;
пасибки))
nick17 вне форума Ответить с цитированием
Старый 18.01.2011, 23:31   #2
Sam Gold
Форумчанин
 
Аватар для Sam Gold
 
Регистрация: 26.03.2010
Сообщений: 538
По умолчанию

А у TPanel есть сойство Canvas ? Создай свой элемент со свойством Canvas.
Например:
Код:
type
  TMyPanel = class(TPanel)
//================
public
  property Canvas;
//===========
end;
Далее в проекте подключаешь юнит со своим элементом и создаешь
Код:
type
  TForm1 = class(TForm)
//=====================

    Panel1: TMyPanel;
//=====================
end;

//======================

procedure TForm1.Panel1Click(Sender: TObject);
begin
Form1.Panel1.Canvas.MoveTo(0,0);
Form1.Panel1.Canvas.Pen.Color := $FFFF00;
Form1.Panel1.Canvas.LineTo(100,100);
end;
Единственный способ стать умнее - играть с более умным противником.
Sam Gold вне форума Ответить с цитированием
Старый 19.01.2011, 13:22   #3
nick17
Пользователь
 
Регистрация: 05.07.2010
Сообщений: 30
По умолчанию

Код:
procedure TForm1.Panel1Click(Sender: TObject);
begin
Form1.Panel1.Canvas.MoveTo(0,0);
Form1.Panel1.Canvas.Pen.Color := $FFFF00;
Form1.Panel1.Canvas.LineTo(100,100);
end;
я последнее не понял у Sam Gold((



Я понял, как делать Canvas на панели (TMyPanel)!

Код:
unit Form;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,Player,MPlayer, StdCtrls, ExtCtrls,DisplayPanel, Menus,Vfw;

  
type
  TMainForm = class(TForm)
  .........  
  private
    { Private declarations }
  public
    { Public declarations }
  end;

type
  TMyPanel = class(TPanel)
//================
public
  property Canvas;
//мне еще и нужен мессажд
  procedure CanvasClick(Sender: TObject);
//===========
end;



var
  MainForm: TMainForm;
  Panel: TMyPanel;

 implementation

{$R *.dfm}


procedure TMainForm.FormCreate(Sender: TObject);
begin
Panel:=TMyPanel.Create(Self);
Panel.Width:=300;
Panel.Height:=300;
Panel.Parent:=MainForm;
OnClick:=Panel.CanvasClick;
end;

procedure TMyPanel.CanvasClick(Sender: TObject);
begin
//мессажд кликается за пределами панели - Panel.Canvas работает
//а в пределах панели ничего не происходит
  Panel.Canvas.MoveTo(0,0);
  Panel.Canvas.Pen.Color := $FFFF00;
  Panel.Canvas.LineTo(100,100);
end;
......
end.
мессажд кликается за пределами панели и Panel.Canvas рисуется
а в пределах панели ничего не происходит((
может быть надо не так, не OnClick:=Panel.CanvasClick;((
а мне нужно, чтоб мессажд кликался на панели и рисовалось Panel.Canvas, а вне панели ниче не рисовалось)
пасиба))
nick17 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Canvas + Zoom - не работает. Alex Cones Общие вопросы Delphi 7 22.07.2010 12:53
Как распичатать элемент Panel1? reyn90 Помощь студентам 0 14.03.2010 05:20
Delphi. Печать. Не работает Printer.Canvas.TextOut Alexander Karpenko Общие вопросы Delphi 4 02.03.2010 23:39
печать panel1 varelik Общие вопросы Delphi 6 05.10.2009 14:56
Panel1.Visible:=true s-force Компоненты Delphi 7 30.08.2007 02:22