Все настройки произведены, теперь напишем простенькую программку с нескольками кнопками и Label`ами на API.
Все проекты рекомендую держать в одной папке например
мои докУменты\Lazarus Projects\
В ручную форму создавать я не буду, и создам её с помощью редактора ресурсов, для этого я использовал Resource Builder 2.6.4.1
Вот что у меня получилось:
В свойствах формы
Styles выставленно - DS_CONTROL
Windows Style выставленно - WS_POPUP WS_SYSMENU WS_CAPTION
в True остальное в False
Размер формы 168 на 223
На форме помещены три кнопки и два лэйбла(не знаю как пишется по руский)
Теперь выставляем Control_ID для всех элементов так
Кнопка с Caption=Label выставляем 0
Кнопка с Caption=Exit выставляем 1
Кнопка с Caption=Thread выставляем 3
Label0 выставляем 2
Label1 выставляем 4
Это нужно для того чтобы следующий код работал как надо.
Сохраняем под именем Form.res (не rc)
Вроде с формой все.
Теперь приступим к лазарю.
Нажимаем создать... и выбераем Program
Перед нами чистый проект.
Можно весь текст удалить и вставить вот это:
program project1;
{$R Form.res} // Добавление ресурсов где находится форма
uses
windows, messages; // Без них никак, библеотеки
var
handle: Hwnd; //Handle окна
Msg: TMsg; // для получения системных сообщений
inst: THandle;
procedure procedure1; // Процедура нажатия кнопки Label
begin
SendDlgItemMessage(handle,2,WM_SETTEXT,0,longint(PWideChar('Privet')));
// SendDlgItemMessage посылает сообщение Label0 об установки текста
// При создании формы мы указывали Control_ID у Label0 он равен 2
// WM_SETTEXT указывает что нужно установить текст
// longint(PWideChar('Privet')) это указатель на строку, так как мы используем константу то приходиться делать вот так.
end;
procedure procedure2; // Процедура нажатия кнопки Thread
begin
//Можете поэксперементировать здесь
end;
function WindowProc(Wnd:hwnd; uMsg:uint; wP:Wparam;lP:Lparam):Lresult; Stdcall;
// функция обработки сообщений главного окна
var nCode, ctrlID : word;
begin
if Umsg=wm_initdialog then
begin
result:=cardinal(true); // что делать при инициализации
end;
if Umsg=wm_command then
begin // вот здесь обрабатываются наши кнопочки
nCode:=hiWord(wP);
ctrlID:=loWord(wP);
if ctrlid=1 then // Exit Button
begin
postquitmessage(0);
Result:=cardinal(true);
end;
if ctrlid=0 then procedure1; // Label Button
if ctrlid=3 then procedure2; // Thread Button
result:=cardinal(true);
end;
if umsg = wm_destroy then // уничтожение окна
begin
postquitmessage(0);
enddialog(wnd,0);
Result:=cardinal(true);
end;
if umsg = wm_close then // закрытие окна
begin
postquitmessage(0);
enddialog(wnd,0);
Result:=cardinal(true);
end;
result:=cardinal(false);
end;
var
h: HWND; //нужен для нахождения окна
begin
//szWindowClass , szTitle
h := FindWindow(nil,'Proj3'); // находим окно с заголовком Proj3
if (h<>0)then // Если нашли то покажем его и завершим эту программу
begin // подумайте для чего это нужно
ShowWindow (h, SW_SHOW);
SetForegroundWindow(h);
ExitProcess(0);
end;
inst:=GetModuleHandle(nil);
handle:=CreateDialog(inst,'DIALOG_0',0,@WindowProc); // Создание окна
if ((handle=INVALID_HANDLE_VALUE)or(handle=0)) then
begin
MessageBox(0,'Cant`t create dialog','Error ',0);
ExitProcess(0);
end;
showwindow(handle,SW_SHOW);
UpdateWindow(handle);
while GetMessage(@Msg, 0, 0, 0) do
begin
TranslateMessage(@msg);
DispatchMessage(@msg);
end;
end.
Попробуйте скомпилировать
и посмотреть что получится.
Настройка компилятора.
Проект\Параметры компилятора...
Закладки:
Пути\Другие модули
Пишем "$(LazarusDir)\lcl\interfaces\wince\" конечно без ковычег
Обработка
Код
Связывание
Все теперь можно пробывать.
Проще всего запускать программу на эмуляторе, а можно и на КПК.
Я пользуюсь первым.
Настройка эмулятора.
Скачиваем эмулятор и image файл к нему, у меня все установилось с Visual Studio 2005 правда там только Win CE 2003.
Все ссылки на эмуляторы и актив синк есть на этом сайте http://www.ladoshki.com/161_articles_Эмуляторы_Windows_Mobile_на_домашнем_компьютере.htm
Запускаем эмулятор в меню File\Configure...
прописать путь к вашим проектам.
Подчеркнуто синим.
Теперь будет проще, нажимаем в Лазаре Ctrl + F9 ждем строки
Проект успешно собран и переходи в эмуль, там тыкаем на приложение и все, смотрим своё творчество.
понедельник, 28 января 2008 г.
Подписаться на:
Комментарии к сообщению (Atom)
Комментариев нет:
Отправить комментарий