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

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

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

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


IRC Server/Client

Бон джорна, All!

Hеобходимо с нуля писать сабж, поскольку это будет не классический сабж, а заточенный под определенные условия. Т.е. вообще от IRC останется в конце только то, что чат, и только протокол.
Жесткую привязку сервера необходимо делать под asp.net.
Суть сервера сводится к возможности линкования их всех в одну сеть.
Суть клиента сводится к возможности обычного чат-клиента, но с дружественным для самого неискушеного пользователя интерфейсом, минимум команд - максимум простых кнопок и настроек, плюс смайлики и прочая красивая муть.

Ай нид хелп, с чего начинать? Делфя фо дотнет?...

Синкелери Ёрс All!

* Origin: В связи с переходом на новые экономические отношени (2:5080/229.110)

Дюймы или Миллиметры ? - Как узнать региональные устновки

From: "aleXander Olegovich Fedorov" <xof [@] email.su>


Hi,


Hа компе может быть по умолчанию установлены единицы в миллиметрах или дюймах (в
региональных установках Windows).
Как узнать какие единицы в винде стоят по умолчанию?


xof

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

Actions (Was: D4 vs D7)

Привет, Alexey!



EK>>>> Тyева хyча обpаботчиков? Уж лyчше один, как писалось выше,

EK>>>> но с возможностью описать пpоисходящее чеpез case.

AC>>> Разpешите полюбопытсвовать, чем лyчше?

EK>> Центpализацией кода. Видно в компактной фоpме, какие команды

EK>> в какой обpаботчик yходят. Читать то же самое чеpез инспектоp

EK>> объектов или чеpез dfm-скpипт кyда менее yдобно.

AC> ??? можно центpализованно пpисвоить обpаботчики эвентам в OnCreate :)

AC> выглядеть бyдет довольно компактно.


Можно, но лично мне больше нравится работа не с экземпляром Action, а с абстрагированной от него функцией получения состояния (Checked, Enabled, Visible) некоторого идентификатора. А Action -- это как инструмент обеспечения синхронизации, который видеть и щупать напрямую каждый раз вовсе ни к чем.

AC>>> AFAIK, всегда стpемились yйти от case к обpаботчикам.( напpимеp

AC>>> в WindowProc)

EK>> Пpи том хаосе в коде, котоpый вносит обилие обpаботчиков

EK>> OnUpdate, OnExecute лично я пpедпочтy центpализованный

EK>> pаспpеделитель обpаботки с case.

AC> Обpаботчики можно вынести в отдельный класс, а класс в отдельный файл

AC> :)


И потом синхронизировать этот зоопарк между собой? :)

WBR, Eugene mailto: www.tld.by [@] gmail*com

* Origin: Можно ли съесть бутерброд на брудершафт? (2:450/118.24)

Report

From: "Al Ivanoff" <fly13 [@] rol.ru>


Guten Abend Alles.

Помогите, люди.. Задача, казалось бы, тривиальная: вывести на печать
заполненный бланк (страховой полис). Изначально я посчитал, что вполне
достаточно будет QuickReport из стандартной поставки. Однако документ
оказался довольно сложный в плане верстки, оформить его в самом QR
нереально. Тогда я пошел чуть иным путем: вставил в QR поле, загружающее из
файла .rtf, и радостно полез в M$-ворд, "отверстал" все как надо, соранил в
rich-формате.

Тут выяснилось следующее: не существует двух программ, одинакого
воспроизводящих один и тот же .rtf, если в оформлении использовано что-либо
чуть сложнее, чем разбиение на абзацы и управление шрифтом. Допустим, пишем
в ворде, загружаем в вордпаде - уже что-то уползло, у смотрелки
тотал-коммандера тоже особое мнение по поводу, как это должно выглядеть,
загружаем в QuickReport, смотрим Preview - О УЖАС!!! Кстати, результаты
печати тоже слегка отличаются от предварительного просмотра (правда в лучшую
сторону:).

Скачал FastReport - стало выглядеть чуть более цивилизованно, но основные
проблемы остались - жутко искажаются таблицы, невозможно оформить часть
текста в две колонки (а необходимо как-то сделать рядышком два "места для
печати"), etc..

Как быть-то?

ЗЫ: Дельфи пятый, QR третий, FR не помню, снес уже, старенький какой-то..

ЗЗЫ: Думал уже, а не "отверстать" ли мне весь этот ужас в html, однако так и
не понял, как, к примеру, заставить ole-браузер что-то напечатать, да и еще
много с ним проблем. Эх, плюнуть бы на все, написать консольное приложение,
чтобы выдавало идеально отверстанные бланки в LaTeX-формате, однако боюсь,
тетки, для которых все это пишется не смогут оценить столь утонченной
эстетики...

Auf Wiedersehen/Deine Fliege.

np: Скрябин Александр - Piano Sonata No. 1 In F Minor Op.6-03 Presto


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

Re: Actions (Was: D4 vs D7)

From: "M. Vlasov" <misha [@] integro.ru>


On Mon, 22 Aug 2005 12:59:30 +0600, sl <sl [@] nist.fss.ru> wrote:


>

> MV> Лучший способ обновить состояние элементов управления на форме -

> кинуть

> MV> на форму компонент ApplicationEvents и в обработчике события

> OnIdle

> MV> этого компонента установить все Enabled, Visible и прочая у

> элементов

> MV> управления формы.

>

> Эмулировать Actions руками?

> Ведь Application именно так и делает: перед вызовом OnIdle вызывает

> процедуру

> обновления Actions для всех Screen.CustomForms и далее по цепочке

> доходит до

> вызова OnUpdate для каждого Action. Только писать длинные списки

> контролов не

> надо, а, наоборот, можно нескольким разным Action назначить один

> обработчик

> (если состояние определяется одинаковыми условиями).

>


В ApplicationEvents.OnIdle можно обновлять состояния не только элементов
управления,
а и "команд" (Actions), которые связаны с элементами управления.

Однако не все элементы управления можно привязать к "Action".
Hапример: TEdit, TComboBox, TListBox и т.п.

А такие элементы тоже имеют состояния: Visible, Enabled и др. (я, например,
у TEdit параллельно с Enabled люблю устанавливать цвет его фона в серый
или белый).

Это - первая причина использовать ApplicationEvents.OnIdle.

Вторая причина - мне кажется, что удобнее сосредоточить код, обновляющий
состояния
элементов управления, в одном методе.
А не распылять этот код по куче методов обработки OnUpdate для каждой
команды (Action).

Особенно преимущества ApplicationEvents.OnIdle проявляются, когда элементы
управления
имеют тенденцию группироваться.

Сравните:

procedure TForm1.ApplicationEvents1OnIdle(...);
var
SomeCondition: Boolean;
begin
SomeCondition := Edit1.Text = 'Value1';
Action1.Enabled := SomeCondition;
Action2.Enabled := SomeCondition;
Action3.Visible := SomeCondition;
Edit2.Enabled := SomeCondition;
end;

И вот это:

procedure TForm1.Action1OnUpdate(...);
begin
Action1.Enabled := Edit1.Value = 'Value1';
end;

procedure TForm1.Action2OnUpdate(...);
begin
Action2.Enabled := Edit1.Value = 'Value1';
end;

procedure TForm1.Action3OnUpdate(...);
begin
Action3.Enabled := Edit1.Value = 'Value1';
end;

!!! А как быть с Edit2 ? Ведь у него нет OnUpdate :(


А что, если потребуется изменить условие Edit1.Text = 'Value1' на
(Edit1.Text = 'Value1') and CheckBox1.Checked?

В случае сосредоточения процедуры обновления состояний в одном методе мне
достаточно
изменить одну строку:
SomeCondition := (Edit1.Text = 'Value1') and CheckBox1.Checked;

В случае OnUpdate мне придется, во первых, тщательно выискивать все места
обновления состояния,
во-вторых в каждом месте внимательно заменить условие.

А теперь представьте, что на форме лежит не четыре элемента управления, а
четырнадцать.
И что логика определения условий, влияющих на состояния не такая простая,
как в примере,
а содержит строк по десять.

--
С уважением,
Михаил Власов.
www.mv.rb.ru
* Origin: Demos online service (2:5020/400)

астройка TToolbar

Как поживаете, All ?


Есть у Toolbar'а диалог настройки, на который можно наткнуться, зажав Shift и
сделав двойной клик по тулбару.

Диалог хорошо работает на удаление/перемещение элементов, однако недостаток
такой: убранные кнопки исчезают после закрытия диалога, так, что их не вернуть.

1) Как вызвать такой диалог программно?
2) как справиться с исчезновением кнопок (неужели обрабатывать
OnCustomizeDelete и OnCustomizing)?

P.S. TActionBar с его диалогом Customize не предлагать

C уважением, Andrew Bachmaga.
* Origin: Собачки лаяли о чём-то непотpебном... (2:5004/73.222)

D7 и компонеты

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


Hello, Alexander Bliznyuk!
You wrote to Andrey Maximenko on Tue, 23 Aug 2005 21:41:00 +0400:

AB>>> Да нет y меня пpога генеpит отчеты для моей базы МП3. Хотелось более

AB>>> фyнкциональные отчеты, т.к. Freereport не позволяет не включать поля,

AB>>> котоpых нет в SQL запpосе. У него все жестко если в дизайнеpе

AB>>> пpописано поле, то оно должно быть и в запpосе, а меня это не

AB>>> yстpаивает, поэтомy и хочy полнyю веpсию :) И все-таки где скачать

AB>>> можно?


AM>> А что, так тяжело в запpос вставить паpy левых полей?


AB> Hе тяжело, пpосто в отчете бyдyт идти заголовки пyстых полей, а я не

AB> хочy чтобы они там были вообще.


А что он не позволяет указывать какие поля из запроса печатать, не верю

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

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

Report

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


Hello, Al Ivanoff!
You wrote to All on Wed, 24 Aug 2005 15:22:23 +0000 (UTC):

AI> Помогите, люди.. Задача, казалось бы, тривиальная: вывести на печать

AI> заполненный бланк (страховой полис). Изначально я посчитал, что вполне

AI> достаточно будет QuickReport из стандартной поставки. Однако документ

AI> оказался довольно сложный в плане верстки, оформить его в самом QR

AI> нереально.


У QR достаточно прецензионное форматирование, только ты не ручками двигай, а прямо указывай в инспекторе позиции в выбраной системе изменения, неужели сказем 0,1 миллиметра недостаточная точность, да у тебя принтер не обеспечит такую точную подачу листа.

Еще можешь посмотреть печать через Ворд/Эксель у них также точное позициониование, правда немного хуже чем у QR но для большинства задач достаточно.

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

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

Дюймы или Миллиметры ? - Как узнать региональные устновки

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


Hello, aleXander Olegovich Fedorov!
You wrote on Wed, 24 Aug 2005 13:53:42 +0000 (UTC):

aOF> Hа компе может быть по умолчанию установлены единицы в миллиметрах или

aOF> дюймах (в региональных установках Windows).

aOF> Как узнать какие единицы в винде стоят по умолчанию?



Это где ты там такое нашел, укажи точно пункты меню и название полей в диалоге.

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

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

D7 и компонеты

----------------------------------------------------------------------
Добpый(ое) день (ночь, yтpо, вечеp) Anatoly! (нyжное подчеpкнyть ;)
----------------------------------------------------------------------

24 Авг 05 19:52, Anatoly Podgoretsky -> Alexander Bliznyuk:



AB>>>> Да нет y меня пpога генеpит отчеты для моей базы МП3. Хотелось более

AB>>>> фyнкциональные отчеты, т.к. Freereport не позволяет не включать поля,

AB>>>> котоpых нет в SQL запpосе. У него все жестко если в дизайнеpе

AB>>>> пpописано поле, то оно должно быть и в запpосе, а меня это не

AB>>>> yстpаивает, поэтомy и хочy полнyю веpсию :) И все-таки где скачать

AB>>>> можно?


AM>>> А что, так тяжело в запpос вставить паpy левых полей?


AB>> Hе тяжело, пpосто в отчете бyдyт идти заголовки пyстых полей, а я не

AB>> хочy чтобы они там были вообще.


AP> А что он не позволяет yказывать какие поля из запpоса печатать, не веpю


Hy я не нашел. Мне кажется, что надо использовать TfrDatastorage, а во
Free веpсии его нет.


С yважением, Alex
----------------------------------------------------------------------

Hy слава Богy Выньамп не пашет

В d00mе виноват не тот, кто виноват, а тот - в кого выстpелят.

* Origin: ОТКЛЮЧЕH В СВЯЗИ С ПРОФИЛАКТИКОЙ (2:4653/10.115 [@] fidonet.org)