Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.08.2008, 00:57   #1
romets
Пользователь
 
Регистрация: 21.01.2008
Сообщений: 32
По умолчанию Расположить объект справа от меню

Уважаемые любители и профессионалы!
Хочу разместить какие-нибудь объекты справа от меню, там обычно имеется свободное место. В других программах часто подбное встречается. В Тотал Коммандере, так там вообще вправо вынесены отдельно два пункта меню "Справка" и "Запуск".
Наверное, это не сложно, но в данный момент пока ничего не придумал.
Спасибо.
romets вне форума Ответить с цитированием
Старый 21.08.2008, 08:12   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Не вдаваясь в подробности примерно так:
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus;

type
  TForm1 = class(TForm)
    MainMenu1: TMainMenu;
    N11: TMenuItem;
    N31: TMenuItem;
    procedure FormResize(Sender: TObject);
    procedure N31DrawItem(Sender: TObject; ACanvas: TCanvas; ARect: TRect;
      Selected: Boolean);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormResize(Sender: TObject);
var t:TMenuItem;
begin

end;

procedure TForm1.N31DrawItem(Sender: TObject; ACanvas: TCanvas;
  ARect: TRect; Selected: Boolean);
begin
if TMenuItem(sender).MenuIndex=1 then
begin
 ARect.Left:=Width-(ARect.Right-ARect.Left)-10;
 ACanvas.FillRect(ARect);
 ACanvas.TextOut(ARect.Left,ARect.Top,
  StringReplace(TMenuItem(sender).Caption,'&','',[rfReplaceAll]));
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
MainMenu1.OwnerDraw:=true;
end;

end.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.08.2008, 16:43   #3
Alter
Старожил
 
Аватар для Alter
 
Регистрация: 06.08.2007
Сообщений: 2,183
По умолчанию

Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
 ModifyMenu(MainMenu1.Handle, 3, mf_ByPosition or mf_Popup or mf_Help, N4.Handle, PChar(N4.Caption));
end;

Последний раз редактировалось Alter; 21.08.2008 в 16:47.
Alter вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите правильно расположить текст в блоге! V_for_Veronica HTML и CSS 2 19.08.2008 17:00
Вредоносный HTTP-объект Gauss О форуме и сайтах клуба 4 16.04.2008 14:33
Найти числа,которые читаются слева-направо и справа-налево одинаково(например, 1001). Паскаль NikLik Помощь студентам 8 22.11.2007 23:00
Как передать объект по наследству Legat Win Api 6 03.11.2007 11:19