Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.02.03;
Скачать: CL | DM;

Вниз

Как сделать сплиттер с линией в 1пикс.?   Найти похожие ветки 

 
Kolan ©   (2008-01-09 09:00) [0]

Здравствуйте,
 в гайдлайнах висты сказано, что сплиттер(видимая часть) должен быть толшиной в пиксель. Как такое сделать? Стандартный крутил, вертел — неполучаецца&#133


 
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 пикс&#133

Нет толшина самого контрола — норамально, я хочу сделать его 5 пикс толшиной, но пользователю показывать линию в 1 пикс. Что-то типа свойства сплиттера Beaveled но только такое, чтобы рисовало просмто линию 1 пикс&#133


 
Kolan ©   (2008-01-09 15:50) [4]

Вот сам гайдлайн:
http://msdn2.microsoft.com/en-us/library/aa511281.aspx

ЗЫ
насилу нашел где он&#133


 
{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]

> Так не прокатит?

Надо попробовать&#133


 
{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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.021 c
3-1190642401
novill
2007-09-24 18:00
2008.02.03
Как без UDF реализоывать в IB7.5 обрезать строки до нужной длины?


2-1198145145
vegarulez
2007-12-20 13:05
2008.02.03
Вопрос про перекодировку response (IdHTTP, Indy8->Indy10)


2-1199652797
петрович07
2008-01-06 23:53
2008.02.03
менять строки местами в двумерном массиве


2-1199844321
Abcdef123
2008-01-09 05:05
2008.02.03
Почему не работает CTRL+(LeftClick Mouse)?


15-1198321867
Kostafey
2007-12-22 14:11
2008.02.03
С днем рождения ! 22 декабря