Создать ответ 
 
Рейтинг темы:
  • Голосов: 1 - Средняя оценка: 5
  • 1
  • 2
  • 3
  • 4
  • 5
DreamShell 4.0 - App dev
Автор Сообщение
SWAT Не на форуме
Администратор
*******

Сообщений: 3868
Зарегистрирован: 04.01.2005
Рейтинг: 14
Сказал спасибо: 0
Поблагодарили 23 раз(а) в 20 сообщ.
Сообщение: #1
DreamShell 4.0 - App dev
Мы уже знаем, что визуальный интерфейс приложения можно сделать в XML файле, но а как же быть с программной частью?
Я постараюсь вам рассказать об основных моментах создания приложения для DreamShell 4.0
Я не буду здесь вдаваться в подробности что делает та или иная функция, для этого есть документация по API (к сожалению она еще в процессе написания).

И так, как правило, чтобы заставить приложение заработать тогда, когда его открыли, мы задаем событие onload для body в XML. Хотя это и не обязательно, скрипт обрабатывается при загрузке приложения полностью и если вы в нем напишите вызов этой функции, то она вызовется еще до того, как body сформируется. Но как правило нужно чтобы body уже был сформирован, поэтому всегда лучше инициализировать приложение после его формирования, т. е. использовать событие onload.

Допустим создадим функцию InitApp() и впишем ее в событие onload у элемента body.

Код:
local ThisApp = nil;


function InitApp()

ThisApp = DS.GetAppById(THIS_APP_ID);

if ThisApp ~= nil then

-- Ваш код здесь

end
end


THIS_APP_ID - Это глобальная переменная, доступна у любого приложение, она несет в себе ID текущего приложения. С помощью этого ID, мы можем найти наше приложение в списке приложений DreamShell, в этом нам поможет функция GetAppById.

После этого переменная ThisApp будет ссылаться на наше приложение, в ней есть свойства, хранящие в себе списки элементов, ресурсов и информацию о приложении.
Подробнее об этом в документации по API.


В DreamShell есть главное приложение, которое вызывается при ее старте, называется оно Main.
Правилом хорошего тона при программировании вашего приложения, является "кнопка выхода", которая будет осуществлять переход обратно к главному приложению.
Вот пример события для такой кнопки:


Код:
function GoToMainApp()

local app = DS.GetAppByName("Main");

if app ~= nil then

DS.OpenApp(app);

end
end


После вызова этой функции, пользователя перекинет в главное приложение, а текущее приложение закроется и выгрузится из памяти.
Если вы не хотите чтобы ваше приложение выгружалось из память после закрытия, то закройте его сами перед переходом:

Код:
function GoToMainApp()

local app = DS.GetAppByName("Main");

if app ~= nil then

DS.CloseApp(ThisApp, 0);
DS.OpenApp(app);

end
end


Второй аргумент у функции CloseApp как раз отвечает за выгрузку приложения, если стоит 1 то приложение выгрузится, если стоит 0 то останется в памяти.
Если функцию CloseApp не вызывать при переходе к другому приложению, то она сработает автоматически, со вторым агрументом равным - 1.


Пока больше нет специфических для приложения моментов, все остальное определяется вашей фантазией и знаниями API:)
(Последний раз сообщение было отредактировано 24.01.2012 в 16:18, отредактировал пользователь zaero.)
09.03.2009 19:17
Вебсайт Найти все сообщения Цитировать это сообщение
SWAT Не на форуме
Администратор
*******

Сообщений: 3868
Зарегистрирован: 04.01.2005
Рейтинг: 14
Сказал спасибо: 0
Поблагодарили 23 раз(а) в 20 сообщ.
Сообщение: #2
DreamShell 4.0 - App dev
up

[Изображение: podpis.gif]
18.03.2009 12:59
Вебсайт Найти все сообщения Цитировать это сообщение
Jirohn Не на форуме
Новичок
*

Сообщений: 14
Зарегистрирован: 14.06.2011
Рейтинг: 0
Сказал спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщ.
Сообщение: #3
RE: DreamShell 4.0 - App dev
google translator

hello, I want to know. if you do not mind? if you tell me how would the syntax of SDL_GetMouseState in lua. maybe it's silly, but I am XDD rolling a little, XDD.

thanks

google translator

привет, я хочу знать. если вы не возражаете? если вы скажете мне, как бы синтаксис SDL_GetMouseState в Lua. может быть, это глупо, но я XDD подвижного мало, XDD.

спасибо
(Последний раз сообщение было отредактировано 19.06.2011 в 21:53, отредактировал пользователь Jirohn.)
19.06.2011 21:28
Найти все сообщения Цитировать это сообщение
SWAT Не на форуме
Администратор
*******

Сообщений: 3868
Зарегистрирован: 04.01.2005
Рейтинг: 14
Сказал спасибо: 0
Поблагодарили 23 раз(а) в 20 сообщ.
Сообщение: #4
RE: DreamShell 4.0 - App dev
Код:
local x;
local y;
DS.SDL_GetMouseState(x, y);

[Изображение: podpis.gif]
(Последний раз сообщение было отредактировано 21.06.2011 в 12:53, отредактировал пользователь SWAT.)
21.06.2011 12:52
Вебсайт Найти все сообщения Цитировать это сообщение
Jirohn Не на форуме
Новичок
*

Сообщений: 14
Зарегистрирован: 14.06.2011
Рейтинг: 0
Сказал спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщ.
Сообщение: #5
RE: DreamShell 4.0 - App dev
thanks this code helpme a lot,.
thankssss!! XDXD
22.06.2011 23:09
Найти все сообщения Цитировать это сообщение
Создать ответ 


Похожие темы
Тема: Автор Ответов: Просмотров: Посл. сообщение
  Dreamshell BETA3/BETA4 Direct Swap atreyu187 3 1559 09.09.2011 14:27
Посл. сообщение: SWAT
  DreamShell 4.0 - Module dev SWAT 3 1459 19.06.2011 14:59
Посл. сообщение: Jirohn
  DreamShell 4.0 - API Doc SWAT 12 4041 25.05.2011 06:55
Посл. сообщение: SWAT
  DreamShell 4.0 - Bug Report SWAT 54 11768 28.03.2011 07:24
Посл. сообщение: SWAT
  Разработка блокнота для DreamShell zaero 28 11923 31.01.2011 16:02
Посл. сообщение: SWAT
  DreamShell 4.0 - XML Doc SWAT 4 2623 18.08.2010 14:03
Посл. сообщение: SWAT
  DreamShell 4.0 - Beta Testing SWAT 76 15276 14.07.2010 20:58
Посл. сообщение: SWAT
  DreamShell 4.0 SWAT 43 13133 05.02.2010 07:10
Посл. сообщение: SWAT
  Модули DreamShell (.klf) SWAT 1 2331 05.03.2007 17:40
Посл. сообщение: SWAT
  DreamShell lua source code SWAT 30 18523 29.01.2007 20:58
Посл. сообщение: SWAT

Переход:


Пользователи просматривают эту тему: 1 Гость(ей)