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

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

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

Это же демокомпоненты - крутить исходники.
Цитата:
как программно просмотреть все узлы поддерева?

А не проще самому с помощью FindFirst/FindNext пробежаться?
Автор: greenpc
Дата сообщения: 10.11.2006 13:31
rs
может это подойдет API
[more]
uses
ShellAPI, ShlObj;
...

procedure TForm1.Button1Click(Sender: TObject);
var
TitleName : string;
lpItemID : PItemIDList;
BrowseInfo : TBrowseInfo;
DisplayName : array[0..MAX_PATH] of char;
TempPath : array[0..MAX_PATH] of char;
begin
FillChar(BrowseInfo, sizeof(TBrowseInfo), #0);
BrowseInfo.hwndOwner := Form1.Handle;
BrowseInfo.pszDisplayName := @DisplayName;
TitleName := 'Please specify a directory';
BrowseInfo.lpszTitle := PChar(TitleName);
BrowseInfo.ulFlags := BIF_RETURNONLYFSDIRS;
lpItemID := SHBrowseForFolder(BrowseInfo);
if lpItemId <> nil then
begin
SHGetPathFromIDList(lpItemID, TempPath);
ShowMessage(TempPath);
GlobalFreePtr(lpItemID);
end;
end;

[/more]
Автор: megarom
Дата сообщения: 10.11.2006 14:11
SERGE_BLIZNUK

Цитата:
если я вас правильно понял, посмотрите в сторону таблиц в памяти

Не совсем, мне нужно сформировать некую таблицу(ну например типа array of record, не базу данных) и сортировать ее по разным признакам, т.е. переключаться как будто с разными таблицами работаю, а на свмом деле с одной.
Суть в следующем. есть 3 сиска. 1- полный, 2 и 3 - часть первого. заковыка в том что есть еще на 2й - 1, а на 3й 2 списка "меток" начала и конца подсписков которые формируются по спискам(грубо говоря не все показывать).
Если делать 3 списками - просто, я хочу обойтись одним и без БД.
Автор: RostY
Дата сообщения: 10.11.2006 15:42
megarom ниче не понятно, но здорово.
Все-таки я б тоже советовал использовать базу. Если не хочешь держать базу на диске, используй, например Absolute Database в режиме "MEMORY" и будеш себе селектами из таблы все сортировать хоть вдоль, хоть поперек
Автор: rs
Дата сообщения: 10.11.2006 16:13
OdesitVadim

Цитата:
крутить исходники.
покрутил... в общем большая часть вопросов отпала

остался пока один вопрос - имеем к примеру подкаталог "B", вложенный в каталог "A" и при развёрнутом поддереве каталога "A" каталог "B" находится вне отображаемой области дерева каталогов.

теперь я программно устанавливаю "B" в качестве текущего каталога - при этом содержимое дерева каталогов НЕ проскроллировалось и несмотря на то что каталог "B" стал действительно текущим - он так и остался вне отображаемой на экране области, теперь чтобы увидеть каталог "B" в дереве на экране я должен руками проскроллировать дерево

вопрос - можно ли после установки текущего каталога в дереве сделать его видимым в дереве без скроллирования к нему руками?

Автор: OdesitVadim
Дата сообщения: 10.11.2006 16:17
rs
А может к нему обратиться как к обычно TreeView?
Там кажеться MakeVisible есть
Автор: rs
Дата сообщения: 10.11.2006 17:07
OdesitVadim
спасибо
отлично сработало
Автор: andead
Дата сообщения: 11.11.2006 10:29
тут советовали пользоваться различными MemTable-ами, можно где-нибудь почитать что это такое?)
Автор: Vitus_Bering
Дата сообщения: 11.11.2006 11:22
Что-то не могу понять, как из Дельфи изменить шрифт и его размер в экселевской ячейки.
Автор: SERGE_BLIZNUK
Дата сообщения: 11.11.2006 14:22
andead
Цитата:
пользоваться различными MemTable-ами, можно где-нибудь почитать что это такое
хм... Ну что вам сказать... Ладно, попробую на пальцах объяснить. Что такое обычный dataset знаете? Использовали? В хелпе читали? Так вот, memTable - это обычный датасет, но без физического представления в виде файла или СУБД. Т.е. когда вы делаете

например, в SQLMemTable for Delphi / C++ Builder есть штук 6 demos и 500 кил справка. (правда, всё на английском). Кстати, многие Memtable, в отличие от обычного датасета позволяют выполнять SQL запросы к данным, которые в них содержатся.
Автор: A_V
Дата сообщения: 11.11.2006 15:15
Vitus_Bering
а ты как с Excel работаешь? если через OLE, то типа того:
XL := CreateOLEObject('Excel.Application');
...
XL.Workbooks[1].WorkSheets[1].Range['A1:A2'].Select;
XL.Selection.Font.Size := ..

Добавлено:
а вобще, запиши макрос в екселе, и посмотри какой он код генерит в vba

Добавлено:
andead
Насчет Memtable - смотри в сторону TClientDataSet.
заполняешь ему FieldDefs, ставишь индесы если надо, делаешь CreateDataSet и можно работать )
Автор: andead
Дата сообщения: 11.11.2006 17:39
SERGE_BLIZNUK
A_V
спасиб, всё понял, раньше я извращался с массивами для этих целей =) подскажите тогда какие компаненты в этой области самые продвинутые (с возможностью SQL запросов)
Автор: Figaro2000
Дата сообщения: 11.11.2006 18:08
andead
1. AidAim SQLMemTable - SQL и in-memory dataset в одном флаконе
2. сам лично уже давно пользую kbmMemTable от www.components4developers.com. SQL в этой компоненте отсутствует, но легко добавляется при помощи TxQuery (см. обменник)

и то, и другое бесплатно, качается с оффсайтов. SQLMemTable - без исходников, kbmMemTable - с исходниками.
Автор: Vitus_Bering
Дата сообщения: 12.11.2006 09:02
A_V
Спасибо, попробую, а насчет макроса, как-то сразу не догодался.
Автор: vladk1973
Дата сообщения: 13.11.2006 03:58

Цитата:
andead
Насчет Memtable - смотри в сторону TClientDataSet.
заполняешь ему FieldDefs, ставишь индесы если надо, делаешь CreateDataSet и можно работать )

Но не забудь, что с собой в этом случае придется таскать midas.dll
Автор: andead
Дата сообщения: 13.11.2006 08:55
vladk1973
он разве с виндой не ставится?
Автор: vserd
Дата сообщения: 13.11.2006 09:36
andead

Цитата:
он разве с виндой не ставится?

Нет. Это чисто борлондовская разработка. И не забывай что там коммерческая лицензия. Для "белых" программ не очень приятная.
Автор: yuish
Дата сообщения: 13.11.2006 11:20
а можно как то поменять (задать свой) курсор, ну когда запрос делается и что бы не стандартные часики с надписью SQL а другой нарисовать посимпатичней и подсунуть?
Автор: DroN_S
Дата сообщения: 13.11.2006 11:40
yuish
а в чём собственно проблема то: сохраняй в ресур что тебе нужно (курсор) а потом в процессе вытаскивай курсор из ресурса и подменяй стандартный...
Автор: yuish
Дата сообщения: 13.11.2006 12:55
DroN_S
а примерчиком не поделишся?
Автор: Figaro2000
Дата сообщения: 14.11.2006 07:56
vladk1973

Цитата:
таскать midas.dll
не обязательно.. можно подключить MidasLib.dcu в проект и забыть про dll-ку
Автор: XPEHOMETP
Дата сообщения: 14.11.2006 08:18
Ну, будет статическое связывание библиотеки вместо динамического. Что в лоб, что по лбу.
Автор: DroN_S
Дата сообщения: 14.11.2006 13:41

Цитата:
Ну, будет статическое связывание библиотеки вместо динамического. Что в лоб, что по лбу.

согласен!!!!
так получается во первых увелится размер проги, а во вторых и ресурсов больше кушать прога будет, а так всё работает динамически, когда надо подгрузили, когда ненадо, выгрузили библиотеку...
Автор: vshersh
Дата сообщения: 14.11.2006 17:25
DroN_S
Не думаю что midas.dll получится подгружать динамически...
По крайней мере для использования TClientDataset.

А при статической линковке оверхэд по размеру не так уж и велик, зато независимость от версии библиотеки и от необходимости распространения и регистрации...
Автор: Figaro2000
Дата сообщения: 14.11.2006 22:58
vshersh
Согласен на все 100! У многих геморрой рос из-за разный версий midas.dll на одном компе, пока в 6-й версии не появился MidasLib.dcu.
Автор: Alex47
Дата сообщения: 15.11.2006 08:59
Итак, продажа Borland Developer Tools Group не состоялась.
Вместо этого сформирована дочерняя фирма CodeGear:
http://bdn.borland.com/article/33817
Автор: Dim2004
Дата сообщения: 15.11.2006 10:14

Цитата:
во первых увелится размер проги, а во вторых и ресурсов больше кушать прога будет

А тебе не по фигу? При той мощи, которую имеют даже минимальные офисные писюки, нужно минимизировать не потребляемые программой ресурсы, а гемор при её использовании .
Автор: pit23
Дата сообщения: 15.11.2006 11:22
А как поменять цвет шрифта текста кнопки в Delphi 6. Присваиваю свойству Font.Color другой цвет и ничего не меняется. Или это невозможно сделать.
Автор: RostY
Дата сообщения: 15.11.2006 13:06
pit23
поставь TBitBtn вместо батона
Автор: pit23
Дата сообщения: 15.11.2006 13:13
RostY


Цитата:
поставь TBitBtn вместо батона

ОК. Благодарю!

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

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


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