Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.56/18: Рейтинг темы: голосов - 18, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 28.04.2019
Сообщений: 61

Страшно! Ожившая форма диалога!

28.04.2019, 16:49. Показов 4752. Ответов 128
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Столкнулся с таким чудом что аж страшно стало
Сижу значит создаю форму на ней кнопку не кого не трогаю да и вроде ничего не предвещало беды пока не вписал в кнопку этот код:
Delphi
1
2
3
4
5
6
7
8
9
procedure TForm1.Button1Click(Sender: TObject);
var
  chosenDirectory: string;
begin
  if SelectDirectory('Выберите каталог', '', chosenDirectory) then
    ShowMessage('Выбранный каталог = ' + chosenDirectory)
  else
    ShowMessage('Выбор каталога прервался');
end;
Стандартная функция из FileCtrl:
Delphi
1
function SelectDirectory ( const Caption : string; const StartDir : WideString; out ChosenDir : string ) : Boolean;
И теперь форма этого диалога при каждом открытии оживает и начинает увеличиваться сама по себе в право и в низ! После 10 открытий и закрытий форма становится раза в 2 больше чем была изначально Страшно спасайте
P.S. Такое поведение окна начало проявляться после того как в настройках проекта поменял тему на другую стандартную (Amakrits). Delphi 10.2
Можно это как то исправить?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.04.2019, 16:49
Ответы с готовыми решениями:

API для вызова диалога цвета и диалога шрифта
Подскажите API для вызова диалога цвета и диалога шрифта ЗЫ : желательно чтобы работал не только в win xp но и в win 9x

Вызов диалога из диалога
Есть диалог, как сделать чтобы при выборе определенной позиции в это диалоге открывался другой диалог? case 0: AlertDialog.Builder...

Одинаковый дескрипшн - страшно ли?
Раньше как-то не обращал внимания, а тут вот призадумался: система администрирования сайта так устроена, что содержимое тега дескрипшн на...

128
0 / 0 / 0
Регистрация: 28.04.2019
Сообщений: 61
29.04.2019, 17:36  [ТС]
Студворк — интернет-сервис помощи студентам
Arcor,
Цитата Сообщение от CatEatingDogs Посмотреть сообщение
все видимо зависит от версии Delphi у кого то если не стоит флаг sdNewUI то показывает окно старого образца, а в новых версия Delphi он и без флага sdNewUI автоматом выводит окно нового образца. Попробуйте с флагом sdNewUI запустить тот проект который я выкладывал думаю что будет расти окно и у вас при условии что оно будет с темой!
вот я объясняю в чем видимо причина не растущего окна у некоторых, окно можно определить по индикатору в правом нижнем углу тот что растягивает окно. Попробуйте это окно у вас мышкой растягивается если потянуть за правый нижний угол?
0
 Аватар для Arcor
5709 / 2300 / 466
Регистрация: 20.11.2009
Сообщений: 7,721
Записей в блоге: 1
29.04.2019, 17:37
в конце концов конечная прога должна будет в своей жизни показать этот диалог 1 раз, для выбора быстродоступной папки и благоустроенно забыта, за столько всяких ньюансов , практика показывает, чем примитивнее интерфейс программы, тем программа жизнеобильнее
0
0 / 0 / 0
Регистрация: 28.04.2019
Сообщений: 61
29.04.2019, 17:39  [ТС]
Если не растягивается окно значит оно старого образца и в нем эффекта живого окна не будет!

Добавлено через 1 минуту
Delphi
1
2
3
4
5
6
7
8
9
procedure TForm1.Button1Click(Sender: TObject);
var
  chosenDirectory: string;
begin
  if SelectDirectory('Выберите каталог', '', chosenDirectory,[sdNewUI]) then
    ShowMessage('Выбранный каталог = ' + chosenDirectory)
  else
    ShowMessage('Выбор каталога прервался');
end;
Вообщем вот так код попробуйте написать, так мне кажется у всех начнет увеличиваться окно при условии что окно с темой!
0
 Аватар для Arcor
5709 / 2300 / 466
Регистрация: 20.11.2009
Сообщений: 7,721
Записей в блоге: 1
29.04.2019, 17:40
что значит старого?
0
0 / 0 / 0
Регистрация: 28.04.2019
Сообщений: 61
29.04.2019, 17:46  [ТС]
Вот окно нового образца где лупа И РАСТУЩЕЕ ОКНО, вот пытаюсь открыть облако показывается лупа и окно не виснет.
Миниатюры
Страшно! Ожившая форма диалога!  
0
 Аватар для Arcor
5709 / 2300 / 466
Регистрация: 20.11.2009
Сообщений: 7,721
Записей в блоге: 1
29.04.2019, 17:48
у меня нет никаких луп(ой какой слово то.. ээхх ) там вообще...

такой прототип еще есть..

Delphi
1
2
3
var Q: TArray<String>;
begin
  SelectDirectory('sdfg', Q, []);
0
0 / 0 / 0
Регистрация: 28.04.2019
Сообщений: 61
29.04.2019, 17:49  [ТС]
Вот окно старого образца которое нельзя растянуть И ОНО НЕ РАСТЕТ
Миниатюры
Страшно! Ожившая форма диалога!  
0
0 / 0 / 0
Регистрация: 28.04.2019
Сообщений: 61
29.04.2019, 17:50  [ТС]
Arcor, так я и говорю что окно у вас старого образца поэтому и лупы нет.
0
0 / 0 / 0
Регистрация: 28.04.2019
Сообщений: 61
29.04.2019, 17:51  [ТС]
Вот что происходит с окном старого образца при попытки открыть облако и это в лучшем случае бывает и хуже
Миниатюры
Страшно! Ожившая форма диалога!   Страшно! Ожившая форма диалога!  
0
 Аватар для Arcor
5709 / 2300 / 466
Регистрация: 20.11.2009
Сообщений: 7,721
Записей в блоге: 1
29.04.2019, 17:53
дак у меня и с "новым" нету только я понять не могу - что такое старый и что такое новый)))))

Добавлено через 2 минуты
и такого нету ни со "старым" ни со с "новым", я скрин выложил обоих вариантов выглядят одинаково. одно только растянуть можно
0
0 / 0 / 0
Регистрация: 28.04.2019
Сообщений: 61
29.04.2019, 17:54  [ТС]
Старое окно это без sdNewUI а новое с ним, только получается от версии Delphi зависит нужно его вписывать или нет на новых автоматом sdNewUI окно показывается.
Вот попробуйте именно такой код:
Delphi
1
2
3
4
5
6
7
8
9
procedure TForm1.Button1Click(Sender: TObject);
var
  chosenDirectory: string;
begin
  if SelectDirectory('Выберите каталог', '', chosenDirectory,[sdNewUI]) then
    ShowMessage('Выбранный каталог = ' + chosenDirectory)
  else
    ShowMessage('Выбор каталога прервался');
end;
и раз я не знаю 30 попробуйте его открыть-закрыть, будет расти оно главное чтобы оно было с темой!.
0
 Аватар для Arcor
5709 / 2300 / 466
Регистрация: 20.11.2009
Сообщений: 7,721
Записей в блоге: 1
29.04.2019, 17:57
Цитата Сообщение от CatEatingDogs Посмотреть сообщение
и раз я не знаю 30 попробуйте его открыть-закрыть, будет расти оно главное чтобы оно было с темой!.
растет!!!

дало уже не в растет, чем не устраивает "старый"? что лупы нету?))) а чем она помогает?
0
0 / 0 / 0
Регистрация: 28.04.2019
Сообщений: 61
29.04.2019, 18:00  [ТС]
Arcor, Да блин я уже раз 20 написал что глючит оно, а нового образца окно не глючит а прогружается и показывает лупу а старого образца окно глючит, виснет и не реально открыть облако для выбора папки.

Добавлено через 33 секунды
Цитата Сообщение от Arcor Посмотреть сообщение
растет!!!
Вот я же говорил!
0
 Аватар для Arcor
5709 / 2300 / 466
Регистрация: 20.11.2009
Сообщений: 7,721
Записей в блоге: 1
29.04.2019, 18:01
а это?
Страшно! Ожившая форма диалога!

с лупой? виснет? Что тут не так будет?)
0
0 / 0 / 0
Регистрация: 28.04.2019
Сообщений: 61
29.04.2019, 18:06  [ТС]
Лупа показывается во время загрузки папок облака так как на это нужно время и окно при этом не виснет! А у старого образца окно виснет во время загрузки папок причем конкретно виснет и в итоге папку не выбрать!

Добавлено через 3 минуты
Arcor, Есть два вида этого окна:
1) нового образца с sdNewUI оно не глючит но окно растет.
2) старого образца без sdNewUI оно глючит но не растет.
И в итоге нужно окно которое не глючит и не растет.
0
 Аватар для Arcor
5709 / 2300 / 466
Регистрация: 20.11.2009
Сообщений: 7,721
Записей в блоге: 1
29.04.2019, 18:10
ну тогда зажимай шифт и тыкай по SelectDirectory... и... объедини два случая, чтобы получилось как надо)
0
0 / 0 / 0
Регистрация: 28.04.2019
Сообщений: 61
29.04.2019, 18:12  [ТС]
И если использовать этот код и чтобы окно было с темой, то у всех окно будет расти.
Delphi
1
2
3
4
5
6
7
8
9
procedure TForm1.Button1Click(Sender: TObject);
var
  chosenDirectory: string;
begin
  if SelectDirectory('Выберите каталог', '', chosenDirectory,[sdNewUI]) then
    ShowMessage('Выбранный каталог = ' + chosenDirectory)
  else
    ShowMessage('Выбор каталога прервался');
end;
И это походу баг который просто не замечали раньше. Но вот представьте программу запустили выбрали папку закрыли, и после 50 запусков программы окно будет с пол экрана жесть.

Добавлено через 1 минуту
Arcor, Так в этом и проблема я не знаю как это сделать, проблему (баг) нашел а как исправить не знаю, помогите с этим.
0
 Аватар для Arcor
5709 / 2300 / 466
Регистрация: 20.11.2009
Сообщений: 7,721
Записей в блоге: 1
29.04.2019, 18:13
Цитата Сообщение от CatEatingDogs Посмотреть сообщение
И это походу баг который просто не замечали раньше. Но вот представьте программу запустили выбрали папку закрыли, и после 50 запусков программы окно будет с пол экрана жесть.
вы уверены что за один сеанс включили-выключили компутер, вашей прогой будут пользоваться, а именно открытием диалога выбора больше даже 10 раз?)
0
0 / 0 / 0
Регистрация: 28.04.2019
Сообщений: 61
29.04.2019, 18:18  [ТС]
Arcor, Получается нужно окно нового образца но без функции растягивания чтобы окно не расло, или восстанавливать размеры окна при каждом его открытии/закрытии, но как?

Добавлено через 2 минуты
Arcor, Да вполне возможно что и 50 раз могут открывать окно при том что даже не выходя из программы, так как выполняются манипуляции с файлами и до и после нужно выбирать папку откуда и куда.

Добавлено через 1 минуту
Если бы одноразово это окно открывалось я бы и сам не заметил что оно живет своей жизнью.
0
 Аватар для Flip
335 / 173 / 67
Регистрация: 25.02.2018
Сообщений: 616
29.04.2019, 18:22
Цитата Сообщение от CatEatingDogs Посмотреть сообщение
И если использовать этот код и чтобы окно было с темой, то у всех окно будет расти.
Вы тут не обобщайте ))) У меня всё стабильно, ничего не растёт. Тем пять попробовал, всё ровно, и не рисует он диалог этот со шкурой, хоть с флагом sdNewUI, хоть без него...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.04.2019, 18:22

windows 8 страшно тормозит
Ноутбук: samsung 350E5C-S0D OC: windows 8 (64b) процессор: Intel Pentium B980 Видеокарта: AMD HD 7670M gDDR3 1GB_ Гибридная графика ...

Компьютер страшно зависает
Компьютер страшно зависает пожалуйста посоветуйте что можно сделать, знатные люди пожалуйста, помогите, логи нужны или что скажите все...

TOAD страшно тормозит
Пользуюсь TOAD и страшные тормоза. Опыта работы пока с ним мало и не нашел где отключить что нибудь чтобы не тормозил так. А вообще он сам...

Комп тормозит страшно
Комп тормозит, виснет. Логи прилагаю посмотрите пожалуйста.

страшно тормозит 1С 8.1 при загрузке!
Ситуация такая 1С 8.1, база на сервере, есть 1ключ (хасп) на 10 лицензий - воткнут в сервер, народ работает через терминал (w2k3)...


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

Или воспользуйтесь поиском по форуму:
80
Ответ Создать тему
Новые блоги и статьи
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru