Конференция "Компоненты" » Иконка в компоненте
 
  • Krants (15.03.07 17:21) [0]
    как можно сохранить изображение в компоненте, для вывода ее как иконки для SpeedButton, явл. частью компонента?
  • DimaBr (16.03.07 11:07) [1]
    property Glyph: TBitmap read fGlyph write SetGlyph;
  • Krants (16.03.07 14:31) [2]

    > DimaBr  

    Надо что-бы изображение уже было в компоненте, т.е. хранилось как определенный массив в модуле! компонента...
    Вопрос можно перезадачить: как можно получить Битмап из заданого заранее "массива в текстовом формате", т.е. в модуле ресурса (на подобии как задаются изобр. в dfm-ах)?
  • Юрий Зотов © (16.03.07 15:45) [3]
    > Krants   (16.03.07 14:31) [2]

    Зачем изобретать велосипед, если он уже сделан?
    См. [1].
  • Krants (16.03.07 16:06) [4]

    > Юрий Зотов

    Сам компонент состоит из небольшого набора других компонентов... В том числе и SpeedButton.
    Просто нужна иконка "по умолчанию"!
  • Юрий Зотов © (16.03.07 17:11) [5]
    > Krants   (16.03.07 16:06) [4]

    Дефолтную иконку проще всего поместить в ресурсы пакета. Пример - TBitBtn.
  • Krants (16.03.07 17:35) [6]

    > Юрий Зотов ©   (16.03.07 17:11) [5]

    Поместить то просто, а как вытащить ее на сам компонент а не на его кнопку на панели компонентов?
  • Ricks © (17.03.07 01:39) [7]
    Делается это просто!

    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 уже рисуешь как захочешь!
    Естественно, это для небольших каритнок! :)
  • Юрий Зотов © (17.03.07 01:44) [8]
    > Krants   (16.03.07 17:35) [6]

    LoadIcon (LoadBitMap, LoadImage...) в методе Set.

    Пример - TBitBtn.
  • TStas © (18.03.07 19:16) [9]
    А я запихивал в ресурс и в конструкторе из ресурса грузил. Так в мой последний компонент засунут курсор с пальчиком
  • DVM © (18.03.07 23:26) [10]

    > А я запихивал в ресурс и в конструкторе из ресурса грузил.

    Я тоже так делаю
  • Krants (20.03.07 13:39) [11]

    > Ricks ©   (17.03.07 01:39) [7]

    Спасиба, то что надо...


    > Юрий Зотов ©   (17.03.07 01:44) [8]

    А вот тут немного не понял, в TBitBtn не нашел никаких дефолтных иконок да и LoadIcon... тоже. Можно немного разъяснить, если несложно?
  • DimaBr (21.03.07 08:55) [12]
    Плохо искали

    {$R BUTTONS.RES}
       
    { TBitBtn data }
    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;

 
Конференция "Компоненты" » Иконка в компоненте
Есть новые Нет новых   [134427   +38][b:0][p:0.002]