Перейти на главную страницу форума
Портал fdd5-25.net: главная страница портала  главная страница форума  файлообменник  фотогаллереи  мировые новости на fdd5-25
Здравствуйте, Гость!

Delphi и MiraculixOS - это ­ возможно!
Страниц (2): [1] 2 »
      Downgrade forever!!! » Другие проекты http://fdd5-25.net » Miraculix os
АвторСообщение
mistifi(ator
Отправлено: 15 Мая, 2007 - 22:23:44 Цитировать :



Newbie
Всего записей: 5 :
Дата рег-ции: Май 2007 :
Всем привет!
Я когда-то уже обращался к этому вопросу, но у меня не выходило. Однако недавно я наткнулся на файлы system.pas и sysinit.pas (Спасибо N†OSKRNL'у), которые были очищены от всего лишнего мусора и при этом нормально компилировались Delphi. Я решил попробовать их для компиляции приложений для MX - и у меня вышло!

http://miraculix.ru/uploads/mx&delphi2.jpg

test.pas
Код:

program TestMX;
Uses mx;
Var WinID:Integer;
    x,y,w,h:integer;
     
procedure DrawWindow;
begin
  WinID:=Draw_StdWindow(x*65536+y,w*65536+h,'Hello world!',WinAttr_Close or WinAttr_Min);
  Write_Text(20,30,$000000,$4,'Miraculix & Delphi!',WinID);
  Create_StdButton(20*65536+50,100*65536+20,'Demo Button',1,0);
end;
 
begin
  // Initialize variables
  x:=50; y:=50;
  w:=200; h:=200;
 
  // Draw window
  DrawWindow;
   
  // Main cycle
  repeat
   WaitMessage;
   StdHandler;
  until 1<>1;
end.


Скачать архив с исходными кодами и компилятором от Delphi 7 можно тут
Вернуться к началу
Профиль : ICQ
Игорь
Отправлено: 16 Мая, 2007 - 20:40:12 Цитировать :



Newbie
Всего записей: 16 :
Дата рег-ции: Сент. 2006 :
Слушай надо решить много проблем с Гуи нет возможности обратится к отдельному элементу Гуи,т.е. если кнопки создаются то им нужно вешать идентификатор не по очереди их создания,а так как даст программист,я с этим столкнулся в своей оболочке и я переделал,это замечание скорее всего надо обратить Креотону,а то не не понятно если захочется выводить текст в Лабел а по номеру не можешь сделать т.к.

(Добавление)
нет механизмов;а в целом идея писать проги на Паскале,оч даже жизне способна !
Вернуться к началу
Профиль : E-mail : WWW :
Dig386
Отправлено: 16 Мая, 2007 - 20:51:45 Цитировать :



Newbie
Всего записей: 41 :
Дата рег-ции: Апр. 2007 :
Цитата:
т.е. если кнопки создаются то им нужно вешать идентификатор не по очереди их создания,а так как даст программист

В Windows хендлы окон (т.е. и кнопок, и полос прокрутки) назначаются операционной системой, и это правильно - не будет конфликтов между программами. Обычно их сохраняют в отдельных переменных (их выдаёт функция CreateWindow).

А вот их номера для события WM_COMMAND - дело пользователя.

Цитата:
а в целом идея писать проги на Паскале,оч даже жизне способна

ИМХО, тут основную играет роль не язык, а инфраструктура (наличие компилятора и механизма импорта API). Например, на WINAPI можно писать на любом языке, но удобнее всего Си.

P.S. Для тех кто в танке (т.е. для меня) - какой формат EXE-шника у Miraculis OS - случайно не PE32?

(Отредактировано автором: 16 Мая, 2007 - 20:51:58)
Вернуться к началу
Профиль : WWW :
Игорь
Отправлено: 16 Мая, 2007 - 20:53:52 Цитировать :



Newbie
Всего записей: 16 :
Дата рег-ции: Сент. 2006 :
Виталий еще ты умеешь писать Длл надо запихать некоторые функции в них такие как
-вывод линий
-вывод прямоугольников
-и еще некоторые графические функции
Что б не таскать их в программах каждый раз,эти функции я могу реализовать в паскале,поэтому дело за малым,
на первых парах прийдется их возить с собой,а то у Бориса нет желания разрабатывать систему =)

(Добавление)
Да Диг386
у них РЕ32

(Добавление)
Идентификаторы кнопок зависят только от номера проги,и их надо назначать своим программистом, я вот про что :
в делфи
button1
button2
у меня было так
button(1,
button(2
а здесь
button
и не понятно как обратится к кнопке,что бы изменить её координаты или название на ней то же для Лабела,
ладно хоть обработчик нажатия кнопок работает =)

(Добавление)
Там массив состояний нажатия кнопок,заполняется тот элемент массива, какой по счету была создана кнопка =)

(Добавление)
Диг386
у тебя есть ася
отпишись мне 380726700
Вернуться к началу
Профиль : E-mail : WWW :
mistifi(ator
Отправлено: 17 Мая, 2007 - 13:26:41 Цитировать :



Newbie
Всего записей: 5 :
Дата рег-ции: Май 2007 :
Здраствуйте

Итак вывод линий и прямоугольников есть в системе, но пока ещё не описаны в заголовочном файле, скоро опишу.

Игорь
Теперь, что-бы изменить положение, надпись и/или размер кнопки, нужно всего-лишь перерисовать её с помощью Create_StdButton

Идентификатор для кнопки задаёш сам и, если он совпадёт с уже существующим, то ты просто изменишь положение, надпись и/или размер кнопки, как это было оговорено выше.

Теперь я немного изменил способ получения и обработки сообщений для удобства. Вот как сейчас будет выглядеть пример:

Код:

program TestMX;
Uses mx;
Var WinID:Integer;
    x,y,w,h:integer;
//    msg:integer;
    i:integer;
procedure DrawWindow;
begin
  WinID:=Draw_StdWindow(x*65536+y,w*65536+h,'Hello world!',WinAttr_Close or WinAttr_Min);
  Write_Text(20,30,$000000,$4,'Miraculix & Delphi!',WinID);
 
  Create_StdButton(57*65536+78,63*65536+29,'Backspace',1,0);
  Create_StdButton(123*65536+78,62*65536+29,'CE',2,0);
  Create_StdButton(188*65536+78,62*65536+29,'C',3,0);
   
  Create_StdButton(11*65536+114,36*65536+29,'MC',4,0);
  Create_StdButton(57*65536+114,36*65536+29,'7',5,0);
  Create_StdButton(96*65536+114,36*65536+29,'8',6,0);
  Create_StdButton(135*65536+114,36*65536+29,'9',7,0);
  Create_StdButton(174*65536+114,36*65536+29,'/',8,0);
  Create_StdButton(213*65536+114,36*65536+29,'sqrt',9,0);
 
  Create_StdButton(11*65536+147,36*65536+29,'MR',10,0);
  Create_StdButton(57*65536+147,36*65536+29,'4',11,0);
  Create_StdButton(96*65536+147,36*65536+29,'5',12,0);
  Create_StdButton(135*65536+147,36*65536+29,'6',13,0);
  Create_StdButton(174*65536+147,36*65536+29,'*',14,0);
  Create_StdButton(213*65536+147,36*65536+29,'%',15,0);
 
  Create_StdButton(11*65536+179,36*65536+29,'MS',16,0);
  Create_StdButton(57*65536+179,36*65536+29,'1',17,0);
  Create_StdButton(96*65536+179,36*65536+29,'2',18,0);
  Create_StdButton(135*65536+179,36*65536+29,'3',19,0);
  Create_StdButton(174*65536+179,36*65536+29,'-',20,0);
  Create_StdButton(213*65536+179,36*65536+29,'1/x',21,0);
 
  Create_StdButton(11*65536+212,36*65536+29,'M+',22,0);
  Create_StdButton(57*65536+212,36*65536+29,'0',23,0);
  Create_StdButton(96*65536+212,36*65536+29,'+/-',24,0);
  Create_StdButton(135*65536+212,36*65536+29,',',25,0);
  Create_StdButton(174*65536+212,36*65536+29,'+',26,0);
  Create_StdButton(213*65536+212,36*65536+29,'=',27,0);
 
end;
 
begin
  // Initialize variables
  x:=50; y:=50;
  w:=260; h:=252;
 
  // Draw window
  DrawWindow;
   
  // Main cycle
  repeat
   case WaitMessage of
     // Если нажата кнопка с идентификатором 1 то нарисуем полосу точками :) (для тестирования PutPixel)
     EventID_Ctrl3+1:
     begin
       Begin_xDraw;
       for i:=10 to 100 do PutPixel(i,i,0,WinID);
       End_of_redraw;
     end;
     // Если нажата кнопка с идентификатором 2 то выведем сообщение
     EventID_Ctrl3+2:ShowMessage('CE','Message');
     // Если было сообщение от клавиатуры то  
     EventID_Kbd:
     begin
       // если нажат Enter то уведомим пользователя
       if GetKey=vk_Return then
       begin
         ShowMessage('Нажат Enter','Message');
       end;  
     end;
   end;
   StdHandler;
  until 1<>1;
end.


Скачать этот пример
Просмотреть скриншот

Удачи

PS:
В mx.pas добавились:
Константы некоторых клавиш
Функции GetKey, GetScanCode, PutPixel, Begin_xDraw, End_of_redraw

(Отредактировано автором: 17 Мая, 2007 - 13:42:55)
Вернуться к началу
Профиль : ICQ
Игорь
Отправлено: 17 Мая, 2007 - 14:20:41 Цитировать :



Newbie
Всего записей: 16 :
Дата рег-ции: Сент. 2006 :
прости за наезд сразу не рассмотрел идентификаторов Кнопок,блин Кто нибудь знает из под какой Вм можно запустить Мх и где её можно скачать,Вм естественно =)
Вернуться к началу
Профиль : E-mail : WWW :
mistifi(ator
Отправлено: 17 Мая, 2007 - 14:25:15 Цитировать :



Newbie
Всего записей: 5 :
Дата рег-ции: Май 2007 :
MX можно запустить из под Microsoft Virtual PC и скачать соответственно на www.microsoft.com. Кажется можно и из под боша, только она под ним будет жутко тормозить.

PS:
Ссылки:
http://download.microsoft.com/download/8/5/6/856bfc39-fa48-4315-a2b3-e6697a54ca88/32%20BIT/setup.exe
http://dl.softportal.com/load/Virtual_PC_setup.exe

(Отредактировано автором: 17 Мая, 2007 - 14:42:43)
Вернуться к началу
Профиль : ICQ
Игорь
Отправлено: 17 Мая, 2007 - 20:36:23 Цитировать :



Newbie
Всего записей: 16 :
Дата рег-ции: Сент. 2006 :
Мистификатор
я скинул исходник к Креотону в файлообменик - xo.pas; понять не могу что я делаю не так; почему у кнопок не меняются названия! ) взгляни пожалуйста =)

(Добавление)
в смысле они меняются но почему то только на одно один параметр а не на 2,взгляни и увидишь о чем я
Вернуться к началу
Профиль : E-mail : WWW :
Игорь
Отправлено: 18 Мая, 2007 - 09:21:50 Цитировать :



Newbie
Всего записей: 16 :
Дата рег-ции: Сент. 2006 :
я понял беда в кнопках;она работает в цикле,а не один цикл

посмотри код,куда ты пропал
Вернуться к началу
Профиль : E-mail : WWW :
mistifi(ator
Отправлено: 18 Мая, 2007 - 10:55:33 Цитировать :



Newbie
Всего записей: 5 :
Дата рег-ции: Май 2007 :
Я смотрел... видел... буду разбираться, отпишусь


На счёт циклов от кнопок поступает 4 сообщения:
( см. Систему сообщений)

EventID_Ctrl0 - Пользователь хотел нажать на кнопку, но передумал - действие было отменено
EventID_Ctrl1 - курсор над кнопкой
EventID_Ctrl2 - (кнопка мыши нажата и курсор над кнопкой, но ещё не отпущена)
EventID_Ctrl3 - кнопка нажата

Но как видишь они будут ловиться только если конкретно эти сообщения ты будешь ловить.

PS:
Я в аське бываю не так часто, обычно гляну сообщения и закрываю, дольше бываю вечером, и то не каждый вечер...
Вернуться к началу
Профиль : ICQ
Версия для печати :: Поиск в теме 
       Downgrade forever!!! » Другие проекты http://fdd5-25.net » Miraculix os
Страниц (2): [1] 2 »
Сообщение
Имя:Гость   Вы зарегистрированы?
Сообщение

Для вставки имени, кликните на нем.
Опции сообщения
Вы хотите разрешить смайлики в этом сообщении?
 
 Наверх Powered by exBB 1.9.1 • ultraGrey skin design by Slaver   

[ Script Execution time: 0.0017 ]   [ Gzip Disabled ]