Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.07.2010, 04:45   #31
igh0st
Форумчанин
 
Аватар для igh0st
 
Регистрация: 05.07.2010
Сообщений: 136
По умолчанию

Цитата:
Сообщение от Shouldercannon Посмотреть сообщение
Я имел ввиду если в TreeView выбрать какой-нибудь пункт, то он выделиться (будет в сером прямоугольнике) и если при этом выделить CheckBox или нажать на кнопку, то выделение пропадёт. Как этого избежать?
Код:
TreeView1.HideSelection := False;
igh0st вне форума Ответить с цитированием
Старый 15.07.2010, 02:44   #32
DomiNick
Студент, не
Старожил
 
Аватар для DomiNick
 
Регистрация: 29.01.2009
Сообщений: 2,067
Лампочка

Цитата:
Сообщение от DomiNick Посмотреть сообщение
А пример я скоро доделываю уже...
ё... Вот память-то дырявая у меня, доделать доделал, а выложить забыл...
Немного не понял какие именно системные цвета из темы берёт квип (сделал своими), но в целом воть (кладём на форму Panel1, на панель кладём ListBox1, создаём обработчики TForm1.FormCreate и TForm1.ListBox1DrawItem, кладём на форму ImageList1 и загружаем в него картинки, заменяем текст на этот):
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ImgList, ExtCtrls;

type
  TForm1 = class(TForm)
    ImageList1: TImageList;
    Panel1: TPanel;
    ListBox1: TListBox;
    procedure FormCreate(Sender: TObject);
    procedure ListBox1DrawItem(Control: TWinControl; Index: Integer;
      Rect: TRect; State: TOwnerDrawState);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
ClientWidth:=200;
ClientHeight:=400;
Panel1.Left:=10;
Panel1.Top:=10;
Panel1.Width:=153;
Panel1.Height:=386;
Panel1.Color:=TColor($00312F2A);
ListBox1.Left:=8;
ListBox1.Top:=8;
ListBox1.Width:=137;
ListBox1.Height:=368;
ListBox1.Items.Add('Îáùèå');
ListBox1.Items.Add('Ñïèñîê êîíòàêòîâ');
ListBox1.Items.Add('Ñîáûòèÿ');
ListBox1.Items.Add('Îêíî ñîîáùåíèé');
ListBox1.Items.Add('Èñòîðèÿ');
ListBox1.Items.Add('Ñòàòóñ');
ListBox1.Items.Add('Àíòè-ñïàì/ôëóä');
ListBox1.Items.Add('Çâóêè');
ListBox1.Items.Add('ßçûêè');
ListBox1.Items.Add('Ñêèíû/çíà÷êè');
ListBox1.Items.Add('ID êëèåíòà');
ListBox1.Items.Add('Âñåâèäÿùåå îêî');
ListBox1.Items.Add('Ãîðÿ÷èå êëàâèøè');
ListBox1.Style:=lbOwnerDrawVariable;
ListBox1.ItemHeight:=28;
end;

procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);
var x, y: Integer; C: TCanvas;
begin
C:=(Control As TListBox).Canvas;
C.Font.Color:=RGB(100, 100, 100);
If (odFocused in State) Then
      Begin
      C.Font.Color:=RGB(255, 255, 255);
      C.Brush.Color:=RGB(47, 88, 105);
      C.Pen.Color:=RGB(2, 144, 203);
      End
Else
      If (odSelected in State) Then
            Begin
            C.Brush.Color:=RGB(42, 64, 74);
            C.Pen.Color:=RGB(42, 64, 74);
            End
      Else
            Begin
            C.Brush.Color:=RGB(36, 40, 42);
            C.Pen.Color:=RGB(36, 40, 42);
            End;
C.Rectangle(Rect);
x:=ListBox1.ItemHeight;
y:=(x-C.TextHeight('T')) Div 2;
C.TextOut(Rect.Left+x, Rect.Top+y, ListBox1.Items[Index]);
x:=(ListBox1.ItemHeight-ImageList1.Width) Div 2;
ImageList1.Draw(C, Rect.Left+x, Rect.Top+x, Index);
if odFocused in State then DrawFocusRect(C.Handle, Rect);
end;

end.
Цитата:
Я имел ввиду если в TreeView выбрать какой-нибудь пункт
Хм... Да, в TTreeView есть такое... И кажется подсказали уже как исправить...)
Но говорили то мы про TListBox... А там всё и так как надо...
I am the First of Cyber Evolution...
I am the First to Program your Future...
DomiNick вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
МЕНЮ! shaman888 Помощь студентам 2 06.05.2010 10:38
И сново sendMessage =) Как нажать пункт верхнего меню и меню правой кнопки? TwiX Win Api 9 15.10.2009 01:57
Оформление меню (вытекает из другого меню) TilerDerton Общие вопросы Delphi 3 20.08.2009 02:20
Для доступа к пунктам главного меню клавиши ALT + подчеркнутая буква меню в офис 2007? Окоча Юра Microsoft Office Word 1 24.02.2009 12:29
Меню с Items в виде набора Bitmap (как меню редактирования в Word'е) chandrasecar Мультимедиа в Delphi 7 14.01.2009 09:20