Показать сообщение отдельно
  #5  
Старый 24.01.2014, 15:38
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от JunkieBeat
Спасибо,обошелся временным файлом,не красиво но по рабочему))
Насколько я понял проблема была в том что оператор "about:" принимает ограниченное кол-во символов,а я туда целую страницу посылал,вот и ошибка вылетала.
А?
Цитата:
Сообщение от JunkieBeat
Но теперь вопрос оффтопом, мне интересно было бы модифицировать компонент PageControl ,а точнее добавить кнопки на вкладки что бы они закрывались. Создал класс,унаследовал его от TPageControl и тут же встал в тупик,ибо хз где прописывать создание кнопки и тд)))
Знаю что такой компонент много кто делает и его можно скачать,но мне интересно написать его самому, может кто уже занимался велосипедами и подскажет как это реализовать или может какие то статейки по этому поводу)
Обычно такое делают не наследуя от TPageControl, а пишут полностью с нуля. Вот например как эти компоненты.

Но можно и над TPageControl поиздеваться. Например он умеет отображать на вкладках картинки если подключить к нему TImageList через свойство Images в которое можно картинку "крестика" поместить. И потом при нажатии (а лучше при отжатии) левой кнопки мышки проверять - если мышка находится над этой картинкой с крестиком, то уничтожать (или скрывать) соответствующую вкладку:
Код:
procedure TForm1.PageControl1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
  pt: TPoint;
  idx: Integer;
begin
  pt := PageControl1.ScreenToClient(Mouse.CursorPos);
  if htOnIcon in PageControl1.GetHitTestInfoAt(pt.X, pt.Y) then
  begin
    idx := PageControl1.IndexOfTabAt(pt.X, pt.Y);
    if idx >= 0 then PageControl1.Pages[idx].Free;
  end;
end;

Ещё вместо использования свойства Images можно самому полностью отрисовывать вкладку если установить свойство OwnerDraw в True и прописать отрисовку на событии OnDrawTab.
Ответить с цитированием