HARD&SOFT > Программирование

Секреты дяди Бора

(1/4) > >>

Белочкин:
Напишите какие вы знаете интересные кусочки кода, чтоб стандартными средствами добиться нестандартных эффектов в Делфях.

Например необычный вид радиобаттона и чекбокса можно добиться:

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;

Вот... в принципе мелочь но иногда может пригодиться. Кстати если кто-то хочет то могу описать как работать с реестром, делать автозапуск и прочую фигню.

ЗЫ. Ляль, такая умная, то напиши что-нить? или мы только из за угла пальцы веером, сопли пузырём?)

Навигация

[0] Главная страница сообщений

[#] Следующая страница

Перейти к полной версии