09.02.2010
 
  Главная  
Последние новости
Популярное
Главная
Новости
Статьи
Самоучитель по Delphi
Справочник
Поиск
Карта сайта
Контакты
Авторизация





Забыли пароль?
Изучение работы генератора исходного кода Delphi

В данной статье мы попробуем создать простое приложение с использованием среды delphi и проанализируем работу генератора исходного кода программ.

delphi, по возможности, старается облегчить работу программиста. Когда вы запускаете среду, автоматически создается форма form1 и модуль unit1. Форма представляет собой стандартное окно windows. Вы можете размещать на ней кнопки, надписи, картинки, видео- и аудио фрагменты, а также многое другое. Весь необходимый для создания заготовки формы код уже написан генератором исходного кода delphi.

Продолжение...
 
Потоки и методы их синхронизаций в Delphi
Статья призвана дать понятия о процессах, потоках и принципах программирования многопоточных приложений в delphi. Процесс - экземпляр выполняемого приложения. При запуске приложения происходит выделение памяти под процесс, в часть которой и загружается код программы. Поток - объект внутри процесса, отвечающий за выполнение кода и получающий для этого процессорное время.
Продолжение...
 
Как получить информацию о системе (свободная память и т.д.)
Если вы хотите узнать сколько виртуальной памяти вам доступно вашей программе или общий объем физической и виртуальной памяти достаточно воспользоваться API функцией GlobalMemoryStatus.

Рассмотрим следующий код. Добавим на форму кнопку (TButton) и многострочный редактор (TMemo). После чего в обработчик кнопки вставляем следующий код.
Продолжение...
 
Уменьшаем Exe, удаляя релоки без сторонних утилит
Многие знают, что можно уменьшить размер exe файла, не используя упаковщики и не изменяя функциональность, путём удаления из exe таблицы релокаций.
Обычно для этого используют сторонние утилиты. Например StripReloc Джордона Рассела.
А теперь я расскажу страшную тайну. В Delphi 2006 и выше, релоки можно не удалять, а просто не создавать!
Продолжение...
 
Комбинации клавиш Delphi
Продолжение...
 
Нововведения RAD Studio 2007 (C++Builder 2007)

C++Builder 2007

Следующие средства были введены впервые или значительно изменены.

  • MSBuild стала новым движком для компиляции проектов: Теперь при компиляции проекта на С++ MSBuild выполняет весь процесс компиляции (билда). Для этих целей была изменена структура файла проекта, он теперь является XML файлом и содержит все необходимые для MSBuild настройки. Расширение файла проекта изменено на .cbproj. Это позволяет производить компиляцию из командной строки используя синтаксис командной строки MSBuild.
  • Изменен порядок билда: MSBuild производит компиляцию файлов в соответствии с типом файла (расширением), вместо старого порядка, который определялся временем последнего изменения файла. Порядок таков Delphi .pas, C/C++ .c .cpp, Ассемблер .asm, затем ресурсы .rc. Внутри каждой папки или виртуальной папки, файлы компилируются в порядке соответствующем их типу.
Продолжение...
 
Создание редактора карт в стратегиях типа WarCraft

Довелось мне как-то озадачиться идеей написать редактор карт для моей новой игры. Скажу сразу, что задача эта не из простых. Приступим сразу к делу. Как правило, в двумерных стратегических играх типа Warcraft, Heroes of Might and Magic, Z и т. д. карты строятся из ячеек. Иными словами, карта - это матрица с некоторыми числовыми значениями внутри ячеек. Эти значения есть номера текстур( растровых картинок с изображениями земли, воды, камней и т. д., из которых и будет склеиваться Ваш уникальный ландшафт )

Продолжение...
 
Управление игрой FreeCell

Если вы решили перепробовать ВСЕ номера игры FreeCell, вас можно квалифицировать как законченного маньяка. В этом случае вас, возможно, заинтересует эта маленькая программка. При ее запуске она загружает FreeCell и начинает игру, следующую за той, которую вы не смогли завершить в прошлый раз. А еще она отвечает на глупые вопросы типа "Do you really want to resign the game?". После выигрыша программа изменяет счетчик таким образом, чтобы при очередном запуске номер игры изменялся на следующий автоматически.

Продолжение...
 
Оптимизация программ на ассемблере

Введение.

   Несмотря на все более широкое распространение языков программирования высокого уровня и интегрированных средств программирования,  оптимизация программ на ассемблере  остается  актуальной темой дискуссий программистов.  Можно упомянуть, например, форум программистов,  проведенный сетью PC MagNET, который стал ареной многочисленных "дуэлей":  то один,  то другой участник предлагал всем желающим решить небольшую,  но интересную задачу программирования - и рассматривал присылаемые решения,  ожидая,  кто-же и как решит задачу наименьшей кровью, т.е. затратив минимум байтов на программу. Подобно этому проведенная сетью BIX конференция по языку ассемблера для процессоров 80x86 и  80x88  стала  трибуной немалого  числа  основательных рассуждений по поводу неочевидных
аспектов оптимизации ассемблерных программ.
   Несмотря на самый общий и широкий интерес к проблеме, литература по оптимизации ассемблерных программ для процессоров  80x86 и 80x88 на удивление скудна.  В 1989 году, готовясь к докладу на эту тему для конференции по развитию программного обеспечения, я просмотрел оглавления всех основных журналов по программированию и обнаружил лишь горстку статей на эту тему.  С другой  стороны, литература  по  оптимизации  программ  для компиляторов высокого
уровня весьма обширна, и многие концепции, развитые в ней, будут полезны и при программировании на языке ассемблера.  Так что говорить,  что литературы совсем нет,  было бы несправедливо. Ниже мы сначала рассмотрим общие методики оптимизации,  а затем обсудим более серьезный вопрос - когда и что что  стоит  оптимизировать.
   В этом документе будут обсуждаться некоторые общие вопросы  и концепции оптимизации. Будет разговор и компромиссах, на которые приходится идти оптимизируя быстродействие и  размер  программы. Будут  рассмотрены конкретные методы,  относящиеся к переходам и вызовам подпрограмм,  а также метод отказа  от  универсальности. Ниже мы подробнее рассмотрим некоторые классические образцы "локальной" оптимизации.  В том числе: оптимизацию циклов, применение таблиц управляющих параметров, а также об ориентированных на конкретные модели процессоров командах.  Но важно  помнить,  что эти  частные методики следует использовать только при определенных обстоятельствах - а именно:  после того,  как вы  убедитесь, что применили правильные алгоритмы и структуры данных,  что полностью отладили программу и что средства профилирования показали вам те самые фрагменты программы,  которые ограничивают производительность.  Стоит еще раз повторить мудрое  изречение  доктора
Кнута:  "Многие  беды программирования проистекают от преждевременной оптимизации".

¦ Чтобы ваши программы на ассемблере принесли максимум пользы,
¦ иногда стоит оптимизировать размер, иногда - быстродействие,
¦ а иногда - лучше оставить все как было.                     

Продолжение...
 
Еще...

Новости
Обработка событий в .NET с помощью C#
В этой статье я расскажу о модели обработки событий в .NET с помощью C#. Обсуждение начнется с введения в концепцию делегатов, а затем расширится концепциями событий и их обработкой в .NET. В конце концов, мы применим механизм к событиям графического пользовательского интерфейса (Graphical User Interface - GUI), используя формы Windows. Дискуссия сопровождается законченными примерами.
Thu, 10 Dec 2009 18:15:08 +0300

Пример создания динамического массива
Динамическим считается массив, который способен в любой момент изменять свой размер. Эта возможность обеспечивается за счет динамического выделения памяти под массив. При этом удобно создать класс, который является оболочкой для данного массива, отвечает за выделение и освобождение памяти под массив, а также обеспечивает доступ к элементам массива. Когда пользователь создает объект класса-оболочки, конструктор класса выделяет память под массив, который имеет либо указанный пользователем размер, либо размер, заданный по умолчанию. Если по мере заполнения массива вся выделенная память окажется занятой, то при добавлении очередного элемента выделенная ранее память освобождается, все хранящиеся в массиве значения сохраняются во временном массиве. Затем выделяется память под массив большего размера и в него помещаются сохраненные значения. Таким образом, изменение размера массива происходит автоматически, невидимо для пользователя.
Thu, 10 Dec 2009 18:15:08 +0300

Разгоняем jQuery. Часть 1
Статей по ускорению jQuery достаточно много, но обычно они не отличаются наглядностью и подробностью, поэтому я решил провести несколько тестов и выделить, те советы по ускорению jQuery, которые действительно работают.
Thu, 10 Dec 2009 18:15:07 +0300

Начинаем работать с Ajax
В 2005 году начала набирать популярность сравнительно новая технология, называнная Ajax. Название Ajax происходит от Asynchronous JavaScript and XML. В двух словах это использование объекта XMLHttpRequest для взаимодействия с серверными сценариями. Он может отправлять и принимать информацию в различных форматах, включая XML, HTML и текстовые файлы.
Thu, 10 Dec 2009 18:15:07 +0300

7 полезных советов для улучшения jQuery кода
1. Используйте $(document).ready() или выполняйте ваши скрипты после закрытия body; 2.Сохраняйте данные в свойство data блока, с помощью DOM...
Thu, 19 Nov 2009 16:23:46 +0300



ruDelphi.info - Русский Delphi портал © 2010
Delphi