Стандартные иконки mtWarning, mtError, mtInformation, mtConf

Общие вопросы программирования, алгоритмы и т.п.

Модератор: Модераторы

Стандартные иконки mtWarning, mtError, mtInformation, mtConf

Сообщение Des » 20.07.2015 17:59:09

Мне нужно получить данные иконки.
В делфи я получаю их так
Image.Icon.Handle := LoadIcon(0, IconID), где IConID берется из этого списка (IDI_EXCLAMATION, IDI_HAND, IDI_ASTERISK, IDI_QUESTION, nil)

Как получить их в лазарусе?
Des
новенький
 
Сообщения: 22
Зарегистрирован: 20.07.2015 17:53:08

Re: Стандартные иконки mtWarning, mtError, mtInformation, mt

Сообщение Vadim » 21.07.2015 09:33:34

Вы это для винды спрашиваете или кроссплатформенно?
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Стандартные иконки mtWarning, mtError, mtInformation, mt

Сообщение Des » 21.07.2015 19:44:37

для линукса
Des
новенький
 
Сообщения: 22
Зарегистрирован: 20.07.2015 17:53:08

Re: Стандартные иконки mtWarning, mtError, mtInformation, mt

Сообщение kazalex » 21.07.2015 21:30:57

Des писал(а):Как получить их в лазарусе?

Код: Выделить всё
Uses LCLType, Themes;
...
ThemeServices.GetStockImage(idDialogWarning, ...);
...
kazalex
постоялец
 
Сообщения: 296
Зарегистрирован: 01.06.2012 14:54:10

Re: Стандартные иконки mtWarning, mtError, mtInformation, mt

Сообщение Des » 22.07.2015 17:20:39

kazalex писал(а):
Des писал(а):Как получить их в лазарусе?

Код: Выделить всё
Uses LCLType, Themes;
...
ThemeServices.GetStockImage(idDialogWarning, ...);
...



что то не работает.

BH:HBitmap;
BMH:HBitmap;

ThemeServices.GetStockImage(idDialogWarning, BH,BMH); выдает false как будто ничего не нашел.

Можно полный код вплоть до того момента когда у меня в Tbitmap или Ticon записываются картинки?
Des
новенький
 
Сообщения: 22
Зарегистрирован: 20.07.2015 17:53:08

Re: Стандартные иконки mtWarning, mtError, mtInformation, mt

Сообщение Лекс Айрин » 22.07.2015 17:28:07

Des, скорее всего, вы пытаетесь работать как с виндовс...а вы программируете под линукс (подозреваю, кроссплатформено.) Имена констант (или только префиксы) вряд ли совпадают.

Добавлено спустя 14 минут 54 секунды:
Re: Стандартные иконки mtWarning, mtError, mtInformation, mtConf
вот странно.. ищем описание... function TThemeServices.GetStockImage(StockID: LongInt; out Image, Mask: HBitmap): Boolean;
Переходим к телу процедуры...

Код: Выделить всё
function TThemeServices.GetStockImage(StockID: LongInt; out Image, Mask: HBitmap): Boolean;
begin
  Result := False;
end; 

и становится понятно, что функция сильно похожа на заглушку.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Стандартные иконки mtWarning, mtError, mtInformation, mt

Сообщение kazalex » 22.07.2015 17:57:34

Des писал(а):Можно полный код вплоть до того момента когда у меня в Tbitmap или Ticon записываются картинки?

Код: Выделить всё
Uses

LCLType, Themes;

{ TForm1 }

procedure TForm1.Button1Click(Sender: TObject);
var

bitmap : TBitmap;
i, m   : HBitmap;

begin

If ThemeServices.GetStockImage(idDialogWarning, i, m) Then
  Begin

   bitmap := TBitmap.Create;

   bitmap.Handle := i;
   If m <> 0 Then
    bitmap.MaskHandle := m;

   image1.Picture.Bitmap := bitmap;

  End;

end;

stockImage.png


Лекс Айрин писал(а):и становится понятно, что функция сильно похожа на заглушку.

Нужно смотреть класс конкретного виджетсета (на вызов бряк, потом трейс), а не базовый.
kazalex
постоялец
 
Сообщения: 296
Зарегистрирован: 01.06.2012 14:54:10

Re: Стандартные иконки mtWarning, mtError, mtInformation, mt

Сообщение zub » 22.07.2015 18:02:29

>>и становится понятно, что функция сильно похожа на заглушку.
Если поискать еще или в отладчике посмотреть куда уходит вызов
Код: Выделить всё
ThemeServices.GetStockImage(0,Image, Mask);

прояснится что заглушка какраз не используется, используется нормальная реализация. но не факт что она полная и кроссплатформенная. в Themes к сожалению очень много недоделанного
zub
долгожитель
 
Сообщения: 2886
Зарегистрирован: 14.11.2005 23:51:26

Re: Стандартные иконки mtWarning, mtError, mtInformation, mt

Сообщение Лекс Айрин » 22.07.2015 18:34:28

kazalex,zub, понятно. Впрочем, вряд ли я воспользуюсь данным методом -- замороченно как-то.

А какой способ используется чисто под виндой?
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Стандартные иконки mtWarning, mtError, mtInformation, mt

Сообщение Des » 22.07.2015 18:38:06

Все получилось! спасибо kazalex
Des
новенький
 
Сообщения: 22
Зарегистрирован: 20.07.2015 17:53:08

Re: Стандартные иконки mtWarning, mtError, mtInformation, mt

Сообщение kazalex » 22.07.2015 18:46:01

Лекс Айрин писал(а):А какой способ используется чисто под виндой?

Этот же.
kazalex
постоялец
 
Сообщения: 296
Зарегистрирован: 01.06.2012 14:54:10


Вернуться в Общее

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 16

Рейтинг@Mail.ru
cron