![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Свойства TKolPanel
Юрий © (2003-02-13 18:52:00)
Сегодня скачал библиотеку и уже появились вопросы.
Вопросы по свойствам панели:
В VCL панель имеет свойство BorderStyle, когда выбираешь bsNone, то края панели становятся невидимыми. В КОЛ панель имеет свойство Border, какое число не ставлю ( в том числе и 0 ), ничего не меняется.
Первый вопрос: Как сделать, чтобы края панели были невидимыми?
Если выбираю свойство Align ( caTop, caClient и т.д. ), чтобы панель заняла определённую область, то свойство Left принимает значение 2, а не ноль ( есть отступ от края формы, что выглядит не очень красиво ). Между двумя панелями со свойствами Align caTop и caClient также присутствует промежуток, а хочется, чтобы они лежали плотно и края их видны не были, а такое нужно очень часто.
Второй вопрос: Как сделать, чтобы панель занимала определённую область на форме без отступа от края формы или от края другой компоненты?
Третий вопрос: Такие свойства у панели, как BevelInner, BevelOuter и BevelWidth отсутствуют или имеют место быть?
Kladov (2003-02-18 16:50:00) [1]
Вдавленный тонкий получается и просто esLowered. А как сделать выпуклый тонкий - у меня не получилось.
SPeller (2003-02-18 15:40:00) [2]
TControl.ExStyle - там комбинация флагов WS_EX_ . Для бОльшей информативности почитай доки в том же Win SDK о ф-ции CreateWindowEx.
BorisMor (2003-02-18 15:36:00) [3]
Style у каждого контрола есть.
Юрий (2003-02-18 15:30:00) [4]
2 mdw:
Ok, спасибо!
2 Speller:
Где поиграться со стилями, в модуле KOL.Pas, пробовал ли сам?
SPeller (2003-02-18 13:52:00) [5]
А не проще ли поиграться со стилями WS_EX_CLIENTEDGE, WS_EX_STATICEDGE, WS_EX_WINDOWEDGE ?
mdw (2003-02-17 23:39:00) [6]
2 Юрий
Так на этом сайте и лежит. http://kol.mastak.ru/files2.html
Юрий (2003-02-17 19:14:00) [7]
2 mdw: Может пришлёшь коды для панели, что ты сделал в стиле VCL, на yk2@mail.ru? Буду очень благодарен.
mdw (2003-02-17 19:04:00) [8]
В VCL панель рисуется внутри. А в KOL просто создается окно с бордером. Поэтому тебе сразу и посоветовали самому рисовать. Мне тоже не очень нравяться выпуклые панели, поэтому сделал свою в стиле VCL (c BevelOuter, BevelInner, BevelWidth, BorderWidth, BorderStyle).
Kladov (2003-02-17 18:45:00) [9]
Если у вас есть проект, который ведет себя очень странно. Делаете минимально возможный, демонстрирующий эффект. И высылаете мне исходник. В сжатом виде, без exe, dcu, dsm и прочих ненужных файлов. И с кратким пояснением эффекта. А я посмотрю.
Юрий (2003-02-17 17:45:00) [10]
Кстати в VCL эту толщину линий можно самому менять через BevelWidth, а в KOL этого почему то нет. Экономия?
Юрий (2003-02-17 17:42:00) [11]
А самому где можно подправить? Если в курсе, как это сделать, подскажите?
Alexander (2003-02-17 17:06:00) [12]
Всё дело в отличии отрисовки esRaised для VCL и KOL: в KOL толщина линий 2 пиксела.
to Vladimir Kladov: для чего так сделано? ведь панель так болеше кнопку напоминает.
Юрий (2003-02-17 17:00:00) [13]
2 mdv:
У меня так на Delphi5 для трёх панелей с Align caTop, caClient, caBottom:
VCL:
BevelWidth 1, BoderWidth 0, BevelOuter bvRaised, color clBtnFace - при запуске панели лежат плотно.
KOL: Border 0 ( у формы также ), edgeStyle esRaised, color clBtnFace - при запуске визуально видны зазоры между панелями.
Попробуй у себя оба варианта, будет ли у тебя разница визуално видна? Сможешь ли подобрать свойства такими, чтобы панели смотрелись как в VCL примере.
Есть дополнительный вопрос - за что отвечает свойство VerticalAlign, и почему нет GorizontalAlign?
mdw (2003-02-17 16:26:00) [14]
Эффект ещё неожиданен, из трёх панелей caTop, caClient, caBottom только caBottom панель остаётся цветной...
Попробовал, с тремя панелями - все нормально (и все цветные, и лежат вплотную, у KOLForm.Border := 0).
А если нужна панель а-ля VCL - посмотри в Компонентах там оно есть, но размер будет побольше:)))
Юрий (2003-02-17 14:49:00) [15]
Эффект ещё неожиданен, из трёх панелей caTop, caClient, caBottom только caBottom панель остаётся цветной после запуска приложения, две других панели принимают цвет формы, хотя свойство ParentColor стояло для них False. То что отличаются расположение панелей в KOL и VCL по прилеганию к друг другу, видно невооружённым взглядом. Возможно, это связано с тем, что в VCL присутствует дополнительно свойство BevelWidth, не знаю. Но факт, что панели в двух приложениях рисуют себя по разному.
Kladov (2003-02-15 11:47:00) [16]
> между панелями остаётся зазор ( в 1 пиксель, полагаю ),
>
Это панели так рисуют себя сами. Сделайте панелям EdgeStyle=esNone, и назначьте им разный цвет, чтобы убедиться.
Юрий (2003-02-14 17:12:00) [17]
"Поменяй у KOLForm.Border := 0;"
Уже получше, спасибо. Но небольшая разница с VCL всё же видна, между панелями остаётся зазор ( в 1 пиксель, полагаю ), а в VCL панели к друг другу прилегают плотно.
Alexander (2003-02-14 16:57:00) [18]
Поменяй у KOLForm.Border := 0;
Юрий (2003-02-14 16:28:00) [19]
"А нолик пробовал присваивать?"
Попробовал присвоить для трёх панелей нолик свойству Border и в программе, но разницы не вижу? Может я не то и не так делаю. Думаю, что в реализации панели что-то не так, а это лучше посмотреть автору, ему ведь лучше знать - куда смотреть.
"implementation
{$IFNDEF KOL_MCK} {$R *.DFM} {$ENDIF}
{$IFDEF KOL_MCK}
{$I Unit1_1.inc}
{$ENDIF}
// присвоение нуля
procedure TForm1.FormCreate(Sender: TObject);
begin
pTop.Border := 0; pBot.Border := 0; pAll.Border := 0;
end;"
SPeller (2003-02-14 16:00:00) [20]
> Это не так. На форму положил 2 панели caTop и caClient.
> Какое число свойству Border не задавай, Left всегда равна
> числу 2.
А нолик пробовал присваивать?