Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.02.13;
Скачать: CL | DM;

Вниз

Подскажите, как   Найти похожие ветки 

 
Layner ©   (2004-02-03 08:36) [0]

*


 
Layner ©   (2004-02-03 08:38) [1]

В смысле ее рабочую область.


 
Layner ©   (2004-02-03 08:48) [2]

У меня даже не получается текст вывести :(

procedure TForm1.FormCreate(Sender: TObject);
begin
Form1.Canvas.Brush.Color := clMoneyGreen;
Form1.Canvas.Font.Color := clBlack;
Form1.Canvas.Font.Style:= [fsBold];
Form1.Canvas.TextOut(10,10,"Test");
end;

... и чистая форма..


 
MBo ©   (2004-02-03 08:51) [3]

придется либо перекрывать WindowProc родительской формы, либо в обработчике Application.OnMessage рисование перехватывать


 
Sergey_Masloff   (2004-02-03 09:19) [4]

Я с месяц назад приводил пример. Ищите в архивах - второй раз писать лень.


 
Layner ©   (2004-02-03 09:53) [5]

Sergey_Masloff (03.02.04 09:19)
напишие плз ключевые слова, или если ветка старая, то она уже в архиве :( Если найду, напишу.


 
Cobalt ©   (2004-02-03 09:54) [6]

Может, бросить на неё Image?


 
Sergey_Masloff   (2004-02-03 09:58) [7]

Cobalt © (03.02.04 09:54) [6]
>Может, бросить на неё Image?
На MDI-форм? Слушай не знаешь так людей не смеши ;-)


 
Sergey_Masloff   (2004-02-03 10:06) [8]

Layner © (03.02.04 09:53) [5]
Тема была как вывести текст лога на MDI. Сейчас нет времени я б написал за полчаса. Суть в том что нужно подменить оконную функцию и в ней обрабатывать события рисования. Если до вечера не найдешь я пример напишу. Сейчас нет времени.


 
REP ©   (2004-02-03 10:07) [9]

procedure TMainForm.FormCreate(Sender: TObject);
begin
NewWinProc := MakeObjectInstance (NewWinProcedure);
OldWinProc := Pointer (SetWindowLong (
ClientHandle, gwl_WndProc, Cardinal (NewWinProc)));
OutCanvas := TCanvas.Create;
end;

procedure TMainForm.NewWinProcedure (var Msg: TMessage);
var
BmpWidth, BmpHeight: Integer;
I, J: Integer;
begin
// default processing first
Msg.Result := CallWindowProc (OldWinProc,
ClientHandle, Msg.Msg, Msg.wParam, Msg.lParam);

// handle background repaint
if Msg.Msg = wm_EraseBkgnd then
begin
BmpWidth := MainForm.Image1.Width;
BmpHeight := MainForm.Image1.Height;
if (BmpWidth <> 0) and (BmpHeight <> 0) then
begin
OutCanvas.Handle := Msg.wParam;
for I := 0 to MainForm.ClientWidth div BmpWidth do
for J := 0 to MainForm.ClientHeight div BmpHeight do
OutCanvas.Draw (I * BmpWidth,
J * BmpHeight, MainForm.Image1.Picture.Graphic);
end;
end;
end;
(C) Кэнту


 
Sergey_Masloff   (2004-02-03 10:10) [10]

REP © (03.02.04 10:07) [9]
Да я в свое время у Кэнту научился. Но в приведенном коде есть недостаток - сделай максимизированное окно, потом "нормализуй" и снова разверни. Видишь? Хотя устраняется несложно.


 
Layner ©   (2004-02-03 10:25) [11]

>Хотя устраняется несложно.
После ресайза прогнать процедуру заново?


 
REP ©   (2004-02-03 11:21) [12]

Sergey_Masloff (03.02.04 10:10) [10]
Я так понимаю пример и не должен подходить 100% к вопросу, должно же остаться поле для деятельноси мозгов...


 
Игорь Шевченко ©   (2004-02-03 12:12) [13]

REP © (03.02.04 11:21)

Для деятельности мозгов достаточно одного слова - WM_ERASEBKGND ;)



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

Текущий архив: 2004.02.13;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.034 c
3-38677
dvg
2004-01-24 10:41
2004.02.13
Как создать алиас в BDE автоматически?


3-38723
Жук
2004-01-20 14:39
2004.02.13
Проход по BookmarkList


1-38822
Maxio
2004-02-04 17:08
2004.02.13
Проценты


1-38781
Brut
2004-02-03 15:11
2004.02.13
Автоматическая прокрутка RichEdit


6-38984
Эрик
2003-12-11 08:50
2004.02.13
Как сконвертировать представление ip-адреса в формате IPv4?