Архив: delphi
Сегодня рассмотрим вопрос о том, как перечислить все компоненты на форме. Например, как очистить все TEdit одним циклом, как изменить надписи на всех TLabel, как нажать все TButton :)
В заметке про создание кнопок с использованием TImage я уже испольовал данный приём, теперь рассмотрим подробнее.
0. Матчасть
У объекта TForm (а также других, на которых можно поставить, например, кнопку) есть массив Components. Очевидно, ...more»
Полтора года назад писал такую статью на одном форуме, на блоге этого нет. В связи с тем, что на этой неделе поднял тему использования Sender: TObject и операторов as и is, распишу всё заново здесь и сейчас :)
Мы используем TImage, столько TImage, сколько нужно кнопок.
Подготовка
У наших кнопок будет три состояния - нажата, не нажата, активна (наведена мышь).
Заранее подготовь три картинки, ...more»
Про Sender: TObject я недавно рассказал. Согласись, что использовать Sender без таких операторов как is и as не очень кавайно. Конечно, для определенных целей они даже не требуются, а вот кое-где уже не обойтись.
Ты-то про них знаешь всё, а вот остальным сейчас расскажу.
1. As
Да, я в названии не опечатался. Когда я использую as и is, мне кажется, что я пишу ...more»
Всем привет. Димон, особенно тебе, рад что ты ссылку запомнил!
Итак, сегодня я хочу рассказать про так часто мелькающее перед нашими глазами Sender: TObject.
Точнее, своими словами я рассказывать не буду, а переведу с английского доступным языком, копирайт смотри в конце поста, как обычно.
Давным-давно, в царстве delphi
Жил-был объект по имени Sender
Посмотрим на обработчик события OnClick кнопки Button1:
procedure TForm1.Button1Click(Sender: TObject) ;
begin
...
end;
Метод ...more»
Привет) Заждался, да? Часть 1, если что. Вот часть 2, вспомним былое.
Итак, пойдём по порядку, расставим все точки над и. Ты уже заметил, что мы пишем используя только модуль windows.pas. Поэтому в модуле melody.pas (там, где все функции) мы пишем свой StrToInt без использования SysUtils.
Ты уже заметил, что мелодия в формате nokia состоит из неких последовательностей, разделенных пробелами? Да? Ок ...more»
Привет!
Ты наверняка уже видел сороковую симфонию внутреннего динамика на моём скромном блоге. Может быть, ты даже и есть тот человек, который попросил выложить исходный код в комментарии. И если ты подписался на rss, то ты дождался и читаешь эту статью.
Идею программы я честно свистнул у друга. Скачать можно вот здесь - это полноценный проигрыватель моно-форматов через внутренний динамик (второй в ...more»
Меня часто спрашивают: как отомстить человеку, какую программу ему переслать, чтобы как-то что-то? Некоторые люди доходят до того, что посылают вирусы, которые чуть ли не сносят систему, форматируют диски... Я противник таких действий, поэтому я буду описывать невинные шутки, которые ничего не удаляют и не воруют. Пройдёмте.
Итак. У жертвы стоит qip. Наша задача: написать простую программу-шутку, которая не навредит пользователю, ...more»
В предыдущих частях (1 2) мы разобрались с такими функциями, как FindWindow, FindWindowEx и GetWindow. Получили handle поля ввода логина квипа и вытащили статистику из .Brutal.
Сегодня займемся поиском объектов по части заголовка и по всем степеням вложенности.
Все объекты конкретного класса с одним родителем мы уже находили (см. пример с .Brutal во второй части).
Пойдём дальше, разберем пример нахождения объекта, который находится ...more»
В этом наброске хочу углубиться в изъезженную тему про работу с формами и объектами на них.
Чтобы что-то сделать с объектом, нам нужно получить его handle - уникальный идентификатор.
Ты наверняка уже сталкивался с api функциями, предназначенными для этих целей. Перечислим их: FindWindow, FindWindowEx, GetWindow. Это далеко не все, но нам их хватит, оговорюсь, что я с GetWindow полностью обхожусь, его ...more»
Обновил, добавил функции keypressed и readkey.
Все старые функции сохранились. (старый модуль)
скачать модуль crt для delphi
А если вы всё ещё пишете на паскале под msdos, может быть, вам поможет установка винды? Шутка конечно, но интересно то, что консольные программы под винду, а также красивый дизайн (если так можно назвать ascii-графику) в них всё ещё пользуютс популярностью. ...more»
Решил выложить, готовая функция)
для 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.
Готовая программа и исходники:
скачать
скачать
другие исходники (целый каталог)
Задался я как-то целью написать одну программу... В общем, чтоб решала головоломки судоку. Кто не знает что это такое, в поиске картинок вводим это слово и видим квадрат 9 на 9 клеток, в некоторых стоят цифры 1, 2, 3, ... или 9. Сам принцип найдете в гугле, описывать подробно не буду.
Итак, ...more»
Выкладываю свой модуль 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»




