| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Windows Clasic и WinXp [стиль] |
| Автор: 0FF 13.8.2003, 12:04 |
| Я хочу чтоб в любом Xp моя программа отображалась как в 9x виндах. это реально сделать? |
| Автор: Borland_Delphi_6 13.8.2003, 12:10 |
| Реально. Просто ничего не делай |
| Автор: p0s0l 13.8.2003, 13:33 |
| Убери компонент XPManifest. Если у тебя подсоединен юнит XPMan - убери его. Или если есть файл ТВОЙПРОЕКТ.exe.manifest - и его убери... |
| Автор: 0FF 13.8.2003, 20:54 |
| Да нет у меня ничего такова. Может в D5 этого нет ? |
| Автор: December 13.8.2003, 21:46 |
| В D5 этого нет - он родился ещё до ХР |
| Автор: -Vadim- 14.8.2003, 02:55 |
| Попробуй перерисовать форму. К примеру Регион описаный как CreateRectRgn(0, 0, wigth, Height); и переданный функции SetwindowRgn (Handle, MyRegion, true); отобразит форму плоско, слишком плоско, но попробовать стоит и с этим что нибуть придумать. ... var MyRegion: HRGN; begin MyRegion:= CreateRectRgn(0, 0, wigth, Height); SetwindowRgn (Handle, MyRegion, true); end; ... Вставляй в обработчик и посмотри. |
| Автор: -Vadim- 14.8.2003, 03:23 |
| Я тут в доках покопался и есть такая тема. Вообщем, программы могут принять вид той винды откуда они то и запускаються (я пологаю, что и наоборот). Для этого необходимо в каталоге, откуда запускаеться прога, разместить файл-манифест с названием "полное имя программы.manifest" пример: Proga.exe.manifest Файл будет являться XML документом с определенной структурой. О нем можно найти в мануале по Винде. (Чесно признаться ни разу не пробовал так извратиться, потому что мне пофигу как выглядит прога. Главное чтоб она была максимально функциональна (как внешне, так и содержательно)). |
| Автор: p0s0l 14.8.2003, 13:04 |
| Кстати, сами окна в XP в любом случае будут выглядеть как в XP, даже если ты делал на D5. А вот кнопки, например, никак не должны выглядеть в XP-стиле... |
| Автор: 0FF 14.8.2003, 13:32 | ||
Во во это меня и интересует, ато все кнопки, скроллы и тд, както по уродски выглядят. |
| Автор: -Vadim- 15.8.2003, 02:55 |
| Вот, попробуй так. Развивая свою тему "Дата 14.8.2003, 02:55", я вчера так сделал. Создай новое приложение. Задай форме нужный заголовок. Возвращай XP в стандартный вид окошек (убери стиль XP). Копируй экран в буфер (я использую для этого "MWSnap") и вставляй к примеру в "POTOSHOP" (или что там у тебя). Вырезай из картинки воротник (та часть формы за которую приложение перетаскивают по экрану), и сохрани где нибуть к примеру в ".bmp". Теперь на форму помести "Image" расположи его вверху и растяни параллельно воротнику своей формы. Вставь туда сохраненный рисунок. А затем так. ПРИМЕР: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls; type TForm1 = class(TForm) Image1: TImage; procedure FormCreate(Sender: TObject); procedure FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); var MyRegion: HRGN; begin // убрать верхние 30 пикселей MyRegion:= CreateRectRgn(0,30,Width,Height); SetWindowRgn(Handle,MyRegion,true); end; procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin // возможность пересеивать форму ReleaseCapture(); (Sender as TControl).Perform(WM_SYSCOMMAND,$F012,0); end; end. Проблемы: нельзя перетаскивать за рисунок, то есть за новый воротник (за Image), способом описанным мной. Но можно попробовать Drag On Drop. |
| Автор: -Vadim- 15.8.2003, 02:56 |
| А ну да забыл. Возвращай стиль XP. Твое окно имеет вид 9X. |
| Автор: p0s0l 15.8.2003, 11:07 | ||
| 0FF, по-моему, дак ты где-то чо-то сделал, чтобы прога в XP выглядела как в XP. Может, используешь не Borland'ские компоненты ? Или в файл ресурсов засунул XML-манифест, или просто напросто где-нибудь его подсоединяешь, типа {$R WindowsXP.res}. Хотя в D5 такого res нет... Попробуй создай новый проект, поставь пару кнопок, запусти под XP - прога будет выглядеь как в 9x... А с твоей прогой что-то не то. Если можешь, то кинь мне исходник, или в крайнем случае откомпилированный exe-шник.
А как это - "возвращай стиль XP" ? |