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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> перестановка TabSheet в PageControl 
:(
    Опции темы
ilya198293
Дата 5.6.2008, 07:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 170
Регистрация: 17.3.2007
Где: Сириус, созвездие Большого Пса

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



как можно переставлять TabSheet в PageControl, как в Opere и мазиле?
и как можно сделать чтоб Hint у TabSheet появлялся не только когда мышка находится на рабочей областью, но и над самой закладкой.

Это сообщение отредактировал(а) ilya198293 - 5.6.2008, 08:15
--------------------
Недавно пытался объяснить сыну, кто такой модератор. Сошлись на Мойдодыре.
PM MAIL   Вверх
ama_kid
Дата 5.6.2008, 09:31 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


АСУТП-кодер
***


Профиль
Группа: Комодератор
Сообщений: 1460
Регистрация: 5.3.2007
Где: Москва

Репутация: 15
Всего: 95



Цитата(ilya198293 @  5.6.2008,  07:25 Найти цитируемый пост)
как можно переставлять TabSheet в PageControl, как в Opere и мазиле?
Код
procedure TForm1.PageControl1MouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer); 
begin
  PageControl1.BeginDrag(False);
end;

procedure TForm1.PageControl1DragDrop(Sender, Source: TObject; X, Y: Integer); 
const
  TCM_GETITEMRECT = $130A; 
var 
  i: Integer; 
  r: TRect;
begin 
  if not (Sender is TPageControl) then Exit;
  with (Sender as TPageControl) do
  begin 
    for i := 0 to PageCount - 1 do 
    begin 
      Perform(TCM_GETITEMRECT, i, lParam(@r)); 
      if PtInRect(r, Point(X, Y)) then 
      begin 
        if i <> ActivePage.PageIndex then
          ActivePage.PageIndex := i; 
        Exit; 
      end; 
    end; 
  end;
end;

procedure TForm1.PageControl1DragOver(Sender, Source: TObject; X, 
  Y: Integer; State: TDragState; var Accept: Boolean); 
begin 
  if Sender is TPageControl then 
    Accept := True; 
end;


Цитата(ilya198293 @  5.6.2008,  07:25 Найти цитируемый пост)
как можно сделать чтоб Hint у TabSheet появлялся не только когда мышка находится на рабочей областью, но и над самой закладкой.
Код
procedure TForm1.PageControl1MouseMove(Sender: TObject; Shift: TShiftState;
  X, Y: Integer);
var
 i:integer;
 CurPage:integer;
 pt:TPoint;
begin
 // Проверяем, что у всех табов выставлен ShowHint=true и Hint'ы - присвоены...
 CurPage:=-1;
 for i:=0 to PageControl1.PageCount-1 do
  if PtInRect(PageControl1.TabRect(i),Point(X,Y)) then
   begin
    CurPage := i;
    break;
   end;
 PageControl1.Hint:=PageControl1.Pages[CurPage].Hint;
 pt:=PageControl1.ClientToScreen(Point(X,Y));
 Application.ActivateHint(pt);
end;



--------------------
самурай без меча подобен самураю с мечом, но только без меча 
PM MAIL   Вверх
ilya198293
Дата 5.6.2008, 14:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 170
Регистрация: 17.3.2007
Где: Сириус, созвездие Большого Пса

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



Спасибо, ama_kid!!!
Первый алгоритм заработал, а второй нет. Hint выводится только над рабочей областью: это 2 и Button
а над 1 нет.


 _________
|____1____|___________________________________________________________
|                                                                     |
|                     2                                               |
|                                                                     |
|                                                                     |
|                                   __________                        |
|                                  |          |                       |
|                                  |  Button  |                       |
|                                  |__________|                       |
|                                                                     |
|                                                                     |
|_____________________________________________________________________|

--------------------
Недавно пытался объяснить сыну, кто такой модератор. Сошлись на Мойдодыре.
PM MAIL   Вверх
ama_kid
Дата 5.6.2008, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


АСУТП-кодер
***


Профиль
Группа: Комодератор
Сообщений: 1460
Регистрация: 5.3.2007
Где: Москва

Репутация: 15
Всего: 95



Цитата(ilya198293 @  5.6.2008,  14:21 Найти цитируемый пост)
второй нет
Забыл написать, что у PageControl - тоже должен быть ShowHint=true



--------------------
самурай без меча подобен самураю с мечом, но только без меча 
PM MAIL   Вверх
ilya198293
Дата 6.6.2008, 05:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 170
Регистрация: 17.3.2007
Где: Сириус, созвездие Большого Пса

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



Цитата

Забыл написать, что у PageControl - тоже должен быть ShowHint=true


Над неактивными вкладками реакции ноль, а над активной "List index out of bounds (-1)".


Прошу прощения.....туплю.....вопрос снят
Спасибо большое за помощьsmile

Это сообщение отредактировал(а) ilya198293 - 6.6.2008, 05:55
--------------------
Недавно пытался объяснить сыну, кто такой модератор. Сошлись на Мойдодыре.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

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

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

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

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


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

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


 




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


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

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