Форум: "Прочее";
Текущий архив: 2017.06.04;
Скачать: [xml.tar.bz2];
ВнизЛюбителям ретро. Делаем внешний вид Delphi XE8 как в Delphi7 Найти похожие ветки
← →
maxsvt © (2016-05-07 22:22) [0]Всем привет. Статья не претендует на уникальность, тем не менее, несколько новых вещей есть. Захотелось мне однажды переделать внешний вид Delphi XE8 под свою любимую среду - Delphi7. Полез в интернет, нашел много дельных советов. Итак. Первое. Делаем отстыковку окон. View-Desktop-Classic Unlocked. Дальше - делаем отстыковку дизайнера окон. Тут все сложнее. Опция убрана из настроек дельфи. Нужно изменить ключ HKEY_CURRENT_USER\Software\Embarcadero\BDS\16.0\Form Design\Embedded Designer в False и перезапустить дельфи. Внимание! Отстыковка работает корректно только для VCL форм, для мобильной разработки и FireMonkey все работает корректно только с прикрепленными формами. Но т.к. я работаю только с VCL, то мне гораздо удобнее форму открепить. Дальше - включаем стандартную палитру компонент. Правая кнопка на главном окне - Component. Потом заходим в свойства Tools-Options-Component Toolbar и меняем расположение закладок не по алфавиту, а как в Delphi7. Дальше, убираем лишние кнопки со стандартных тулбаров, добавляем как в Delphi7. Дальше, tools-options-editor options-display-show line numbers убираем галку. tools-options-editor options-color выставляем цвета как привыкли. Теперь Object Inspector. Вот тут они кое-что поломали. Я привык окно дерева обьектов формы пристыковать внутри Object Inspector. То же самое можно сделать и в Delphi XE8. Проблема в том, что в Delphi7 эта пристыковка сохраняется, как и измененные размеры Object Inspector. А в delphi XE8 нет. После каждого перезапуска требуется вручную пристыковать окно, менять размеры. Что бесит. Плюс в самом Object Inspector нельзя убрать настройками панель со ссылкой на Bind Visually и панель, в которой отображается текущее выбранное свойство (которая 100 лет не нужна и только место занимает). Дальше идет уже жесткий хак :) На дельфи7 было написано простое приложение на 15 килобайт. Вот код
program fixoi;
uses windows;
var
OIHandle: hWnd;
R: TRect;
szClass : array[Byte] of Char;
function EnumChildProc(WndCtrl: HWND; lParam: Longint): Boolean; stdcall;
begin
Result := True;
GetClassName(WndCtrl,szClass,SizeOf(szClass));
if szClass = "THotCommands" then
begin
GetWindowRect(WndCtrl,R);
MoveWindow(WndCtrl,R.Left,R.Top,0,0,True);
ShowWindow(WndCtrl,sw_hide);
end;
if szClass = "TDescriptionPane" then
begin
GetWindowRect(WndCtrl,R);
MoveWindow(WndCtrl,R.Left,R.Top,0,0,True);
ShowWindow(WndCtrl,sw_hide);
end;
end;
begin
OIHandle := FindWindow(nil,pchar("Object Inspector"));
if OIHandle > 0 then
begin
GetClassName(OIHandle,szClass,SizeOf(szClass));
if szClass = "TPropertyInspector" then
begin
GetWindowRect(OIHandle,R);
MoveWindow(OIHandle,R.Left,R.Top,570,800,True);
EnumChildWindows(OIHandle,@EnumChildProc,0);
end;
end;
OIHandle := FindWindow(nil,pchar("Structure"));
if OIHandle > 0 then
begin
GetClassName(OIHandle,szClass,SizeOf(szClass));
if szClass = "TStructureViewForm" then
begin
GetWindowRect(OIHandle,R);
MoveWindow(OIHandle,R.Left,R.Top,250,800,True);
end;
end;
end.
Дальше нужно только перетащить окно Structure на окно Object Inspector и получаю что хочу. Кстати, кто подскажет, можно и это программно сделать нормально?
Итог
http://s010.radikal.ru/i311/1605/19/51ab050eedda.png
← →
maxsvt © (2016-05-07 22:25) [1]Забыл написать. Собранное приложение на delphi7 я добавил в Tools delphi xe8. После загрузки xe8 просто запускаем оттуда его один раз
← →
Игорь Шевченко © (2016-05-07 22:41) [2]Кулибин
← →
Eraser © (2016-05-08 00:05) [3]
> maxsvt © (07.05.16 22:22)
https://delphiaball.co.uk/2016/04/19/delphi-floating-form-designer/
← →
DayGaykin © (2016-05-08 00:18) [4]Может кто знает как в лазарусе наоборот сделать?)
← →
maxsvt © (2016-05-08 02:31) [5]Чего наоборот?
← →
NoUser © (2016-05-08 21:20) [6]>[4]
добавить пакет anchordockingdsgn и пересобрать IDE ( Меню-Пакеты )
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2017.06.04;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.001 c