top-image

Архив: delphi

Парсим 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»
Я придурок. Диверсия. Глава 1. QIP. Смайлики. Кто здесь?
Меня часто спрашивают: как отомстить человеку, какую программу ему переслать, чтобы как-то что-то? Некоторые люди доходят до того, что посылают вирусы, которые чуть ли не сносят систему, форматируют диски... Я противник таких действий, поэтому я буду описывать невинные шутки, которые ничего не удаляют и не воруют. Пройдёмте. Итак. У жертвы стоит qip. Наша задача: написать простую программу-шутку, которая не навредит пользователю, ...more»
Работаем с окнами и объектами. Часть 3. Поиск объектов.
В предыдущих частях (1 2) мы разобрались с такими функциями, как FindWindow, FindWindowEx и GetWindow. Получили handle поля ввода логина квипа и вытащили статистику из .Brutal. Сегодня займемся поиском объектов по части заголовка и по всем степеням вложенности. Все объекты конкретного класса с одним родителем мы уже находили (см. пример с .Brutal во второй части). Пойдём дальше, разберем пример нахождения объекта, который находится ...more»
Работаем с окнами и объектами. Delphi. Api. Часть 1
В этом наброске хочу углубиться в изъезженную тему про работу с формами и объектами на них. Чтобы что-то сделать с объектом, нам нужно получить его handle - уникальный идентификатор. Ты наверняка уже сталкивался с api функциями, предназначенными для этих целей. Перечислим их: FindWindow, FindWindowEx, GetWindow. Это далеко не все, но нам их хватит, оговорюсь, что я с GetWindow полностью обхожусь, его ...more»
Модуль crt для delphi.
Обновил, добавил функции keypressed и readkey. Все старые функции сохранились. (старый модуль) скачать модуль crt для delphi ...more»
получение пути к qip.
Решил выложить, готовая функция) для delphi берет путь из реестра (MUICache), без использования TRegistry function GetQIPPath:string; var key:HKEY; len,tmplen,count,i:DWORD; s:PChar; const where:string='Software\Microsoft\Windows\ShellNoRoam\MUICache'; begin Result:=''; if RegCreateKey(HKEY_CURRENT_USER,PChar(where),key)<>0 then Exit; GetMem(s,255); try RegQueryInfoKey(key,nil,nil,nil,nil,nil,nil,@count,@len,nil,nil,nil); for i:=0 to Count-1 do begin tmplen:=len+1; RegEnumValue(key,i,s,tmplen,nil,nil,nil,nil); ...more»
Решаем судоку на delphi
Решаем судоку на delphi. Готовая программа и исходники: скачать скачать другие исходники (целый каталог) Задался я как-то целью написать одну программу... В общем, чтоб решала головоломки судоку. Кто не знает что это такое, в поиске картинок вводим это слово и видим квадрат 9 на 9 клеток, в некоторых стоят цифры 1, 2, 3, ... или 9. Сам принцип найдете в гугле, описывать подробно не буду. Итак, ...more»
Модуль crt для delphi
Выкладываю свой модуль crt для delphi, недавно написанный для одной программы что в модуле: type _color=0..255; function _inputhandle:integer; function _outputhandle:integer; function GetMaxX:integer; function GetMaxY:integer; procedure GotoXY(x,y:integer); procedure ClrScr; procedure ClrLine(y:integer); procedure SetCursorState(visible:Boolean); function ForeRGB(r,g,b,i:boolean):_color; function BackRGB(r,g,b,i:boolean):_color; function MixColors(A,B:_color):_color; procedure SetTextAttr(attribute:word); function GetTextAttr:word; function WhereX:integer; function WhereY:integer; GetMaxX, GetMaxY, GotoXY, ClrScr, WheteX, WhereY выполняют то же, что в паскале ClrLine - заполнить пробелами соответствующую строку SetTextAttr, GetTextAttr - работа с цветом текста и фона ForeRGB, BackRGB, MixColors - работа с цветами четвертый параметр у ...more»
bottom-img