Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Вопросы по компонентам для Delphi, C++ Builder 2

Автор: afiget
Дата сообщения: 13.11.2006 11:48
Options\Editor Options\Code insight --- Delay
Автор: dene14
Дата сообщения: 13.11.2006 12:11
Товарищи, помогите пожалуйста в моей проблеме.

Решил перевести свой проект с Delphi 6 на Delphi 7 (из-за глючноватости 6й дельфи). Есль одна компонента, которая была сделана предыдущим разработчиком и используется повсеместно в программе (писать что-то своё в этой области и переделывать всю программу нету времени да и желания), так вот когда я устанавливаю этот пакгейдж (dpk) - всё ок, но когда начинаю собирать свой продукт, выдаёт ошибку, что не может найти файл из данного пакгейджа. Подскажите, пожалуйста, что делать, в какую сторону копать?
Автор: RomanTim
Дата сообщения: 13.11.2006 12:20
dene14
Tools - Environment Options - Library - Library Path - пути по которым компилятор ищет модули, не включенные в проект явно через DPR
Автор: Alex47
Дата сообщения: 13.11.2006 12:33
dene14

Цитата:
Решил перевести свой проект с Delphi 6 на Delphi 7 (из-за глючноватости 6й дельфи).


Мы продолжаем разработку, в том числе, и в Delphi6. И пока не встречали фатальных глюков. Может не стоит торопиться с переходом, а попытаться решить конкретные проблемы? А если уж переходить, то логичнее будет сразу на Delphi2006.
Автор: Vladimir_Pashutin
Дата сообщения: 13.11.2006 13:19
dene14
А перекомпилить пакадже в новой дельфе не пробовал?
Автор: Elf23
Дата сообщения: 13.11.2006 13:46
Ни какую траву я не курил!!! Я имел ввиду типовые кнопочки и менюшьки как в Делфях
Неужели ни кто не знает где можно скачать литературу по WinForms !!! Люди помогите!!!!
Автор: MagistrAnatol
Дата сообщения: 13.11.2006 14:17
Народ,посоветуйте компонент для импорта из екселя в базу данных заточенный под 2006 билдер,токо надо 100 % рабочий в бдс-ке
Автор: dene14
Дата сообщения: 13.11.2006 14:23
RomanTim
Проверю.

Alex47
Общался со знакомым программером, он сказал что 6я ему ваще реально показалась глючной в сравнении с 7й, а глюк... ну да, фатальных глюков нет, но немного раздражает, когда правильно написанное условие не работает так как надо... точнее условие срабатывает, а действие почему-то не производится, хотя всё проходит без ошибок... приходится рисовать отдельную процедуру или запрос к базе данных - считаю что это не есть хорошо...

Vladimir_Pashutin
Перекомпилировать Пакгейдж - значит установить его (ну и само сабой закомпилить), что впринципе я и делаю...
Автор: cryptonium
Дата сообщения: 13.11.2006 14:49
существует ли для delphi какой-нибудь template engine? хотелось бы что-то аналогичное http://freemarker.sourceforge.net/

в частности - на некие события в системе один из вариантов извещений клиентов - почтовые сообщения - так вот зашивать какой-то стандартный формат не хотелось бы - а сделать это на базе шаблона.

для этого конечно можно попробовать использовать какой-то генератор отчетов - но тяжеловатое решение получится
Автор: abv
Дата сообщения: 13.11.2006 17:08
dene14
А на что именно ругается, не на bpl для 6-й Дельфы, типа vcl60 и т.п.? Поставить тогда надо в настройках соответствующие для 7-ки и все
Автор: dene14
Дата сообщения: 13.11.2006 17:46
RomanTim
Помогло. После этого правда ещё с репорт билдером пришлось поковыряться... В 10й версии изменили графический интерфейс и некоторые деклорации вынесли в новый файл ppTypes. Пришлось везде проставить этот инит где ругался компилятор, ну и после всех обрезаний дебага и перемещений, а также упаковки ASPack'ом размер конечного файла увеличился на 30 кб.
Автор: SergeBS
Дата сообщения: 14.11.2006 07:22
Elf23

Цитата:
Ни какую траву я не курил!!! Я имел ввиду типовые кнопочки и менюшьки как в Делфях

Тогда кури ЛЮБУЮ книжку по VC++ для начинающих. Там обязательно про это будет. Ключевые буквы: MFC. А бонусом полистай учебник русского языка. В 2 строчках 4 ошибки.


Добавлено:
MagistrAnatol

Цитата:
посоветуйте компонент для импорта из екселя в базу данных

А родные чем не нравятся? Если надеешься найти такой, что автоматом все сделает, то зря. Ручками все равно поработать надо. Например взять ADOdataset, им книгу открыть и из нее все выкачать. Делов на 10 минут.
Автор: YAPLLE
Дата сообщения: 14.11.2006 20:11
Подскажите плз. названия компонентов аналогичных Developer Express OrgChart в связке с базой данных.
Автор: HOUPE
Дата сообщения: 15.11.2006 12:19
Подскажите плз. Компонент типа календаря только без дней, шобы месяцы и годы?
Заранее Сэнкс.
Автор: Celeron
Дата сообщения: 15.11.2006 14:19
HOUPE
Есть пакет для работы с датами (как визуальные компоненты так и библиотеки):

ESBPCS-Dates™ for VCL

If you are mainly interested in the Calendar and Date Related Components and
Routines then this subset is probably what you are after. Like the other subsets it
includes an impressive range of components and routines in addition to those related
to Calendars and Dates.

Data Aware versions are included in this subset.

Note: All Subsets include full source for the units and components that are included.

More Info at:
http://www.esbpcs.com

Примечание: Но он довольно топорный по дизайну (на уровне Win98). Зато версия 4.20 подключается к Дельфи2006! Возможно там найдёшь что-то полезное...
Автор: oan42
Дата сообщения: 15.11.2006 15:55
YAPLLE
Цитата:
Подскажите плз. названия компонентов аналогичных Developer Express OrgChart в связке с базой данных.

Посмотри здесь, там что-то есть про Chart
http://www.radar-soft.com/
Автор: Widoms
Дата сообщения: 15.11.2006 17:24
Подскажите хорошие компоненты для работы с com портами ?
Для Turbo Delphi (BSD 2006)
Автор: oan42
Дата сообщения: 15.11.2006 18:08
TurboPower Async Professional
http://sourceforge.net/project/showfiles.php?group_id=71007
Автор: hofa
Дата сообщения: 16.11.2006 16:08
Подскажите пожалуйста такую компаненту dbgrid с возможностью добавления виртуального автоинкрементного столбца.
То есть чтобы можно было построить таблицу в которой слева столбец выводил бы номера строк по порядку.
Автор: waik
Дата сообщения: 16.11.2006 17:24
hofa

bdgrid вроде как не должен такого делать. Тут надо искать способ как его в датасет загнать. Если локальные данные или например из TMemTableEh то есть такое. А в гриде хочешь показывай это поле хочешь нет. Хотя конечно сейчас бывает, что гриды заставляют делать почти всё... но неверно это имхо.
Автор: dene14
Дата сообщения: 16.11.2006 18:18
hofa
Почему бы просто не сделать Query для данного стобца ???
Автор: hofa
Дата сообщения: 16.11.2006 21:42
dene14

Подскажите пожалуйста, как это сделать...
Бился-бился - пока результата не добился...

Заранее спасибо.
Автор: SERGE_BLIZNUK
Дата сообщения: 17.11.2006 04:35
hofa
я не волшебник... и проверить сейчас негде. так, навскидку:
попробуйте сделать так:
1) добавьте в ваш Query1 (или тот датасет, который вы используете все поля)
2) руками через правая кнопка \ "New field" добавьте поле, например, MyRecNo
вид ему поставьте Calculated, тип, например, "Integer"
3) в свойствах формы добавьте переменную (в public или private - в данном случае, неважно
например, MyPrivateNum : integer;
4) перед Query1.Open вставьте MyPrivateNum := 0 ;
а лучше это сделать в событии BeforeOpen
procedure TForm1.Query1BeforeOpen(DataSet: TDataSet);
begin
MyPrivateNum := 0
end;

5) на событии вашего Query1.OnCalcFields
повесьте обработчик вида
procedure TForm1.Query1CalcFields(DataSet: TDataSet);
begin
Inc(MyPrivateNum);
DataSet.FieldByName('MyRecNo').AsInteger := MyPrivateNum
end;

вуа-ля.. у вас есть номер строк...

удачи.
Автор: greenpc
Дата сообщения: 17.11.2006 06:46
SERGE_BLIZNUK
вместо MyPrivateNum
можно Query1.RecNo
Автор: RomanTim
Дата сообщения: 17.11.2006 08:12
greenpc
Query1.RecNo (по крайней мере на ADODataSet) при одновременном BOF и EOF = True (это бывает если перейти в начало или в конец датасета) возвращает -1

SERGE_BLIZNUK
Через счетчик так в лоб не получится.
Если все записи в грид не помещаются, то OnCalcFields вызывается при отображении записи, которой в гриде не было видно. Если перейти к последней записи, то нумерация продолжится снизу вверх.
Можно сделать
procedure TForm1.Query1CalcFields(DataSet: TDataSet);
begin
if if DataSet.FieldByName('Num').Value = Null then begin
Inc(MyPrivateNum);
DataSet.FieldByName('MyRecNo').AsInteger := MyPrivateNum
end;
end;
и при открытии датасета пробежать все записи - тогда они заполнятся нормальными значениями. Но это сработает на обычном датасете, адошный сбрасывает значения в 0 перед вызовом OnCalcFields

Добавлено:
Хотя нет, наврал, TBDEDataSet тоже чистит значения рассчитываемых полей
Автор: Alex47
Дата сообщения: 17.11.2006 08:55
hofa

Цитата:
Подскажите пожалуйста такую компаненту dbgrid с возможностью добавления виртуального автоинкрементного столбца.
То есть чтобы можно было построить таблицу в которой слева столбец выводил бы номера строк по порядку.

Если использовать DevExpress QGrid 5, то всё будет очень просто - без Calculated field в dataset.
1. Колонку номеров в QGrid надо создать как unbound, то есть не привязанную к какому-либо полю dataset.
2. В обработчике этой колонки OnGetDisplayText написать одну строку:
if (ARecord.Index > -1) then
AText := IntToStr(ARecord.Index + 1);
3. Удобно, что нумерация в этой колонке будет работать и при задании фильтров и сортировок по колонкам грида.
Автор: dene14
Дата сообщения: 17.11.2006 10:04
hofa:

Вот тебе пример:

[more]procedure TfrmCMRList.CMRBeforeOpen(DataSet: TDataSet);
begin
with CMR.SQL do
begin
Clear;
Add('SELECT C.CMRID, C.STATUS, C.CMRNUM, C.ADDDATE, C.GIVEDATE,');
Add('C.TAKEDATE, C.ORDER_NO, D.NAME DRIVERNAME');
Add('FROM DEVEL.CMR C LEFT OUTER JOIN DEVEL.DRIVERS D ON (C.DRIVERID=D.DRIVERID)');
Add('WHERE ');
if cboStatus.ItemIndex = 0 then
begin
Add('STATUS IS NULL OR STATUS=0 OR STATUS=1 OR STATUS=2');
end else if cboStatus.ItemIndex = 1 then
begin
Add('STATUS IS NULL OR STATUS=0');
end else if cboStatus.ItemIndex = 2 then
begin
Add('STATUS=1');
end else if cboStatus.ItemIndex = 3 then
begin
Add('STATUS=2');
end;
Add('ORDER BY CMRID ASC');
end;

end;

CMRID - это индекс, достаточно было просто добавить в RxDBGrid одноимённую колонку и всё работает (конечно при условии что в DataSet выборку данная колонка тоже включена)
[/more]
Автор: SergeBS
Дата сообщения: 17.11.2006 10:27
RomanTim

Цитата:
при одновременном BOF и EOF = True (это бывает если перейти в начало или в конец датасета) возвращает -1

Немного не так. В связке ADO+Delphi (5 и 7 версии, по крайней мере) ADO считает так:
№ записи реальный -> № в ADO : 1-> -1(!!!), 2 -> 2 , 3 -> 3 ... и т.д. Так что abs(recno) и никаких проблем.
Автор: RomanTim
Дата сообщения: 17.11.2006 10:30
dene14
Как отобразить поле-идентификатор из таблицы я думаю вопросов ни у кого не возникает, только вот, на сколько я понял, человеку нужен порядковый номер записи в результирующем датасете.

SergeBS

Цитата:
Немного не так. В связке ADO+Delphi (5 и 7 версии, по крайней мере) ADO считает так:
№ записи реальный -> № в ADO : 1-> -1(!!!), 2 -> 2 , 3 -> 3 ... и т.д. Так что abs(recno) и никаких проблем.

Если бы все было так просто
Нажми Ctrl+End и увидишь, что для последней записи (если она в грид не помещается) тоже получается -1
Автор: dene14
Дата сообщения: 17.11.2006 10:33
А кто-нибудь знает как получить значения определённых столбцов в ДатаСете для произведения с ними действий, например математических?

Хочется просто сделать скажем сумму всех значений в столбце... А ещё лучше было бы если это можно было сделать прямо в RxDBGrid'e... типа строка Итого: [нужные стобцы просуммированы]ю

Добавлено:
RomanTim

Хм, наверное я не так понял ... В таком случае я пас.

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071

Предыдущая тема: Вызов файла по относит пути и определение буквы СД-рома


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.