top-image

Архив: Кодинг

Изменение размеров буфера консольного окна
Привет! Это второй пост, который был потерян когда-то в июле в связи с переездом на другой хостинг. Речь пойдёт о так называемом Screen Buffer. Консольное окно само по себе имеет определенные размеры, обычно 24 на 80 символов. Также справа есть полоса прокрутки, с помощью неё можно увидеть то, что вышло за рамки экрана, так как когда мы всё пишем и пишем, например с ...more»
Таблица умножения на JavaScript
JavaScript? JavaScript??? А как же delphi? Ведь это же delphi блог! Спокойно, сейчас объясню :) В июле 2009 года менял хостинг, по некоторым причинам не мог получить backup базы блога, а последний, что я делал регулярно, был не очень свеж. В результате потерял три поста. С этой потерей уже давно смирился, а сегодня был приятно удивлён, обнаружив их на своём фиде. ...more»
Функция copy или восстанавливаем пароль icq после заражения вирусом Piggy.
Привет, ты наверняка уже наслышан о недавно появившемся вирусе Piggy. Если не в курсе, буду краток: он использует принцип спама по цепочке. Вот тебе приходит ссылка от человека, мол, flash игра прикольная. Ты пишешь, мол, ага, знаем, спам. И тебе в ответ: нет, мол, не спам, ага. Качаешь, так как немного пьян, и с твоим номером происходит то же самое: пароль ...more»
WinSock: HTTP-запрос с помощью блокирующего сокета
Сегодня хочу начать цикл заметок о winsock. Около года назад я этим заинтересовался, потом незаслуженно забыл и забросил. WinSock - достаточно мощный инструмент, основа всех основ. Если ты пишешь программу на чистом api, тебе важен конечный размер программы или работаешь с хитрым протоколом, то сокеты просто незаменимы. В этой заметке рассмотрим, как открыть сокет и послать GET запрос серверу. Типы сокетов Вкратце. Есть ...more»
Парсим csv и tsv файлы в delphi
Читая иностранные блоги, наткнулся на пост, в котором поднимается проблема парсинга и отображения в TStringGrid tsv файлов (tab-separated values - значения, разделенные символом табуляции, англ.). В таких файлах элементы в строках разделены знаком табуляции (девятым символом). Также не хочется забывать про не менее популярный формат csv - comma-separated values - в нём элементы разделены запятой. Стоит сказать, что программы для ...more»
Feed link parser
Будь мой блог не delphi блог и будь его адрес не parsers.info, я бы никогда не стал массово получать адреса rss лент со списка сайтов. Программа консольная, использует модуль httpsend из библиотек synapse (Vlad рекомендует этот модуль, проверим?). Также пришлось подключать Classes, так как его использует httpsend, а так как мы его подключили, то и с записью в файл мудрить не ...more»
Перечисление всех компонентов на форме
Сегодня рассмотрим вопрос о том, как перечислить все компоненты на форме. Например, как очистить все TEdit одним циклом, как изменить надписи на всех TLabel, как нажать все TButton :) В заметке про создание кнопок с использованием TImage я уже испольовал данный приём, теперь рассмотрим подробнее. 0. Матчасть У объекта TForm (а также других, на которых можно поставить, например, кнопку) есть массив Components. Очевидно, ...more»
Sender: немного практики, или создаём свой стиль кнопок.
Полтора года назад писал такую статью на одном форуме, на блоге этого нет. В связи с тем, что на этой неделе поднял тему использования Sender: TObject и операторов as и is, распишу всё заново здесь и сейчас :) Мы используем TImage, столько TImage, сколько нужно кнопок. Подготовка У наших кнопок будет три состояния - нажата, не нажата, активна (наведена мышь). Заранее подготовь три картинки, ...more»
Операторы as и is или «английский язык произошел от дельфи».
Про Sender: TObject я недавно рассказал. Согласись, что использовать Sender без таких операторов как is и as не очень кавайно. Конечно, для определенных целей они даже не требуются, а вот кое-где уже не обойтись. Ты-то про них знаешь всё, а вот остальным сейчас расскажу. 1. As Да, я в названии не опечатался. Когда я использую as и is, мне кажется, что я пишу ...more»
Параметр Sender в обработчиках событий (event handlers) на delphi.
Всем привет. Димон, особенно тебе, рад что ты ссылку запомнил! Итак, сегодня я хочу рассказать про так часто мелькающее перед нашими глазами Sender: TObject. Точнее, своими словами я рассказывать не буду, а переведу с английского доступным языком, копирайт смотри в конце поста, как обычно. Давным-давно, в царстве delphi Жил-был объект по имени Sender Посмотрим на обработчик события OnClick кнопки Button1: procedure TForm1.Button1Click(Sender: TObject) ; begin ... end; Метод ...more»
Моцарт из внутреннего динамика. Сороковая симфония и delphi. Часть 2.
Привет) Заждался, да? Часть 1, если что. Вот часть 2, вспомним былое. Итак, пойдём по порядку, расставим все точки над и. Ты уже заметил, что мы пишем используя только модуль windows.pas. Поэтому в модуле melody.pas (там, где все функции) мы пишем свой StrToInt без использования SysUtils. Ты уже заметил, что мелодия в формате nokia состоит из неких последовательностей, разделенных пробелами? Да? Ок ...more»
Моцарт из внутреннего динамика. Сороковая симфония и delphi. Часть 1.
Привет! Ты наверняка уже видел сороковую симфонию внутреннего динамика на моём скромном блоге. Может быть, ты даже и есть тот человек, который попросил выложить исходный код в комментарии. И если ты подписался на rss, то ты дождался и читаешь эту статью. Идею программы я честно свистнул у друга. Скачать можно вот здесь - это полноценный проигрыватель моно-форматов через внутренний динамик (второй в ...more»
DirSearcher
DirSearcher - это сканер директорий. Логи сайта ведет в c:/сайт_log.txt #!/usr/bin/python #header scan #http://sql.parsers.info/ #faza02gmailcom import urllib def scan(): print ' ____________________________ ' print ' / /\ ' print ' / ...more»
Массовое редактирование картинок — проставляем надписи
Сегодня встала такая задача - отредактировать картинки. Дописать текст в верхний левый угол, проставить некие копирайты на каждую картинку. Всё бы ничего, если бы не количество изображений - более 400. Брррр, вручную конечно можно, но долго и неинтересно. Можно поискать готовое решение, но небезопасно и тоже неинтересно. Итак, будем писать на дельфи. Оформлять как готовую программу не буду, так как писал только ...more»
Количество подстрок в строке.
Выкладываю просто функцию *_* function PosCount(substr, str: string): integer; var p, i: integer; begin i:=-1; p:=0; repeat i:=i+1; p:=PosEx(substr, str, p + Length(substr)); until p=0; Result:=i; end; Количество подстрок определяет на ура, писал для просто символов. (c) crystalbit, http://parsers.info Функции, функции, как мило. А сейчас весна, между прочим. Помимо функций думаю купить кое-кому цветы, даже ...more»
Обходимся без SysUtils. FileExists
В комментарии к IntToStr, StrToInt, TryStrToInt без использования SysUtils пользователь с ником fry предложил мне функцию FileExists. Я позволил себе её немного сократить, но смысл остался - мы пытаемся открыть файл, если возвращается ошибка (HFILE_ERROR, что есть -1), то скорее всего это из-за того, что файла нет. Если не ошибка, то возвращается handle открытого файла - для дальнейшей с ним работы. Итак, function ...more»
Обходимся без SysUtils. Строка <-> число
Многие пользуются функциями StrToInt, TryStrToInt и IntToStr из модуля SysUtils для преобразования типов. Это удобно, но когда встает вопрос об отключении лишних модулей (когда пишем на api), непрактично. Для таких же целей есть стандартные функции val и str из pascal, которые перекочевали в delphi, но о наличии которых в нём многие не подозревают. Писал я как-то одну консольную программу, вот и ...more»
Я придурок. Диверсия. Глава 1. QIP. Смайлики. Кто здесь?
Меня часто спрашивают: как отомстить человеку, какую программу ему переслать, чтобы как-то что-то? Некоторые люди доходят до того, что посылают вирусы, которые чуть ли не сносят систему, форматируют диски... Я противник таких действий, поэтому я буду описывать невинные шутки, которые ничего не удаляют и не воруют. Пройдёмте. Итак. У жертвы стоит qip. Наша задача: написать простую программу-шутку, которая не навредит пользователю, ...more»
Работаем с окнами. AnimateWindow и FlashWindow.
Сегодня разберемся с такой функцией, как AnimateWindow. Не так давно я о ней даже не подозревал, её возможности меня откровенно порадовали. Ну и FlashWindow за компанию. Синтаксис: function AnimateWindow(hWnd: HWND; dwTime: DWORD; dwFlags: DWORD): BOOL; Функция AnimateWindow служит для анимации объекта (чаще окна, то есть первого уровня) при сокрытии или показе. Функция работает синхронно, то есть программа, вызвавшая её, замерзает до тех пор, ...more»
Работаем с окнами и объектами. Часть 4. Функции и процедуры.
Сегодня вкратце рассмотрим, что мы можем сделать, зная handle. Как-никак, а три предыдущие части мы посвятили только его нахождению. Предыдущие части: Работаем с окнами и объектами. Delphi. Api. Часть 1. Работаем с окнами и объектами. Часть 2 Работаем с окнами и объектами. Часть 3. Поиск объектов. Итак, у нас есть handle - уникальный идентификатор объекта. Объект может быть как видимым (visible), так и скрытым от ...more»
bottom-img