Алгоритмы. Delphi. C#. PHP. JS. Бинарный поиск в массивах на 4 языках

Продолжаем мультиязычные посты. Сегодня бинарный поиск. Все программы будут состоять из 2 частей —  рандомное заполнение массивов с сортировкой. И вторая часть — собственно бинарный поиск.

Delphi (бинарный поиск)

52

53

54

Собственно реализация

Функции бинарного поиска Integer и String массивов. Массивы предварительно отсортированы Читать далее «Алгоритмы. Delphi. C#. PHP. JS. Бинарный поиск в массивах на 4 языках»

PHP.JS. Проверка полей на пустоту. Усовершенствуем скрипт авторизации

В прошлом посте сделали простейший PHP скрипт авторизации, сейчас усовершенствуем его при помощи JS. Будем проверять форму перед отправкой при помощи самописной функции

На клиенте проверяем заполнены ли поля. Тут можно кучу других проверок организовать, но это уже тема отдельного поста. Читать далее «PHP.JS. Проверка полей на пустоту. Усовершенствуем скрипт авторизации»

Delphi.VCL+JS

Приспичило меня в одной из VCL программ использовать JS, так как наперед неизвестны были функции, которые нужно программировать, нужна была некоторая универсальность. Словом, в Memo пишем функцию на JS, о которой узнаем в последний момент, далее, в VCL программе, пользуемся её результатом. Информации на эту тему порядком! Чтобы не искать по 100 000 раз одно и тоже, решил записать решение в блоге.

Решение через Microsoft  Script Control.Это решение я взял с блога Андрея, за что ему спасибо! Там, пожалуй этот момент лучше всего расписан. Вот, что мне нужно было — писать JS код, получать результат и двигаться дальше.

1 Читать далее «Delphi.VCL+JS»

jQuery. Подключение библиотеки и «первый hello world»

Подключение библиотеки jQuery

Надо сказать, что существует как минимум 2 версии библиотеки — сжатая (с приставкой min, например jquery-1.10.1.min.js) и расширенная. Насколько я понял, разница между ними только в объеме памяти, который они занимают. У сжатой удалены все пробелы и комментарии, поэтому она грузится быстрее, и в целом, быстрее работает, расширенная же наоборот, для тех, кто любит покопаться. Скачать их можно на официальном сайте jQuery.

Само подключение будет выглядеть примерно так

Есть также сети CDN, то есть подключение можно производить напрямую из сети, например так

 

Читать далее «jQuery. Подключение библиотеки и «первый hello world»»

Как учиться пользоваться библиотекой ExtJS?

Универсальный способ работы со свойствами, методами, событиями ExtJS

(На примере класса Ext.dom.Elements)

При моем знакомстве с ExtJS меня долгое время мучил вопрос — «Где взять все свойства и методы того или иного класса?», а также «Как узнать какой метод или свойство актуальные для данной версии библиотеки? «. Во многих IDE — есть выпадающие списки методов и свойств, а далее F1 и выплывает помощь (например в Delphi RAD Studio). Но что делать ExtJS разработчику? Разбираться с Sencha CMD? Мучать Sencha Architect? При беглом знакомстве с Architect я понял, что так просто до описаний классов там не добраться, так как для элементарной правки кода приходится «выеживаться». Поскольку я начинающий ExtJS разработчик и работаю в Aptana Studio — не нашел ничего лучше как работать с документацией, которая у ExtJS ну очень удобная. Читать далее «Как учиться пользоваться библиотекой ExtJS?»

ExtJS. Псевдонимы классов

Классам можно задавать псевдонимы с помощью ключевого слова alias

Простой пример

App.js

Пример посложнее

Слово widget в данном случае зарезервированное. Если его изменить, убрать, то работать не будет.

ExtJS. Динамическая загрузка классов

Как загружать классы из той же директории, что и запускаемый js, html файл?

Здесь приведен сначала самый простой вариант, когда мы выносим описание наших классов в отдельный файл с расширением .js и размещаем его в той же директории, в которой у нас находится запускаемый html файл. А во второй части поста — загрузка классов из произвольных директорий.

SomeClass.js

App.js Читать далее «ExtJS. Динамическая загрузка классов»

ExtJS. Секция statics

При создании класса, можно в items объявить секцию statics и в неё записывать свойства и методы, которые можно будет вызывать без создания экземпляра класса.

Примечание. Когда в свойстве statics я использовал в качестве имени свойства имя name, то при обращении к свойству, у меня постоянно вылетало g, подозреваю, что name это зарезервированное слово в секции statics.

ExtJS. Секция config (Auto setters Auto getters)

Согласно книге FirstLook, при создании класса и определении items, мы можем использовать параметр config, для создаваемых итемов в секции config автоматически создаются методы

get — получение свойства

set — установка свойства

reset — установка свойства в первоначальное значение

apply — вспомогательный метод, который вызывается каждый раз, когда мы вызываем set

Итак, давайте разберем на некотором примере

App.js