Форум: "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.047 c