Обсуждение программирования на 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)