Виснажений нерви ворогові ближньому своєму, Delphi, Програмування, статті

Makswell

Цю статтю я писав на зорі свого вивчення Delphi, тому тут в явному вигляді простежується дух ламерство, який пронізівал мій мозок у той час, адже тоді я ще тільки починав своє знайомство з комп’ютером, як таким, а заодно і знайомився з азами Дельфі-кодинга. Але, незважаючи на всі неточності і шорсткості, які присутня в статті, я все ж не наважився виправити ні символу в ній – недобре спотворювати пам’ять. Читайте її такою, якою вона була написала 2 роки тому і, як кажуть, не судіть строго …

Привіт всім чайникам, які зараз збираються прочитати мою статтю. “Чому чайникам?” – Запитаєте ви і образитися. А ображатися не варто, по-перше тому, що чайником бути навіть краще, самі закрутіть мислю: професіонали – вони професіонали, тобто всі знають, а ми чайники – т.е знаємо мало, зате у нас більше можливостей, ми вільні – можемо експериментувати скільки хочемо, робити що хочемо (поки небудь слушна не вийде) і дізнаватися, дізнаватися і ще раз дізнаватися нове, незвідане для себе, а потім кричати від щастя, що у нас вийшло написати небудь факторіал.Но це так, невеликий відступ від справи.


А розповісти я вам хочу про програму, в якій міститься всього 2 рядки коду! Але вона зате може добряче попсувати нерви того, на чию машину ви її запустите (ну я думаю, що ворогові треба запускати, чи не так :). Ні це не вірус, не троян, і взагалі, ця програма нічого капосного не робить, хіба що може змусити зробити вимушену перезавантаження (Reset-для тих, хто ще не зрозумів 😉 Взагалі, тут 1 головна рядок коду, яка в мене вийшла випадково – сидів я як завжди, експериментуючи над API32 (в якому ще на розібрався) і вийшла строчка. Також я розповім вам, як зробити так, щоб програма запускалася при запуску компа, причому в автозавантаженні ви її не знайдете (і не треба тикати пальцем – типу списав матеріал, а де ж я ще міг його взяти 🙂


Ну я думаючи, пора вже починати. Професіонали, гуру, хакери, круті програмери можуть піти. Всі інші: діти, жінки, військові можуть залишитися 🙂


Я думаю, ви вже запустили Delphi і що вам не треба пояснювати, як створити додаток, хоча в багатьох допитливих статтях і це з задоволенням зазначається 🙂

Потороплюсь зауважити, що на формі нічого розміщувати не треба, нам більше нічого не знадобиться 🙂


Тепер приступаємо безпосередньо до процедури з написання програми. Ми будемо обробляти подія OnMouseMove форми, тобто при русі миші над формою.

Причому бажано у властивості WindowsState вказати значення wsMaximized, А властивість BorderStyle зробити рівним bsSizeable: Перше забезпечить максимальний розмір форми в момент появи, тобто на весь екран, а друге відключить у правому верхньому куті кнопки згорнути і розгорнути (навіщо нам це треба :).

На цьому наші візуальні приготування закінчилися.


Давайте напишемо ту саму рядок коду для події OnMouseMove форми, ні, краще для початку я розповім, що власне буде робити програма. А вона при кожному русі миші буде валити на монітор приблизно по 50 вікон-фреймів-повідомлень – називайте їх, як хочете 🙂 Ви скажіть цикл, ан ні, пам’ятайте, що може робити цикл – всього- запускати по черзі дія яке ви йому скажіть, певний у раз.За цей час наш ворог-юзер встигне і кава допити і Alt + Ctrl + Del натиснути: () (), так що дивіться:


procedure TForm1.FormMouseMove(Sender: TObject; Shift:
TShiftState; X, Y:
Integer);
begin
MessageBox (mb_ok, ‘текст у заголовку повідомлення ‘,’ текст в самому повідомленні ‘, mb_ok);
end;


Ну ось і та героїчна рядок, про яку я вам довбав, тепер при запуску програми трохи варто вам смикнути миша і повалиться добра сотня фреймів :))

Що за маячня подумаєте ви, звичайне повідомлення вилетить з кнопкою Ok.

Ан ні, все буде по-моєму, нумо спробуйте:


Стоп: ви вже збираєтеся запускати програму, а як же про вікна, які зараз поваляться на вас, пропоную таке рішення, ви трохи рухаєте хвостату, бачите обвал вікон і відразу ж натискаєте 3 заповітні клавіші, щоб зробити destroy з програмою, для тих хто не знає і ніколи не знав ці клавіші, кажу: Alt + Ctrl + Del 🙂


А знаєте, чому все це відбувається, правильно, і я не знаю :)) Взагалі в мене є версія на рахунок цього, не знаю правильна:

Перший параметр відображає кнопки у вікні (в даному випадку вона одна – mb_Ok), з другим і третім ясно, стало бути, як мені здається, четвертий робить дія, що ми в ньому вказали, в даному випадку, дія може бути тільки 1 – натиснути якусь кнопку, а раз кнопку ми вказали таку ж, що і на початку – відбувається взаємообіг (яке я слово придумав :), а раз взаємообіг присходит без лепти користувача, то програма думає, що дія не виконано і починає його заново (шо я тут наговорив ()! Коротше, думаю, хтось пояснить: () () ()


До речі, пам’ятаєте, я вам говорив поміняти 2 значення, в властивості форми, якщо ви не зрозуміли, навіщо це, пояснюю (такий я допитливий :):


Якби форма була маленькою (в чверть екрану), то рух по робочому столу не приводило б нальоту фреймів-убивць, і це природно, адже ми обробляли рух миші за формою, а не по Windows (Віндоуз – це теж програма, якщо не знаєте і написана на C), а що стосується убирания кнопок – згорнути, розгорнути, то тут на мою все ясно (форма адже зменшується).


До речі, ви не помітили, що хрестик, який відповідає за закриття вікна активний, тобто форму спокійно можна закрити, та й Alt + F4 працює. Ні, так справа не піде. Давайте зробимо з усім цим Destroy.


Отже, обробляємо подію OnCloseQuery головного вікна (а більше у нас їх і немає :):


procedure TForm1.FormCloseQuery(Sender: TObject; var
CanClose: Boolean);
begin
canclose:=false;
end;


В цій процедурі оголошена змінна CanClose, що має тип Boolean і відповідає відповідно за роботу або нероботу функції закриття вікна стандартними методами (є і не стандартні, наприклад, Reboot, ShutDown,
Reset,
нарешті) взагалі, на землі все протилежно, якщо поглянути на світ з точки зору філософії (чоловік – жінка, кішка – собака, наші – не наші, нарешті), а тепер, простіше кажучи функція CanClose може дорівнювати false (0) або true (1). False – Значить брехня, тобто хрестик відключений, true – Абсолютно навпаки. Взагалі тип
Boolean – Дуже корисна річ, без нього практично не можна обійтися при створенні будь-якої серйозної програми, так він діє в рамках двухваріантності, він мені наприклад дуже нагоді при створенні такий крутий іграшки, як – Хрестики-Нулики, яку я недавно закінчив :)))


Але ми трохи відволіклися, тепер, якщо запустити нашу програму, то її не можна буде закрити стандартними способами, перевірте!!

Alt+Ctrl+Del

я не беру в рахунок, так як не знаю, як програмно відключати ці 3 кнопки, сподіваюся, що після цієї статті мені хтось пояснить: (

На це кажу всім До побачення і … завжди радий відповісти на ваши питання, якщо знаю на них відповіді, так що пишіть

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*