Имя: Пароль:
1C
 
Как заставить форму...(1с 7.7)
Ø
0 Конечно
 
18.05.05
14:47
Как сделать так, чтобы форма документа открывалась сразу в развернутом виде?
1 Jeronimo
 
18.05.05
14:52
Procedure Maximize()
WSHShell = CreateObject("WScript.Shell");
WSHShell.SendKeys("%");
WSHShell.SendKeys("{LEFT}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{ENTER}");
EndProcedure;
2 jurii
 
18.05.05
14:52
В смысле "чтобы не нажимать РАЗВЕРНУТЬ"?
Стандартными средствами НИКАК!
Можно сделать просто большую форму документа... ;)
3 Конечно
 
18.05.05
14:55
(1) Это ты про что?
4 jurii
 
18.05.05
14:57
(1) - прав, тока ; после EndProcedure убрать надо.
5 Конечно
 
18.05.05
14:58
Других предложений, кроме (2), нет?
6 Jeronimo
 
18.05.05
15:00
(4) я щас на делфях пишу, привык :-)
(3) это процедура, которую надо вызвать в ПриОткрытии(), чтобы окно развернулось
7 smaharbA
 
18.05.05
15:00
(0) поверь народу, толькоб я этот скрипт "внешним" бы сделал, и задержечки между кеями поставил, так вернее, хотя в таком как (1)(ну почти) у меня 4 мес работает
8 Конечно
 
18.05.05
15:07
Спасибо! Все работает.
9 smaharbA
 
18.05.05
15:10
(8) рано радуешься, тормозов добавит при открытии, особенно когда уже форма "тормоз"
10 Конечно
 
19.05.05
07:11
Проблема уже появилась...
На одной машине с Win98 работает, а на другой ругается на строку WSHShell.SendKeys("%");
Какие еще условия нужны? Файл wscript.exe одинаковый.
11 smaharbA
 
19.05.05
07:15
ищи и ставь wsh 5.6
12 Худой
 
19.05.05
07:22
(0)А есть увесистая причина для того чтобы это реализовывать?
13 Jeronimo
 
19.05.05
07:27
Для больших форм, на которые просто не получается втиснуть все, что надо в оконном режиме, да для 800х600 - есть. Не критично, конечно, но приятно.
Кстати, (0), лучше засунь процедуру в глобальник
14 Конечно
 
19.05.05
07:38
Все... Разобрался
http://www.sinor.ru/~my1c/knowhow/winonscr.html<br>(13) полностью прав
Всем спасибо!
15 primus
 
19.05.05
07:54
(13) А можно пример кода для минимизации окна?
16 Худой
 
19.05.05
08:12
ИнтерЭсно! Попробовал то, что написано в ссылке(14)http://www.sinor.ru/~my1c/knowhow/winonscr.html. Сработало. Но!!! Если сделать следующие манипуляции - После первого открытия закрыть форму, сделать "немаксимальность" в любом окне или форме. Повторно открыть. Получим отсутствие эффекта.
17 smaharbA
 
19.05.05
08:19
(16) куда вставил глМаксимизироватьОкно(), надо в самый конец при открытии, а исче лучче на какоенибудь текстовое-скрытое поле формы и призадержать немного, для этого и "внешним" его(скрипт) и надо сделать
18 Худой
 
19.05.05
08:25
(17) Процедура глМаксимизироватьОкно()вставил в глобальный модуль. Вызов глМаксимизироватьОкно()поставил, как и написано в ссылке, в конец процедуры ПриОткрытии() в открываемой форме. Дальше стоит только КонецПроцедуры ПриОткрытии()
19 smaharbA
 
19.05.05
08:43
попробуй так, создай файл в КаталогеИБ SendKey.vbs с таким содержимым
...
Set WSHShell = WScript.CreateObject("WScript.Shell")
tX1=WScript.Arguments.Unnamed.Item(0)
Key1=WScript.Arguments.Unnamed.Item(1)
tX2=WScript.Arguments.Unnamed.Item(2)
Key2=WScript.Arguments.Unnamed.Item(3)
app=WScript.Arguments.Unnamed.Item(4)
WSHShell.AppActivate app
WScript.Sleep tX1
WSHShell.SendKeys(Key1)
WSHShell.AppActivate app
WScript.Sleep tX2
WSHShell.SendKeys(Key2)
WSHShell.AppActivate app
...
в глМаксимизироватьОкно()
...
Задержка1="300";
Задержка2="200";
Кей1="%";
Кей2="{LEFT}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{ENTER}";
заг="1С:Предприятие - "+Метаданные.Идентификатор+": "+ЗаголовокСистемы();
//+": "+ два пробела
КомандаСистемы("wscript.exe "+КаталогИБ()+"SendKey.vbs "+Задержка1+" "+Кей1+" "+Задержка2+" "+Кей2+" "+Заг+"//b");
20 Jeronimo
 
19.05.05
08:44
(15) Окна формы или окна программы?
21 primus
 
19.05.05
08:47
(20) Окна формы
22 smaharbA
 
19.05.05
08:48
(15) на один {DOWN} меньше, но другието формы "выйдут" из максимизированного состояния
23 primus
 
19.05.05
08:54
(22)благодарю. Операторы привыкли работать с клавы, так что фишка им понравится.
24 Jeronimo
 
19.05.05
08:55
(21)Любопытно... Никогда не задавался этим вопросом...
Щас поэкспериментировал - (22) получится, если окно свернуто.
.
Щас не до подбора нужной комбинации, если хотел уличить - уличил :-) Если не сложно, скажи, как это делается, буду признателен. Либо придется самому сидеть подбирать...
25 smaharbA
 
19.05.05
09:11
(24) да все просто скрипт за тебя жмет альт, потом вниз четыре раза и ентер, вот и нажали минимизировать, а если уже минимизировано просто "минимизировать" будет (то есть все мини) то нажмет файл+сохранить, но это будет неактивно для формы, а вот если "активной" будет таблица то вытекают последствия в виде окна сохранить...
...
WSHShell = CreateObject("WScript.Shell");
WSHShell.SendKeys("%");
WSHShell.SendKeys("{LEFT}{DOWN}{DOWN}{DOWN}{DOWN}{ENTER}");
26 Худой
 
19.05.05
09:12
(19) Не-е-е! Это уже слишком большая плата за то, чтобы пользователь не щелкал лишний раз мышкой
27 primus
 
19.05.05
09:13
(22) А Жеронимо то прав. А как все-таки из мах в мин?
28 smaharbA
 
19.05.05
09:16
+(25) поправочка, без лефт
WSHShell = CreateObject("WScript.Shell");
WSHShell.SendKeys("%");
WSHShell.SendKeys("{DOWN}{DOWN}{DOWN}{DOWN}{ENTER}");
29 Jeronimo
 
19.05.05
09:18
(27) Все равно работать лень - посижу поковыряю :-) Найду - скажу
30 Jeronimo
 
19.05.05
09:21
(28) Во, теперь не врешь! Хотя нет, опять врешь... (25) работает, когда окно в нормальном состоянии, (28) - когда в развернутом.
.
Как сделать проверку, в каком состоянии находится окно???
31 smaharbA
 
19.05.05
09:26
(30) попробуй сначала развернуть как в 1(без разницы свернуто, нормальное или развернуто), а потом свернуть как (28)
32 primus
 
19.05.05
09:28
похоже без проверки состояния окна метод не покатит
33 АЛьФ
 
19.05.05
09:59
Во народ извращается...
 
Максимизирована
Maximize
Синтаксис:
Максимизирована
Назначение:
Доступ к состоянию окна формы. Атрибут для чтения/записи.
Возвращает/устанавливает признак развернутости окна формы (для немодальных окон).
Замечание:
Работает только после физического открытия окна. В момент первого обновления формы
(до вывода окна на экран) все формы в 1С имеют значение этого атрибута равным 0.
 
http://www.deltasoft.ru/?projects:pro6
Основная теорема систематики: Новые системы плодят новые проблемы.