Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi 2

Модерирует : ShIvADeSt

ShIvADeSt (22-03-2007 02:18): http://forum.ru-board.com/topic.cgi?forum=33&topic=8142  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100

   

ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Продолжение темы http://forum.ru-board.com/topic.cgi?forum=33&topic=3647&start=2020#lt
Внимание, все большие куски кода (более 5 строк) оформляем в тег [more] дабы уменьшить размер поста.

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 01:52 20-04-2006 | Исправлено: ShIvADeSt, 02:02 30-06-2006
svs123456789

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
сорри  видимо ошибся  топиком
#

Всего записей: 2934 | Зарегистр. 10-04-2003 | Отправлено: 19:25 07-12-2006 | Исправлено: svs123456789, 20:49 07-12-2006
RomanTim

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
dkom
Можно попробовать так:  
для i-го символа строки s
xl := Canvas.TextWidth(Copy(s, 1, i-1)) + некий отступ
xr := Canvas.TextWidth(Copy(s, 1, i)) + этот же отступ
отступ это то, на ксколько Memo смещает начало текста от своей левой границы, видимо надо будет подобрать
И новый символ выводишь в позицию (xl + xr) div 2 с выравниванием по центру

Всего записей: 375 | Зарегистр. 11-09-2003 | Отправлено: 00:17 08-12-2006
TatarinBo

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Народ, помогите
Есть база, в ней таблицы, связанные между собой.
Например, таблица товаров:
PROD_ID - ид товара
NAME - название
PRICE - цена
 
и есть таблица магазин:
PROD_ID - ид товара
COUNT - количество товара
ну и т.д.
 
Вся информация о магазине выводится в грид, но в читаемом виде, т.е. в таблице магазин есть Lookup-поля Name и Price, значения которых берутся из таблицы товаров.
 
Необходимо реализовать сортировку таблицы "магазин" по Lookup-полям, т.е. чтобы пользователь мог отсортировать таблицу по наименованию товара или его цене. Сколько не думал, ничего нормального придумать не смог. Через индексы не получается - ведь по настоящему в таблице магазин нет полей Name и Price, а есть только ид товара.
 
Если кто сталкивался с подобной проблемой - подскажите. Может, вообще отказаться от Lookup-полей? Тогда как в одной таблице показать данные из нескольких (SQL в моей субд отсутствует)?
 
 

Всего записей: 6 | Зарегистр. 04-03-2006 | Отправлено: 02:35 08-12-2006
Figaro2000

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TatarinBo
Варианты -  
1. "навесить сверху" SQL с помощью TXQuery (есть в копилке).
2. промежуточный слой в виде memory-table, показ юзеру, редактирование, а потом пакетное внесение изменений в БД.
3. Использовать грид, который сам сортирует данные
4. Не заморачиваться с БД, в которой нет SQL, - бесперспективное это дело

Всего записей: 245 | Зарегистр. 24-09-2005 | Отправлено: 03:05 08-12-2006 | Исправлено: Figaro2000, 03:08 08-12-2006
TatarinBo

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Figaro2000
т.е. получается, что Lookup-поля - тоже бесперспективный вариант? и сортировать по ним никак нельзя?
А memory-table? ведь ее тоже надо как-то создавать, т.е. соединять две таблицы в одну, а как это сделать без SQL - ума не приложу.. Тупое копирование записей - это будет долго и нудно.
Грид - DBGridEh. Автоматическая сортировка в нем есть, но только для некоторых баз данных, но моей субд там нет, приходится самому сортировать. Просто DBGridEh самый удобный и функциональный, альтернативы ему я не нашел.

Всего записей: 6 | Зарегистр. 04-03-2006 | Отправлено: 03:56 08-12-2006
Wiki



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите!
Использую Delphi 7 + MySQL.
Подключаюсь к базе через компонент TSQLConnection.
Кидаю на форму компонент TSQLDataSet
SQLDataSet1.CommandType := ctQuery;
SQLDataSet1.CommandText := 'select * from table_name';
 
и при попытке установить SQLDataSet1.Active := True
выдает ошибку 'dbExpress Error: Invalid Data Translation'
 
Что нужно сделать, чтобы все нормально работало?
 
Причем после подключения к базе данных приложение видит только таблицы, а поля таблиц не видит. Кто-нибудь может объяснить почему?

Всего записей: 14 | Зарегистр. 24-03-2006 | Отправлено: 05:37 08-12-2006
Figaro2000

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TatarinBo
отсюда мораль - если твой инструментарий (БД+грид) не делают нужного, то ставь дополнительный.. мое предложение - TXQuery (SQL-надстройка для любых DataSet'ов). И да будет тебе счастье!

Всего записей: 245 | Зарегистр. 24-09-2005 | Отправлено: 08:03 08-12-2006 | Исправлено: Figaro2000, 08:03 08-12-2006
FRALX

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Wiki
Я бы посоветовал сменить компоненты доступа к MySQL

Всего записей: 110 | Зарегистр. 15-12-2005 | Отправлено: 11:00 08-12-2006
oan42



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Figaro2000,TatarinBo
Есть еще 5-й вариант, добавить в используемый Dataset-компонент  
поддержку локальных индексов.  
 
Я в своих компонентах заимствовал функционал индексов из TkbmMemTable.
 
Позже локальные индексы были реализованы в ODAC и прочих CoreLab DAC.
 
Но этот вариант не прост в реализации, поэтому посоветовал бы вариант 4 от Figaro2000.

Всего записей: 488 | Зарегистр. 03-08-2004 | Отправлено: 14:43 08-12-2006 | Исправлено: oan42, 14:43 08-12-2006
afiget



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, плиз, как получить из 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.

Всего записей: 545 | Зарегистр. 31-12-2005 | Отправлено: 17:55 08-12-2006
RomanTim

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
afiget

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

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

Всего записей: 375 | Зарегистр. 11-09-2003 | Отправлено: 22:24 08-12-2006
afiget



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
А отладка для кого сделана - тяжело что ли проверить какой из елементов "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;
 

 
 
 
Добавлено:
Впрочем, я перестраховался :)
Можно сразу
 
TempStr:=Cmt.Text('1',1,false);
 
метод Text возвращает строку, поэтому доп. преобразований не нужно. Естественно, для  
 
Cmt, который <> nil.

Всего записей: 545 | Зарегистр. 31-12-2005 | Отправлено: 20:52 09-12-2006
Sapd



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите, нужны файлы для использования IP Helper
IpExport.pas, IpIfConst.pas, IpRtrMib.pas, IpTypes.pas

Всего записей: 429 | Зарегистр. 08-06-2005 | Отправлено: 23:09 09-12-2006
kvadm

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ищу готовое решение для защиты проги на Делфи. Пользователь покупает, генерирует запрос на лицензию (опционально с привязкой к железу, но не ко всему а на выбор, скажем только к сетевухе), запрос посылается по мылу, по мылу же принимается ключ или файл с лицензией. Все. Гипермегазащита не нужна. Захотят сломать - сломают. Но чтобы простой ламер сломать не мог...
 
Подкажите кто знает плс названия компонент/продуктов. Поиском пользовался - но чтото голова от него гудит. Мож кто пользуется готовым продуктом и доволен - поделитесь

Всего записей: 53 | Зарегистр. 09-08-2005 | Отправлено: 23:44 09-12-2006
Arvur



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
kvadm
Очень неплохо себя показал mxProtector _http://www.maxcomponents.net/components.html#protector
Хотя ломается, думаю, на раз-два.

Всего записей: 2111 | Зарегистр. 18-01-2002 | Отправлено: 23:59 09-12-2006
greenpc

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
kvadm
MiTeC System Information Component
_http://www.mitec.cz/
все о железе

Всего записей: 401 | Зарегистр. 18-04-2003 | Отправлено: 10:59 10-12-2006
Darken



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
kvadm

 
TurboPower OnGuard
Пользуюсь, доволен. Там есть и привязка к железу, и ко времени, и к ол-ву запусков.

Всего записей: 64 | Зарегистр. 22-09-2004 | Отправлено: 13:38 10-12-2006
kvadm

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо всем ответившим. Изучаю...

Всего записей: 53 | Зарегистр. 09-08-2005 | Отправлено: 22:21 10-12-2006
relictus

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

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

Хм.. если знать куда смотреть, то ломается буквально на счет НОЛЬ )))))
 
При правильно построенном ключе неплохую защиту дает
 ICE License Protection for Delphi & C++ Builder
_www.ionworx.com
там триал, но в нете можно найти фуллсорс версии постарее.....

Всего записей: 3715 | Зарегистр. 19-04-2005 | Отправлено: 08:35 11-12-2006
ArtemiyUO

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Обновился DelphiSpeedUp кому интересно
http://www.delphipraxis.net/topic80522_delphi+ide+speedup+d5d10+v22.html

Всего записей: 539 | Зарегистр. 12-12-2005 | Отправлено: 10:04 11-12-2006
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi 2
ShIvADeSt (22-03-2007 02:18): http://forum.ru-board.com/topic.cgi?forum=33&topic=8142


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru