-
как можно сохранить изображение в компоненте, для вывода ее как иконки для SpeedButton, явл. частью компонента?
-
property Glyph: TBitmap read fGlyph write SetGlyph;
-
> DimaBr
Надо что-бы изображение уже было в компоненте, т.е. хранилось как определенный массив в модуле! компонента... Вопрос можно перезадачить: как можно получить Битмап из заданого заранее "массива в текстовом формате", т.е. в модуле ресурса (на подобии как задаются изобр. в dfm-ах)?
-
> Krants (16.03.07 14:31) [2]
Зачем изобретать велосипед, если он уже сделан? См. [1].
-
> Юрий Зотов
Сам компонент состоит из небольшого набора других компонентов... В том числе и SpeedButton. Просто нужна иконка "по умолчанию"!
-
> Krants (16.03.07 16:06) [4]
Дефолтную иконку проще всего поместить в ресурсы пакета. Пример - TBitBtn.
-
> Юрий Зотов © (16.03.07 17:11) [5]
Поместить то просто, а как вытащить ее на сам компонент а не на его кнопку на панели компонентов?
-
Делается это просто!
bitsDropDownArrow : array [0..2, 0..4] of COLORREF = ( ($FF000000, $FF000000, $FF000000, $FF000000, $FF000000), ($00000000, $FF000000, $FF000000, $FF000000, $00000000), ($00000000, $00000000, $FF000000, $00000000, $00000000) );
а потом:
bDropdownArrow:=CreateBitmap( 5, 3, 1, 32, @bitsDropDownArrow );
и готоый HBITMAP уже рисуешь как захочешь! Естественно, это для небольших каритнок! :)
-
> Krants (16.03.07 17:35) [6]
LoadIcon (LoadBitMap, LoadImage...) в методе Set.
Пример - TBitBtn.
-
А я запихивал в ресурс и в конструкторе из ресурса грузил. Так в мой последний компонент засунут курсор с пальчиком
-
> А я запихивал в ресурс и в конструкторе из ресурса грузил.
Я тоже так делаю
-
> Ricks © (17.03.07 01:39) [7]
Спасиба, то что надо...
> Юрий Зотов © (17.03.07 01:44) [8]
А вот тут немного не понял, в TBitBtn не нашел никаких дефолтных иконок да и LoadIcon... тоже. Можно немного разъяснить, если несложно?
-
Плохо искали
var
BitBtnResNames: array[TBitBtnKind] of PChar = (
nil, 'BBOK', 'BBCANCEL', 'BBHELP', 'BBYES', 'BBNO', 'BBCLOSE',
'BBABORT', 'BBRETRY', 'BBIGNORE', 'BBALL');
function GetBitBtnGlyph(Kind: TBitBtnKind): TBitmap;
begin
if BitBtnGlyphs[Kind] = nil then
begin
BitBtnGlyphs[Kind] := TBitmap.Create;
BitBtnGlyphs[Kind].LoadFromResourceName(HInstance, BitBtnResNames[Kind]);
end;
Result := BitBtnGlyphs[Kind];
end;
procedure TBitBtn.SetKind(Value: TBitBtnKind);
begin
if Value <> FKind then
begin
if Value <> bkCustom then
begin
Default := Value in [bkOK, bkYes];
Cancel := Value in [bkCancel, bkNo];
if ((csLoading in ComponentState) and (Caption = '')) or
(not (csLoading in ComponentState)) then
begin
if BitBtnCaptions[Value] <> nil then
Caption := LoadResString(BitBtnCaptions[Value]);
end;
ModalResult := BitBtnModalResults[Value];
TButtonGlyph(FGlyph).Glyph := GetBitBtnGlyph(Value);
NumGlyphs := 2;
FModifiedGlyph := False;
end;
FKind := Value;
Invalidate;
end;
end;
|