Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Windows Clasic и WinXp [стиль]


Автор: 0FF 13.8.2003, 12:04
Я хочу чтоб в любом Xp моя программа отображалась как в 9x виндах.
это реально сделать?

Автор: Borland_Delphi_6 13.8.2003, 12:10
Реально. Просто ничего не делай smile.gif

Автор: 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
Цитата(p0s0l @ 14.8.2003, 13:04)
Кстати, сами окна в XP в любом случае будут выглядеть как в XP, даже если ты делал на D5. А вот кнопки, например, никак не должны выглядеть в XP-стиле...

Во во это меня и интересует, ато все кнопки, скроллы и тд, както по уродски выглядят.

Автор: -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. Твое окно имеет вид 9X.

А как это - "возвращай стиль XP" ?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)