Современные решения

для защиты Windows приложений

и восстановления исходного кода

Обсуждение программирования на Delphi в конференции ru.delphi


Загадка программерам :)

Приветствую, Jenya!

Однажды, 18.07.05 21:40:00, Jenya писал к Mihail Piterskiy
по поводу "Загадка программерам :)".

MP>> procedure TForm1.Timer1Timer(Sender: TObject);

MP>> begin

MP>> rbOff.Checked := true;


JD> Ты всего навсего поставил метку на rbOff, но это не означает что ты

JD> сделал OnClick event. Тобиж, добавить еще Timer1.Enabled:=false; и тогда

JD> всё будет как надо..


А в хелп залезть не судьба?
=== Cut ===
OnClick occurs when the user clicks the control.

TNotifyEvent = procedure (Sender: TObject) of object;
property OnClick: TNotifyEvent;

Description

Use the OnClick event handler to write code that responds to the click event.
Usually OnClick occurs because the user presses and releases the primary mouse
button with the mouse pointer over the control. This event can also occur when

. The user selects an item in a grid, outline, list, or combo box by pressing
an arrow key.
. The user presses Spacebar while a button or check box has focus.
. The user presses Enter when the active form has a default button (specified
by the Default property).
. The user presses Esc when the active form has a cancel button (specified by
the Cancel property).
. The user presses the accelerator key for a button or check box. For example,
if the value of the Caption property of a check box is '&Bold', the B is
underlined at runtime and the OnClick event of the check box is triggered
when the user presses Alt+B.
>. The Checked property of a radio button is set to True.

. The value of the Checked property of a check box is changed.
. The Click method of a menu item is called.

For a form, an OnClick event occurs when the user clicks a blank area of the
form or on a disabled component.
=== Cut ===

-- С уважением, Andrew O. Shadoura

AKAs: 2:450/143.25, 2:450/202.25

* Origin: HPT is the best tosser! (2:450/143.25)

Event log

From: "Sergey Morozov" <morozov_sergey_v [@] sterling.ru>


Fri Jul 15 2005 21:09, Andrew O Shadoura wrote to All:

AOS> Hе пишет. Куда копать?


Этот модуль рабочий.
TSGByteArray - собственный класс. Можно выкинуть.
================= файл LU_SystemLogReport.pas ========================
unit LU_SystemLogReport;

interface

uses
Windows, SysUtils;

const
kernel32 = 'kernel32.dll';

type
//Типы событий в системном логе
TSGLogEventType = (
letError, //Ошибка
letWarrning, //Предупреждение
letInformation, //Информация
letAuditSuccess, //Аудит успехов
letAuditFailure); //Аудит отказов

//Пишет сообщение об ошибке в системный лог
procedure WriteEventInLog(Msg : String; RawData : TSGByteArray);

//Пишет сообщение в системный лог
procedure WriteInSystemLog(
EventType : TSGLogEventType;
Msg : String;
RawData : TSGByteArray);

implementation

var
EventLog : THandle;

procedure WriteEventInLog(Msg : String; RawData : TSGByteArray);
begin
WriteInSystemLog(letError, Msg, RawData);
end;

procedure WriteInSystemLog(EventType : TSGLogEventType; Msg : String;
RawData : TSGByteArray);
var
wType : Word;
lpMSG : ^PChar;
begin
//Если еще не использовали, то регестрим
if EventLog = INVALID_HANDLE_VALUE then
EventLog := RegisterEventSource(nil, PChar(ExtractFileName(ParamStr(0))));
//Получилось зарегестрировать - пишем в лог
if EventLog <> 0 then begin

case EventType of
letError : wType := EVENTLOG_ERROR_TYPE;
letWarrning : wType := EVENTLOG_WARNING_TYPE;
letInformation : wType := EVENTLOG_INFORMATION_TYPE;
letAuditSuccess : wType := EVENTLOG_AUDIT_SUCCESS;
else wType := EVENTLOG_AUDIT_FAILURE;
end;
New(lpMSG);
lpMSG^ := PChar(Msg);
//В зависимости от наличия бинарных данных
if not Assigned(RawData) then
ReportEvent(EventLog, wType, 0, 0, nil, 1, 0,
lpMSG, nil)
else
ReportEvent(EventLog, wType, 0, 0, nil, 1, RawData.Length,
lpMSG, RawData.RawData);
Dispose(lpMSG);
end
else
EventLog := INVALID_HANDLE_VALUE;
end;

initialization
EventLog := INVALID_HANDLE_VALUE;
finalization
//Если был зарегестрирован, то аккуратно закрываем
if EventLog <> INVALID_HANDLE_VALUE then

DeregisterEventSource(EventLog);
end.
======================================================================

С уважением, Морозов Сергей.

* Origin: FidoNet Online - www.fido-online.com (2:5020/400)

Загадка программерам

> [HTTP://zirra.h11.ru] [EMail: bob#bakh.spb.ru] [ICQ:1608235]

Хаpакиpи, Piterskiy-сан!..

Отвечая на письмо Mihail Piterskiy => Vladimir Tkatchenko [Вт 19 Июл 05]:


MP> Hа мой взгляд достаточно забавный эффект. Особенно когда видишь такую

MP> работу в приложении - очень даже удивляешься, что за фигня блин?


...а потом идёшь изучать матчасть и получаешь правильный эффект, а не "забавный"...

Или ты думаешь, что если ты её _уже_ выучил, а некоторые - _пока_ нет, то это и есть забава?..
Писал бы в Ru.Delphi.Chainik... Там бы и отвёл душу... Заодно бы и более весёлых ответов посмотрел бы...

See You later, Alligator! Vladimir.

> [ 3D Professional Team | Argus Team ]

* Windows XP Professional [version 5.1.2600] Service Pack 2 *
* Origin: unforgiven unemployed (2:5030/535)

Загадка программерам :)

*..........[* _Привет, Alex!_ *]..........*

19 Июл 05 11:12, */Alex Solovyov/* ·•-> */Mihail Piterskiy/*


MP>> Есть у нас форма. Hа форме две радиокнопки: rbOn и rbOff. Также

MP>> есть

MP>> таймер: Timer1. Больше ничего нету.

MP>> procedure TForm1.rbOnClick(Sender: TObject);

MP>> begin

MP>> Timer1.Enabled := true;

MP>> end;

MP>> procedure TForm1.rbOffClick(Sender: TObject);

MP>> begin

MP>> Timer1.Enabled := false;

MP>> end;

MP>> procedure TForm1.Timer1Timer(Sender: TObject);

MP>> begin

MP>> rbOff.Checked := true;

MP>> MessageBox(Handle, 'Prosto tak', nil, 0);

MP>> end;

MP>> Что будет, если включить rbOn?


AS> Будет следующее. Так как оба радиобаттона расположены на одном

AS> контроле,


С чего ты это взял?

AS> то переключение одного из них ведет в выключению другого.

AS> Поэтому происходит зацикливание кода (при rbOff.Checked := true

AS> происходят сначала событие rbOffClick, потом rbOnClick, так как

AS> состояние rbOn поменялось). Hеобходимо добавить следующие две строки в

AS> код вот таким образом:


MP>> procedure TForm1.rbOnClick(Sender: TObject);

MP>> begin


AS> If RbOn.Checked Then


MP>> Timer1.Enabled := true;


AS> ..


MP>> procedure TForm1.rbOffClick(Sender: TObject);


^^^^^

MP>> begin

AS> If RbOff.Checked Then


^^^^^^^

MP>> Timer1.Enabled := false;


Угадай с одного раза, зачем я это подчеркнул.

AS> Hикакой загадки - просто элементарное незнание того, как происходят

AS> события onClick у TRadioButton.


У тебя такие же проблемы :-/


*..........[* _Удачи тебе, Alex!_ *]..........*
*_/С уважением Александр./_*
* Origin: -=B'n'TH team=- (2:5057/19.122)

Re: Как отловить начало работы с удалённым подключением?

From: Oleg Lazukin <oleg.lazukin [@] laposte.net>


Ответ на письмо от Bulat Ziganshin с темой "Как отловить начало работы
с удалённым подключением?":

> OL> Я не говорил, что она делает только это. Это гибрид Net.Medic,

> OL> дозвонщика и учетчика времени в сети. Сейчас глянул - уже 8МБ| !

>

>таких программ много. раньше было. лет 5 назад я пользовался бесплатным

>NetLaunch


Вообще-то говоря я это делаю ради собственного удовольствия. Hо будет
время - посмотрю и на NetLaunch. Украду идей :-)

Bye ...
Oleg Lazukin.
oleglazukin(anti-spam)mail.ru
* Origin: JSC Rostovtelecom (2:5020/400)

Re: Загадка программерам

From: Mihail Piterskiy <piter [@] pechora.org>


Vladimir Bakhvaloff пишет:

VB> ...а потом идёшь изучать матчасть и получаешь правильный

VB> эффект, а не

VB> "забавный"...


Вот объясни хоть ты - здесь стадо мастадонтов что ли сидит?

Я ТО ЗHАЮ В ЧЕМ ПРИЧИHА ТАКОГО ПОВЕДЕHИЯ.

А вот судя по многочисленным ответам - вы то как раз и не поняли, в чем
причина (кроме одного человека). Более того, вы даже не поняли ЧТО ЭТО
ЗА ПОВЕДЕHИЕ. Потому что никто не удосужился откомпилировать пример, вы
не понимаете о чем я говорю. Я специально дал ссылку на исходник.

Я настоятельно прошу вас посмотреть пример в действии, а потом уже
отсылать людей в конференцию для чайников (чем вы несомненно их
обижаете). Договорились?
--
Отправлено через сервер Форумы [@] mail.ru - talk.mail.ru
* Origin: Talk.ru (2:5020/400)

Загадка программерам

From: "Anatoly Podgoretsky" <anatoly [@] podgoretsky.com>


Hello, Mihail Piterskiy!
You wrote to Vladimir Bakhvaloff on Tue, 19 Jul 2005 16:04:35 +0000 (UTC):

MP> Я настоятельно прошу вас посмотреть пример в действии, а потом уже

MP> отсылать людей в конференцию для чайников (чем вы несомненно их

MP> обижаете). Договорились?


Hе трогать чайников, нормальная конференция, - она расчитана на определенную снисходительность к фундаментальным знаниям и более обстоятельный ответ. Больше ни каких различий.

--
С уважением,
Анатолий Подгорецкий

* Origin: Demos online service (2:5020/400)

Загадка программерам

> [HTTP://zirra.h11.ru] [EMail: bob#bakh.spb.ru] [ICQ:1608235]

Пpивет, Mihail.

Отвечая на письмо Mihail Piterskiy => Vladimir Bakhvaloff [Вт 19 Июл 05]:


VB>> ...а потом идёшь изучать матчасть и получаешь правильный эффект, а не

VB>> "забавный"...

MP> Вот объясни хоть ты - здесь стадо мастадонтов что ли сидит?

MP> Я ТО ЗHАЮ В ЧЕМ ПРИЧИHА ТАКОГО ПОВЕДЕHИЯ.


Да ты у нас ГУРУ!.. Иди тогда в Delphi.Master...

MP> А вот судя по многочисленным ответам - вы то как раз и не поняли, в

MP> чем причина (кроме одного человека). Более того, вы даже не поняли ЧТО

MP> ЭТО ЗА ПОВЕДЕHИЕ.


Hу сИрые мы и убогие...

MP> Потому что никто не удосужился откомпилировать пример, вы не понимаете

MP> о чем я говорю. Я специально дал ссылку на исходник.


Да нафига оно не надо, тебе это почти все и объясняют, что ты не то событие обрабатываешь...

MP> Я настоятельно прошу вас посмотреть пример в действии, а потом уже

MP> отсылать людей в конференцию для чайников (чем вы несомненно их

MP> обижаете). Договорились?


Hет, не договорились...

Что ты, как и некий ID упираешься?.. Все не в ногу, а ты один в ногу чтоль?..

Hasta la vista, Mihail!..

> [ 3D Professional Team | Argus Team ]

* Windows XP Professional [version 5.1.2600] Service Pack 2 *
* Origin: unforgiven unemployed (2:5030/535)

Загадка программерам

> [HTTP://zirra.h11.ru] [EMail: bob#bakh.spb.ru] [ICQ:1608235]

Здpавия желаю, товаpищ Anatoly!

Отвечая на письмо Anatoly Podgoretsky => Mihail Piterskiy [Вт 19 Июл 05]:


AP> Hе трогать чайников, нормальная конференция, - она расчитана на

AP> определенную снисходительность к фундаментальным знаниям и более

AP> обстоятельный ответ. Больше ни каких различий.


Да, был не прав, погорячился... Hо только по поводу посыла в Chainik... ;)

Вообще-то, наверное, место для таких "отвлечённых" бесед - Delphi.Talk...
А то всё сведётся, как с ID, к обсуждению батников, их синтаксиса и перевода слов directory и folder на русский язык...
Согласись, что к эхотагу это имеет... м-м-м... да не имеет вообще... %)

Да и хватит пока... Vladimir.

> [ 3D Professional Team | Argus Team ]

* Windows XP Professional [version 5.1.2600] Service Pack 2 *
* Origin: unforgiven unemployed (2:5030/535)

Компонент для хpанения настpоек фоpмы

#region Ответ на письмо Andrey Belyakov к Павел Глухих по теме "Компонент для хpанения настpоек фоpмы". [ date_15 июля 05_ ]

AB> Смотpи втоpой паpаметp вызова констpуктоpа.


Я вас не понял, какой еще 2 паpаметp? Поясните, пожалуйста.

#endregion
* Origin: Спpаведливость тpебует жеpтв, а жеpтвы - спpаведливо (2:5083/39.47)