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


Автор: semas 1.8.2007, 16:43
Необходимо создать программу которая бы разворачивалась на весь экран. И не давала пользователю доступ к Винде совсем. 
т.е пользователь работает только с этой программой. 

Далее необходимо создавать подпрограммы (блоки, модули, плагины. можно еще несколько названий этого придумать), которые будут реализовывать в себе те или иные функции.

Например. 
  Калькулятор, 
  блокнот, 
  База данных по работе с клиентами и т.д.

как это лучше всего реализовать? 



Автор: pseud 1.8.2007, 17:04
лучше всего взять винду
а в ней есть и калькулятор, и блокнот, и БД по работе с клиентами (MS Outlook)

если ты хочешь, чтоб тебе в паре фраз изложили, как написать ето все - не выйдет

читай правила форума
начни например с вопроса:
 "как сделать программу, которая бы разворачивалась на весь экран и не давала пользователю доступ к Винде совсем"

Автор: semas 1.8.2007, 17:20
можеть быть немного коряво написал
но 
блокнот и т.д. т.е все подпрограммы примерно знаю как сделать 

непонятно следующее:
подойдет ли для этого dll библиотека
т.е в библиотеке реализация этих подпрограмм( в каждой библиотеке своя почти полноценная программа) . возможно ли это. 
или нужно как то создавать отдельные программы а потом как то их привязывать к главной программе? 

вроде так ... smile 

Автор: pseud 1.8.2007, 17:45
Если блокнот и т.д. - самодостаточные приложения, то IMHO вполне подойдет:
  - куча приложений (exe)
  - которые просто будешь запускать (shellexecute)

Автор: semas 1.8.2007, 18:11
почти самодостаточные. 
обмен данными между ними небольшой да есть . 
Идея главная в том что эта главная оболочка руководит всеми программами. 
т.е. если пользователь вошел в эту программу под своим логином и паролем. то в зависимости от этого логина ему присваиваются права пользователя. 
в зависимости от этого он может запускать те или иные программы, пользоваться теми или иными папками которые хранятся на главном сервере .
в каждую программу передается идентификатор пользователя и его прова на использование тех или иных функций этой программы.

вот 

Автор: THandle 1.8.2007, 21:02
Я так понял, что ты хочешь сделать свою операционку. Если это так, то бросай это. Всё павно не напишешь. Если не так то нет смысла писать свой блокнот и тд. так как всё это есть в винде. просто можешь заблокировать в них все не нужные функции. Если уж очень надо писать всё своё, т о только DLL.  Обясню почему:
1. EXEшники будут выглядеть некрасиво.
2.Если блокнот и К. будут обмениваться сообщениями с главной прогой, то представь, что будет если конечный пользователь запустит твой блокнот, а главное приложение не будет запущено?
3.Библиотеки будут грузится по мере надобности, и не будут сильно жрать память(в сравнеии допустим с формами).

Автор: pseud 2.8.2007, 00:14
Цитата(semas @  1.8.2007,  18:11 Найти цитируемый пост)
в каждую программу передается идентификатор пользователя и его прова на использование тех или иных функций этой программы


вот я и говорю - помоему вполне юзать ехе-шники:

при запуске нужной проги делаем:

Код

ShellExecute(
  Self.Handle, 
  'open', 
  PChar('адрес\программа.ехе'),   // запускаемый ехе-шник
  PChar('/user_name /a /b /c /parametr1 /parametr2 /etc.'),   // строка параметров
  nil, 
  SW_SHOW);


а в самих прогах делаешь обработку параметров
Код

if paramstr(2) = '/a' then
  showmessage('Parameter "/a" was found!');

if paramstr(3) = '/b' then
  color := clBlue;

if paramstr(4) = '/c' then
  caption := 'Parameter "/c" was found';

и т.д.


Автор: Sanchezzz 2.8.2007, 00:42
вот тебе полный экран останется тебе сделать хук на клавы чтоб пользователь не смог переключится с помощью клавиш на другое приложение. или выйти из твоего. 
а воще один вопрос на одну проблему а ты просииш чтоб тебе целое приложение написали.
если да то заказывай. мож кто откликнется естественно за умеренную цену по сложности работы. 
ToolButton1.Tag= изначально равен 1

чет я вчера нето вставил в текст извиняюсь вот работает но не будет работать с Alphi skins партак
будет с от рисовкой скина .. 
Код


if ToolButton1.Tag=1 then
begin
BorderStyle:= bsNone;
WindowState:= wsMaximized;
ToolButton1.Tag:=0;
end else
if ToolButton1.Tag=0 then
begin
WindowState:= wsNormal;
BorderStyle:= bsSizeable;
ToolButton1.Tag:=1;
end;

end;


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