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

Вниз

Canvas. Помогите разобратся.   Найти похожие ветки 

 
CAMCOH ©   (2004-08-17 14:44) [0]

Есть процедура


procedure WriteDC(s: string);
var
 c: TCanvas;
begin
 c := TCanvas.Create;
 c.Brush.Color := clBlack;
 c.Font.color := clRed;
 c.Font.size := 25;
 c.Font.name := "Fixedsys";
 c.Handle := GetDC(GetWindow(GetDesktopWindow, GW_OWNER));
 c.TextOut(0,0, s);
 c.free;
end;


которая выводит на экран текст.
Вопрос в том как после этого вернуть экран в исходное состояние.


 
ламер ©   (2004-08-17 14:50) [1]

InvalidateRect()


 
Григорьев Антон ©   (2004-08-17 14:56) [2]

Кстати, перед c.Free надо сделать c.Handle:=0.


 
CAMCOH ©   (2004-08-17 14:59) [3]

a kakie parametri pisat" ?


 
RaPToR_1   (2004-08-17 15:10) [4]

InvalidateRect а как именно ее юзать?)


 
RaPToR_1   (2004-08-17 15:28) [5]

ура нашел)
InvalidateRect(GetDlgItem(GetDC(GetWindow(GetDesktopWindow, GW_OWNER)),0),nil,falsE);

а как сделать надпись тока чтобы фона не было?


 
Григорьев Антон ©   (2004-08-17 15:31) [6]


> RaPToR_1   (17.08.04 15:28) [5]
> а как сделать надпись тока чтобы фона не было?


SetBkMode(c.Handle,Transparent);


 
RaPToR_1   (2004-08-17 15:48) [7]


> InvalidateRect(GetDlgItem(GetDC(GetWindow(GetDesktopWindow,
> GW_OWNER)),0),nil,falsE);

так получаеться сумасшедшее обновление всех окон.. а можно как то обновить только ту часть экрана, на которой рисовал?


 
ламер ©   (2004-08-17 15:56) [8]

> RaPToR_1   (17.08.04 15:48) [7]

BOOL InvalidateRect(
   HWND hWnd, // handle of window with changed update region  
   CONST RECT *lpRect, // address of rectangle coordinates
   BOOL bErase // erase-background flag
  );

Parameters
lpRect - Points to a RECT structure that contains the client coordinates of the rectangle to be added to the update region. If this parameter is NULL, the entire client area is added to the update region.


 
CAMCOH ©   (2004-08-17 16:02) [9]

i kak eti koordinati zadavat" mozhno na primere ?


 
RaPToR_1   (2004-08-17 16:51) [10]

по ходу транслит наверное не понимают...
переведу...
кто это уже делал...подскажите... потому что выставляю я координаты и не получаеться обновить именно ту часть экрана
как правильно выставить?


 
RaPToR_1   (2004-08-19 12:46) [11]

_


 
KSergey ©   (2004-08-19 13:16) [12]

> [2] Григорьев Антон ©   (17.08.04 14:56)
> Кстати, перед c.Free надо сделать c.Handle:=0.

А вот тут я бы посомневался...

destructor TCanvas.Destroy;
begin
 CanvasList.Remove(Self);
 SetHandle(0);  
.....
end;


А вот надо ли делать ReleaseDC - вот это вопрос... В одной ветке уже написал, что не знаю не него ответа и найти не могу... Может тут кто скажет



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

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

Наверх





Память: 0.47 MB
Время: 0.03 c
1-1092961526
orop
2004-08-20 04:25
2004.09.05
ListView- "осветление иконки пункта".


3-1092310338
stud
2004-08-12 15:32
2004.09.05
опять картинки в базу...


4-1090339359
parovoZZ
2004-07-20 20:02
2004.09.05
TranslateMessage()


6-1088602619
maxistent
2004-06-30 17:36
2004.09.05
Связь компов через INTERNET


14-1092720699
Holy
2004-08-17 09:31
2004.09.05
Локальная сеть...





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский