Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Несколько вопросов по StringGrid [D7, XP]


Страницы:   1 2 3 4 5

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]

А наличие модальных форм совсем не обязательно, функцию формы с успехом выполняет подвал.


Страницы:   1 2 3 4 5

Наверх

Титульная страница Поиск, карта сайта Написать письмо