![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Несколько вопросов по StringGrid [D7, XP]
uno-84 © (2008-07-02 08:41:00)Здравстуйте! У меня несколько вопросов по StringGrid, я добавляю в него записи
with StringGrid1 do
begin
RowCount := k+1;
for i := 1 to RowCount do
begin
if FieldByName('MESSAGE_IMPORTANCE').AsString = 'T' then StringGrid1.Cells[0, i] := '!' else StringGrid1.Cells[0, i] := '';
if FieldByName('MESSAGE_ATTACH_COUNT').AsInteger > 0 then StringGrid1.Cells[1, i] := FieldByName('MESSAGE_ATTACH_COUNT').AsString
else StringGrid1.Cells[1, i] := '';
if FieldByName('MESSAGE_ORIGINALMSG').AsString > '' then StringGrid1.Cells[2, i] := 'Ответ' else StringGrid1.Cells[2, i] := '';
if FieldByName('MESSAGE_NOTIFY').AsString = 'T' then StringGrid1.Cells[3, i] := '+' else StringGrid1.Cells[3, i] := '-';
if FieldByName('MESSAGE_TYPE').AsString = 'R' then StringGrid1.Cells[4, i] := 'Извещение о прочтении'
else
begin
if FieldByName('MESSAGE_WORK_TYPE').AsString = 'T' then
begin
StringGrid1.Cells[5, i] := FieldByName('MESSAGE_WORK_PRO').AsString + '%';
StringGrid1.Cells[4,i] := 'Служебное задание';
end
else
begin
StringGrid1.Cells[4, i] := 'Обычное сообщение';
StringGrid1.Cells[5, i] := '';
end;
end;
StringGrid1.Cells[6, i] := FieldByName('USER_NAME1').AsString;
StringGrid1.Cells[7, i] := FieldByName('MESSAGE_RECIPIENTS_NAMES').AsString;
StringGrid1.Cells[8, i] := FieldByName('USER_NAME').AsString;
StringGrid1.Cells[9, i] := FieldByName('MESSAGE_SUBJECT').AsString;
StringGrid1.Cells[10, i] := FieldByName('MESSAGE_SEND_DATE').AsString;
StringGrid1.Cells[11, i] := FieldByName('MESSAGE_RECEPT_DATE').AsString;
StringGrid1.Cells[12, i] := FieldByName('MESSAGE_READ_DATE').AsString;
StringGrid1.Cells[13, i] := FieldByName('MESSAGE_ID').AsString;
Next;
end;
1. Можно ли вставить в StringGrid1.Cells[14, i] CheckBox и как отслеживать поставлен чек или нет?
2. В Cells[5, i] нежен прогресс бар или что-то в этом роде, для визуального представления процента?
3. Как сделать так что-бы записи писались по центру ячейки?
Подскажите пожалуйста.
Заранее спасибо
Игорь Шевченко (2008-07-04 14:37:00) [1]
> а что значит посмотри? на интерфейс
да, на интерфейс
_Guest_ (2008-07-04 12:40:00) [2]
> Игорь Шевченко © (03.07.08 17:36) [80]
> а посмотри, как это сделано в Ms Project - он
> как раз под такие задачи и предназначен
Не видел такого, а что значит посмотри? на интерфейс или он с исходниками поставляется? Вроде бы странно для MS, хотя я наверно от жизни отстал.
Игорь Шевченко (2008-07-03 17:36:00) [3]
> В общих чертах - см. [57] - это план график с указанием
> когда что началось, сколько продолжалось и насколько оплачено.
> И очень хочется видеть всю информацию хоты бы по одному
> из этапов
а посмотри, как это сделано в Ms Project - он как раз под такие задачи и предназначен
MsGuns (2008-07-03 16:46:00) [4]Почти все, что, как Вы указали, делается в Экселе, можно сделать в сетке. В т.ч. и проверки "чтоб тетя не ввела не то" и пересчеты "на лету", И ИМХО, для этого лучше использовать именно стрингрид. Для отображения состояния взаиморасчетов (или что там у Вас) дерево действительно не нужно. Я же сказал, прежде чем обсасывать компоненты, лучше всего было осветить КАКАЯ ПОСТАВЛЕНА ЗАДАЧА. Тогда бы и ветка была бы не такой длинной, и обсуждение - много результативнее.
_Guest_ (2008-07-03 15:07:00) [5]Грустно признавать, что не держу своих обещаний. Но это снова я. Не удержался и поглядываю на ветку.
> MsGuns © (03.07.08 14:40) [74]
> И все же я не понял, почему нельзя использовать тривью с
> "подвалом" ...
> ИМХО, было бы неплохо
> хоть в общих чертах изобразить здесь постановку задачи
Мне не надо видеть все узлы и подробности по выделенному, мне надо видеть подробности части (или всех если их не много) записей (строк, объектов, как их ни обзывай). И как подробности детей влияют на вычисляемые свойства родителей. В общих чертах - см. [57] - это план график с указанием когда что началось, сколько продолжалось и насколько оплачено. И очень хочется видеть всю информацию хоты бы по одному из этапов. Это не более 10-15 строк и менее 10 столбцов. Еще при этом хотелось бы иметь возможность тут же поправить процент оплаты или сроки и увидеть результаты перерасчета. Как уже выше говорили ексел удовлетворяет почти полностью. Но начинаются вопросы от разграничения прав доступа до взаимодействия с другими программами. Скажу честно, ексел знаю, но не до такой степени, да и от дурака в интефейсе своей программы защититься легче. А то "ой, я не ту кнопочку нажала", неужели не сталкивались.
Sergey13 (2008-07-03 15:02:00) [6]> [76] MsGuns © (03.07.08 14:52)
> Да пойми ты, что неудобно отображать древовидные структуры в сетке.
А кто агитировал за это? Уж точно не я. Я предлагал визуализацию а-ля проводник - слева дерево справа детализация (какая - смотря по условиям).
MsGuns (2008-07-03 14:52:00) [7]>Sergey13 © (03.07.08 14:43) [75]
>ЗЫ: Прямо гридофобия какая то. 8-)
Да пойми ты, что неудобно отображать древовидные структуры в сетке. Не наглядно, не видно уровней например. Особенно если у объекта масса артибутов, которые тоже надо показывать или они вообще отличаются друг от друга по набору атрибутов. Причем тут фобия ?
Sergey13 (2008-07-03 14:43:00) [8]> [74] MsGuns © (03.07.08 14:40)
> где отображать текущую ноду дерева подробно
А если "текущая ноду дерева подробно" это наборданных.
ЗЫ: Прямо гридофобия какая то. 8-)
MsGuns (2008-07-03 14:40:00) [9]И все же я не понял, почему нельзя использовать тривью с "подвалом", где отображать текущую ноду дерева подробно - там же можно его и редактировать. Ну вот не врублюсь зачем тут сетка, у которой есть одно существенное ограничение - невозможно увидеть все поля (ячейки) строки за раз при большом к-ве столбцов или большой их ширине. Мостить этажерки в ней и геморно и мало помогает, потому что ячейки-многоэтажки весьма плохо воспринимаются на глаз.
ИМХО, было бы неплохо хоть в общих чертах изобразить здесь постановку задачи
Anatoly Podgoretsky (2008-07-03 13:44:00) [10]> _Guest_ (03.07.2008 12:24:12) [72]
> Откуда такое дикое предположение, я, кажется, повода не давал. Всегда следую условиям распространения и использования.
Никакого предположения я не делал, просто говорю не пытайся идти на поводу у заказчика. Докажи ему, что компоненты для работы стоят столько то, а разработка аналого столько то и столько то времени. Он или заплатит за компоненты/разработку или поставит офис или откажется от функциональности. Если же ты или другой разработчик пойдут на поводу и поставят ворованый компонент, то при первой же проверки виновным окажутся разработчики, а не заказчик, даже если он вам сам и даст этот ворованый компонент или ссылку где лежит "бесплатный".
Ну остальные выводы ты сам сделаешь.
_Guest_ (2008-07-03 12:24:00) [11]
> предложи оплату
> этого каприза по цене 10 * Офис И тебе хорошо и ему тоже,
> или тоже самое по покупке компонент аля офис * умноженое
> минимум на 1.2 (прибыль то должна быть).
По моему, Вы что то недопоняли про оплаты у нас в городе. Можешь работать за 3 т.р. - работай, не можешь - не работай. Я могу придти и потребовать 30 т.р., но ни к чему кроме кручения пальца у виска это не приведет.
> Воровать компоненты
> не смей. Клиент всегда прав, только пусть подтвердит эти
> права.
Откуда такое дикое предположение, я, кажется, повода не давал. Всегда следую условиям распространения и использования.
Все. Здесь заканчиваю, следуя [68], пошел читать местную статью "Иерархические структуры данных в реляционных БД". Если будут вопросы создам свою ветку.
Anatoly Podgoretsky (2008-07-03 12:09:00) [12]> Anatoly Podgoretsky (03.07.2008 12:02:10) [70]
Ошибка это не прибыль, а стандартная торговая наценка.
Anatoly Podgoretsky (2008-07-03 12:02:00) [13]> _Guest_ (03.07.2008 10:51:05) [65]
> Заказчик не хочет покупать ексель :), но хочет получить некие вещи, которые в екселе можно сделать, тоько если его хоть немного знать, а это уже труд.
Скажи ему - за ваши деньги исполнтим любой каприз, только если денег будет достаточно и предложи оплату этого каприза по цене 10 * Офис
И тебе хорошо и ему тоже, или тоже самое по покупке компонент аля офис * умноженое минимум на 1.2 (прибыль то должна быть). Воровать компоненты не смей. Клиент всегда прав, только пусть подтвердит эти права.
_Guest_ (2008-07-03 11:40:00) [14]
> Sergey13 © (03.07.08 11:31) [68]
> > [66] _Guest_ (03.07.08 10:55)В [54], в ответ на предложение
> перейти в аську, я имел в виду форум (свою ветку), а не
> этот конкретный топик.
Извиняюсь, недопонял.
Sergey13 (2008-07-03 11:31:00) [15]> [66] _Guest_ (03.07.08 10:55)
В [54], в ответ на предложение перейти в аську, я имел в виду форум (свою ветку), а не этот конкретный топик.
> [57] _Guest_ (03.07.08 10:10)
> БД нет
> [65] _Guest_ (03.07.08 10:51)
> Объекты имеют свою структуру общую для всех
Почему бы не перевести объекты в БД. Там УЖЕ реализовано многое из того, что тебе хотелось бы - сортировки/группировки и т.д. А ДБгриду оставить его функции отображения.
Кстати для БД есть и бесплатные компоненты для деревянных данных. EhLib например бесплатен (до версии 3.6) и вро де бы может отображать деревяшки (я лично этот функционал не юзал, но в описании он есть).
Игорь Шевченко (2008-07-03 11:20:00) [16]
> Заказчик не хочет покупать ексель :), но хочет получить
> некие вещи, которые в екселе можно сделать
пусть скачивает OpenOffice :)
_Guest_ (2008-07-03 10:55:00) [17]
> Anatoly Podgoretsky © (03.07.08 10:34) [64]
> > Sergey13 (03.07.2008 10:29:02) [62]Это конечно бардак
> использовать чужую ветку для своих целей, получается каша.
> Я вот теперь тоже не понимаю, а о чем мы говорим сейчас?
>
Я все время говорю о StringGride и тоже хотел уйти, но прислушался к старожилам [54].
_Guest_ (2008-07-03 10:51:00) [18]
> Sergey13 © (03.07.08 10:19) [58]
> Почему то мне кажется,
> что твоя задача идеально решается в екселе.Ты все хочешь
> из грида сделать некий инструмент для манипулирования данными.
> А он изначально предназначен только для их визуализации.
> Данных в гриде нет.
Заказчик не хочет покупать ексель :), но хочет получить некие вещи, которые в екселе можно сделать, тоько если его хоть немного знать, а это уже труд.
Есть такой грех: хочу немного поманипулировать данными в StringGrid'е. Но совсем немного, в основном отображать: пользователь видит все и только пометки ставит, и очередность, и прошла ли оплата.
> MsGuns © (03.07.08 10:22) [60]
Объекты имеют свою структуру общую для всех. Эта структура не является частью другой. На мой взгляд объекты линейны (возможно я не владею терминологией). Объекты созданы и существуют, имеют свойства парент и чилдкаунт.
Я все понял: зафиксирую нужный мне столбец и отрисую его сам, подставляя иконки свернутости/развернутости и отступы, а возможно даже линии вхождений. Просто была слабенькая надежда, что кто-нибудь когда-то это офрмил в компонент. Если все это доведу до ума и получится красиво, то выложу куда-нибудь, даже просто в качестве примера.
Anatoly Podgoretsky (2008-07-03 10:34:00) [19]> Sergey13 (03.07.2008 10:29:02) [62]
Это конечно бардак использовать чужую ветку для своих целей, получается каша.
Я вот теперь тоже не понимаю, а о чем мы говорим сейчас?
Anatoly Podgoretsky (2008-07-03 10:32:00) [20]> Игорь Шевченко (03.07.2008 9:54:56) [56]
А наличие модальных форм совсем не обязательно, функцию формы с успехом выполняет подвал.