Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите разобраться 
:(
    Опции темы
Гость_Дмитрий
Дата 17.3.2005, 13:18 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Вопрос состоит вот в чём. Я создал новый класс, наследник от TPanel, в котором перехватывается перерисовка компонента.
Но допустим у меня на форме уже есть куча компонентов типа TPanel. Как мне сделать, чтобы они стали типа TMyPan без потери из свойств и т.д.( т.е. чтобы мне не пришлось всё переделывать).


Вот фрагмент кода:

Код


type
  TMyPan = class(TPanel)
  Panel2:TMyPan;
  protected
    procedure WMPaint(var Message: TMessage); message WM_PAINT;
  end;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
with TMyPan.Create(Self) do
  begin
    Parent := Self;
  end;
end;

procedure TMyPan.WMPaint(var Message: TMessage);
var
  ACanvas: TCanvas;
  b:TBitMap;
begin
  inherited;
  b:=TBitMap.Create;
  b.LoadFromFile('кофейня.bmp');
  ACanvas := TCanvas.Create;
  try
    ACanvas.Handle := GetWindowDC(Handle);
    ACanvas.Brush.Bitmap:= b;
    ACanvas.FillRect(ClientRect);
    ACanvas.Brush.Style := bsClear;
    ACanvas.Pen.Color := clBlack;
    ACanvas.Pen.Width := 5;
    ACanvas.Rectangle(ClientRect);
  finally
    ReleaseDC(Form1.Handle, ACanvas.Handle);
    ACanvas.Free;
  end;
end;



Заранее благодарен.

  Вверх
Snowy
Дата 17.3.2005, 13:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Исправь файлы *.pas и все *.dfm
Замени везде TPanel на TMyPan
PM MAIL   Вверх
bursa
Дата 17.3.2005, 17:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 25.2.2005
Где: Липецк

Репутация: нет
Всего: 1



Правой кнопкой на форме, View as Text.

Копируешь в буфер обмена всё, что связано с панелями
меняешь = на := (Replace Text)

и вставляешь в в программу на OnCreate формы ( с парентами, коорданвтами и всем остальным)

А менять
Цитата(Snowy @ 17.3.2005, 13:30)
TPanel на TMyPan
нет смысла. Компилятор выдаст ошибку.

Добавлено @ 17:09
и еще вариант- создай компонент TMyPan
и тогда уже как говорил (Snowy @ 17.3.2005, 13:30) делай
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0960 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.