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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> TRsVistaTabSet - TabSet из проги TheBat, где взять 
:(
    Опции темы
Akella
Дата 25.12.2010, 09:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


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

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



Цитата(Delphist @ 24.12.2010,  21:50)
Цитата(Akella @  24.12.2010,  18:54 Найти цитируемый пост)
Нету времени - найми программиста. Он погуглит и найдёт или сам напишет ;)

нет лишних денег на это

Нет времени на программирование и нет денег, чтобы нанять программиста, и нет желания программировать самому? Ну.... может сменить работу?

Добавлено @ 09:47
Delphist, вон, смотри, тебе готовый компонент ildvild нашёл
PM MAIL   Вверх
~FoX~
Дата 25.12.2010, 09:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


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

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



PageControl1.OwnerDraw := true;
Код

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Math, Buttons, ComCtrls;

type
  TForm1 = class(TForm)
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    TabSheet3: TTabSheet;
    procedure PageControl1DrawTab(Control: TCustomTabControl; TabIndex: Integer;
      const Rect: TRect; Active: Boolean);
    procedure PageControl1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
  private
    function GetIndexTab( Control : TCustomTabControl; X, Y: Integer; var Index : Integer ) : Boolean;
    procedure DrawButton( Control : TCustomTabControl; Index : Integer; State : Boolean );
    function GetButtonRect( Control : TCustomTabControl; Index : integer) : TRect;

    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}



function TForm1.GetButtonRect( Control : TCustomTabControl; Index : integer) : TRect;
begin
  with Control.TabRect( Index ) do
  begin
    Result.Right := Right - 2;
    Result.Top := Top + 3;
    Result.Bottom := Result.Top + Control.Canvas.TextHeight( '0' );
    Result.Left := Result.Right - ( Result.Bottom - Result.Top );
  end;
end;

function TForm1.GetIndexTab( Control : TCustomTabControl; X, Y: Integer; var Index : Integer ) : Boolean;
begin
  Result := false;
  Index := Control.IndexOfTabAt( X, Y );
  if ( Index >= 0 ) then
    Result := PtInRect( GetButtonRect( Control, Index ), Point( X, Y ));
end;

procedure TForm1.DrawButton( Control : TCustomTabControl; Index : Integer; State : Boolean );
var Rect : TRect;
begin
  Rect := Control.TabRect( Index );
  with Control.Canvas do
  begin
    TextRect( Rect, Rect.Left + 4, Rect.Top + 3,
      ( Control as TPageControl ).Pages[ Index ].Caption );
    Rect := GetButtonRect( Control, Index );
    with DrawButtonFace( Control.Canvas, Rect, 1, bsNew, true, true, false ) do
    begin
      Pen.Color := IfThen( State, clBtnText, clBtnShadow );
      Pen.Width := 2;
      MoveTo( Left + 1, Top + 1 );
      LineTo( Right - 3, Bottom - 3 );
      MoveTo( Right - 3, Top + 1 );
      LineTo( Left + 1, Bottom - 3 );
    end;
  end;
end;

procedure TForm1.PageControl1DrawTab(Control: TCustomTabControl;
  TabIndex: Integer; const Rect: TRect; Active: Boolean);
begin
  DrawButton(Control, TabIndex, Active );
end;

procedure TForm1.PageControl1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
  TabIndex : integer;

begin
 if GetIndexTab( Sender as TCustomTabControl, X, Y, TabIndex ) then
  begin
    ShowMessage('Close');
  end;
end;

Код не мой, но рабочий 100% - переварить это в компонент думаю не проблема....


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
Delphist
Дата 25.12.2010, 11:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphist Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2145
Регистрация: 3.2.2004
Где: всегда в сети

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



Цитата(~FoX~ @  25.12.2010,  10:57 Найти цитируемый пост)
Код не мой, но рабочий 100% - переварить это в компонент думаю не проблема.... 

Спасибо


--------------------
ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др).
Когда-то давным-давно использовал это...
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

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

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

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

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


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

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


 




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


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

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