Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.01.05;
Скачать: [xml.tar.bz2];

Вниз

Можно ли в ЧУЖОМ MDI-приложении запретить закрытие форм через   Найти похожие ветки 

 
BlackTiger   (2003-12-18 16:23) [0]

Возникла такая потребность, чтобы в одном "чужом" приложении пользователь не мог закрыть MDIChild-окно простым нажатием "крестика" в углу окна. Там происходит кое-какая бяка при таком закрытии. Существует ли такая возможность? Чую, что пахнет вякими хуками, но никогда с ними не работал.

Есть же проги, которые изменяют реакцию на эти действия - например, принудительно сворачивают окно в трей вместо закрытия. Тут только дело в том, что окно - MDIChild.

Подскажите, плиз. Еще это должно работать на всех виндах (98 и далее).


 
BlackTiger   (2003-12-18 17:39) [1]

И почему у меня не работает GetWindowXXXXXXXX


function TForm1.enumListOfTasks(hWindow: hWnd): Bool;
var
HoldString: PChar;
WindowStyle: Longint;
//IsAChild: Word;
IsAChild: Long;
begin
GetMem(HoldString, 256);

WindowStyle := GetWindowLong(hWindow, GWL_STYLE);
WindowStyle := WindowStyle and Longint(WS_VISIBLE);
//IsAChild := GetWindowWord(hWindow, GWW_HWNDPARENT); //ОШИБКА! нет такой константы GWW_HWNDPARENT
IsAChild := GetWindowLong(hWindow, GWL_HWNDPARENT);

GetWindowText(hWindow, HoldString, 255);
if StrPas(HoldString) <> "" then
ShowMessage((IntToStr(hWindow) + ":" + StrPas(HoldString)));
Result := true;
end;


" enumWindows(@TForm1.EnumListOfTasks, Longint(Self));" ничего не выдает!

Что я делаю не так. Взято из примеров.


 
BlackTiger   (2003-12-18 18:57) [2]

Народ! Ну может кто-нить скинет мне на мейл рабочий примерчик с сырцами? Не могу понять, что делаю не так.


 
Игорь Шевченко   (2003-12-18 23:20) [3]

Если не секрет, из каких примеров взято ?
Если не больший секрет, в связи с чем такая задача:

> чтобы в одном "чужом" приложении пользователь не мог закрыть
> MDIChild-окно простым нажатием "крестика" в углу окна.Там происходит кое-какая бяка при таком закрытии


---
LMD


 
BlackTiger   (2003-12-19 11:28) [4]

2 Игорь Шевченко:

Взято из интернетовских примеров. Сказано было, что должно работать.

А необходимость возникла вот из-за чего. В одной финансовой системе обнаружился небольшой косячек, связянный с тем, что при закрытии формы "крестиком" происходит откат всех изменений документа. Еще в этой форме есть кнопки "OK" и "Cancel". С ними все нормально. Нужно чтобы пользователь пользовался ТОЛЬКО этими кнопками, т.к. их можно запретить для конкретного пользователя. Как бы попроще объяснить...

В общем так. Пользователь открывает документ на продажу, в нем есть строка на 10 единиц. Эти единицы уже числятся как зарезервиронные, т.е. продать их в другом документе нельзя. Теперь пользователь В СТРОКЕ документа меняет кол-во на 5 единиц. Уже на этом этапе изменяется зарезервированное кол-во и 5 штук становятся доступными. В это время другой пользователь быстренько делает свой документ на эти 5 штук и продает их. После этого, первый пользователь нажимает "Cancel" или закрывает свою форму и ... *его изменения откатываются*. В результате происходит нарушение логики работы компании - нельзя выписать товара больше, чем доступно (Available = OnHand - Reserved). Вот такуй ситуацию хотелось бы подправить. Сама система закрытая, и изменений в нее внести нельзя.


 
BlackTiger   (2003-12-19 14:53) [5]

Ну может кто-нибудь подскажет куда и чем копать?


 
PVOzerski   (2003-12-19 14:58) [6]

>"enumWindows(@TForm1.EnumListOfTasks, Longint(Self));" ничего не выдает!

1-й параметр должен быть описан как function(p1:tHandle;p2:longint):longbool;stdcall;
притом не как метод и не как вложенная функция.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.01.05;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.01 c
14-12095
NeyroSpace
2003-12-15 10:54
2004.01.05
Как импортировать адресную книгу в формате с текст с


14-12033
Dimka Maslov
2003-12-16 09:00
2004.01.05
SPY++


14-12096
ИМХО
2003-12-14 11:48
2004.01.05
Языки программирования и синтаксис


14-12079
Knight
2003-12-07 20:20
2004.01.05
Заменят ли когда нибудь пункт


1-11883
hokka
2003-12-18 13:59
2004.01.05
Проблемы с кодировкой





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский