Отправляет email-рассылки с помощью сервиса Sendsay

Программирование. Форум !!!

За 2005-04-12

Re[2]: Локальная база данных

Unit Hello,World!;
uses
Dialogs;
От Tue, 12 Apr 2005 15:25:05 +0400
"Емельянов Алексей" <em***@l*****.ru> Типа
Из пояснения выяснил что вам может подойти
ООо 2.0 пока beta там тот же Акцесс только с лучшего бока

С уважением Валерий
AKA votum
I use OpenOffice.org! D7/FB

Номер выпуска : 4346
Возраст листа : 569 (дней)
Количество подписчиков : 524
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/349724
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

   2005-04-12 22:25:52 (#349724)

Re: Сортировка DBGrid

Unit Hello,World!;
uses
Dialogs;
От Tue, 12 Apr 2005 18:45:35 +0400
NEON <NEON_***@l*****.ru> Типа
N> Имеется DBGrid на форме в Delphi 7. Необходимо организовать сортировку
N> по щелчку на заголовке этой таблицы (как в TViewList). Как это можно
N> сделать?

Кажись RXLib тебе в помощ, возможностей у тамошней Grid куча, еще
TopGrid

С уважением Валерий
AKA votum
I use OpenOffice.org! D7/FB

Номер выпуска : 4345
Возраст листа : 569 (дней)
Количество подписчиков : 524
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/349723
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

   2005-04-12 22:15:32 (#349723)

Процедура - как?

Нужны быстрые алгоритмы индексации каркасной сети для подготовки
описателя объекта для его визуализации в реалтайме при одновременном
редактировании самого объекта в редакторе трехмерных моделей или при
одновременном его движении (и деформации) в игре. В первом случае
входные параметры: ссылка на старый описатель, код добавляемого
примитива (стандартной фигуры или стандартного тела) и ссылка на список
параметров этого примитива (то есть размеров и координат). Во втором:
ссылка на старый описатель, код деформации, ссылка на ее описатель
(список узлов, координаты которых известны точно и их новых координат).
В первом случае желательно иметь максимальное число поддерживаемых
примитивов. Во втором при движении обязательно должен поддерживаться
перерасчет координат тех узлов, для которых координаты не заданы, а при
деформации такой перерасчет желателен (если расчет правдоподобной
деформации не удастся реализовать быстро, то скорее всего придется
отказаться от детализации деформируемых объектов, например, кожи кистей
рук).
С уважением Атавин Т. А.
atavin_***@p*****.ru

Номер выпуска : 4344
Возраст листа : 569 (дней)
Количество подписчиков : 524
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/349716
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

   2005-04-12 21:53:55 (#349716)

Общие вопросы

Подскажите, пожалуйста, как в Borland Delphi 8 Architect Edition
создавать MDI приложения. В частности, меня интересует код, создающий на
этапе исполнения приложения новую форму документа, код, закрывающий
форму документа и свойство, разрешающее такое закрытие.

С уважением Атавин Т. А.
atavin_***@p*****.ru

Номер выпуска : 4343
Возраст листа : 569 (дней)
Количество подписчиков : 524
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/349715
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

   2005-04-12 21:53:52 (#349715)

Функция - как?

Было в листе такое сообщение: "Есть такое тождество: N! = N*(N-1)!.
Причём N предполагается целым
положительным. Это тебе понятно, раз ответил, что функция работает
правильно

при передаче ей значения 5 в качестве аргумента. Поэтому можно сказать,
что
определение факториала рекурсивно: факториал >любого< числа есть
произведение этого самого числа на факториал предыдущего. "Факториал
предыдущего", понятное дело, можно вычислять аналогично.
Этот факт и демонстрирует приведённая тобой функция. Она отсылает
"предыдущее" к себе самой для вычисления (N-1)! и умножает результат на
N.
Его и возвращает."

Вопрос: а зачем так делать? Не можете избавиться от рекрусии -- не
пишите таких функций, займитесь теми, которые определены циклически --
лучше получатся. Реально на машине всегда любая рекурсия транслируется в
двойной цикл: сначала функция вызывает себя много раз с разными
аргументами, что эквивалентно обратному циклу (for i:=n downto 1 do
f:=i;)? А потом подставляет полученные значения в определение функции в
прямом порядке, что
Тоже эквивалентно циклу, но уже прямому (for i:=1 to n do; r:=r*f;).
Функция будет работать быстрее, если ее сразу запускать с прямого цикла,
а для этого надо ее определять циклически.
Кстати, переполнение может быть и другим. В данном случае переполняется
стек, а само значение обращается в нуль, но в других случаях возможно
переполнение отдельных ячеек по разрядности.
А если все таки хочется писать функции, объявленные рекурсивно -
займитесь сначала их анализом, постарайтесь выявить в них цикличность
процесса вычислений. Изучите теоретически как можно больше таких
функций, а потом уж пишите код.
А для того, чтобы было понятнее, почему так важно избавляться от
рекурсии приведу такой пример: рекурсивная процедура вычисления
определителя матрицы справилась только с матрицей пятого порядка, а на
шестом получила переполнение (кстати, как раз стека), циклическая же
справляется с матрицами, порядок которых измеряется десятками тысяч. А
теперь представьте себе такой вариант: функция возрастает по модулю
(имеется в виду не наш модуль -- mod, а математический -- abs) с ростом
аргумента, но очень медленно. Тогда следует ожидать, что машина сможет
вычислять ее для больших аргументов. На самом же деле при большом
аргументе переполнение стека может происходить быстрее, чем отдельных
ячеек, например, результата. Особенно это проявляется для убывающих по
модулю и циклических функций, которые не могут переполнять результат, но
при рекурсивном определении сохраняют способность переполнять стек.
Попробуйте, например, рекурсивно сдвигать аргумент синуса при больших
его значениях на один период в сторону нуля, пока модуль аргумента не
станет меньше полупериода. А потом посмотрите, что из этого получится
при значениях аргумента, которые потребуется сдвигать хотя бы на
миллиард периодов -- 2000000000*pi (при частоте 1700 МГц и выше
циклический сдвиг произойдет меньше, чем за одну секунду, а переполнение
счетчика цикла вообще не возможно, если обойтись без счетчика).

Кстати, я и сам не грешу избыточным применением рекурсии. Один раз
вообще додумался объединить в одном модуле Крамера (причем, как раз
рекурсивного) с Гауссом (конечно, циклическим) и предлагать потом этот
модуль другим программистам в качестве модуля матподдержки для всех их
программ, решающих системы уравнений.

С уважением Атавин Т. А.
atavin_***@p*****.ru

Номер выпуска : 4342
Возраст листа : 569 (дней)
Количество подписчиков : 524
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/349714
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

   2005-04-12 21:53:39 (#349714)

Функция - как?

Нужны алгоритмы быстрого теста касания объектов в виртуальной среде.
Причем, среды имеют разную размерность и не пересекаются. В одном случае
нужен быстрый плоский тест, в другом -- объемный. Примеры применения --
тесты попадания мячиком в ящик в арканоиде и пулей в монстра в
стрелялке.

С уважением Атавин Т. А.
atavin_***@p*****.ru

Номер выпуска : 4341
Возраст листа : 569 (дней)
Количество подписчиков : 524
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/349713
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

   2005-04-12 21:53:36 (#349713)

Re: Локальная база данных

Hello, Емельянов!

ЕА> Спасибо всем, кто ответил.

ЕА> Пока, видимо, буду смотреть в сторону FireBird, если позволит
ЕА> лицензия.

Ну еще есть экстравагантный вариант Berkeley DB.
Не хотел давать в виду экзотичности и довольно странной работы с
транзакциями, но в качестве факультатива можешь посмотреть :-)

   "Vladimir V.Petrov" 2005-04-12 21:53:33 (#349712)

bit битность?

Вот именно для того, чтобы завести туда нули и понадобится
дополнительное время, малое, но не нуль. А для того, чтобы туда что-то
завести с шины данных необходимо сначала по ней что-то передать, то есть
уже иметь число полной разрядности. Конечно, все это делается просто и
быстро, но ведь это надо делать, иначе процессор вообще не сможет ничего
сделать с байтами ни программно, ни аппаратно. Ассемблер, кстати, ничего
никуда не добьет, если константу, а тем более переменную за какой-либо
надобностью (скорее всего, для экономии памяти, только не понятно: зачем
ее экономить на таких крутых машинах?) объявить байтовой (байт -- значит
байт, старших разрядов -- тех, что старше восьми имеющихся младших он не
имеет), но можно загрузить сразу два или даже четыре байта (например, по
очереди), суммарная разрядность будет больше. Короче, сколько тебе надо
разрядов, столько объявляй, на ассемблер не надейся -- эта штука тупая,
как обезьяна, к тому же выполняет лишь функцию попугая. Кстати,
процессор как раз затем и нужен, чтобы аппаратно выполнять элементарные
команды, а программист -- для того, чтобы из этих команд собирать код
(может быть не вручную, а с помощью трансляторов, но собирать), что-то
делающий программно. Иначе ни одна программа не будет не только
выполняться, но и существовать, да и все машины будут неработоспособны.
Кстати, я вообще не понял, зачем при таких частотах экономить каждый
такт? Все равно больше теряется при перезагрузке КЭШа или при доступе к
памяти непосредственно по глобальной шине. Или ты откопал синхронную
глобальную шину? Покажи! Мне тоже интересно, где водятся дешевые
суперкомпьютеры (только у них синхронная глобальная шина сочетается с
быстрым процессором)? На самом деле, ассемблер нужен для того, чтобы
отлавливать целые избыточные модули, в которых теряется за раз хотя бы
несколько тактов, а не для того, чтобы считать каждый отдельный такт.
Поэтому, например замена команды mov al,0 на xor al,al давно не
актуальна, и так уже можно не делать (не спорю, некоторые делают,
например я сам, но это уже не обязательно).
Растактовка же была актуальна на Спектруме и по-моему больше нигде. Там
были команды, выполнение которых занимало десятки тысяч тактов, но их
замена модулями могла на несколько тысяч тактов замедлять выполнение
соответствующих команд, а на intel разница никогда большой не была и
проще было не копаться в растактовке, а просто запомнить, какие команды
выполняются быстрее. Запомнишь мало -- не беда, все равно по растактовке
есть шанс наоборот что-то упустить. А у кого память совсем дырявая --
могли записывать для себя два списка команд: быстрый и медленный (хотя,
как вообще можно программировать на а ассемблере с дырявой памятью не
понятно -- команды то надо помнить, или как?). Так, что хотелось бы
получить комментарий по поводу того, зачем мы все (и я тоже) маемся этим
идиотизмом --копаемся в растактовках, которые устарели раньше, чем их
напечатали, а в результате теряем на модулях больше, чем выигрываем на
командах.

С уважением Атавин Т. А.
atavin_***@p*****.ru

-----Original MessageFrom: Шматко А.А. [mailto:boroden***@s*****.ru]
Sent: Monday, April 11, 2005 12:58 PM
To: comp.soft.prog.prog (6724773)
Subject: Re[4]: bit битность?

> В случае intel отнюдь не всегда такт ;) , посмотри растактовку команд
> начиная с 8086 и сколько там команд, выполняющихся за такт, - вот тебе
> и хвалёные мегагерцы летящие в...

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

всё, пусть в них и есть какой-то там микрокод. Кое-что они всё-таки
делают
аппаратно. ;-)

Номер выпуска : 4339
Возраст листа : 569 (дней)
Количество подписчиков : 524
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/349711
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

   2005-04-12 21:53:30 (#349711)

TListView -> MSWord

Доброго времени суток, все!

Есть TListView (vsReport) в Delphi 7. Как перенести значения, которые
содержатся в нем в MSWord в виде таблицы?

   NEON 2005-04-12 21:53:27 (#349710)

Re: Локальная база данных

Hello, Feniks!

F> Ну почему же остальным не интересно ?
F> Мне, например, очень даже интересен вопрос о инсталляции Огненной
F> Птицы при поставке ее со своим софтом.
F> Я встречал проги, которые устанавливались тупой распаковкой и
F> копированием на комп. А вместе с ней шел и FireBird в виде отдельной
F> DLL-ки, которая копировалась в папку установки этой проги.

Ну тогда пусть вопрошавший берет FireBird и не мучается. Полное соответствие
требованиям :-)

   "Vladimir V.Petrov" 2005-04-12 21:53:22 (#349709)

Еще по БИТам

Понятного на самом деле море, вопрос лишь в том, кому понятно.
Большинство текстов по любому диалекту (а Delphi -- это диалект) понятны
всем знаком базового языка и только им. Новичкам же (а их всегда много)
надо учить язык, а не диалект. Это относится не только к паскалю, а
вообще ко всем языкам.

С уважением Атавин Т. А.
atavin_***@p*****.ru

-----Original MessageFrom: Шматко А.А. [mailto:boroden***@s*****.ru]
Sent: Monday, April 11, 2005 12:39 PM
To: comp.soft.prog.prog (6724773)
Subject: Re[5]: Еще по БИТам

> Произведение Михаила Флёнова - "Библия Delphi".


Может, она не "для слабаков"? В смысле, для уже подготовленных
читатетей?

> А могли бы Вы посоветовать прочитать что ни будь 'понятное' по
Delphi?

Ой... Понятного я не видел. Везде предлагаются сразу формы, кнопки,
события
и т.д. и т.п. Впрочем, для знающего Паскаль оно как раз. Может лучше с
него
начать, а потом уже к Дельфи перейти?

Номер выпуска : 4336
Возраст листа : 569 (дней)
Количество подписчиков : 524
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/349708
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

   2005-04-12 21:53:13 (#349708)

Сортировка DBGrid

Доброго времени суток, все!

Имеется DBGrid на форме в Delphi 7. Необходимо организовать сортировку
по щелчку на заголовке этой таблицы (как в TViewList). Как это можно
сделать?

   NEON 2005-04-12 21:53:06 (#349706)

Re: Переносимое приложение

Unit Hello,World!;
uses
Dialogs;
От Wed, 6 Apr 2005 10:47:10 +0300
Постников Александр <c_postnik***@t*****.ua> Типа
ПА> С какими пераметрами в C++Builder5 нужно компилировать исходник, чтобы
приложение
ПА> работало под Linux?

http://hardclub.donntu.edu.ua/projects/qt/tools/dfm2ui.htm
Если заинтересует сообщи как пройдут эксперименты
> DFM Import позволяет импортировать в QDesigner формы в формате *.dfm, применяемые
в средах разработки C++ Builder & Delphi фирмы Borland.
>
> Загрузить:
> dfm2ui.040920.zip [55 k] - от 20.09.2004
> dfm2ui.040906.zip [28 k] - от 6.09.2004
>
> Хронология развития:
>
> 20.09.2004
> Импорт компонент TMaskEdit, TSpeedButton, TStaticText, TBevel, TRadioGroup,
TComboBox, TTrackBar, TProgressBar, TGauge, TScrollBar, TMemo.
> Импорт многих уникальных свойств компоментов.
> Добавлено информационное окно плагина.
>
> 6.09.2004
> Поддержка импорта из файла *.dfm в текстовом формате.
> Импорт визуальных компонентов из основного набора VCL: TForm, TGroupBox, TButton,
TBitBtn, TListBox, TLabel, TCheckBox, TRadioButton, TEdit, TSpinEdit, TNotebook,
TPageControl, TPanel.
> Импорт основных свойств компонентов: геометрия, цветовая палитра, шрифт, текст,
форма курсора.
>
> Ближайшие перспективы:
> Автоматическое конвертирование базового класса формы в оконные классы Qt (QDialog,
QWizard, QMainWindow) на основе набора составляющих компонентов.
> Импорт всего основного набора визуальных компонентов и их свойств.
> Импорт ресурсов (изображения, меню, toolbars, actions).
> Импорт невизуальных компонентов.
> Поддержка расширенных свойств VCL, которые не поддерживаются форматом UI.
> Создание слотов, соответствующих событиям VCL.
>
> Перспективы:
> Поддержка импорта из бинарного *.dfm формата.
> Импорт дополнительных компонентов (AHM, LMD, RX...).
> Корректный импорт мультиязычных форм. (вроде работает уже :)

С уважением Валерий
AKA votum
I use OpenOffice.org! D7/FB

Номер выпуска : 4334
Возраст листа : 569 (дней)
Количество подписчиков : 524
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/349671
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

   2005-04-12 21:12:37 (#349671)

SQL.Two Data source in Grid

Unit Hello_World!;
uses Messages;

При переходе на SQL сервер FB возникла проблема с предстовлением
данных из двух наборов данных в одной таблице TDBGrid
запрос типа
SELECT Detail,Master from T_Detail,T_Master
Where Master_ID=ID
Выдает как и положено избыточные данные.Т.е. количество кортежей равно произведению
кортежей обеих таблиц.Мне же необходим вывод неизбыточных данных
Пробовал и внешние представления.В мануалах ничего не нашел.Стал уже думать об
использовании StringGrid.
На сегодняшний день программа работает с локальной базой данных из нескольких
Master формируется плоская Detail т.е. не поключевым полям а простой вставкой
значений Master, - в гриде через эдит выбирается нужный кордеж.Сейчас база нормализована
- думаю 3НФ.Хотелось бы сохранить удобство выборки нужного кортежа как сейчас
путем постепенного ввода предпологаемого значения.
Помогите чем могите прогу хотелось бы оттестить до конца месяца.Отчет типа.
IDE Delphi
СУБДД FireBird 1.5

С уважением Валерий
AKA votum
I use OpenOffice.org! D7/FB

Номер выпуска : 4333
Возраст листа : 569 (дней)
Количество подписчиков : 524
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/349651
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

   2005-04-12 20:42:31 (#349651)
  • 1
  • 2