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

» Вопросы по Delphi 2

Автор: svs123456789
Дата сообщения: 07.12.2006 18:25
сорри видимо ошибся топиком
#
Автор: RomanTim
Дата сообщения: 07.12.2006 23:17
dkom
Можно попробовать так:
для i-го символа строки s
xl := Canvas.TextWidth(Copy(s, 1, i-1)) + некий отступ
xr := Canvas.TextWidth(Copy(s, 1, i)) + этот же отступ
отступ это то, на ксколько Memo смещает начало текста от своей левой границы, видимо надо будет подобрать
И новый символ выводишь в позицию (xl + xr) div 2 с выравниванием по центру
Автор: TatarinBo
Дата сообщения: 08.12.2006 01:35
Народ, помогите
Есть база, в ней таблицы, связанные между собой.
Например, таблица товаров:
PROD_ID - ид товара
NAME - название
PRICE - цена

и есть таблица магазин:
PROD_ID - ид товара
COUNT - количество товара
ну и т.д.

Вся информация о магазине выводится в грид, но в читаемом виде, т.е. в таблице магазин есть Lookup-поля Name и Price, значения которых берутся из таблицы товаров.

Необходимо реализовать сортировку таблицы "магазин" по Lookup-полям, т.е. чтобы пользователь мог отсортировать таблицу по наименованию товара или его цене. Сколько не думал, ничего нормального придумать не смог. Через индексы не получается - ведь по настоящему в таблице магазин нет полей Name и Price, а есть только ид товара.

Если кто сталкивался с подобной проблемой - подскажите. Может, вообще отказаться от Lookup-полей? Тогда как в одной таблице показать данные из нескольких (SQL в моей субд отсутствует)?


Автор: Figaro2000
Дата сообщения: 08.12.2006 02:05
TatarinBo
Варианты -
1. "навесить сверху" SQL с помощью TXQuery (есть в копилке).
2. промежуточный слой в виде memory-table, показ юзеру, редактирование, а потом пакетное внесение изменений в БД.
3. Использовать грид, который сам сортирует данные
4. Не заморачиваться с БД, в которой нет SQL, - бесперспективное это дело
Автор: TatarinBo
Дата сообщения: 08.12.2006 02:56
Figaro2000
т.е. получается, что Lookup-поля - тоже бесперспективный вариант? и сортировать по ним никак нельзя?
А memory-table? ведь ее тоже надо как-то создавать, т.е. соединять две таблицы в одну, а как это сделать без SQL - ума не приложу.. Тупое копирование записей - это будет долго и нудно.
Грид - DBGridEh. Автоматическая сортировка в нем есть, но только для некоторых баз данных, но моей субд там нет, приходится самому сортировать. Просто DBGridEh самый удобный и функциональный, альтернативы ему я не нашел.
Автор: Wiki
Дата сообщения: 08.12.2006 04:37
Помогите!
Использую Delphi 7 + MySQL.
Подключаюсь к базе через компонент TSQLConnection.
Кидаю на форму компонент TSQLDataSet
SQLDataSet1.CommandType := ctQuery;
SQLDataSet1.CommandText := 'select * from table_name';

и при попытке установить SQLDataSet1.Active := True
выдает ошибку 'dbExpress Error: Invalid Data Translation'

Что нужно сделать, чтобы все нормально работало?

Причем после подключения к базе данных приложение видит только таблицы, а поля таблиц не видит. Кто-нибудь может объяснить почему?
Автор: Figaro2000
Дата сообщения: 08.12.2006 07:03
TatarinBo
отсюда мораль - если твой инструментарий (БД+грид) не делают нужного, то ставь дополнительный.. мое предложение - TXQuery (SQL-надстройка для любых DataSet'ов). И да будет тебе счастье!
Автор: FRALX
Дата сообщения: 08.12.2006 10:00
Wiki
Я бы посоветовал сменить компоненты доступа к MySQL
Автор: oan42
Дата сообщения: 08.12.2006 13:43
Figaro2000,TatarinBo
Есть еще 5-й вариант, добавить в используемый Dataset-компонент
поддержку локальных индексов.

Я в своих компонентах заимствовал функционал индексов из TkbmMemTable.

Позже локальные индексы были реализованы в ODAC и прочих CoreLab DAC.

Но этот вариант не прост в реализации, поэтому посоветовал бы вариант 4 от Figaro2000.
Автор: afiget
Дата сообщения: 08.12.2006 16:55
Подскажите, плиз, как получить из Excel текст примечания для указанной ячейки.
Пробовал:

var Comment: OleVariant;

Comment:=Sheet.Range[i,8].Comment.Text('',1,false);

Изменение, кстати, тоже не работает.

Excel1.Range[Excel1.Cells.Item[i, 8], Excel1.Cells.Item[i, 8]].Comment.Text('Приветик',1,false);

Вылетает с ошибкой Access violation at address ...

Добавлено:
Добавлю:

Sheet: _Worksheet;

Excel1: TExcelApplication.
Автор: RomanTim
Дата сообщения: 08.12.2006 21:24
afiget

Цитата:
Подскажите, плиз, как получить из Excel текст примечания для указанной ячейки.
Вылетает с ошибкой Access violation at address ...

А отладка для кого сделана - тяжело что ли проверить какой из елементов "Sheet.Range[i,8].Comment." не инициализирован? Если у Range не было комментария, то Range.Comment = nil. Для добавления - если комментраия нет - надо сделать Range.AddComment()
Автор: afiget
Дата сообщения: 09.12.2006 19:52

Цитата:
А отладка для кого сделана - тяжело что ли проверить какой из елементов "Sheet.Range[i,8].Comment." не инициализирован? Если у Range не было комментария, то Range.Comment = nil

Это понятно. Так и делал, но сообщение отладчика о том, что выражение не мождет быть вычислено путает планы :)

Цитата:
Для добавления - если комментраия нет - надо сделать Range.AddComment()

Вопрос не в том, как записать коментарий для ячейки. Примеров этого чуда хватает в инете, хотя бы в Королевстве.
Вопрос был:
"Как присвоить переменной в программе коментарий для указанной ячейки?"

Как бы там ни было. Разобрался сам. Есть определенные нюансы.


Код:
var T1: Variant;

        for i:=1 to Rows do
        begin
            Cmt:=nil;
            TempStr:='';
            Cmt:=Excel1.Range[Excel1.Cells.Item[i, 8], Excel1.Cells.Item[i, 8]].Comment;
            if Cmt<>nil then // если есть примечание, можно работать
            begin
                T1:=Cmt.Text('1',1,false);
// обязательно сначала в переменную типа Variant, иначе ошибка OLE
// кроме того, вставляется не пустая строка '', а '1'
// опять же, иначе - ошибка OLE
                TempStr:=VarToStr(T1); // и только теперь в строку
                TempStr:=ReplaceStr(TempStr,'1',''); // удалим шаманство
                TempStr:=Trim(ReplaceStr(TempStr,'Имя автора:'+Chr(10),'')); // а также имя автора примечание
            end;
        end;
Автор: Sapd
Дата сообщения: 09.12.2006 22:09
Помогите, нужны файлы для использования IP Helper
IpExport.pas, IpIfConst.pas, IpRtrMib.pas, IpTypes.pas
Автор: kvadm
Дата сообщения: 09.12.2006 22:44
Ищу готовое решение для защиты проги на Делфи. Пользователь покупает, генерирует запрос на лицензию (опционально с привязкой к железу, но не ко всему а на выбор, скажем только к сетевухе), запрос посылается по мылу, по мылу же принимается ключ или файл с лицензией. Все. Гипермегазащита не нужна. Захотят сломать - сломают. Но чтобы простой ламер сломать не мог...

Подкажите кто знает плс названия компонент/продуктов. Поиском пользовался - но чтото голова от него гудит. Мож кто пользуется готовым продуктом и доволен - поделитесь
Автор: Arvur
Дата сообщения: 09.12.2006 22:59
kvadm
Очень неплохо себя показал mxProtector _http://www.maxcomponents.net/components.html#protector
Хотя ломается, думаю, на раз-два.
Автор: greenpc
Дата сообщения: 10.12.2006 09:59
kvadm
MiTeC System Information Component
_http://www.mitec.cz/
все о железе
Автор: Darken
Дата сообщения: 10.12.2006 12:38

Цитата:
kvadm


TurboPower OnGuard
Пользуюсь, доволен. Там есть и привязка к железу, и ко времени, и к ол-ву запусков.
Автор: kvadm
Дата сообщения: 10.12.2006 21:21
Спасибо всем ответившим. Изучаю...
Автор: relictus
Дата сообщения: 11.12.2006 07:35

Цитата:
Очень неплохо себя показал mxProtector _http://www.maxcomponents.net/components.html#protector
Хотя ломается, думаю, на раз-два.

Хм.. если знать куда смотреть, то ломается буквально на счет НОЛЬ )))))

При правильно построенном ключе неплохую защиту дает
ICE License Protection for Delphi & C++ Builder
_www.ionworx.com
там триал, но в нете можно найти фуллсорс версии постарее.....
Автор: ArtemiyUO
Дата сообщения: 11.12.2006 09:04
Обновился DelphiSpeedUp кому интересно
http://www.delphipraxis.net/topic80522_delphi+ide+speedup+d5d10+v22.html
Автор: Yogi Bear
Дата сообщения: 12.12.2006 08:38
Помогите найти инфу о программировании ADSL модема. Скажем как определить количество полученных байт через модем?
Автор: yuish
Дата сообщения: 12.12.2006 14:27
Как скачать из инета и внести к себе в прогу курс валют ЦБ РФ я знаю и делал, а знает ли кто и есть ли пример как скачать и внести в свою бд курс валют украинского банка, например с xxtp://www.bank-ua.com/index.php?page=export_xml
Автор: ArtemiyUO
Дата сообщения: 12.12.2006 14:51
А в чем проблема? Скачиваете вот эту страницу
http://www.bank-ua.com/export/currrate.xml, например с помощью idHTTP и парсите её.
Автор: yuish
Дата сообщения: 12.12.2006 15:00
ArtemiyUO
для сайта цб рф можно было задать дату дня, за который получал куср. а тут я параметров никаких не обнаружил (не нашел описание)

Добавлено:
ArtemiyUO
С парсингом страницы проблем нет. а через прокси можно как нить качать?
я использую XMLDocument
Автор: vladk1973
Дата сообщения: 13.12.2006 04:08
yuish
У меня есть готовая софтина на D6 + MSSQL 2000
Ежедневно берет с ЦБ курсы и наименования валют и кладет в простенькую скулевую БД
Могу дать все исходники и скрипт для БД
Автор: ArtemiyUO
Дата сообщения: 13.12.2006 06:48
yuish
idHTTP позволяет работать и через прокси.
Автор: PowerChute
Дата сообщения: 13.12.2006 07:11
vladk1973
Выложи куда-нибудь. Интересно посмотреть.
Автор: yuish
Дата сообщения: 13.12.2006 08:59
vladk1973
C ЦБ РФ и у меня есть, под Д7 с акцессом. интересовали банки других близ лежажих государств. В частности Украины. Но я в принципе разобрался уже, всем спасибо.
Автор: j7
Дата сообщения: 15.12.2006 22:41
Кто-нибудь делал декодирование DTFM или FSK из звукового сигнала на Delphi, подскажите с чего начать.
Спасибо.
Автор: jsnjack
Дата сообщения: 16.12.2006 15:28

Цитата:
1 : Импорт ActiveX -> выбираем Адобе Акробат бровзер
2 : Install Component
3 На палитре в закладке ActiveX появляется AcroPDF
4 Бросаем на форму и грузим в него файл
например так AcroPDF1.LoadFile('K:\Books\C-sharpBasis.pdf');

открыл пдф файл таким образом. а как сделать так, чтобы он не на форме открывался, а отдельно в акробате?

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: Событие STFilter(DBGridEh) ???


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