View Full Version : چگونه یک گزینه به سیستم منوی برنامه اضافه کنیم
Lord
شنبه 10 بهمن 1383, 00:36 صبح
لطفا مرا راهنمایی کنید.
چگونه یک گزینه به سیستم منوی برنامه اضافه کنیم
یعقوب
شنبه 10 بهمن 1383, 03:37 صبح
سلام
ببخشید...اصلاً منظورتون رو متوجه نمی شم....!
لطفاً واضح تر توضیح بدین.
net_ved
شنبه 10 بهمن 1383, 11:45 صبح
شاید منظورتون این بوده...چطوری یه برنامرو به منوی سیستم اضافه کنیم؟
مهدی کرامتی
شنبه 10 بهمن 1383, 20:22 عصر
امیدوارم منظورتون همین باشه:
procedure TForm1.Button1Click(Sender: TObject);
var HelpMenu:TMenuItem;
begin
HelpMenu := TMenuItem.Create(MainMenu1);
HelpMenu.Caption := 'Help';
MainMenu1.Items.Add(HelpMenu);
end;
vcldeveloper
یک شنبه 11 بهمن 1383, 03:20 صبح
فکر کنم منظورشون همون System Menu (منویی که گزینه هایی مثل Minimize, Maximaze و ... در اون قرار دارند) باشه.
برای اضافه کردن گزینه ای به System Menu می تونید از کدی شبیه کد زیر استفاده کنید.
* توضیحات رو در داخل کد گذاشتم.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
const
CustomSubItem = 100;
type
TForm1 = class(TForm)
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
procedure WinMsgHandler(var Msg: TMsg; var Handled: Boolean);
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{ TForm1 }
procedure TForm1.WinMsgHandler(var Msg: TMsg; var Handled: Boolean);
begin
//if the message is from system menu AND my cutsom menu item is clicked
if (Msg.message = WM_SYSCOMMAND) and
(Msg.wParam = CustomSubItem) then
ShowMessage('This is a custom menu item');
end;
procedure TForm1.FormCreate(Sender: TObject);
var
SystemMenu: THandle;
begin
//Set application's message handler to my cutom handler
Application.OnMessage := WinMsgHandler;
//Get handle of Sytem Menu,
//You set the second parameter to TRUE to set default menu back
SystemMenu := GetSystemMenu(Application.Handle, False);
//Add a separator
AppendMenu(SystemMenu, MF_SEPARATOR, 0, '');
//Add your sub item
AppendMenu(SystemMenu, MF_BYPOSITION, CustomSubItem, '&A Custom Item');
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
GetSystemMenu(Application.Handle, True);
end;
end.
Lord
یک شنبه 11 بهمن 1383, 06:46 صبح
از آقای علی کشاورز به خاطر جوابشون ممنونم
مهدی کرامتی
یک شنبه 11 بهمن 1383, 20:52 عصر
از وقتی که برای پاسخ دادن به شما صرف کردم استفاده های بهتری هم میتونستم بکنم. حیف شد.
esi022
دوشنبه 12 بهمن 1383, 00:00 صبح
به همین دلیل پست من پاک شد؟ :(
مهدی کرامتی
دوشنبه 12 بهمن 1383, 09:58 صبح
خیر، به دلیل آف تاپیک بودن پاک شد.
esi022
دوشنبه 12 بهمن 1383, 13:25 عصر
آف تاپیک؟ :گیج:
vcldeveloper
سه شنبه 13 بهمن 1383, 03:00 صبح
آف تاپیک؟
الان هم دوباره داره میره به سمت آف تاپیک شدن :wink: :evil2:
esi022
سه شنبه 13 بهمن 1383, 18:19 عصر
علی کشاورز سلام
آقا من خنگ !!!!!
میشه بگید منظورتون از آف تاپیک چیه؟
vcldeveloper
چهارشنبه 14 بهمن 1383, 02:28 صبح
آف تاپیک به مطالبی گفته میشه که ربطی به تاپیکی که مطلب در اون بیان میشه ندارند. مثلا این تاپیک درباره منوی سیستم هست، من و شما داریم درباره "آف تاپیک"، آف تاپیک میزنیم!
:موفق:
esi022
چهارشنبه 14 بهمن 1383, 04:22 صبح
افتاد :تشویق: متشکرم - دوست دارم علی کشاورز
اینم آف بود :mrgreen:
ولی بعضی وقتها نمیشه - چون کاربرا نمیگن چی میخوان
یعنی بد توضیح میدن
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.