Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.10.10;
Скачать: [xml.tar.bz2];

Вниз

Как размножить рисунок на TabSheet?   Найти похожие ветки 

 
LAndrew   (2002-09-28 23:22) [0]

Нужно всего лишь размножить рисунок на вкладке PageControl. У TabSheet"a Canvas"a нет, т.е. тот способ, что подходит для формы, для него не подходит. И еще - как сделать расположенные на вкладках панели и GroupBox"ы были прозрачными (чтобы не закрывали фоновый рисунок). Использовать другие компоненты или делать свой (что вполне реально) не хочется, ибо уже вся прога написана, дизайн сделан - не хочется компоненты вырезать-вставлять.


 
Song   (2002-09-28 23:30) [1]

Т.е. размножить?
У Вас есть рисунок и Вам нужно рядом нарисовать копию?
Кстати TCanvas получить можно просто его создав с дискриптором, получаемым по GetDC()


 
LAndrew   (2002-09-28 23:34) [2]

фон нужно сделать из рисунка, т.е. заполнить рисунком вкладку. А насчет "просто его создав с дискриптором, получаемым по GetDC()": можно пример, а то я что-то с этим не знаком? Спасибо за ответ.


 
Song   (2002-09-28 23:45) [3]

With TCanvas.Create Do
try
Handle:=GetDC(TabSheet1.Handle);
// Отсюда доступны все методы класса TCanvas для TabSheet
finally
Free;
end;


 
LAndrew   (2002-09-29 00:01) [4]

Да! Это работает! Только вот когда переключаю на другую вкладку (2-ую), а потом возвращаюсь на 1-ую, фон (рисунок) на первой пропадает, если же рисование прописать в событии OnShow, то TabSheet заполняется рисунком не сразу, а за какое-то время (секунды за 1-2 на моем компе), что не очень-то удобно (и красиво). Существует ли какой-либо другой способ? И можно ли как-то панели и (о!) сам TabSheet и PageControl сделать прозрачным, может быть каким-нибудь аналогичным способом. Заранее огромное спасибо.


 
Song   (2002-09-29 08:47) [5]

Надо перехватывать onPaint


 
turusov   (2002-09-30 10:13) [6]

Выдержка из личного ( потомок TImage)
procedure TNsImage.Paint;
var
Save: Boolean;
I, J: integer;
R: TRect;
begin
if csDesigning in ComponentState then
with inherited Canvas do begin
Pen.Style := psDash;
Brush.Style := bsClear;
Rectangle(0, 0, Width, Height);
end;

if (Picture.Graphic <> nil) AND (ImageWay = iwPicture) then begin
Save := FDrawing;
FDrawing := True;
try
R:= DestRect;
with inherited Canvas do begin
if FDuplicate then begin
for I := 0 to (R.Right - R.Left) div Picture.Width do
for J := 0 to (R.Bottom - R.Top) div Picture.Height do
Draw(I * Picture.Width, J * Picture.Height, Picture.Graphic);

end
else
StretchDraw(R, Picture.Graphic);
end;//with
finally
FDrawing := Save;
end;
end//if
else
if ImageWay = iwGradient then begin
Save := FDrawing;
FDrawing := True;
try
R:= DestRect;
GradientFillRectStyle(inherited Canvas, FNsGradientImage.GradientStyle, R, FNsGradientImage.StartColor,
FNsGradientImage.EndColor, FNsGradientImage.Direction, byte(FNsGradientImage.Colors));
finally
FDrawing := Save;
end;
end;//if iwPen
end;



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.10.10;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.008 c
1-31811
WFox
2002-10-02 12:44
2002.10.10
Моноширный Шрифт


4-32102
fester
2002-08-28 01:36
2002.10.10
CaptionBar


1-31698
123000
2002-09-30 16:28
2002.10.10
Как определить в и-нете ли пользователь?


1-31749
arnold
2002-10-01 15:12
2002.10.10
Изменение в каталоге


14-31989
ребенок
2002-09-14 16:02
2002.10.10
Регистрация





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский