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

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

Автор: Zergboy
Дата сообщения: 04.11.2006 11:52
Всем привет. Уперся рогом, не пойму как решить.
Опишу задачу.
Есть центр, в который сдает залы в почасовую аренду. Сейчас учет ведется в Excel в столбцах - залы, в строках часы. Один месяц - один лист. Бронирование зала арендатором отображается объединением ячеек столбца (сколько часов - столько ячеек) В ячейке пишется: ФИО (или организация) Время начала аренды, время окончания, название мероприятия и требующееся дополнительное оборудование).
В целом администратора все устраивает в текущей ситуации, за исключением сложностей с хоть какой-то статистикой.
Замена на Access как-то не очень устраивает - слишком привязались к простоте графического оформления в Excel

Как в Delphi решить вопрос отображения одного дня не с помощью StringGrid, но чтобы по процессу работы это походило на Эксельку (Мышой выделили "ячейки", объединил)
Если извращаться над StringGrid черз OnDrawCell так как пишут многие товарисчи в статьях, получаются побочные эффекты (например, перестает работать RangeSelect)

Может я немного сумбурно вопрос ставлю, но вот пока так получилось
Автор: wader
Дата сообщения: 04.11.2006 13:51
Zergboy
А просто у объединенных ячеек фон другой сделать?
например красный, зеленый и т.д.
Автор: afiget
Дата сообщения: 04.11.2006 14:46
Zergboy
_http://devexpress.com/Products/VCL/ExSpreadSheet/Index.xml
Автор: Zergboy
Дата сообщения: 04.11.2006 17:53

Цитата:
А просто у объединенных ячеек фон другой сделать?
например красный, зеленый и т.д.

Ну это ж опять-таки через OnDrawCell придется делать, а глюк этого метода - перекрытие объедниения ячеек (т.е. если в OnDrawCell что-то рисуешь, то выделить диапазон мышой не получится - сетка каждый раз перерисовывается и сбрасывает выделение, хотя может я чего и не выткаю, но мой опыт такой)

ExSpreadSheet кажется более интересным замороком, сейчас в поисках сами знаете чего, а то 500 баков - это уж слишком
Автор: afiget
Дата сообщения: 04.11.2006 19:28
В обменнике нету?
Автор: wader
Дата сообщения: 04.11.2006 21:03
Zergboy
Присмотрись к VirtualTreeView. Бесплатно.
Автор: Zergboy
Дата сообщения: 05.11.2006 03:15

Цитата:
В обменнике нету?

ExSpreadSheet адекватных экономических решений вопроса регистрации не нашел (может не там искал, хотя варезник весь облазил)
Скачал VirtualTreeView - посмотрим-разберемся. Выглядит/звучит, по крайне мере, любопытно.
Спасибо за участие
Автор: sunduk4
Дата сообщения: 05.11.2006 07:02
Zergboy
Стучись в ПМ, демки и хелп тяжеловаты для меня, конечно, но самим пакетом Девок смогу помочь.
Автор: Sexton
Дата сообщения: 05.11.2006 19:23
Zergboy

Цитата:
ExSpreadSheet кажется более интересным замороком

TAdvSpreadGrid (TMS) и Next Sheet (http://www.bergsoft.net/index.php?section=components&page=nextsheet) ещё есть, правда, не уверен, что они круче.
Автор: Zergboy
Дата сообщения: 06.11.2006 02:02
Спасибки. Скачал, посмотрю сейчас, что за звери такие
Автор: Eniq
Дата сообщения: 06.11.2006 15:49
Приветствую!!!
Вопрос может показаться вам очень простым, но он поставил меня в тупик.
Самое главное мне правильно его изложить.
Есть "Редактор" (StringGrid), у него есть ScrollBar.
Теперь суть, прокрутка идет следующим образом: я щелкаю на строке StringGrid'а и начинаю крутить колесико мышки, происходит следующее: выделение строки прокручивается, допустим, вниз и дойдя до предела видимой области StringGrid начинает прокручивать ScrollBar.
А хотелось по другому: я щелкаю на StringGrid и прокручивая колесико мышки прокручиваz сразу ScrollBar.
Заранее спасибо.
Автор: Jokerjar
Дата сообщения: 06.11.2006 16:27
Eniq

Код: procedure TForm1.StringGrid1MouseWheelDown(Sender: TObject;
Shift: TShiftState; MousePos: TPoint; var Handled: Boolean);
begin
StringGrid1.Perform(WM_VScroll, SB_LINEDOWN, 0);
end;

procedure TForm1.StringGrid1MouseWheelUp(Sender: TObject;
Shift: TShiftState; MousePos: TPoint; var Handled: Boolean);
begin
StringGrid1.Perform(WM_VScroll, SB_LINEUP, 0);
end;
Автор: Jokerjar
Дата сообщения: 07.11.2006 11:17
Как сделать, чтобы Делфи при компиляции не создавала бэкап исходников (с символом ~ в расширении)?
Автор: relictus
Дата сообщения: 07.11.2006 13:07
Не нашел топика по BDS 2006, посему вопрошаю тут:
недавно поставил сию среду (только Delphi) и в один "прекрасный" день почему-то перестал работать Enter при завершении кода (Code Completition), хотя мышкой все выбирается прекрасно. Что случилось, как победить - может кто знает?
Автор: OdesitVadim
Дата сообщения: 07.11.2006 13:18
relictus
Скорее всего слетела раскладка гарячих клавиш. Править - Tools -> Option
Пункт Editor Options
ищем комбобокс с именем Editor SpeedSetting. Переключаемся на какую-либо раскладку, сохраняемся. Потом ещё раз переключаемся на Default.
Обычно это спасает от разных проблем с "клавиатурой"
Автор: RomanTim
Дата сообщения: 07.11.2006 13:42
Jokerjar
Tools \ Options \ EditorOptions \ Create backup files
Автор: Figaro2000
Дата сообщения: 07.11.2006 15:07
Jokerjar
как вариант - поставить GExperts и просто чистить эти бэкапы с ~
Автор: KRS545
Дата сообщения: 07.11.2006 16:49
Zergboy
Можно в Оутлуке такую вещь сделать,
или cxSheduler взять у того же DevExpress'а
http://www.devexpress.com/Products/VCL/ExScheduler/
там кстати демка есть хорошая
Автор: relictus
Дата сообщения: 08.11.2006 07:09
OdesitVadim
Уж не знаю как смогла слететь раскладка, но твой совет помог. Спасибо!
Автор: rs
Дата сообщения: 10.11.2006 09:30
нужна компонента для отображения тсруктуры каталогов диска

в принципе есть TDirectoryListBox, но в ней не устраивает то, что если к примеру, каталог первого уровня содержит три подкаталога второго уровня, то при открытии одного из этих трёх каталогов остальные два каталога второго уровня исчезают и становятся видимыми при открытии опять только каталога первого уровня

хотелось бы, чтобы открытие одного каталога второго уровня не скрывало остальные каталоги второго же уровня

какими компонетнами можно воспользоваться?
никаких других наворотов не нужно, поэтому бесплатные и ненавороченные компоненты предпочтительнее
Автор: OdesitVadim
Дата сообщения: 10.11.2006 10:24
rs
В делфи вообщето есть такое дело, называется ShellTreeView (кажеться). в 7 и старше.
Но кто мешает написать свой? Там писать на пол часа
Автор: TOPEugeni
Дата сообщения: 10.11.2006 11:21
Подскажите страждущему:
Есть такой кусок, где Table1 это файл DBF .

Table1.First;
while not Table1.Eof do
begin
Table1.Delete;
end;

После данной манипуляции, данный файл - как бы очищается, т.е. если его открыть в Excel - нормально, а если в любом DBF Viewer, то видно, что все ранее удаленные выше указаным способом записи оказались ЛИШЬ ПОМЕЧЕННЫМИ на удаление.

Подскажите в чем суть моего непонимания момента. И как (в двух словах) это разрешить
Автор: megarom
Дата сообщения: 10.11.2006 11:23
Привет всем.
нет ли у кого нибудь русского хелпа к делфям 6 и 7?
Все почти перерыл, или деньги хотят или к 5 или лажа...
Мне нужно чтобы как родной работал по F1.
Автор: OdesitVadim
Дата сообщения: 10.11.2006 11:36
megarom
Варёз здесь не обсуждается.
Автор: megarom
Дата сообщения: 10.11.2006 12:01
OdesitVadim

Цитата:
Варёз здесь не обсуждается.

А причем тут варез?
У меня лично и по англицки нормально, а вот другу детей учить надо, он учитель.
Прочитай внимательно вопрос, прежде чем флудить.
И если ты такой грамотный подскажи мне ЛИЧНО, можно как организоватьв памяти некий многомерный массив, и обращаться к нему в разрезе определенной аналитики.
Автор: rs
Дата сообщения: 10.11.2006 12:03

Цитата:
OdesitVadim

спасибо, нашёл демо с использованием TShellTreeView и TShellListView

но в хелпе про эти компоненты ни слова, по исходникам тоже не понял, как мне назначив к примеру в качестве 'c:\' Root для TShellTreeView, программно перейти в отображаемом дереве с корнем в 'c:\' к узлу (каталогу) 'c:\temp\1'?

в TDirectoryListBox для этого есть Directory...

как программно селектировать файл по имени в TShellListView?

как программно просмотреть все узлы поддерева?
Автор: relictus
Дата сообщения: 10.11.2006 12:09
megarom
Может это?
http://forum.ru-board.com/topic.cgi?forum=35&topic=21284&start=80#lt
Автор: SERGE_BLIZNUK
Дата сообщения: 10.11.2006 12:16
megarom

Цитата:
И если ты такой грамотный подскажи мне ЛИЧНО, можно как организоватьв памяти некий многомерный массив, и обращаться к нему в разрезе определенной аналитики.

я не такой грамотный, но, если я вас правильно понял, посмотрите в сторону таблиц в памяти:
SQLMemTable (смотри http://www.aidaim.com)
TClientDataSet
JvMemoryData (из JEDI)

TOPEugeni
нужно произвести т.н. "упаковку" данных. Для этого ОБЯЗАТЕЛЬНО открыть таблицу в монопольном режиме. Пример из DelphiWorld (рекомендую все новичкам и не только) [more]
Для dBase:
uses
DbiProcs;

with Table1 do
begin
Close;
Exclusive := True;
Open;

DbiPackTable(DBHandle, Handle, nil, nil, True);
{^ здесь можно добавить check()}

Close;
Exclusive := False;
end;
[/more]
Автор: relictus
Дата сообщения: 10.11.2006 12:23
TOPEugeni
Следующие операторы очищают ту же таблицу, удаляя из нее все записи.
Таблица должна быть открыта в эксклюзиве, т.е. Exclusive := True.
Вызов метода Pack не нужен.

with Table1 do
begin

{ таблица переводится в неактивное состояние }

Active := False;

{ удаление всех записей}

EmptyTable;

end;
Автор: megarom
Дата сообщения: 10.11.2006 12:51
relictus
Спасибо

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

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


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