Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Иконка окна (TIcon) на TToolButton, В продолжение про кнопки 
:(
    Опции темы
Akella
Дата 27.3.2008, 15:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



Код

with TToolButton.Create(toolbarWins) do begin
     Tag := form1.Handle;
     Name := 'tb'+IntToStr(Tag);
     Caption := form1.Caption;
     Hint := form1.Caption;
     Icon := form1.Icon;




как присвоить иконку кнопке?
PM MAIL   Вверх
THandle
Дата 27.3.2008, 16:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

Репутация: 65
Всего: 372



Так ведь у TToolButton нет свойства Icon. Тут ты присваиваешь иконку формы той же самой иконке формы.
PM   Вверх
Akella
Дата 27.3.2008, 16:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



а, точно

Добавлено через 35 секунд
а можно как-то рисовать? или создать IMageList? и из него присваивать иконки?

Добавлено через 4 минуты и 11 секунд
Попробую использовать Bar из набора DevExpress.
Кстати, а есть ли здесь, кто использует эти копоненты?
PM MAIL   Вверх
Beltar
Дата 28.3.2008, 12:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 627
Регистрация: 11.1.2006

Репутация: 3
Всего: 7



А что они могут? Там нет TreeView и др. компонентов, которые иконку могут получать как Handle.


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. smile(с) я, хотя может и нет
Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере.
PM MAIL   Вверх
Akella
Дата 29.3.2008, 10:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



Код

NewButton.Glyph.Canvas.Draw(0,0,form1.Icon);

и такой вариант не проходит smile 
PM MAIL   Вверх
VICTAR
Дата 29.3.2008, 10:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1108
Регистрация: 6.10.2006

Репутация: 37
Всего: 80



Akella, а вариант с ImageList и ImageIndex не устраивает?
PM MAIL   Вверх
Akella
Дата 29.3.2008, 11:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



это уже на крайний случай (
PM MAIL   Вверх
Akella
Дата 29.3.2008, 13:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



Другая немного проблема, но похожая (см. код) :
Код

 procedure TfmMain.CreateFormButton(form1:TForm);
var
  ABarManager : TdxBarManager;
  ABar : TdxBar;
  NewButton : TdxBarButton;
  NewItemLink : TdxBarItemLink;
  Icon   : TIcon;
  Bitmap : TBitmap;
 
begin
   ABarManager := GetBarManagerByForm(self);
   ABar := Bar1;
   NewButton := TdxBarButton.Create(self);
 
   NewItemLink := ABar.ItemLinks.Add;
   NewItemLink.Item := NewButton;
   NewItemLink.Item.Tag := form1.Handle;
 
   NewButton.Tag          := form1.Handle;
   NewButton.Name         := 'dxButton'+IntToStr(NewButton.Tag);
   NewButton.Caption      := form1.Caption + '[' + IntToStr(MDIChildCount) + ']';
   NewButton.Hint         := form1.Caption;
   NewButton.OnClick      := dxBarButtonClick;
   NewButton.ButtonStyle  := bsChecked;
   NewButton.Down         := true;
   NewButton.GroupIndex   := 1;

   NewButton.Glyph.Canvas.Draw(0,0,form1.Icon); <-------------------------------------------------рисование иконки окна на кнопке


   NewButton.PaintStyle   := psCaptionGlyph;
end; 


на кнопке иконка окна не рисуется
PM MAIL   Вверх
Rrader
  Дата 29.3.2008, 15:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Inspired =)
***


Профиль
Группа: Экс. модератор
Сообщений: 1535
Регистрация: 7.5.2005

Репутация: 70
Всего: 191



Код

Uses ShellAPI;
  ...
Var
  Icon: TIcon;
  IcL, IcS: HICON;
  ...

  NewButton.Down := True;
  NewButton.GroupIndex := 1;
  NewButton.PaintStyle := psCaptionGlyph;
  Icon := TIcon.Create;
  Try
    ExtractIconEx(PChar(ParamStr(0)), 0, IcL, IcS, 1);
    Icon.Handle := IcS;
    NewButton.Glyph.Width := GetSystemMetrics(SM_CXSMICON);
    NewButton.Glyph.Height := GetSystemMetrics(SM_CYSMICON);
    NewButton.Glyph.Canvas.Draw(0, 0, Icon);
    ABar.Control.RepaintBar;
  Finally
    DestroyIcon(IcL);
    DestroyIcon(IcS);
    Icon.Free;
  End;


Это сообщение отредактировал(а) Rrader - 22.5.2008, 16:16


--------------------
Let's do this quickly!
Rest in peace, Vit!
PM MAIL Skype   Вверх
Akella
Дата 30.3.2008, 21:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



Цитата(Rrader @  29.3.2008,  15:09 Найти цитируемый пост)
ExtractIconEx(PChar(ParamStr(0)), 0, IcL, IcS, 1);

чем можно заменить?
Мне нужна иконка НЕ файла, а иконка окна, которое привязано к конкретной кнопке

Добавлено через 13 минут и 33 секунды
Всё, спасибо за ABar.Control.RepaintBar; +1

Добавлено через 14 минут и 15 секунд
всё остальное не требуется.

Добавлено через 14 минут и 53 секунды
Код

   NewButton.PaintStyle   := psCaptionGlyph;
   NewButton.GroupIndex   := 1;
   NewButton.Glyph.Width  := 16;//GetSystemMetrics(SM_CXSMICON);
   NewButton.Glyph.Height := 16;//GetSystemMetrics(SM_CYSMICON);
   NewButton.Glyph.Canvas.Draw(0,0,form1.Icon);
   ABar.Control.RepaintBar;


кстати, указываю, что размер 16х16, но всё равно иконка рисуется большая  smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1411 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.