Форум программистов, компьютерный форум, киберфорум
QML
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 5.00/13: Рейтинг темы: голосов - 13, средняя оценка - 5.00
Заблокирован
1

Как в QML-ном TreeView выставить иконку папки или файла, учитывая что модель: QFileSystemModel

18.02.2016, 14:20. Просмотров 2407. Ответов 20
Метки нет (Все метки)

Вопрос в шапке. Есть TreeView, у него есть проперти: itemDelegate, собственно как там вставить иконку папки или файла, что - то не могу понять.. Судя по описанию, для этого компонента элемента доступны специальные проперти:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
In the item delegate you have access to the following special properties:
 
styleData.selected - if the item is currently selected
styleData.value - the value or text for this item
styleData.textColor - the default text color for an item
styleData.row - the index of the view row
styleData.column - the index of the view column
styleData.elideMode - the elide mode of the column
styleData.textAlignment - the horizontal text alignment of the column
styleData.pressed - true when the item is pressed
styleData.hasActiveFocus - true when the row has focus
styleData.index - the QModelIndex of the current item in the model
styleData.depth - the depth of the current item in the model
styleData.isExpanded - true when the item is expanded
styleData.hasChildren - true if the model index of the current item has or can have children
styleData.hasSibling - true if the model index of the current item has a sibling
Среди них нет иконки... Неужели надо вручную из модели выдирать как - то ...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.02.2016, 14:20
Ответы с готовыми решениями:

Как получить иконку из файла или из папки?
Здравствуйте! Хочу сделать что-то типа проводника с использованием TreeView, только проблема в том,...

Как при наведении на ссылку или иконку сделать так что бы несколько блоков сдвинулись?
Здравствуйте форумчане, помогите пожалуйста. Как при наведении на ссылку или иконку сделать так...

Как добавить иконку в итему в TreeView
Как добавить иконку в итему в TreeView?

Как выставить права 755 на папки?
Ребятки помогите плз, залил файлы и папки на хостинг теперь нужно назначить права на папки ...

20
1062 / 644 / 229
Регистрация: 14.01.2016
Сообщений: 2,031
Записей в блоге: 9
18.02.2016, 18:55 2
И? ты можешь туда вставить любой компонент. Компонент будет иметь доступ к тобою названным свойствам(а также к обычным свойствам делегата).
Ты знаешь что такое компонент(Сomponent)?
0
Заблокирован
18.02.2016, 19:56  [ТС] 3
В общем пол дня убил на эту ерунду, пробовал со всякими QImageProvider-ами и пр, в результате зря потратил время, т.к. этот имидж провайдр сильно глючный и куча багов в нём, многие адреса не открывает...
В общем за 5 минут накидал свой графический класс от QQuickPaintedItem, в него передаю модель и индекс и рендерю в пейнте как надо прямо из иконки, делов - то :-)

C++ (Qt)
1
2
3
4
5
6
7
8
void ModelIcon::paint(QPainter *painter)
{
    if(!model || !index.isValid())
        return;
 
    QIcon icon = model->fileIcon(index);
    icon.paint(painter, 0,0, width(), height());
}
У меня теперь другая проблема, почему QFileSystemModel видит не все папки, хотя все фильтры установлены вроде как надо:
C++
1
model->setFilter(QDir::AllEntries | QDir::NoDotAndDotDot);
0
1062 / 644 / 229
Регистрация: 14.01.2016
Сообщений: 2,031
Записей в блоге: 9
18.02.2016, 20:01 4
Цитата Сообщение от TheCore Посмотреть сообщение
В общем пол дня убил на эту ерунду, пробовал со всякими QImageProvider-ами и пр, в результате зря потратил время, т.к. этот имидж провайдр сильно глючный и куча багов в нём, многие адреса не открывает...
В общем за 5 минут накидал свой графический класс от QQuickPaintedItem, в него передаю модель и индекс и рендерю в пейнте как надо прямо из иконки, делов - то
Поздравляю. Ты пол дня убил на ерунду. Всего-то надо было разобраться в базовых принципах работы QML. Хотя казалось бы - Qt, встроенных примеров много. Открыть и разобрать самые примитивные из них по любой теме - 5 минут дел.
Вот скажи, что тебе мешало просто написать
Javascript
1
2
3
4
5
6
7
8
delefate: Item { 
    height: 50
    width: listView.width
    Image { 
        anchors.fill: parent
        source: путь до иконки\\
   }
}
?
0
Заблокирован
18.02.2016, 20:36  [ТС] 5
Цитата Сообщение от Wyn Посмотреть сообщение
Image {
* * * * anchors.fill: parent
* * * * source: путь до иконки\\
Иконка лежит в икон провайдере модели файловой системы, куда ты собрался там указывать путь указывать? )))))) Путь можно как раз только через провайдер указать.
0
1062 / 644 / 229
Регистрация: 14.01.2016
Сообщений: 2,031
Записей в блоге: 9
18.02.2016, 21:09 6
Цитата Сообщение от TheCore Посмотреть сообщение
Иконка лежит в икон провайдере модели файловой системы, куда ты собрался там указывать путь указывать? )))))) Путь можно как раз только через провайдер указать.
Если лежит в модели - так вытаскивай её из модели. А пока что то, чем ты занимаешься - это лечение гланд через задницу, по другому не назовёшь.

Добавлено через 22 минуты
Хотя нет, видно я тебя неправильно понял. Потому как ты какой-то подвох ожидал от TreeView. Сейчас подробнее посмотрю.
0
Заблокирован
18.02.2016, 21:21  [ТС] 7
Цитата Сообщение от Wyn Посмотреть сообщение
Хотя нет, видно я тебя неправильно понял. Потому как ты какой-то подвох ожидал от TreeView. Сейчас подробнее посмотрю.
Вот вот. Смари, есть qml-ный TreeView, в него я добавляю в качестве модели QFileSystemModel, как я её в qml {засунул} - не важно, можно и через контекст проперти движка, можно и по другому, но суть одна, ты добавил её и установил в качестве модели для TreeView. Теперь ты делаешь делегата для этого TreeView, в нём хочешь как бы слева поставить картинку, потому текст, так вот эта картинка и должна быть иконкой, но весь фикус в том, как ей указать source, если это Image. Указать его можно только добавив в QQmlEngine предварительно свой QImageProvider, который ты должен создать и реализовать вручную и тогда в пути к файлу ты сможешь указать что - то в духе: "image/myProvider/картинка твоя", а вот вместо "картинка твоя" должен быть путь к файлу, этот путь ты можешь для текущего индекса, который доступен через styleData.index в делегате TreeView, достать из модели....В общем, там куча куча геморроя...
Я создал простой класс от QQuickPaintedItem, в который я передаю модель и индекс и он в пейнте рисует эту иконку, то есть это как бы моя картинка - класс.

Но обнаружилась неожиданная {бредятина}: для некоторых элементов модели индексы перепутаны и иконка выставляется не та, причём правильность выставления напрямую зависит от того, что ты сунешь в QFileSystemModel::setRootPath, баги короче походу, да и вообще эта QFileSystemModel работает медленно, {через голову за ухо} как то...
Я ставлю туда model->setRootPath(model->myComputer().toString());, по идее должен быть рут на моём компьютере - всё верно, но иконки не те, если ставить допустим model->setRootPath("D:/);, тогда тоже всё есть и иконки те, но диски С,D,E,F не по порядку, хотя сортировка не поменята и должны быть они по умолчанию по порядку, {ерунда} какая-та.......
0
1062 / 644 / 229
Регистрация: 14.01.2016
Сообщений: 2,031
Записей в блоге: 9
18.02.2016, 21:26 8
Тема тут уже была разобрана.
https://www.cyberforum.ru/blog... g1171.html
Цитата Сообщение от TheCore Посмотреть сообщение
У меня теперь другая проблема, почему QFileSystemModel видит не все папки, хотя все фильтры установлены вроде как надо:
Чтобы все видело - нужно AllDirs
Note that the filter you set should always include the QDir::AllDirs enum value, otherwise QFileSystemModel won't be able to read the directory structure.
0
Заблокирован
18.02.2016, 21:40  [ТС] 9
Цитата Сообщение от Wyn Посмотреть сообщение
Чтобы все видело - нужно AllDirs
Установлено: model->setFilter(QDir::AllDirs | QDir::NoDotAndDotDot);

Цитата Сообщение от Wyn Посмотреть сообщение
Тема тут уже была разобрана.
Я видел это. Результат: image provider читает далеко не все иконки, некоторые по непонятным причинам прочитать не может.
Если устанавливать rootPath в "/", то на диске, на котором запущенна программа, будет видна только папка этой программы и дерево до неё, другие папки не видны, при этом на других дисках всё тип топ.
Хз в общем, куча багов какая то
0
1062 / 644 / 229
Регистрация: 14.01.2016
Сообщений: 2,031
Записей в блоге: 9
18.02.2016, 22:34 10
Цитата Сообщение от TheCore Посмотреть сообщение
Установлено: model->setFilter(QDir::AllDirs | QDir::NoDotAndDotDot);
Ставить дополнительные флаги типа QDir:rives пробовал? Просто странно. Когда я работал(правда на Linux и не в qml) всё действовало нормально. А что конкретно не видит? Вот это:
Цитата Сообщение от TheCore Посмотреть сообщение
Если устанавливать rootPath в "/", то на диске, на котором запущенна программа, будет видна только папка этой программы и дерево до неё, другие папки не видны, при этом на других дисках всё тип топ.
?
А какое поведение ты хочешь получить? Я сам сижу на Linux, но судя по выводу QDir::rootPath(), то root на Windows - это имя диска:
For Unix operating systems this returns "/". For Windows file systems this normally returns "c:/".

Насчёт всего остального. Сейчас уже спать пойду. Завтра после работы время будет - сам всё сваяю и посмотрю.

Добавлено через 8 минут
P.S. Вообще, когда у меня самого была потребность в отображении иконок, то я не заморачивался на этот счёт - просто лепил свои иконки, лежавшие в ресурсах, и всё. Судя по всему Qt тоже не заморачивается на этот счёт. В QML в примерах и в остальном - у них всё своё.
0
Заблокирован
18.02.2016, 22:52  [ТС] 11
Цитата Сообщение от Wyn Посмотреть сообщение
Ставить дополнительные
Я на самом деле что только не пробовал, едрёный корень, раз 10 по разному переписывал все эти модели и имедж провайдеры. Пришёл к выводу, что всё это тлен :-) Там какой - то баг, но я уже начал понимать откуда ноги растут.
В общем методом простого тыка и наличия везения я обнаружил, что всё таки правильно выставлять рут так: model->setRootPath(model->myComputer().toString()); (ну это если ты хочешь видеть как бы "Мой Компьютер"), но при этом иконки не совпадают и дисками С D и так далее (на винде) и что само главное, это вот то что я прямо ща заметил, они не совпадают до тех пор, пока не начнёшь залезать в подкаталоги, не прокрутишь скрол вниз, что рутовые диски ушли с экрана и не вернёшься обратно скролом и ВУАЛАЯ! :-) Иконки становятся на место! Как?? Почему? Сдаётся мне что тут баг именно в убого TreeView самого QML-я и там апдейт вовремя не вызывается... Копаю дальше... Кстати, этот TreeView в QtCreator-е у меня зелёненьким не выделен (Qt 5.5.1), странно почему то, он как бы работает, но синтаксис не подсвечивает...
P.S.: с тем, что часть не отображается, я уже давно разобрался, ещё раз, нужно ставить именно так: model->setRootPath(model->myComputer().toString());

Добавлено через 2 минуты
Вот как этому дурацкому TreeView сказать насильно, что б он заново перечитал данные из модели, что б вручную не сролить вниз и обратно?
0
1062 / 644 / 229
Регистрация: 14.01.2016
Сообщений: 2,031
Записей в блоге: 9
18.02.2016, 23:16 12
Цитата Сообщение от TheCore Посмотреть сообщение
model->setRootPath(model->myComputer().toString());
А вообще есть смысл это делать? Разве RootPath изначально не стоит там?
Цитата Сообщение от TheCore Посмотреть сообщение
Вот как этому дурацкому TreeView сказать насильно, что б он заново перечитал данные из модели, что б вручную не сролить вниз и обратно?
Насколько я знаю - нет.
Цитата Сообщение от TheCore Посмотреть сообщение
Кстати, этот TreeView в QtCreator-е у меня зелёненьким не выделен (Qt 5.5.1), странно почему то, он как бы работает, но синтаксис не подсвечивает...
QML и его обвязка в Qt пока ещё не окончательно вменяема. И иногда редактор бывает подтупливает. И свойства иногда не видит вообще. Ну или ты просто
Javascript
1
import QtQuick.Controls 1.4
не прописал.

Добавлено через 1 минуту
P.S. По остальному, как и сказал, - завтра вечером потестю.
0
Заблокирован
19.02.2016, 10:04  [ТС] 13
Цитата Сообщение от Wyn Посмотреть сообщение
P.S. По остальному, как и сказал, - завтра вечером потестю.
А я поставлю пока Qt 5.6 beta, может там что исправили ...

Добавлено через 1 час 29 минут
В Qt 5.6 ничего не исправили засранцы :-)

Добавлено через 8 часов 46 минут
в общем сделал на виджетах, всё работает на ура! Нде, не хотелось бы из - за одного недоработанного кривожопого qml-ного TreeView ролбекаться на виджеты. Ща на это всё забью, но при конкретной задаче напишу свой TreeView.
0
1062 / 644 / 229
Регистрация: 14.01.2016
Сообщений: 2,031
Записей в блоге: 9
20.02.2016, 02:00 14
Цитата Сообщение от TheCore Посмотреть сообщение
А я поставлю пока Qt 5.6 beta, может там что исправили ...
Добавлено через 1 час 29 минут
В Qt 5.6 ничего не исправили засранцы :-)
Добавлено через 8 часов 46 минут
В 5.6 впилили новые гламурные контролы. Ну и добавили более вменяемую поддержку hidpi экранов. Это - из основного.
Цитата Сообщение от TheCore Посмотреть сообщение
в общем сделал на виджетах, всё работает на ура! Нде, не хотелось бы из - за одного недоработанного кривожопого qml-ного TreeView ролбекаться на виджеты. Ща на это всё забью, но при конкретной задаче напишу свой TreeView.
Потестил. У меня всё работает(многое там конечно быдлокод, но мне для потестить сойдёт). Только модель-делегат в qml не нужно было делать. Код:
Кликните здесь для просмотра всего текста
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
import QtQuick 2.5
import QtQuick.Controls 1.4
 
import com.home.mycomponents 1.0 // FileSystemModel подключил под этим именем
 
ApplicationWindow {
    visible: true
    width: 640
    height: 480
    title: qsTr("File Browser")
 
    menuBar: MenuBar {
        Menu {
            title: qsTr("File")
            MenuItem {
                text: qsTr("&Open")
                onTriggered: console.log("Open action triggered");
            }
            MenuItem {
                text: qsTr("Exit")
                onTriggered: Qt.quit();
            }
        }
    }
 
    TreeView {
        id: listView
 
        anchors.fill: parent
        model: FileSystemModel { id: fsModel; rootPath: "/" }
        
        TableViewColumn {
            title: "Name"
            role: "fileName"
            resizable: true
        }
 
        TableViewColumn {
            title: "Permissions"
            role: "filePermissions"
            //resizable: true
        }
 
        itemDelegate: Rectangle {
            color: ( styleData.row % 2 == 0 ) ? "white" : "lightblue"
            height: metrics.height * 1.2
 
            Row {
                anchors.verticalCenter: parent.verticalCenter
                anchors.left: parent.left
                height: metrics.height
                spacing: 10
 
                Image {
                    height: parent.height
                    width: height
                    visible: styleData.column === 0
 
                    Binding on source {
                        when: fsModel.filePath(styleData.index) !== ""
                        value: "image://filesystem/" + fsModel.filePath(styleData.index)
                    }
                }
 
                Text {
                    height: metrics.height
                    text: styleData.value
                }
            }
         }
    }
 
    TextMetrics {
        id: metrics
        text: "o"
    }
}


Добавлено через 5 минут
Если надо - могу скинуть и код остальных файлов, но там всё обычно. А так я твоих проблем особо не заметил. Может они конечно windows-only, но врядли.

Добавлено через 3 минуты
И да, судя по поведению, если ты ставишь невалидное значение в rootPath(каким например могло быть "/" на винде), то rootPath по умолчанию становится рабочей директорией программы. Соответственно всё, что выше неё, - не показывается(кроме пути до неё).
1
Заблокирован
20.02.2016, 09:33  [ТС] 15
Цитата Сообщение от Wyn Посмотреть сообщение
Если надо - могу скинуть и код остальных файлов, но там всё обычно.
Прикрепляй сюда архивом, если не сложно, посмотрю, т.к. из того, что ты привёл, не понятно, где и как ты регистрировал имидж провайдер, в общем пока что я твой вариант биндинда на сорц не могу проверить, т.к.
QML Image: Invalid image provider: image://filesystem/C:/
Добавлено через 2 минуты
Цитата Сообщение от Wyn Посмотреть сообщение
В 5.6 впилили новые гламурные контролы.
А убрать баги из существующего TreeView забыли )))
0
1062 / 644 / 229
Регистрация: 14.01.2016
Сообщений: 2,031
Записей в блоге: 9
20.02.2016, 10:38 16
Лучший ответ Сообщение было отмечено TheCore как решение

Решение

Цитата Сообщение от TheCore Посмотреть сообщение
Прикрепляй сюда архивом, если не сложно, посмотрю, т.к. из того, что ты привёл, не понятно, где и как ты регистрировал имидж провайдер, в общем пока что я твой вариант биндинда на сорц не могу проверить, т.к.
Да в том-то и дело, что ImageProvider(и сама модель) один в один как в гайде у Dmitriy_M.
Цитата Сообщение от TheCore Посмотреть сообщение
QML Image: Invalid image provider: image://filesystem/C:/
Пока что мои мысли, по порядку:
Кликните здесь для просмотра всего текста
В requestPixmap передаётся обрезанная строка из source.
Дебаг:
qml: Source: image://filesystem//var
requestPixmap: "/var"

Далее - это строка в функции QFileImageProvider.icon преобразовывается в QFileInfo. И должна бы, ведь значение у тебя должно приходить туда верное("C:/"). Значит, возможно, проблема в другом.
Сейчас сделал так, чтобы у меня в source в qml Image передавалось невалидное значение. На что qml выдал:
QML Image: Failed to get image from provid image://filesystem/C:/
Заметь - ошибка принципиально отличается от твоей. Так что вывод:

Скорее всего ты неправильно подключил ImageProvider. Код прилагаю, посмотри как подключал я.
Цитата Сообщение от TheCore Посмотреть сообщение
А убрать баги из существующего TreeView забыли )))
Часть убрали. Часть - не успели. Если ты действительно наткнулся на баг, то просто зарепорть его на их багтрекер. Только нужно действительно убедиться, что это баг, а не твоё какое-либо недопонимание принципов работы Qt.
1
Вложения
Тип файла: zip qmltest.zip (4.0 Кб, 6 просмотров)
Заблокирован
20.02.2016, 12:49  [ТС] 17
Круто! Оказывается что бы получить проайдер иконок файловой системы, достаточно его просто объявить:
QFileIconProvider iconProvider;
И он уже инициализирован))) Я его брал из QFileSystemModel, видать он там кривой. Так, теперь ваще бред пошёл, я уже прямо твой код к себе скопировал, всё равно в твоей тестилке диски отсортированы, у меня нет ))))))))

Добавлено через 34 минуты
Ооооооооооогххххххх пи...ц.... Я весь софт перекоментировал, вообще оставил просто твой код у себя в софте, просто его туда скопировал и всё равно у тебя сначала шёл диск С, потом G потом ещё что то, в общем то что первый был диск Ц, мне казалось правильно, а у меня первый шёл диск Д ))) Что я только не делал))))) Очень долго рассказывать, в общем всем, кто столкнётся с таким идиотизмом, запомните раз и на всегда, QFileSystemModel хранит в себе диски в последовательности, которая зависит от диска с которого был запущен софт, если запустил с диска Д, первый будет диск Д, если с Ц, первым будет Ц ))))))))))))) Охохохо всё, это дело надо отметить ))))
0
1062 / 644 / 229
Регистрация: 14.01.2016
Сообщений: 2,031
Записей в блоге: 9
20.02.2016, 13:14 18
Цитата Сообщение от TheCore Посмотреть сообщение
И он уже инициализирован))) Я его брал из QFileSystemModel, видать он там кривой.
Только что подставил оттуда - всё работает. Да и как он может быть кривой, если он за иконки отвечает(а в с++, как известно, проблем с ними нет)?
Цитата Сообщение от TheCore Посмотреть сообщение
Так, теперь ваще бред пошёл, я уже прямо твой код к себе скопировал, всё равно в твоей тестилке диски отсортированы, у меня нет ))))))))
Всмысле отсортированы? Смотри настройки. По идее модель FileSystemModel, что у меня, отличается от базовой модели только тем, что у базовой модели настройки фильтра QDir::AllEntries | QDir::NoDotAndDotDot | QDir::AllDirs, а у меня - QDir::Files | QDir::AllDirs | QDir::NoDotAndDotDot

Добавлено через 1 минуту
Цитата Сообщение от TheCore Посмотреть сообщение
QFileSystemModel хранит в себе диски в последовательности, которая зависит от диска с которого был запущен софт, если запустил с диска Д, первый будет диск Д, если с Ц, первым будет Ц
Сейчас проверю.
0
Заблокирован
20.02.2016, 13:53  [ТС] 19
Wyn, едем дальше
Как выцепить префикс диска, то есть его описание, то есть метку топа как бы. Ну вот в винде допустим рядом с диском Ц может быть написано "System" или "Wndows" или что угодно другое, что ты указал при создание раздела или потом... То есть перед иконкой должно быть описание ...
0
1062 / 644 / 229
Регистрация: 14.01.2016
Сообщений: 2,031
Записей в блоге: 9
20.02.2016, 14:04 20
Лучший ответ Сообщение было отмечено TheCore как решение

Решение

Цитата Сообщение от TheCore Посмотреть сообщение
QFileSystemModel хранит в себе диски в последовательности, которая зависит от диска с которого был запущен софт, если запустил с диска Д, первый будет диск Д, если с Ц, первым будет Ц
Посмотрел.
Вот код, который загружает диски:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
635     quint32 driveBits = (quint32) GetLogicalDrives() & 0x3ffffff;
637     char driveName[] = "A:/";
638 
639     while (driveBits) {
640         if (driveBits & 1)
641             ret.append(QFileInfo(QLatin1String(driveName)));
642         driveName[0]++;
643         driveBits = driveBits >> 1;
644     }
645     return ret;
Вроде должно в таком же порядке и выводить. Значит у тебя сортировка где-то сортирует.

Добавлено через 3 минуты
Цитата Сообщение от TheCore Посмотреть сообщение
Как выцепить префикс диска, то есть его описание, то есть метку топа как бы. Ну вот в винде допустим рядом с диском Ц может быть написано "System" или "Wndows" или что угодно другое, что ты указал при создание раздела или потом... То есть перед иконкой должно быть описание ...
Скорее всего тебе нужно QString QStorageInfo::displayName() const, хотя могу и ошибаться.

Добавлено через 42 секунды
Просто QStorageInfo - единственный класс, который предоставляет подобную информацию(типа GUID и прочего), других не припоминаю.

Добавлено через 3 минуты
Впрочем и просто QString QStorageInfo::name() const подойдёт.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.02.2016, 14:04

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Как изменить иконку папки
Всем привет. Если зайти в папку "C:\Program Files" то там можно увидеть множество папок. Все они...

Как вызвать диалог сохранения файла или папки
Не подскажите как сделать кнопку при нажатие которой можно будет указать путь куда сохранится файл....

Как узнать что выделенный элемент является Parent, Root или Child в TreeView?
Как узнать что выделенный элемент является Parent, Root или Child в TreeView controle

Как поставить пароль для открытия файла или папки?
Всем знатокам доброго времени суток! Вопрос, собственно, в заголовке. Сторонние программы...

Вытащить иконку из файла EXE или DLL
Помогите пожалуйста вытащить иконку из файлов EXE или DLL, а затем сохранить её в формате ICO или...

Как запретить удаление Папки или Файла на время выполнения программы
Собственно сабж.... Нужно запретить удаление папки, причем совершенно левой, как это сделать кто...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.