Форум: "Начинающим";
Текущий архив: 2008.02.03;
Скачать: [xml.tar.bz2];
ВнизКак сделать сплиттер с линией в 1пикс.? Найти похожие ветки
← →
Kolan © (2008-01-09 09:00) [0]Здравствуйте,
в гайдлайнах висты сказано, что сплиттер(видимая часть) должен быть толшиной в пиксель. Как такое сделать? Стандартный крутил, вертел — неполучаецца…
← →
Kolan © (2008-01-09 13:30) [1]Чет вы меня игнорируете :(
Например тут такой сепаратор:
http://www.rsdn.ru/
← →
{RASkov} © (2008-01-09 15:28) [2]> [1] Kolan © (09.01.08 13:30)
> Чет вы меня игнорируете :(
Это тебе так кажется)
> должен быть толшиной в пиксель. Как такое сделать? Стандартный
> крутил, вертел — неполучаецца…
Просто "смутно все это" (
В D7 нормально все.... фик знает.... Вот:object Form1: TForm1
Left = 192
Top = 114
Width = 870
Height = 640
Caption = "Form1"
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = "MS Sans Serif"
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
object Splitter1: TSplitter
Left = 185
Top = 0
Width = 1
Height = 606
end
object Panel1: TPanel
Left = 0
Top = 0
Width = 185
Height = 606
Align = alLeft
Caption = "Panel1"
TabOrder = 0
end
object Panel2: TPanel
Left = 186
Top = 0
Width = 676
Height = 606
Align = alClient
Caption = "Panel2"
TabOrder = 1
end
end
И при выполнении программы, сплитер именно 1 пикс...
← →
Kolan © (2008-01-09 15:40) [3]> И при выполнении программы, сплитер именно 1 пикс…
Нет толшина самого контрола — норамально, я хочу сделать его 5 пикс толшиной, но пользователю показывать линию в 1 пикс. Что-то типа свойства сплиттера Beaveled но только такое, чтобы рисовало просмто линию 1 пикс…
← →
Kolan © (2008-01-09 15:50) [4]Вот сам гайдлайн:
http://msdn2.microsoft.com/en-us/library/aa511281.aspx
ЗЫ
насилу нашел где он…
← →
{RASkov} © (2008-01-09 17:21) [5]> [3] Kolan © (09.01.08 15:40)
procedure TForm1.Splitter1Paint(Sender: TObject);
begin
with Splitter1.Canvas do begin
MoveTo(Splitter1.Width div 2, 0);
LineTo(Splitter1.Width div 2, Splitter1.Height);
end;
end;
Так не прокатит?
← →
Kolan © (2008-01-09 17:27) [6]> Так не прокатит?
Надо попробовать…
← →
{RASkov} © (2008-01-09 17:41) [7]> [6] Kolan © (09.01.08 17:27)
> Надо попробовать…
В качестве "рисования линии" можно попробывать DrawEdge
Я вот так на скорую руку набросал, вроде бы ничего:procedure TForm1.Splitter1Paint(Sender: TObject);
var R: Trect;
begin
with Splitter1, Splitter1.Canvas do begin
{ MoveTo(Width div 2, 0);
LineTo(Width div 2, Height);}
R:=ClipRect; Dec(R.Right, (Width-2) div 2);
Inc(R.Top, 10); Dec(R.Bottom, 10);
DrawEdge(Handle, R, EDGE_ETCHED, BF_RIGHT);
end;
end;
При вертикальном расположении сплитера и его высоте более 30 и ширине 5
Понятно, что предоставленный код "идиотский", но я только чтоб посмотреть как это будет выглядеть :)
Все эти константы "методом тыка"....)
← →
{RASkov} © (2008-01-09 17:44) [8]....Да, и все остальные свойства сплитера по умолчанию, т.е. (Beaveled = False)
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.02.03;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.044 c