Страница 1 из 1
Стандартные иконки mtWarning, mtError, mtInformation, mtConf
Добавлено: 20.07.2015 16:59:09
Des
Мне нужно получить данные иконки.
В делфи я получаю их так
Image.Icon.Handle := LoadIcon(0, IconID), где IConID берется из этого списка (IDI_EXCLAMATION, IDI_HAND, IDI_ASTERISK, IDI_QUESTION, nil)
Как получить их в лазарусе?
Re: Стандартные иконки mtWarning, mtError, mtInformation, mt
Добавлено: 21.07.2015 08:33:34
Vadim
Вы это для винды спрашиваете или кроссплатформенно?
Re: Стандартные иконки mtWarning, mtError, mtInformation, mt
Добавлено: 21.07.2015 18:44:37
Des
для линукса
Re: Стандартные иконки mtWarning, mtError, mtInformation, mt
Добавлено: 21.07.2015 20:30:57
kazalex
Des писал(а):Как получить их в лазарусе?
Код: Выделить всё
Uses LCLType, Themes;
...
ThemeServices.GetStockImage(idDialogWarning, ...);
...
Re: Стандартные иконки mtWarning, mtError, mtInformation, mt
Добавлено: 22.07.2015 16:20:39
Des
kazalex писал(а):Des писал(а):Как получить их в лазарусе?
Код: Выделить всё
Uses LCLType, Themes;
...
ThemeServices.GetStockImage(idDialogWarning, ...);
...
что то не работает.
BH:HBitmap;
BMH:HBitmap;
ThemeServices.GetStockImage(idDialogWarning, BH,BMH); выдает false как будто ничего не нашел.
Можно полный код вплоть до того момента когда у меня в Tbitmap или Ticon записываются картинки?
Re: Стандартные иконки mtWarning, mtError, mtInformation, mt
Добавлено: 22.07.2015 16:43:01
Лекс Айрин
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;
и становится понятно, что функция сильно похожа на заглушку.
Re: Стандартные иконки mtWarning, mtError, mtInformation, mt
Добавлено: 22.07.2015 16:57:34
kazalex
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;
Лекс Айрин писал(а):и становится понятно, что функция сильно похожа на заглушку.
Нужно смотреть класс конкретного виджетсета (на вызов бряк, потом трейс), а не базовый.
Re: Стандартные иконки mtWarning, mtError, mtInformation, mt
Добавлено: 22.07.2015 17:02:29
zub
>>и становится понятно, что функция сильно похожа на заглушку.
Если поискать еще или в отладчике посмотреть куда уходит вызов
Код: Выделить всё
ThemeServices.GetStockImage(0,Image, Mask);
прояснится что заглушка какраз не используется, используется нормальная реализация. но не факт что она полная и кроссплатформенная. в Themes к сожалению очень много недоделанного
Re: Стандартные иконки mtWarning, mtError, mtInformation, mt
Добавлено: 22.07.2015 17:34:28
Лекс Айрин
kazalex,zub, понятно. Впрочем, вряд ли я воспользуюсь данным методом -- замороченно как-то.
А какой способ используется чисто под виндой?
Re: Стандартные иконки mtWarning, mtError, mtInformation, mt
Добавлено: 22.07.2015 17:38:06
Des
Все получилось! спасибо kazalex
Re: Стандартные иконки mtWarning, mtError, mtInformation, mt
Добавлено: 22.07.2015 17:46:01
kazalex
Лекс Айрин писал(а):А какой способ используется чисто под виндой?
Этот же.