powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Не срабатывает FormPaint
14 сообщений из 14, страница 1 из 1
Не срабатывает FormPaint
    #39574335
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот что заметил. Если в событие FormShow добавить
Код: pascal
1.
  Self.DoubleBuffered := True;


то событие FormPaint не срабатывает.
Так и должно быть?
...
Рейтинг: 0 / 0
Не срабатывает FormPaint
    #39574341
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11,

что значит "не срабатывает"? Не вызывается на этой строчке?
...
Рейтинг: 0 / 0
Не срабатывает FormPaint
    #39574343
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всё, что в коде события не срабатывает.
Ставлю точку останова на первой строке событие и ничего не происходит.
...
Рейтинг: 0 / 0
Не срабатывает FormPaint
    #39574344
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Delphi XE3
...
Рейтинг: 0 / 0
Не срабатывает FormPaint
    #39574351
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Загляни в
Код: pascal
1.
procedure TWinControl.WMPaint(var Message: TWMPaint);
...
Рейтинг: 0 / 0
Не срабатывает FormPaint
    #39574464
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
if not FDoubleBuffered?
...
Рейтинг: 0 / 0
Не срабатывает FormPaint
    #39574468
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ок, а где бы/как бы правильно выполнять некоторый код при старте приложение, но уже после показа главной формы?
...
Рейтинг: 0 / 0
Не срабатывает FormPaint
    #39574478
Фотография Квейд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11Ок, а где бы/как бы правильно выполнять некоторый код при старте приложение, но уже после показа главной формы?

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
unit Unit5;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils,
  System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Vcl.StdCtrls;

const
  WM_MYHANDLER = WM_USER + 1;
type
  TForm5 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    procedure WMMyHandler(var Message: TMessage); message WM_MYHANDLER;
  end;

var
  Form5: TForm5;

implementation

{$R *.dfm}

procedure TForm5.FormCreate(Sender: TObject);
begin
  PostMessage(Handle, WM_MYHANDLER, 0, 0)
end;

procedure TForm5.WMMyHandler(var Message: TMessage);
begin
  ShowMessage('Выполняю некоторый код')
end;

end.
...
Рейтинг: 0 / 0
Не срабатывает FormPaint
    #39574480
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11Ок, а где бы/как бы правильно выполнять некоторый код при старте приложение, но уже после показа главной формы?
В FormCreate пошли сам себе сообщение в эту-же форму.
...
Рейтинг: 0 / 0
Не срабатывает FormPaint
    #39574483
Freedoom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
X11, отправь сообщение с использованием PostMessage, либо в OnShow, либо в Show/ShowModal
...
Рейтинг: 0 / 0
Не срабатывает FormPaint
    #39574485
Freedoom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пока писал, уже накидали ответов
...
Рейтинг: 0 / 0
Не срабатывает FormPaint
    #39574487
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и оно выполниться не при создании формы, а уже после показа?
...
Рейтинг: 0 / 0
Не срабатывает FormPaint
    #39574494
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11и оно выполниться не при создании формы, а уже после показа?
Да. Следующий вопрос будет в стиле: точно-точно?

Проверить же много проще и быстрее...
...
Рейтинг: 0 / 0
Не срабатывает FormPaint
    #39574499
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11Вот что заметил. Если в событие FormShow добавить
Код: pascal
1.
  Self.DoubleBuffered := True;


то событие FormPaint не срабатывает.
Так и должно быть? Нет.

Проверь на голом примере
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm1 = class(TForm)
    procedure FormPaint(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
  DoubleBuffered:=true;
end;

procedure TForm1.FormPaint(Sender: TObject);
begin
  with Canvas do begin
    Brush.Color:=clRed;
    FillRect(ClipRect);
  end;
end;
end.



Если в генофонде ничего не испортили, должно работать.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Не срабатывает FormPaint
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]