Вверх ↑
Этот топик читают: Гость
Ответов: 1926
Рейтинг: 172
#1: 2009-03-06 18:10:15 ЛС | профиль | цитата
Есть возможность добавить в hiasm несколько интересных диалоговых окон.
1. Открыть/Сохранить. Будет больше возможностей, чем у стандартного, например возможность предпросмотра картинки
2. Диалог выбора цвета. Тоже будет больше возможностей.
3. Диалог поиска-замены слов
4. Диалог настроек принтера (хотя такой уже есть, но убдет возможность передачи ему параметров)
5. Диалог О ПРОГРАММЕ. Это стандартный диалог windows, я уже делал такой в IC, самый, наверно, бесполезный

Столкнулся с первой проблемой. Как поместить контролы (PControl) в диалог открыть/сохранить? Наработки см. во вложении. Я уже много вариантов перепробовал, но если контрол создан (напимер, label), то диалог просто не появляется.
Во вложении есть также примеры на delphi (в отдельной папке). Примеры не мои, я пытался в них разобраться, но всё равно не удалось добавить контролы в этот диалог.

И ещё вопрос: механиз поиска/замены нужно реализовывать самому или как-то это делает сам диалог поиска/замены текста?

ВСЕ МОИ ВОПРОСЫ К ЗНАЮЩИМ ЛЮДЯМ.

[size=-2]------ Добавлено в 18:10
вот
карма: 9
0
файлы: 1pdlg.rar [65.6KB] [457]
Разработчик
Ответов: 26149
Рейтинг: 2127
#2: 2009-03-06 18:23:12 ЛС | профиль | цитата
3042, ты че, решил пойти путем некоторых наших коллег, которые, в бытность времен, уже такое понаклепали, весь раздел компонентов был этим завален
карма: 22

0
Ответов: 1926
Рейтинг: 172
#3: 2009-03-06 18:36:54 ЛС | профиль | цитата
nesco, что-то я диалогов тамм не видал таких. А разве они не нужны? Не нужен препросмотр картинки, не нужен диалог поиска/замены текста?
В разделе компонентов есть достаточно замечательных компонентов, очень удобных, которыми пользуются многие программисты на HiAsm. Очень жаль, что они не попадают в дистрибутив.

Вот мой недавний компонент http://www.hiasm.com/xf/topic.php?t=49899&start=10 неужели не нужен совсем? Никто на HiAsm графические редакторы не пишет? Хорошо, но даже для единичного преобразования картинки может понадобиться какой-то из этих эффектов.

Или http://www.hiasm.com/xf/topic.php?t=7032&start=20. В стандартном компоненте невозможно отобразить после скрытия кнопки, а в доработанном - можно. Но компонент так и не попал в дистрибутив. Что, разве эти функции там не нужны?
----------
Хорошо, не нужны вам такие компоненты. Тогда просто ответьте , пожалуйста, на мои вопросы (про контролы), это мне просто интересно.
карма: 9
0
Администрация
Ответов: 15295
Рейтинг: 1519
#4: 2009-03-06 18:42:27 ЛС | профиль | цитата
3042 писал(а):
механиз поиска/замены нужно реализовывать самому

именно так. Диалог поиска не знает заранее, где как и что будет искаться.
карма: 27
0
Ответов: 1926
Рейтинг: 172
#5: 2009-03-06 18:51:18 ЛС | профиль | цитата
Спасибо, Dilma, понятно.

[size=-2]------ Добавлено в 18:51
А с контролами как?
карма: 9
0
Администрация
Ответов: 15295
Рейтинг: 1519
#6: 2009-03-06 19:02:38 ЛС | профиль | цитата
с контролами надо смотреть. Но вот то, что PControl нельзя вставить в диалог это факт на 99% (всмысле без глюков работать не будет). Вставлять туда надо чистым WinAPI с перехватом очереди сообщений.
карма: 27
0
Ответов: 1926
Рейтинг: 172
#7: 2009-03-06 19:20:50 ЛС | профиль | цитата
Dilma, в примере на Delphi (т.е. который не мой) всё вроде работает. Функция вызова этого диалога (Execute) требует параметра PControl.
карма: 9
0
Администрация
Ответов: 15295
Рейтинг: 1519
#8: 2009-03-06 21:18:42 ЛС | профиль | цитата
ну если на это было расчитано тогда другое дело. По посту выше предположил, что инжектирование производится собственными силами. В общем сейчас глянем...
------------ Дoбавленo:

3042, проблема не работы примера выше заключается в том, что функция показа диалога не может найти ресурс с именем "DLGTEMPLATE". Прикладываю ресурсный файл. Скопировать его в code, а в InlineCode добавить {$R dlg.res}
карма: 27
0
файлы: 1dlg_resource.rar [180B] [426]
Ответов: 1926
Рейтинг: 172
#9: 2009-03-08 19:30:31 ЛС | профиль | цитата
Спасибо, Dilma, всё заработало!
карма: 9
0
Администрация
Ответов: 15295
Рейтинг: 1519
#10: 2009-03-08 21:18:34 ЛС | профиль | цитата
ожидает соответствующих элементов для hiasm
карма: 27
0
Разработчик
Ответов: 26149
Рейтинг: 2127
#11: 2009-03-08 21:53:54 ЛС | профиль | цитата
Мдааа... Директива {$R dlg.res} начисто закрывает работу в FPC. Для нормальной работы надо посмотреть, что находится в этом файле ресурса и попытаться инжектировать это в код, муторно, но сделать можно. Я так в линейке стрелки рисовал, вручную, и ничего -- работает.
карма: 22

0
Администрация
Ответов: 15295
Рейтинг: 1519
#12: 2009-03-08 22:26:52 ЛС | профиль | цитата
зачем смотреть, если я его из исходника и собирал?

DLGTEMPLATE DIALOG 0, 0, 316, 76
STYLE DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
FONT 8, "MS Sans Serif"
{
LTEXT "", 0, 0, 204, 76, 0
}

карма: 27
0
Разработчик
Ответов: 26149
Рейтинг: 2127
#13: 2009-03-08 22:35:03 ЛС | профиль | цитата
Dilma писал(а):
если я его из исходника и собирал?

Тогда проще, никаких существенных телодвижений делать не надо
карма: 22

0
Ответов: 1926
Рейтинг: 172
#14: 2009-03-10 17:55:13 ЛС | профиль | цитата
nesco писал(а):
попытаться инжектировать это в код


А Как это сделать?
карма: 9
0
Ответов: 1926
Рейтинг: 172
#15: 2009-03-14 12:01:34 ЛС | профиль | цитата
Собрал диалог открытия файла. Сам по себе работает, но есть некоторые вопросы, которые пока не решил, а именно:
1. При изменении фильтра выдаёт неправильный (т.е. не текущий, а из св-ва) индекс фильтра
2. Непонятно, как при изменении папки в диалоге получить её имя (так же, как имя файла, - не получается)

А также неясно, что делает флажок "Только для чтоения". Устанавливай его, снимай - в плане открытия ничего не меняется. А если это нужно реализовывать самому, то непонятно, как получить текущее состояние флажка.

Так что это не окончательная версия. Надеюсь, знающие люди помогут разобраться.

[size=-2]------ Добавлено в 12:01
Вот то же для SdialogEx
карма: 9
0
файлы: 2ODialogEx_1.rar [14.8KB] [435], SDialogEx_1.rar [14.3KB] [427]
Сообщение
...
Прикрепленные файлы
(файлы не залиты)