|
|
|
TdxLayoutControl.SaveToStream сохраняет имя формы :(
|
|||
|---|---|---|---|
|
#18+
Проблема в том, что одна и та же форма создается несколько раз и с разными именами. Например форма просмотра или редактирования товара может быть открыта пользователем 2-3-5 раз. Предисловие. К примеру, вот так она объявлена: Код: pascal 1. перед implementation удалена строка Код: pascal 1. 2. но есть процедура, которая создает форму Код: pascal 1. 2. 3. 4. В итоге создаётся несколько форм с именами "fmEdit", "fmEdit_1", "fmEdit_2", "fmEdit_3" и т.д. Я посмотрел, что сохраняет метод dxLayoutControl1.SaveToStream(stream). Там сохраняется "fmEdit.dxLayoutControlFrmAdd". Т.е. получается, что когда восстанавливается форма "fmEdit_1", то она оказывается пустая. Как заставить TdxLayoutControl не обращать внимание на имя формы при сохранении или при загрузке? Данные сохраняюся в стрим и далее в базу. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2019, 15:57 |
|
||
|
TdxLayoutControl.SaveToStream сохраняет имя формы :(
|
|||
|---|---|---|---|
|
#18+
Или как заставить использовать что-то своё вместо имени? Например, вместо имени fmEdit, чтобы использовался класс TfmEdit. Ведь класс у всех одинаковых форм один и тот же. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2019, 16:01 |
|
||
|
TdxLayoutControl.SaveToStream сохраняет имя формы :(
|
|||
|---|---|---|---|
|
#18+
А ты не создавай новую форму, если уже переменная fmEdit определёна ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2019, 16:03 |
|
||
|
TdxLayoutControl.SaveToStream сохраняет имя формы :(
|
|||
|---|---|---|---|
|
#18+
Это не обсуждается. Пользователь хочет открыть 2 разных товара на форме просмотра. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2019, 16:17 |
|
||
|
TdxLayoutControl.SaveToStream сохраняет имя формы :(
|
|||
|---|---|---|---|
|
#18+
тут есть решение https://www.devexpress.com/Support/Center/Question/Details/Q350646/how-to-exclude-form-name-in-tdxlayoutcontrol-savetoinifile но существующие, записанные в базу данные уже нельзя будет использовать т.е. теперь в базу нужно сохранять всё заново :( Код: pascal 1. и пересоздавать всё то, что пользователь "надизайнил" с формами ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2019, 16:20 |
|
||
|
TdxLayoutControl.SaveToStream сохраняет имя формы :(
|
|||
|---|---|---|---|
|
#18+
X11 Код: pascal 1. 2. 3. 4. Попробуй в конце процедуры создания сам переименовывать название формы уникальным инкрементным именем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2019, 16:28 |
|
||
|
TdxLayoutControl.SaveToStream сохраняет имя формы :(
|
|||
|---|---|---|---|
|
#18+
так в том-то и дело, что имя должно быть не уникальным ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2019, 16:34 |
|
||
|
TdxLayoutControl.SaveToStream сохраняет имя формы :(
|
|||
|---|---|---|---|
|
#18+
и здесь тоже советуют https://www.devexpress.com/Support/Center/Question/Details/T498728/tdxlayoutcontrol-saving-to-stream ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2019, 16:37 |
|
||
|
TdxLayoutControl.SaveToStream сохраняет имя формы :(
|
|||
|---|---|---|---|
|
#18+
X11так в том-то и дело, что имя должно быть не уникальным Поменять имя формы на уникальное уже ПОСЛЕ загрузки настроек. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2019, 16:40 |
|
||
|
TdxLayoutControl.SaveToStream сохраняет имя формы :(
|
|||
|---|---|---|---|
|
#18+
Т.е. создать вторую форму с именем fmEdit, загрузить настройки, а потом переименовать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2019, 16:46 |
|
||
|
TdxLayoutControl.SaveToStream сохраняет имя формы :(
|
|||
|---|---|---|---|
|
#18+
Эхх... Юзай dxLayoutControl1.Container.StoreToIniFile/RestoreFromIniFile Последним параметром укажешь нужное имя X11"fmEdit", "fmEdit_1", "fmEdit_2", "fmEdit_3" и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2019, 16:46 |
|
||
|
TdxLayoutControl.SaveToStream сохраняет имя формы :(
|
|||
|---|---|---|---|
|
#18+
white_nigger, это я уже понял, но в этом проблема :( X11пересоздавать всё то, что пользователь "надизайнил" с формами нельзя использовать существующие наработки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2019, 16:50 |
|
||
|
TdxLayoutControl.SaveToStream сохраняет имя формы :(
|
|||
|---|---|---|---|
|
#18+
X11нельзя использовать существующие наработкиНе совсем понял. В каком формате сохранены данные? Приведи пример проблемы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2019, 16:59 |
|
||
|
TdxLayoutControl.SaveToStream сохраняет имя формы :(
|
|||
|---|---|---|---|
|
#18+
В первом сообщении привел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2019, 17:10 |
|
||
|
TdxLayoutControl.SaveToStream сохраняет имя формы :(
|
|||
|---|---|---|---|
|
#18+
Мне кажется, что структура программы изначально неправильная.Зачем создавать кучу форм??? Для отображения каких то данных Не легче ли было бы в одной форме, загружать данные с нужного элемента. Типа окно в окне (Panel, и типа такого) которое открыто по середине. И показывает специфики товара и так далее. А область под окном затемнена Ну если ты выполняешь заказ какого - то, клиента так скажем. То это его не продуманность, что он пошёл корявой дорожкой Конечно же можно, добавлять товар в сравнения и в этой же форме выводить определённые характеристики как это сделано в яндекс маркете в таблице ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2019, 17:16 |
|
||
|
TdxLayoutControl.SaveToStream сохраняет имя формы :(
|
|||
|---|---|---|---|
|
#18+
X11т.е. теперь в базу нужно сохранять всё заново :( и пересоздавать всё то, что пользователь "надизайнил" с формами Добро пожаловать в мир костылей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2019, 17:21 |
|
||
|
TdxLayoutControl.SaveToStream сохраняет имя формы :(
|
|||
|---|---|---|---|
|
#18+
Я вот что придумал. В новой версии программы нужно определять, что использовать: LayoutControl.LoadFromStream() или LayoutControl.Container.RestoreFromStream() т.е. в базу(в таблицу с блобом) нужно добавить новое поле, где будет храниться версия и если версия пустая, то это старая версия данных и там есть имя формы, а значит нужно применять LayoutControl.LoadFromStream(), а если там, например, цифра 1, то это уже новая версия данных без имени формы и нужно применять LayoutControl.Container.RestoreFromStream(). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2019, 17:23 |
|
||
|
TdxLayoutControl.SaveToStream сохраняет имя формы :(
|
|||
|---|---|---|---|
|
#18+
X11В первом сообщении привел.Мать... чем конкретно Container.StoreTo/RestoreFrom не подходит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2019, 17:23 |
|
||
|
TdxLayoutControl.SaveToStream сохраняет имя формы :(
|
|||
|---|---|---|---|
|
#18+
А просто проанализировать первые несколько символов стрима не судьба? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2019, 17:24 |
|
||
|
TdxLayoutControl.SaveToStream сохраняет имя формы :(
|
|||
|---|---|---|---|
|
#18+
white_niggerX11В первом сообщении привел.Мать... чем конкретно Container.StoreTo/RestoreFrom не подходит? я ж написал: пользователь уже надизайнил формочек, поэтому Container.RestoreFrom() не загружает то, что было сохранено методом Layout.SaveToStream(stream); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2019, 17:33 |
|
||
|
TdxLayoutControl.SaveToStream сохраняет имя формы :(
|
|||
|---|---|---|---|
|
#18+
white_nigger, да, тоже уже подумал об этом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2019, 17:34 |
|
||
|
TdxLayoutControl.SaveToStream сохраняет имя формы :(
|
|||
|---|---|---|---|
|
#18+
По сигнатуре стрима определяй что передавать в LayoutControl.Container.RestoreFromStream в последнем параметре. Его можно применять в обоих случаях. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2019, 17:36 |
|
||
|
TdxLayoutControl.SaveToStream сохраняет имя формы :(
|
|||
|---|---|---|---|
|
#18+
что такое сигнатура стрима? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 10:05 |
|
||
|
TdxLayoutControl.SaveToStream сохраняет имя формы :(
|
|||
|---|---|---|---|
|
#18+
X11, Это и есть первых несколько байтов в потоке. Как у архивов например. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2019, 11:02 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39763696&tid=2039840]: |
0ms |
get settings: |
6ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
401ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
| others: | 198ms |
| total: | 690ms |

| 0 / 0 |
