Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "KOL";
Текущий архив: 2007.01.21;
Скачать: [xml.tar.bz2];

Вниз

Flat Controls   Найти похожие ветки 

 
homm ©   (2006-03-12 13:46) [0]

Новый контрол. Надеюсь вам понравится.

Новости от 12 марта 2006 г.
FlatControls v0.1
[+] Первый релиз. Пока один компонент (а будут ли другие?). Имя ему FlatTabControl. За прототип взят контрол из Visual Studio 7 IDE.
Наиболее важный свойства:
   function FTC_Insert ( Idx: Integer; const TabText: String; ImageIndex: Integer): PControl;
     Вставляет новую закладку. Аналогично свойству TC_Insert для обычного TabCotrol
   procedure FTC_Delete ( Idx: Integer );
     Удаляет закладку с заданым индексом.
   property FTC_Items[ Idx: Integer ]: String read GetFTC_Items write SetFTC_Items;
     Подпись к каждой закладке.
   property ImageListNormal: PImageList index 32 read GetImgListIdx write SetImgListIdx;
     см. KOL.pas
   property FTC_Images[ Idx: Integer ]: Integer read GetFTC_Images write SetFTC_Images;
     Индекс иконки для каждой закладки. Если равно -1 то для данной закладки не рисуется иконка.
   property FTC_ItemRect[ Idx: Integer ]: TRect read GetFTC_ItemRect;
     Возвращает прямоугольник, содержащий саму закладку.
   function FTC_TabAtPos( x, y: Integer ): Integer;
     Возвращает индекс закладки, попадающей в заданые координаты (быстрее чем перебор FTC_ItemRect).
   property FTC_Position: TFlatTabControlPosition read GetFTC_Position write SetFTC_Position;
     Расположение закладок. Либо tpTop, либо tpBottom.
   property FTC_TabsFont: PGraphicTool read GetTabsFont;
     Шрифт, которым рисуются подписи к закладкам.
   property FTC_TabsHeight: Integer read GetFTC_TabsHeight write SetFTC_TabsHeight;
     Высота области закладок (каждая закладка чуть меньше из-за зазора сверху или снизу).
   property Pages[ Idx: Integer ]: PControl read GetPages;
     Страници. Для FlatTabControl (в отличии от обычного TabControl) синоним Children.
   property Count: Integer read GetItemsCount write SetItemsCount;
     Кол-во страниц. Синоним ChildCount.
   property CurIndex: Integer read GetCurIndex write SetCurIndex;
     Текущая видимая страница.

ЗЫ. Я знаю об анолагичном порте с VCL RTabControl от Релорт. Более того, изначально я хотел ему попмочь и послал довольно много исправлений для других компонентов из RControls (которые им до сих пор не были опубликованы кстати), но в TabControl меня неустраивало намного больше, и его просто написал заново.


 
homm ©   (2006-03-12 13:55) [1]

Подозреваю что тема не расрыта. Каюсь :)
http://www.homm86.narod.ru/files/flatcontrols.zip


 
GMax   (2006-03-12 16:32) [2]

а нельзя ли добавить в FTC_Position что-нибудь вроде tpNone, чтобы самих табов не видно было ? вот польза была бы...


 
homm ©   (2006-03-12 18:06) [3]


> а нельзя ли добавить в FTC_Position что-нибудь вроде tpNone,
> чтобы самих табов не видно было ? вот польза была бы...
Попробуй MarginBottom := 0. Если AV не вылетит, то получиш такой эффект.


 
GMax   (2006-03-12 21:23) [4]

да она вроде и без моего вмешательства - 0 ?
если ставить отрицательным, то когда табы сверху, они потихоньку укорачиваются, но рабочее поле не увеличивается
когда минус первышает высоту, тогда получаем 216 at 404A70
если же табы снизу, то при любом отрицательном значении то же самое - 216.


 
homm ©   (2006-03-12 23:36) [5]


> да она вроде и без моего вмешательства - 0 ?
В MCK - да. А вообще-то нет.

В принципе даже не знаю зачем понадобился отдельный котрол для таких целей. Можно же просто панелей накидать куда-нибудь и простенькую функцию сделать типа такой:
procedure SetActivTab (TabsParent: Pcontrol; Index: Integer);
var     i: integer;
begin
   with TabsParent^ do begin
       for i := 0 to ChildCount do
           Children[i].Visible := FALSE;
       Children[Index].Visible := TRUE;
       Children[Index].BringToFront;
   end;
end;


Если вcе-же есть ярое желание пользоватся FlatTabControl (????), то нужно испавить в KOLFlatTabControl.pas:
procedure TFlatTabControl.DoPaint (Sender: PControl; DC:HDC);
var     Bitmap: PBitmap;
       I: Integer;
       Data: PFlatControlData;
       T1: Integer;
       TR: TRect;
       Rects: PARect;
begin
   Data := PFlatControlData(CustomObj);
   Canvas.Brush.BrushStyle := bsSolid;
   Canvas.Brush.Color := Color;
   if not fTransparent then
       Canvas.FillRect(Self.ClientRect);
   if MarginTop + MarginBottom <= 0 then exit;  // <-- добавить эту строчку
   Bitmap := NewBitmap(Width, MarginTop + MarginBottom);
**************

и где- нибудь в FormCreate делать MarginBottom := 0;


 
DmiSb   (2006-03-13 13:07) [6]

А почему-то не получается с народа скачать.
Будет ли FlatControls выкладываться на kolnmck.ru ?


 
ECM ©   (2006-03-13 13:17) [7]

Да без проблем :))
http://www.kolnmck.ru/files/components/controls/flatcontrols.zip


 
DmiSb   (2006-03-13 13:30) [8]

Спасимба !!!


 
Thaddy   (2006-03-13 19:17) [9]

Nice work! I am already using it! Maybe optimized a bit more in drawing, though.
It seems rather large.


 
GMax   (2006-03-13 20:36) [10]

просто есть желание пользоваться табами для внутренних целей, а юзеру этого не показывать (визарды и тд).
при этом удобство пользования tab+mck перевешивает возможные плюсы использования нескольких панелей.

пока пользуюсь обычным tabcontrol"ом + SetWindowRgn, хотелось бы ещё большего удобства, но на нет и суда нет, буду просто иметь ввиду существование этого вида табов :)


 
shalex ©   (2006-04-10 12:44) [11]

Не меняется шрифт заголовков


 
shalex ©   (2006-04-10 12:58) [12]

Извини, сразу не заметил, что для fontа там отдельное свойство.
Но все же пожелание - сделать скроллинг табов.



Страницы: 1 вся ветка

Форум: "KOL";
Текущий архив: 2007.01.21;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.076 c
2-1167324232
xeron
2006-12-28 19:43
2007.01.21
KillTimer


2-1167160588
Серый
2006-12-26 22:16
2007.01.21
Запрет ввода


6-1156249700
derex
2006-08-22 16:28
2007.01.21
как определить занят ли порт


15-1167317916
Германн
2006-12-28 17:58
2007.01.21
Ну, блин и Новый Год!


2-1167402196
AlexanderMS
2006-12-29 17:23
2007.01.21
Функция формирования римских цифр из арабских.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский