Форум: "KOL";
Текущий архив: 2006.07.09;
Скачать: [xml.tar.bz2];
ВнизПодмена функций Найти похожие ветки
← →
Chum (2005-10-13 19:22) [0]Значит появилась такая мысля: Есть TabControl. Новая вкладка представляет из себя панель (посмотрел как работает, вызывается NewPanel). Так вот, есть желание (даже потребность) - заменит Panel на GroupBox. Попытался так:
Сделал свою функцию MyNewPanel по аргументам и возвращаемому значению совпадающую с NewPanel. пишу в коде
p:=@NewPanel
@NewPanel:=@MyNewPanel.
P-указатель. Ну компилятор ругается и говорит, что так незя. Это первое, что пришло в голову, ну и ясно, что работать не бует. как можно????
P.S. Аналогичная ситуация с KolFrame - он вроде тоже основан на Panel. И хотелось бы иметь возможность TabControl`y подсунуть Frame.
Есть у кого нить идейки????
Спасибо
← →
SPeller © (2005-10-13 20:29) [1]Если они создаются в inc-файле, то объявляешь у себя в модуле, где таб-контрол, функцию NewPanel, и компилятор подхватит именно её. Если они создаются в kol.pas - то ничего ты не сделаешь. (я уже и забыл, как там таб-контрол то создаётся..:)
← →
Thaddy (2005-10-13 21:44) [2]p:=@NewPanel means pointer to pointer.
Try
p:=NewPanel;
since PControl = ^TControl;// i.e. is already a pointer to the object
← →
SPeller © (2005-10-14 05:07) [3]Добавлю, что я описанным мной способом свой тулбар создавал.
← →
Vladimir Kladov (2005-10-14 16:18) [4]если бы это была обычная панель, ее можно было бы (например) выровнять по какому-нибудь краю. Или еще что-нибудь такое сделать. Это не панель, хотя функционально мало чем отличается от панели. Так что не надо выдумывать. Кладите на нее свой групбокс как обычно.
← →
chum (2005-10-15 13:46) [5]
> если бы это была обычная панель, ее можно было бы (например)
> выровнять по какому-нибудь краю. Или еще что-нибудь такое
> сделать. Это не панель, хотя функционально мало чем отличается
> от панели. Так что не надо выдумывать. Кладите на нее свой
> групбокс как обычно.
>
Ну допустим, с групбоксом ясно. А вот по поводй фрейма. ведь он вобщем то и есть панель? Просто надо создать кучу вкладок, одинаковых по содержанию.
← →
Vladimir Kladov (2005-10-15 16:19) [6]и фрейм так же надо создавать как дочерний - как же еще иначе-то? Закладка в табе - это не панель. Это - закладка.
← →
chum (2005-10-15 22:53) [7]Ну как не панель???? Вот код добавления вкладки:
function TControl.TC_Insert(Idx: Integer; const TabText: String;
TabImgIdx: Integer): PControl;
var TI: TTCItem;
begin
Result := NewPanel( @Self, esNone );
Result.FAlign := caClient;
Result.fNotUseAlign := True;
Result.fVisibleWoParent := TRUE;
Result.Visible := Count = 0;
TI.mask := TCIF_TEXT or TCIF_IMAGE or TCIF_PARAM;
TI.iImage := TabImgIdx;
TI.pszText := PChar( TabText );
TI.lParam := Integer( Result );
Perform( TCM_INSERTITEM, Idx, Integer( @TI ) );
Result.BoundsRect := TC_DisplayRect;
end;
← →
Vladimir Kladov (2005-10-16 11:12) [8]Нк попробуйте тогда так: пишете свой TC_Insert1 с аналогичными параметрами, но не как метод, а как обычную функцию. И вызывайте для вставки таба. Хотя, может объясните, что это даст. Какие преимущества, кроме дополнительных манипуляций?
← →
chum (2005-10-22 17:05) [9]Я разработаю фрейм, который должен повтаряться на всех вкладка (т.е. вкладки имеют один набор элементов) и подменяя это своей функцией, я делаю это красиво и экономлю на панели (память есественно)
← →
SPeller © (2005-10-22 20:33) [10]А не проще ли сделать одно окно без всяких табов, в котором разместить фрейм, а рядом разместить, например, тулбар, который будет переключать, по всей видимости, содержимое фрейма, и не морочаться с подменами функций?
← →
ECM © (2005-10-23 13:56) [11]Согласен со SPeller [10], действительно зачем размножать один и тот же фрейм еще и на одном и том же месте?
Хотел добавить- если все же хочется иметь вкладки - их можно оставить
(один заголовок с кнопками-вкладками) и использовать как кнопки переключения содержимого фрейма.
← →
chum (2005-10-23 20:16) [12]В принципе, можно и так, но это, если так можно выразиться, спортивный интерес. если вкладки так реализованы, то можно ли как-то всё это подстроить под себя. В итоге получается что можно, но то что это самый правильный подход - я не настаиваю. Хотя вот, была у меня задачка с табами (все разные), но на каждой закладке размещалася одна GroupBox панель. так вот, можно ли заменить в табе Panel на GroupBox? Но Владимир уже ответил - что нет. Ну вобщем Всем спасибо, интерес удовлетворён :)
← →
Vladimir Kladov (2005-10-23 20:27) [13]нет, я ответил, что в этом нет надобности. Я и сейчас не вижу в подмене никакого интереса кроме спортивного. У себя я предпочитаю использовать TabControl с обрезанными табами, а выбирать закладку из листвью где-нибудь слева. Особенно когда табов много - при использовании табов тогда начинается то, что мне особенно не нравится: все сразу не видны, делать многострочными - это маразм. В листвью все ясно и понятно, и все закладки сразу видно.
Страницы: 1 вся ветка
Форум: "KOL";
Текущий архив: 2006.07.09;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.01 c