Страница 9 из 13
Как удалить выбранные элементы в TListBox? Для удаления нескольких выбранных элементов в TListBox воспользуйтесь следующим кодом (ListBox1 - ваш TListBox):
for(int i = ListBox1->Items->Count-1; i >= 0; i--) if(ListBox1->Selected[i]) ListBox1->Items->Delete(i);
Изменение стиля шрифта у TTreeNode Если существует необходимость изменить стиль шрифта у узла дерева (класс TTreeNode VCL), то можно воспользоваться следующим кодом (в данном примере устанавливается жирный шрифт в событии OnMouseMove TTreeView):
void __fastcall TForm1::TreeView1MouseMove(TObject *Sender, TShiftState Shift, int X, int Y) { TTreeNode *Node = TreeView1->GetNodeAt(X, Y); if(Node) { TV_ITEM tvItem; tvItem.hItem = Node->ItemId; tvItem.mask = TVIF_STATE; tvItem.state = TVIS_BOLD; tvItem.stateMask = TVIS_BOLD; SendMessage(TreeView1->Handle, TVM_SETITEM, 0, (LPARAM)&tvItem); } // конец оператора if(Mode) }
Очистка ячеек в StringGrid (вариант 1) Для очистки содержимого ячеек в StringGrid (TStringGrid) напишите следующий обработчик (StringGrid1 - сетка, в которой очищаем ячейки, Button1 - кнопка на форме):
void __fastcall TForm1::Button1Click(TObject *Sender) { for(int i = 0; i < StringGrid1->ColCount; i++) for(int j = 0; j < StringGrid1->RowCount; j++) StringGrid1->Cells[i][j] = ""; }
Удаление пустой директории Для удаления пустой директории вы можете воспользоваться функцией RemoveDir из модуля Sysutils.hpp:
bool Result = RemoveDir("C:\\MyDir");
В случае успеха функция вернет true, в случае неудачи - false.
Отладка DLLДля начала отладки динамически подключаемой библиотеки в проекте библиотеки надо в опциях включить Full Debug, а затем в пункте меню Run-Parameters указать в Host Application исполняемый файл приложения, которое использует dll. Дальнейшая отладка ведется обычным образом.
Как узнать размер папки?Для получения размера папки со всеми ее подпапками можно воспользоваться следующей функцией:
void FolderSize(AnsiString Folder,int &Size,int &fCount,int &folCount) { //Функция записывает в параметры Size - размер папки в байтах //fCount - общее количество файлов в папке //folCount - общее количество подпапок в папке
TSearchRec SR; //Проверяем, заканчивается ли путь к папке на \, если да, то удаляем его, if(Folder[Folder.Length()] == '\\') Folder.SetLength(Folder.Length()-1); if(FindFirst(Folder+"\\*.*",faAnyFile,SR) == 0)//Делаем первый поиск do { //Если то что мы нашли не является обратными ссылками... if(SR.Name != "." && SR.Name != "..") { //Если то что мы нашли является папкой, функция вызывает саму себя //и увеличивает счетчик кол-ва подпапок if((SR.Attr & faDirectory)!=0) { FolderSize(Folder+"\\"+SR.Name,Size,fCount,folCount); folCount++; } else //Если это файл - прибавляем его размер к общему размеру { Size = Size + SR.Size; fCount++; } } } while(FindNext(SR)==0); FindClose(SR); }
|