Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > Нужно вывести сообшение когда выполнится процедура


Автор: Boyur 17.6.2012, 20:00
Здравсвуйте... как мне вывести сообшение когда полностью выпонится процедуа DBGrid1DrawColumnCell?
Или можно вывести сообшение когда полностью построется вся форма?
Есть чтонибуть на подобей FormCreat, только чтобы отслеживала не начало создание формы а конец? smile

Автор: XperT 17.6.2012, 21:24
Цитата

Здравсвуйте... как мне вывести сообшение когда полностью выпонится процедуа DBGrid1DrawColumnCell?

В обработчик события добавьте нужный код.

Цитата

Есть чтонибуть на подобей FormCreat, только чтобы отслеживала не начало создание формы а конец? 

Такого события нету. Рекомендую к прочтению: http://www.delphisources.ru/pages/faq/base/form_life.html

Автор: northener 18.6.2012, 01:46
Цитата(Boyur @  17.6.2012,  20:00 Найти цитируемый пост)
Здравсвуйте... как мне вывести сообшение когда полностью выпонится процедуа DBGrid1DrawColumnCell?
Или можно вывести сообшение когда полностью построется вся форма?
Есть чтонибуть на подобей FormCreat, только чтобы отслеживала не начало создание формы а конец?

Не понял вопрос.
Но на всякий случай сообщу, что событие OnDrawColumnCell будет вызываться очень много раз вплоть до уничтожения формы, на которой сей грид расположен.

Автор: iff 18.6.2012, 12:35
Код

var
  Form1: TForm1;
  firstpaint : boolean;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  firstpaint := true;
end;

procedure TForm1.FormPaint(Sender: TObject);
begin
  if firstpaint then
  begin
    ShowMessage('Сообщение');
    firstpaint := false;
  end;
end;

Автор: XperT 18.6.2012, 13:59
iff, решение так себе: во-первых глобальная переменная (если на то пошло, то privat секция формы лучше для этого подходит), а во-вторых для одноразового использования (она будет висеть всё время в памяти, пока работает программа).

Решение покрасивее (как на меня):
Код

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

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormPaint(Sender: TObject);
begin
  ShowMessage('Сообщение');
  Self.OnPaint := nil;
end;

end.


А вообще я противник того, чтобы давать готовые решения при получении базовых вопросов. Сам когда-то таким был, и тоже постоянно спрашивал, а потом как-то вместо решения проблемы  мне дали наводку где почитать, я день потратил, но на всю жизнь запомнил как выделяется память и работают указатели в Делфи.

Но если уже делитесь решениями, то не приучайте к использованию глобальных переменных.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)