Текущий архив: 2009.05.03;
Скачать: CL | DM;
Вниз
Как рисовать на канве BitBtn? Найти похожие ветки
← →
madmech © (2009-03-16 15:39) [0]Подскажите, как можно рисовать на канве BitBtn, а то у меня ничего не получается. Дельфи не реагирует на команды вида:
ImageList1.Draw(BitBtn1.Glyph.Canvas, 0, 0, 0);
BitBtn1.Glyph.Canvas.LineTo(5, 5);
← →
Palladin © (2009-03-16 15:55) [1]
Var
w:HWND;
c:TCanvas;
begin
c:=TCanvas.Create;
Try
c.Handle:=TDCC(bitbtn1).getdevicecontext(w);
c.LineTo(10,10);
Finally
c.Free;
End;
end;
← →
Palladin © (2009-03-16 16:46) [2]упс, забыл про TDCC :)
Type TDCC=Class(TBitBtn);
← →
korneley © (2009-03-16 20:05) [3]А чем обычная "черепашья" не угодила :)
with BitBtn1.Glyph.Canvas do begin
MoveTo(1, 10);
LineTo(10, 10);
end;
Да, и главное, Glyph должен существовать на момент рисования :))) Это ж TBitMap, экземпляр объекта всё таки....
← →
Palladin © (2009-03-16 20:06) [4]но рисование на глифе будет, а не битбтн"е :)
← →
korneley © (2009-03-16 20:13) [5]Совершенно очевидно. Я ж на глиф исходя из [0] опёрся. Ну хочет на глифе, так сначала пусть хоть создаст его ;)
← →
madmech © (2009-03-17 16:45) [6]Все нормально, все рисуется, как надо, но есть одна маленькая загвоздка: после того, как я перевожу фокус на какой-нибудь другой компонент, нарисованное на канве исчезает. Что делать, как сохранить рисунок?
← →
MsGuns © (2009-03-17 17:03) [7]Очевидно при перерисовке битбтн ничего не знает о Вашей "наколке" на нем :)
← →
{RASkov} © (2009-03-17 17:58) [8]
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
with BitBtn1.Glyph do begin
Width:=BitBtn1.Width div 3;
Height:=BitBtn1.Height-4;
Canvas.Rectangle(3, 3, Height-3, Height-3);
end;
end;
И ничего не стирается...
← →
madmech © (2009-03-18 12:10) [9]Ага, спасибо, все заработало, как только я стал задавать размеры глифа.
← →
madmech © (2009-03-18 17:46) [10]Тогда вопрос таков: а можно ли напрямую загружать в Глиф рисунок из Имажлиста, не занимаясь отрисовкой на канве БитБтн?
← →
korneley © (2009-03-18 18:03) [11]Да
← →
Плохиш © (2009-03-18 18:11) [12]
> madmech © (18.03.09 17:46) [10]
Т.е. изучать свойства используемого компонента - "не дело крютых перцев"?
← →
madmech © (2009-03-19 13:40) [13]Кстати говоря, Мальчиш-плохишъ, "крютой перец" уже изучил используемый компонент (ИмажЛист) и нашел там функцию GetBitMap. Правда разницы особой все равно нет: рисовать на канве или использовать GetBitMap, ибо и в том и в другом случае приходится задавать размеры глифа, и каждый раз заливать его, чтобы стереть предыдущее изображение. Воть. :)
← →
{RASkov} © (2009-03-19 17:13) [14]> [13] madmech © (19.03.09 13:40)
Кстати говоря.... он бы наверняка сделал так:ImageList.getBitmap(i, BitBtn.Glyph);
:)
← →
{RASkov} © (2009-03-19 17:17) [15]> [13] madmech © (19.03.09 13:40)
> и в другом случае приходится задавать размеры глифа, и каждый
> раз заливать его
Прежде посмотрел бы реализацию GetBitMap....)
Страницы: 1 вся ветка
Текущий архив: 2009.05.03;
Скачать: CL | DM;
Память: 0.5 MB
Время: 0.017 c