Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » создание компилятора

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3

Открыть новую тему     Написать ответ в эту тему

Pinocchio

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Guderian
моё плохое настроение не может служить оправданием...
 
Те кто ставил и конфигурировал Apache наверняка знакомы с PHP. Можно представить альтернативу - IIS + ASP. PHP скрипты выполняются на сервере и выдают клиенту динамически созданный HTML. Наверно нетрудно представить на его месте Xml. Надеюсь понятно, почему правила тегов (находились в контенте) для состоятельного документа (валидного) более приемлимы в случае с PHP нежели с txt?
 
На вопросы по XML я отвечал. В детали углубляться не вижу смысла.
 
Добавлено
К сожалению учебник языкознания у меня дома, но если у Вас имеется аналог, то хочу предложить посмотреть на метод парадигм.  
 
Моим аргументом в пользу Xml, является лёгкость в использовании задачь локализации. Однако для создания компилера я выбрал TРarsеr, так как оно знакомее и интуитивно понятнее.
 
Добавлено
Вопросы надо формульровать чётче, на риторические отвечаю реже.

----------
Meaning this is something additional.

Всего записей: 683 | Зарегистр. 18-11-2002 | Отправлено: 11:34 24-03-2003 | Исправлено: Pinocchio, 19:03 25-04-2006
Guderian



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
1. А такая альтернатива как IIS+ASP.NET не рассматривается? Или asp.net без iis?
2. Что такое "состоятельный документ" ?
3. Что такое "правила тэгов"? Или термины вроде well-formed, dtd и xml-схемы уже утратили смысл?
4. Чем "более приемлемо" с использованием php, а не, например того же asp, jsp, coldfusion? А если я вообще не веб-проект делаю, то xml использовать нельзя. Для, например, detached dataset или ie+xml isles?
5. С каких пор xml - это html созданный ручками? Точнее, здесь два вопроса. С каких пор это html? И что мне мешает формировать его автоматически из базы, получать от веб-сервисов, систем вроде BizTalk сервер или рисовать в том же XmlSpy? Или мне обязательно всю базу надо ручками в текстовом редакторе вколотить в виде xml?
Из старых вопросов, на которые как бы получены ответы.
6. как с помощью того же xslt трансформировать текстовый файл, который не well-formed? Или бинарный файл?
7. где мне несведущему найти библиотеки с нормальной реализацией x-link, x-pointer?
8. Для каких "более широких целей" пригоден x-link, например, по сравнению с xslt. И чем определяется ширина этих целей?  
9. Ну и, главный вопрос треда. Как ты собирался xml+xlink+xpointer использовать для решения поставленной задачи.
 
Как я уже говорил, без патетики. Спокойно, с толком, с расстановкой, вопрос за вопросом. И еще раз повторюсь. У меня уже под десяток веб-проектов, активно использующих xml, так что не надо мне рассказывать, что это такое.

Всего записей: 382 | Зарегистр. 07-05-2002 | Отправлено: 12:13 24-03-2003
Pinocchio

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
1. В ASP для объединения (конкатенации) строк надо использовать знак сложения '+'. Спросил бы по джаве...
2. Состоятельный документ сопутствует хорошо оформленному, но не одно и тоже.
3. Правила теэгов - моя сентенция.  
4. Не читай, если уже генеришь скриптами.
5. Про PHP - это была попытка напрячь твою фантазию. Посмотри к чему это привело - ты собираешься транслятор писать с помощью автоматов базы BizTalk.
6. Без знаний программирования - никак, скорее всего проблемма в этом.
7. А они существуют? (пасибочки ссылку получил).
8. xml, а не X-Link. Читай внимательнее. xslt - объявлен как транс. а xml необъявлен, X-Link тоже необъявлен, но это что-то более конкретное.
9.(a+b+c)*(x+y)=
|mul
+--sum1
    +--a
    +--b
    +--c
+--sum2
    +--x
    +--y (это дерево соответствует высказыванию 9. смотри пункт 6.)
 
Главной трудностью программиста является - программирование. %
Не имел ввиду XML. Тебе компонент TPageProducer кажется знаком?
Я не вижу разницы в скорости HTML и PHP хотя последний выполнял и лексикографический разбор скриптов и сами скрипты. Кто-то уже выше советоват, кстати.
Можешь объяснить какое отношение имеет семантическая иерархия к XML/XSLT (рас ты спец)?

----------
Meaning this is something additional.

Всего записей: 683 | Зарегистр. 18-11-2002 | Отправлено: 14:08 24-03-2003 | Исправлено: Pinocchio, 12:46 26-04-2006
Guderian



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
1. Тогда не надо рассказывать, как в php это все хорошо. Да простят меня его фанаты, но в .net, особенно то, что касается поддержки xml, все гораздо лучше.
2. Ну так используй нормальные термины. Я этот справочник не читал. На w3c никакой информации по "состоятельным" документам тоже нет.
3. Я что - телепат, расшифровывать твои сентенции. Пользуйся нормальными, устаканенными терминами. Либо приводи расшифровку.
4,5 Это я пропущу. Вообще мимо тазика + неумение читать оппонента уже по третьему разу.
6. Хорошо, добавь знание программирования, хотя бы теоретически, и попробуй использовать xslt для поставленной задачи.
7. Вообще-то это ты предложил их использовать. Уже свои спичи забываются?
8. "XSLT очевидно объявлен трансформом, остальные не объявляются, не потому, что непригодны, а потому, что пригодны для более широких целей." Я что должен напоминать тебе твои же фразы?
9. Где ты в задаче видел фразу "вычислить арифметическое выражение"? Упрощу задачу. Тебе надо заменить букву "ы" на букву "й" в каждом втором слове нечетной строки если оно заканчивается на "ь". Пример на xml+x-link+x-pointer+xslt. Естественно без использования скриптовых расширений вроде msxml.
 

Цитата:
Главной трудностью программиста является - программирование.

Ну если это является главной задачей, то нам не по пути.
 

Цитата:
Теперь объясни пожалуйста, почему я должен отчитываться по XML, когда из тебя информацию клешнями не вытянешь. Объясни мне неучу какое отношение имеет семантическая иерархия к XML/XSLT (рас ты спец)?  

Объясню. Потому что не я предложил использовать вышеозначенное для решения поставленной задачи. И никаких вопросов по xml ты мне не задавал, так что клешнями из меня вытягивать было нечего. Что же касается поставленного вопроса, то отвечаю. Поставлен он неправильно. Во-первых, семантическая иерархия ничего общего не может иметь с xml, поскольку язык разметки сам по себе не может нести семантики. Оно может быть заключена только в реализациях xml. Во-вторых, семантически это может быть совершенно не иерархия, а, например, многомерный olap-куб. И в-третьих, этот вопрос не имеет никакого отношения к профессионализму в использовании xml и смежных технологий.
 
Ладно, надо завязывать. Аругментацию ты не воспринимаешь, а время тратить впустую я не имею никакого желания. Моя задача - либо помочь другим, либо самому чему-либо научиться. От тебя ни того, ни другого. Бай...
 
зы. отвечу, только если увижу решение поставленной задачи предложенным тобой методом.

Всего записей: 382 | Зарегистр. 07-05-2002 | Отправлено: 10:22 25-03-2003
Pinocchio

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Guderian
Соглашусь, что в пункте 8 действительно совершил ошибку. "Аругментацию ты не воспринимаешь" - отчего такой печальный вывод. Наверное нестоило налетать на непрофессионала в XML, только из-за того, что ты в нём круче?
 
Изучал приведённый мной линк на модификатор? - Нет.  
Вопросов по методу у тебя и не должно быть.  
Дабы продемонстрировать вред наездов предлагаю поразмыслить, что есть семантическая иерархия объектов. Что однако не поможет моим объектам, т.к. обращения к данным пишу дедовским способом - позиции, начальная и конечная, b) методы конвертации, последовательности id, вычисления.

----------
Meaning this is something additional.

Всего записей: 683 | Зарегистр. 18-11-2002 | Отправлено: 12:06 25-03-2003 | Исправлено: Pinocchio, 18:02 25-04-2006
Guderian



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Pinocchio

Цитата:
Наверное нестоило налетать на непрофессионала в XML, только из-за того, что ты в нём круче?

Не стоило советовать его использовать там, где он использованию не подлежит.
 
Что касается решения, то я не понимаю, как банальный statemachine "наполовину решает" поставленную задачу. А описание трансформа в html - далеко не самый лучший способ. Как впрочем и xml. Синтаксический граф, который является результатом трансляции плохо укладывается в его структуру.
 

Цитата:
б) Методы конвертации данных в шестнадцатиричный вид (тут без XML вообще труба).  

Xml как то помогает конвертировать в шестнадцатиричное представление?
 

Цитата:
Неувидеть решение это...

Как я уже и говорил, решение для банальной statemachine, которое я уже упоминал. Никакой связи этого решения с предложенными тобой же xml, x-link и x-pointer я не увидел.
 

Цитата:
Ну вобщем жду объяснений, или адью.

жди, asta...

----------
Продается нужник. Самому очень нужен, кабы не нужда - не продавал бы.

Всего записей: 382 | Зарегистр. 07-05-2002 | Отправлено: 14:09 25-03-2003
Pinocchio

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
То есть например затем просто писать такие макросы: если 3-й байт файла равен 33h, то выполнить над файлом процедуру 1, иначе выполнить процедуру 3. Далее такой макрос нужно преобразовать опять же в бинарный код, и он уже обрабатывает весь объём данных.

 
xml не связан воспроизведением mp3. Очень крутая задача однако. Что такое statemachine и почему он не подходит для обработки данных? Небольшие макросы можно редактировать графически, а сохранять в ini. Что можно сделать с файлом кроме чтения/записи? (- вопрос из серии про sm). Какие такие низкоуровневые операции с файлом? Их много? (- операций). "Полной гибкости он тебе не даст" - ну ладно.
 
Guderian
Моя старющая программка - полное гвн тоже заметил?  
Конфиги с помощью xml это мой глюк...  
конф менять нельзя...  
readonly... не увижу...


----------
Meaning this is something additional.

Всего записей: 683 | Зарегистр. 18-11-2002 | Отправлено: 15:13 25-03-2003 | Исправлено: Pinocchio, 17:34 25-04-2006
Guderian



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Pinocchio
Ты где такую траву берешь? Человеку компилятор был нужен, а ты бред какой-то несешь про winamp'ы, апачи и прочую чепуху. Бросай свою дельфи и пиши на xml. И в экзешники тебе компилировать не надо, потому что надо отказываться от бинарников. Пускай тебе твоя ось прям их и выполняет. Все, бесполезно разговаривать. Ничего не слышишь

----------
Продается нужник. Самому очень нужен, кабы не нужда - не продавал бы.

Всего записей: 382 | Зарегистр. 07-05-2002 | Отправлено: 15:45 25-03-2003
Pinocchio

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Про устаканенные определения. Хорошо оформленный - который обязательно весь заключён в один "коренной" тэг.  Состоятельный документ должен соответсвовать всем требованиям DTD (тут подразумевался не одноимённый тэг).
 
По задаче. Имеется ли в задаче выполнение макросов работающих с файлами? По объекту с названием "модификатор" было много непоняток. Не буду компилировать объект, которому больше 5 лет. Новый напишу.
 
Из топика определение (употребление, деннотация, степень его необходимости в контексте) "statemachine" мне неясно. Если это нечто вроде запускаемого файла (3mb) к данным конфигурации модификатора (15mb). И решает вопрос по statemachine, то тогда как не компилируй - дело за названием.  
 
Не пиши накаких извинений, потому что тут мне хотелось очень страшно ругаться.

----------
Meaning this is something additional.

Всего записей: 683 | Зарегистр. 18-11-2002 | Отправлено: 12:19 26-03-2003 | Исправлено: Pinocchio, 17:14 25-04-2006
Guderian



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Хорошо оформленный - который обязательно весь заключён в один "коренной" тэг.

Определенние wellformed не знаешь.
 

Цитата:
Состоятельный документ должен соответсвовать всем требованиям DTD.

Документ валидируемый xml-схемой не "состоятелен"?
 

Цитата:
Определение "statemachine" мне неясно

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

Цитата:
Пожалуйста не доставай меня ерундой

Если бы ты знал, как меня достал. Хотя, для меня это уже как развлечение, своеобразное сафари...

----------
Продается нужник. Самому очень нужен, кабы не нужда - не продавал бы.

Всего записей: 382 | Зарегистр. 07-05-2002 | Отправлено: 13:21 26-03-2003
Pinocchio

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
определения хорошо оформленного и состоятельного взяты из справочника.

----------
Meaning this is something additional.

Всего записей: 683 | Зарегистр. 18-11-2002 | Отправлено: 14:12 26-03-2003 | Исправлено: Pinocchio, 18:44 25-04-2006
zetnext

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Я делаю такие операции над текстами с помощью perl скриптов. Редко бывало нужно превратить это в executable. Но если приходилось то помогает программа из ActiveState PDK (строго говоря она не бесплатная). Короче там есть опция сгенерировать standalone executable. То есть готовый exe будет запускаться на любой машинке где может и не быть установлен Perl.  
Тут можно присобачить запуск скриптиков, как ты хотел, набранных вручную и через eval запускать их. Ошибки отлавливать и показывать юзеру.
Элементарный оконный юзер интерфейс можно сделать с помощью модулей Tk.

Всего записей: 97 | Зарегистр. 19-01-2002 | Отправлено: 07:22 28-03-2003
odl455



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zetnext
 
Видимо я что-то не так объяснил. Меня понял только Guderian. Мне нужен действительно полнофункциональный компилятор, заточенный под мою конкретную задачу. Perl не подходит. Нет достаточного контроля ситуации на низком уровне. В частности нужна возможность например вырвнивать код по определённым адресам в памяти. Но в любом случае спасибо.

Всего записей: 659 | Зарегистр. 26-08-2002 | Отправлено: 12:28 28-03-2003
Guderian



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
odl455
Как успехи? Остановился на чем-то или пока в поисках?

----------
Продается нужник. Самому очень нужен, кабы не нужда - не продавал бы.

Всего записей: 382 | Зарегистр. 07-05-2002 | Отправлено: 13:02 28-03-2003
odl455



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Guderian
 
Следую совету 5 - "Копать в сторону yacc, lex,edg и иже с ними" и 6 "Взять сырцы какого-нибудь гнутого компилятора"
 
Читаю теорию пока. Информации довольно много.

Всего записей: 659 | Зарегистр. 26-08-2002 | Отправлено: 14:25 28-03-2003
Feg16

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Присоединяюсь к вопросу. Конечно с бухты барахты компиль не напишешь, но хотеось бы знать от чего отталкиваться при создании исполняемого файла

Всего записей: 1 | Зарегистр. 20-04-2006 | Отправлено: 14:47 20-04-2006
OdesitVadim



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
От формата PE файла.

----------
Press any key to continue or any other key to exit
Пишите так, чтобы не было стыдно за нобелевскую премию.

Всего записей: 1568 | Зарегистр. 19-09-2003 | Отправлено: 15:56 20-04-2006
KADABRA



Великий покусатель
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору


Цитата:
От формата PE файла.

Или формата ELF файла

----------
Это не подпись.

Всего записей: 1718 | Зарегистр. 14-07-2003 | Отправлено: 16:02 20-04-2006 | Исправлено: KADABRA, 16:49 20-04-2006
Pinocchio

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
Для решения одной задачи встала задача создания собственного макро-языка. Нужна возможность создания макросов которые затем компилируются в бинарный код. Как к такой задаче подступиться?

От формата Лист Microsoft Excel, бинарнее не бывает.  
 
Добавлено:
Макросы превращаемые в бинарный код могут зависеть от бинарного кода, тобишь какой тебе код нужен (для процессора или препроцессора, а может ещё для чего).
Почитал тут про оптимизацию размера программы, прога получилась на 200kb, любое количество маленьких экранчиков поверх телика. Делать её в один день можно.  
Напоминаю:
1.Если нет каких компонентов - кнопка игноре.
2.Если текст не компилируется внимательно удаляем.
3.Если размеры экранчика не совпадают с размерами предметов используются первые два правила иначе не понять к чему я веду мысль.
 

Код:
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Classes, Controls, Forms, Dialogs, MPlayer,
  ExtCtrls, Menus, ComCtrls, PinClasses, PinValues, PinRegValues, pinShell,
  XPMan;
 
type
  TForm1 = class(TForm)
    Exit1: TMenuItem;
    File1: TMenuItem;
    Link1: TPinRLink;
    MediaPlayer1: TMediaPlayer;
    N1: TMenuItem;
    N11: TMenuItem;
    N121: TMenuItem;
    N15x11: TMenuItem;
    New1: TMenuItem;
    OpenDialog1: TOpenDialog;
    Panel1: TPanel;
    PopupMenu1: TPopupMenu;
    RegBoolean1: TPinRegBoolean;
    RegistryValues1: TPinRegistryValues;
    RegString1: TPinRegString;
    Stayontop1: TMenuItem;
    Timer1: TTimer;
    TrackBar1: TTrackBar;
    XPManifest1: TXPManifest;
    Zoom1: TMenuItem;
    procedure Exit1Click(Sender: TObject);
    procedure File1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure MediaPlayer1Click(Sender: TObject; Button: TMPBtnType;
      var DoDefault: Boolean);
    procedure MediaPlayer1Notify(Sender: TObject);
    procedure MediaPlayer1PostClick(Sender: TObject; Button: TMPBtnType);
    procedure N11Click(Sender: TObject);
    procedure N121Click(Sender: TObject);
    procedure N15x11Click(Sender: TObject);
    procedure New1Click(Sender: TObject);
    procedure Panel1DblClick(Sender: TObject);
    procedure Panel1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Panel1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure Panel1MouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure PopupMenu1Popup(Sender: TObject);
    procedure Stayontop1Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure TrackBar1Change(Sender: TObject);
  private
    fdrag: boolean;
    fdx, fdy: Integer;
    fk: Double;
    fr: TRect;
  public
    procedure MOpen;
    procedure MPlay;
  end;
 
var
  Form1: TForm1;
 
implementation
 
uses Types;
 
{$R *.dfm}
 
procedure TForm1.Exit1Click(Sender: TObject);
begin
  Close;
end;
 
procedure TForm1.File1Click(Sender: TObject);
begin
  OpenDialog1.InitialDir := ExtractFileDir(RegString1.Value);
  if not OpenDialog1.Execute then exit;
  Panel1.Caption := OpenDialog1.FileName;
  RegString1.Value := Panel1.Caption;
  MOpen;
end;
 
procedure TForm1.FormCreate(Sender: TObject);
begin
  if RegBoolean1.Value then FormStyle := fsStayOnTop;
  fk := 1/2;
  Panel1.Caption := RegString1.Value;
  if FileExists(Panel1.Caption) then MOpen;
end;
 
procedure TForm1.MediaPlayer1Click(Sender: TObject; Button: TMPBtnType;
  var DoDefault: Boolean);
begin
  if Button <> btPlay then exit;
  MPlay;
end;
 
procedure TForm1.MediaPlayer1Notify(Sender: TObject);
begin
  if MediaPlayer1.NotifyValue <> nvSuccessful then exit;
  MediaPlayer1.Play;
end;
 
procedure TForm1.MediaPlayer1PostClick(Sender: TObject;
  Button: TMPBtnType);
begin
  if Button <> btPlay then exit;
  TrackBar1.Max := MediaPlayer1.Length;
end;
 
procedure TForm1.MOpen;
begin
  MediaPlayer1.Close;
  fr.Right := 0;
  Caption := ExtractFileName(Panel1.Caption);
  Application.Title := Caption;
  MediaPlayer1.FileName := Panel1.Caption;
  MediaPlayer1.Visible := True;
  MediaPlayer1.Open;
end;
 
procedure TForm1.MPlay;
var
  R: TRect;
begin
  if fr.Right = 0 then
    fr := MediaPlayer1.DisplayRect;
  if WindowState = wsMaximized then begin
    R := Panel1.ClientRect;
  end else begin
    R := fr;
    R.Right := Round(R.Right*fk);
    R.Bottom := Round(R.Bottom*fk);
    ClientWidth := R.Right;
    ClientHeight := R.Bottom + TrackBar1.Height;
  end;
  MediaPlayer1.DisplayRect := R;
  MediaPlayer1.Visible := false;
end;
 
procedure TForm1.N11Click(Sender: TObject);
begin
  fk:=1; MPlay;
end;
 
procedure TForm1.N121Click(Sender: TObject);
begin
  fk:=1/2; MPlay;
end;
 
procedure TForm1.N15x11Click(Sender: TObject);
begin
  fk:=2/3; MPlay;
end;
 
procedure TForm1.New1Click(Sender: TObject);
begin
  Link1.Link := ParamStr(0);
  Link1.Run;
end;
 
procedure TForm1.Panel1DblClick(Sender: TObject);
begin
  fdrag := false;
  if WindowState <> wsMaximized then WindowState := wsMaximized
  else WindowState := wsNormal;
  MPlay;
end;
 
procedure TForm1.Panel1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  fdrag := not (ssDouble in Shift) and (WindowState <> wsMaximized);
  fdx := X; fdy := Y;
end;
 
procedure TForm1.Panel1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  if not fdrag then exit;
  Y := fdy - Y; X := fdx - X;
  Left := Left - X;
  Top := Top - Y;
end;
 
procedure TForm1.Panel1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  fdrag := False;
end;
 
procedure TForm1.PopupMenu1Popup(Sender: TObject);
begin
  Stayontop1.Checked := FormStyle = fsStayOnTop;
end;
 
procedure TForm1.Stayontop1Click(Sender: TObject);
begin
  MediaPlayer1.Display := nil;
  try Sleep(10);
    if FormStyle = fsStayOnTop then FormStyle := fsNormal
    else FormStyle := fsStayOnTop;
    RegBoolean1.Value := FormStyle = fsStayOnTop;
  finally MediaPlayer1.Display := Panel1;
  end;
end;
 
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  if MediaPlayer1.Mode <> mpPlaying then exit;
  TrackBar1.OnChange := nil;
  try TrackBar1.Position := MediaPlayer1.Position;
  finally TrackBar1.OnChange := TrackBar1Change;
  end;
end;
 
procedure TForm1.TrackBar1Change(Sender: TObject);
begin
  MediaPlayer1.Visible := true;
  MediaPlayer1.Position := TrackBar1.Position;
end;
 
end.
 
object Form1: TForm1
  Left = 40
  Top = 128
  BorderStyle = bsNone
  Caption = 'Form1'
  ClientHeight = 303
  ClientWidth = 326
  Color = clAppWorkSpace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'MS Sans Serif'
  Font.Style = []
  OnCreate = FormCreate
  object Panel1: TPanel
    Left = 0
    Top = 0
    Width = 326
    Height = 286
    Align = alClient
    PopupMenu = PopupMenu1
    TabOrder = 0
    OnDblClick = Panel1DblClick
    OnMouseDown = Panel1MouseDown
    OnMouseMove = Panel1MouseMove
    OnMouseUp = Panel1MouseUp
  end
  object MediaPlayer1: TMediaPlayer
    Left = 3
    Top = 264
    Width = 197
    Height = 20
    ColoredButtons = [btPlay, btPause, btStop, btNext, btPrev, btStep, btBack]
    VisibleButtons = [btPlay, btPause, btStop, btNext, btPrev, btStep, btBack]
    Anchors = [akLeft, akBottom]
    Display = Panel1
    TabOrder = 1
    OnClick = MediaPlayer1Click
    OnPostClick = MediaPlayer1PostClick
    OnNotify = MediaPlayer1Notify
  end
  object TrackBar1: TTrackBar
    Left = 0
    Top = 286
    Width = 326
    Height = 17
    Align = alBottom
    PopupMenu = PopupMenu1
    TabOrder = 2
    ThumbLength = 14
    OnChange = TrackBar1Change
  end
  object OpenDialog1: TOpenDialog
    Left = 256
    Top = 256
  end
  object PopupMenu1: TPopupMenu
    OnPopup = PopupMenu1Popup
    Left = 224
    Top = 256
    object File1: TMenuItem
      Caption = 'File'
      OnClick = File1Click
    end
    object Zoom1: TMenuItem
      Caption = 'Zoom'
      object N121: TMenuItem
        Caption = '2x1'
        OnClick = N121Click
      end
      object N15x11: TMenuItem
        Caption = '1.5x1'
        OnClick = N15x11Click
      end
      object N11: TMenuItem
        Caption = '1x1'
        OnClick = N11Click
      end
    end
    object Stayontop1: TMenuItem
      Caption = 'Stay on top'
      OnClick = Stayontop1Click
    end
    object New1: TMenuItem
      Caption = 'New'
      OnClick = New1Click
    end
    object N1: TMenuItem
      Caption = '-'
    end
    object Exit1: TMenuItem
      Caption = 'Exit'
      OnClick = Exit1Click
    end
  end
  object Timer1: TTimer
    Interval = 40
    OnTimer = Timer1Timer
    Left = 288
    Top = 256
  end
  object RegistryValues1: TPinRegistryValues
    ReadOnly = False
    Relative = 'Software\Microsoft\Windows'
    Left = 224
    Top = 224
    object RegBoolean1: TPinRegBoolean
      Reg.ValueName = 'mplaytop'
    end
    object RegString1: TPinRegString
      Reg.ValueName = 'mplaydir'
    end
  end
  object XPManifest1: TXPManifest
    Left = 256
    Top = 224
  end
  object Link1: TPinRLink
    Items = <>
    Left = 288
    Top = 224
  end
end

Всего записей: 683 | Зарегистр. 18-11-2002 | Отправлено: 14:40 21-04-2006
Pinocchio

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
На случай если кого заинтересуют неясности про объявление одиночного документа, привожу материалл. Сам пока не в курсе для чего это.

Цитата:
объявление одиночного документа
 
Назначение
Объявляет одиночный документ.
Синтаксис EBNF
SDDecl ::= S 'Standalone' Eq (("'" ('yes' | 'no') "'")
   | '"' ('yes' | 'no') '"'))
Стандартный синтаксис
[ ... ]Standalone={"|'}yes|no{"|'}
Аргументы
*    S представляет собой один или несколько разделяющих символов: знаков
пробела, перевода каретки, начала новой строки или табуляции (см. конструкцию S).
Синтаксис:
{[#х20|#x9|#xD|#хА][#х20|#x9|#xD
|#хА]...[#x20|#x9|#xD|#xA]}
*    Standalone представляет собой строку, указывающую на то, что далее следует
объявление одиночного документа.
*    Еq замещает знак равенства (=) с одним или несколькими предшествующими
и последующими пробелами (см. конструкцию Eq). Синтаксис: =
*    yes указывает на то, что внешние объявления разметки не ассоциированы с
текущим XML-документом; то есть документ не использует определение
DTD или оно включено во внутренний блок (часть DTD внутри документа-источника).
*    no указывает на то, что внешние объявления разметки могут быть ассоциированы
с текущим XML-документом. Это является значением по умолчанию, если какие-либо
внешние объявления разметки ассоциированы с документом.
 
Комментарии
SDDecl является компонентом конструкции XMLDecl.
Объявление разметки, на которое есть ссылка в объявлении одиночного документа,
находится либо во внешнем блоке (части DTD, находящейся в отдельном документе
вне текущего документа-источника), указанном в DTD, либо во внешней единице
параметра, указанной во внутреннем блоке (части DTD внутри документа-источника).
Объявление одиночного документа относится к внешним объявлениям, а не к внешним
единицам.
Наличие или отсутствие объявления одиночного документа не отражается на том,
является ли документ хорошо оформленным или состоятельным.
Если с ХМL-документом не ассоциированы элементы ExtSubsetDecl, XML-процессор
игнорирует объявление одиночного документа.
Чтобы XML-документ считался состоятельным, аргумент Standalone должен иметь
значение no, если элементы ExtSubsetDecl объявляют что-либо из следующего:
*    атрибуты со значением по умолчанию;
*    единицы (исключая &amp;, &apos;, &gt;, &lt; и &quot;);
*    атрибуты со значениями, которые могут быть нормализованы (то есть вся
разметка включается, а не минимизируется), что приведет к изменению значений;
*    типы элементов имеют содержание, если внутри элемента встречается
пропуск.
Не смешивайте одиночные и двойные кавычки; открывающая и закрывающая кавычки
вокруг одиночного значения в объявлении должны быть однотипными.
 
Пример
В следующем примере приводится объявление одиночного документа:
<?xml version="1.0" standalone="yes"?>
Родственные конструкции
Eq, S, XMLDecl.

Всего записей: 683 | Зарегистр. 18-11-2002 | Отправлено: 18:59 24-04-2006
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » создание компилятора


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru