помогите разобраться по чему не работает такая констр

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
yser
новенький
Сообщения: 29
Зарегистрирован: 06.02.2008 10:27:40

помогите разобраться по чему не работает такая констр

Сообщение yser »

день добрый.

решил попробовать потихонечку перевести одни из проектов с дельфи на фпс с использованием лазаруса.
перевел внутренности теперь они компилируются и на дельфи и на фпс и вроде как работают :) теперь взялся за интерфейсную часть и столкнулся с небольшой проблемкой - не работает вот такой код:

Код: Выделить всё

unit Unit1; 

{$mode objfpc}{$H+}

interface

uses
  Windows,
  Classes, SysUtils, LResources, Forms, Controls, Graphics, StdCtrls;

type

  { TForm1 }

  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    procedure UserMessages(var AMsg: TMessage); message WM_USER;
  public
    { public declarations }
  end;

var
  Form1: TForm1;

implementation

{ TForm1 }
procedure TForm1.Button1Click(Sender: TObject);
begin
  PostMessage(Handle, WM_USER, 0, 0);
end;

procedure TForm1.UserMessages(var AMsg: TMessage);
begin
  Caption := 'hello';
end;

initialization
  {$I unit1.lrs}

end.


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

подскажите почему этот код не работает в лазарусе?

использую вот эту версию лазаруса: Lazarus-0.9.24-fpc-2.2.0-20071114-win32.exe
Аватара пользователя
NXP
постоялец
Сообщения: 187
Зарегистрирован: 02.01.2008 15:11:56
Откуда: Воронеж
Контактная информация:

Сообщение NXP »

Странно, у меня тоже не работает.
Попробуй из LCL lmessages.pp

Код: Выделить всё

  LM_USER           = $400; // MWE: changed from $100 to $400 since they were in the windows range
  WM_USER           = LM_USER;

С кросс-платформенностью проблем не будет :D
GrayEddy
постоялец
Сообщения: 375
Зарегистрирован: 06.05.2005 09:37:56

Сообщение GrayEddy »

> yser
У меня работает.
Видимо, чего-то сломали раньше.
Lazarus-0.9.25 от 24.02.2008
Аватара пользователя
Brainenjii
энтузиаст
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

Сообщение Brainenjii »

как я понял из New 0.9.26 features. Part 1. SendMessage and PostMessage, это дело пока ограничено в Lazarus'e... Хотя может понял неправильно ^_^
Padre_Mortius
энтузиаст
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Сообщение Padre_Mortius »

2 GrayEddy
Проверьте пожалуйста версию Lazarus и fpc. На срезе svn от 24.02.2008 данный код не отрабатывает.

Рабочий пример можно посмотреть в примерах Lazarus\examples\messages\unit1.pas

2 Brainenjii
Спасибо за ссылку
GrayEddy
постоялец
Сообщения: 375
Зарегистрирован: 06.05.2005 09:37:56

Сообщение GrayEddy »

fpc 2.2.1 от 26.01.2008
svn lazarus: 13383 от 24.02.2008
Все работает.
yser
новенький
Сообщения: 29
Зарегистрирован: 06.02.2008 10:27:40

Сообщение yser »

Brainenjii писал(а):как я понял из New 0.9.26 features. Part 1. SendMessage and PostMessage, это дело пока ограничено в Lazarus'e... Хотя может понял неправильно ^_^


спасибо, похоже именно в этом причина ...
Ответить