HARD&SOFT > Программирование
Секреты дяди Бора
Белочкин:
Напишите какие вы знаете интересные кусочки кода, чтоб стандартными средствами добиться нестандартных эффектов в Делфях.
Например необычный вид радиобаттона и чекбокса можно добиться:
procedure TForm1.FormCreate(Sender: TObject);
begin
SetWindowLong(CheckBox1.Handle,GWL_STYLE,
GetWindowLong(CheckBox1.Handle,GWL_STYLE) or BS_PUSHLIKE);
end;
[ Указанное вложение недоступно ] [ Указанное вложение недоступно ]
Или добиться многострочности кнопки
procedure TForm1.FormCreate(Sender: TObject);
begin
Button1.Caption:='Многострочная'#13'кнопка';
SetWindowLong(Button1.Handle,GWL_STYLE,
GetWindowLong(Button1.Handle,GWL_STYLE) or BS_MULTILINE);
end;
[ Указанное вложение недоступно ]
fil:
Вот по поводу второго поста... А при чем тут секреты??? Просто взял и в кэпшн завел символ перехода на след. строку... :) не спортивно...
Белочкин:
Многие и этого не знают)))) Просто нужно было написать не секреты, а Фишки дяди Бора...
Кстати попозже выложу интересный исходничек, тока вот сам допишу и потестю... простой троян никому не повредит.
З.Ы. там не просто переход, смотри внимательно.
alluvian:
И что прикольно в этих кодах?
Сделал из Check'a и Radio обычную кнопку.
Белочкин:
программно эмулировать нажатие на кнопку можно, но
для этого нужно послать сообщение Windows. Это можно сделать так:
ТButton1.Perform(WM_LBUTTONDOWN, 0, 0);
Для того чтобы узнать версию твоего мастдая есть API функция GetVersionEx. Вот пример её использования:
var
os : TOSVERSIONINFO;
begin
GetVersionEx(os);
if os.dwPlatformId = VER_PLATFORM_WIN32s then
ShowMessage('Это Win32 для Windows 3.1');
if os.dwPlatformId = VER_PLATFORM_WIN32_WINDOWS then
ShowMessage('Это Win9x');
if os.dwPlatformId = VER_PLATFORM_WIN32_NT then
ShowMessage('Это NT');
end;
Программно нажимаем на Num Lock, Caps Lock и Scroll Lock
(работает только в Win9x)
Программно нажимаем на Num Lock
procedure TForm1.Button7Click(Sender: TObject);
Var KeyboardState: TKeyboardState; //состояние клавиатуры-массив
begin
GetKeyboardState(KeyboardState); //получвем состояние клавиатуры
//изменяем состояние клавиши с номером 144
KeyboardState[144]:=KeyboardState[144] xor 1;
SetKeyboardState(KeyboardState); //устанавливаем новое состояние клавиатуры
end;
Чтобы изменить состояние клавиши Caps Lock и Scroll Lock нужно в предыдущей процедуре изменить только одну строчку:
Для Caps Lock:
//изменяем состояние клавиши с
номером 20
KeyboardState[020]:=
KeyboardState[020] xor 1;
Для Scroll Lock:
//изменяем состояние клавиши с
номером 145
KeyboardState[145]:=
KeyboardState[145] xor 1;
Вот... в принципе мелочь но иногда может пригодиться. Кстати если кто-то хочет то могу описать как работать с реестром, делать автозапуск и прочую фигню.
ЗЫ. Ляль, такая умная, то напиши что-нить? или мы только из за угла пальцы веером, сопли пузырём?)
Навигация
Перейти к полной версии