Форум: "Прочее";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
ВнизМожно ли в DesignMode открыть закрыть модуль зная его имя? Найти похожие ветки
← →
jacksotnik (2012-05-10 12:54) [0]Произвожу манипуляции с модулем через wizard и мне надо закрыть данный модуль а потом опять его открыть не закрывая весь проект
← →
AV © (2012-05-10 13:10) [1]Ctrl Alt F11
DblClick
Ctrl F4
← →
Юрий Зотов © (2012-05-10 15:55) [2]Не проверял, но должно работать. Вставьте это в свой wizard и вызовите процедуру CloseIDEFile.
function FindInterface(AInterface: TGUID): IUnknown;
var
i: Integer;
begin
Result := nil;
with BorlandIDEServices as IOTAModuleServices do
for i := 0 to ModuleCount - 1 do
if Modules[i].QueryInterface(AInterface, Result) = S_OK then Break
end;
function GetCurrentProjectGroup: IOTAProjectGroup;
begin
Result := FindInterface(IOTAProjectGroup) as IOTAProjectGroup
end;
function GetCurrentProject: IOTAProject;
var
ProjectGroup: IOTAProjectGroup;
begin
ProjectGroup := GetCurrentProjectGroup;
if Assigned(ProjectGroup) then
Result := ProjectGroup.ActiveProject
else Result := FindInterface(IOTAProject) as IOTAProject
end;
procedure CloseIDEFile(IDEFileName: string);
var
i: integer;
begin
with GetCurrentProject do
for i := 0 to GetModuleCount - 1 do
if AnsiSameText(IDEFileName, GetModule(i).Name) then
begin
(BorlandIDEServices as IOTAActionServices).CloseFile(GetModule(i).FileName);
Exit
end
end;
← →
AV © (2012-05-10 15:58) [3]вона как.. :)
[1] - "обшибочка" вышла ^)
← →
Юрий Зотов © (2012-05-10 15:59) [4]Только параметр IDEFileName надо бы переименовать в IDEUnitName, поскольку это именно имя модуля, а не имя самого файла. Впрочем, можно использовать и имя файла, но тогда GetModule(i).Name тогда надо заменить на GetModule(i).FileName.
← →
Юрий Зотов © (2012-05-10 16:04) [5]Открываем файл тем же кодом, только вместо CloseFile пишем OpenFile.
← →
Юрий Зотов © (2012-05-11 08:25) [6]Блин... вот так обрушивают IDE. А потом говорят, что она кривая.
Если не открыто ни одного проекта, то будет AV. Надо проверять.
procedure CloseIDEFile(IDEFileName: string);
var
CurrentProject: IOTAProject;
i: integer;
begin
CurrentProject := GetCurrentProject;
if CurrentProject <> nil then
with CurrentProject do ...
и далее по тексту.
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.108 c