Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2011.12.18;
Скачать: [xml.tar.bz2];

Вниз

Системное меню окна   Найти похожие ветки 

 
x2088 ©   (2011-09-08 22:02) [0]

DXE :: WinXP
есть код (ниже), помогите пожалуйста разобраться где тут что, как добавлять свои строки в данное меню - здесь уже есть одна новая строка, с удалением и перехватом я разобрался, желательно в качестве ответа просто добавить копипастой ещё одну строку и разделитель, спасибо

unit Unit1;

interface

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

type
 TForm1 = class(TForm)
   Button1: TButton;
   procedure FormCreate(Sender: TObject);
 private
   { Private declarations }
   procedure OnWMSysCommand(var Msg: TWMSysCommand); message WM_SYSCOMMAND;
 public
   { Public declarations }
 end;

const
 MyButtonID = 100;

var
 Form1: TForm1;

implementation

{$R *.dfm}

{ TForm1 }

procedure TForm1.OnWMSysCommand(var Msg: TWMSysCommand);
begin
 case Msg.CmdType of
   SC_MINIMIZE: ShowMessage("Minimize");
   SC_MAXIMIZE: ShowMessage("Maximize");
   SC_RESTORE: ShowMessage("Restore");
   SC_CLOSE: ShowMessage("Close");
   SC_CONTEXTHELP: ShowMessage("Context Help");
   MyButtonID: ShowMessage("My Button");
 end;
 inherited;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
 Item: TMenuItemInfo;
 hMenuHandle: HMENU;
begin
   hMenuHandle := GetSystemMenu(Handle, false);
 If hMenuHandle <> 0
    Then
    Begin
    DeleteMenu(hMenuHandle, SC_RESTORE, MF_BYCOMMAND);
    DeleteMenu(hMenuHandle, SC_MAXIMIZE, MF_BYCOMMAND);
    DeleteMenu(hMenuHandle, SC_MINIMIZE, MF_BYCOMMAND);
    DeleteMenu(hMenuHandle, SC_MOVE, MF_BYCOMMAND);
    End;

 FillChar(Item, SizeOf(TMenuItemInfo), 0);
 with Item do
 begin
   cbSize := SizeOf(TMenuItemInfo);
   fMask := MIIM_TYPE or MIIM_ID;
   fType := MFT_STRING;
   dwTypeData := "&My menu button";
   wID := MyButtonID;
 end;
 { Добавим свою кнопку }
 InsertMenuItem(GetSystemMenu(Handle, False), SC_CLOSE, False, Item);
end;

end.


 
x2088 ©   (2011-09-09 20:01) [1]

никто не поможет?


 
DiamondShark ©   (2011-09-09 20:29) [2]


> желательно в качестве ответа просто добавить копипастой ещё одну строку

Желательно не пользоваться копипастой, а понимать, что происходит.
Если одна строка уже есть, то ещё одна добавляется так же.


> и разделитель,

MFT_SEPARATOR
Specifies that the menu item is a separator. A menu item separator appears as a horizontal dividing line. The dwTypeData and cch members are ignored. This value is valid only in a drop-down menu, submenu, or shortcut menu.


 
x2088 ©   (2011-09-11 11:18) [3]

DiamondShark, под копипастой я имел в виду добавить ещё одну строку, естественно у неё будут собственные имена и значения переменных, а для того, чтобы добавить строку даже копипастой - надо знать что копипастить, я учусь на делфи только вторую неделю, учиться на примерах мне на 2 порядка проще, чем по учебнику, где 95% (с) болтология ни о чём, поскольку как доходит дело до реализации - непонятно как это сделать, ни примеров, ни подробных описаний что для чего там в подавляющем большенстве случаев нет

кто-нить хотя бы коменты к

FillChar(Item, SizeOf(TMenuItemInfo), 0);
with Item do
begin
  cbSize := SizeOf(TMenuItemInfo);
  fMask := MIIM_TYPE or MIIM_ID;
  fType := MFT_STRING;
  dwTypeData := "&My menu button";
  wID := MyButtonID;
end;
{ Добавим свою кнопку }
InsertMenuItem(GetSystemMenu(Handle, False), SC_CLOSE, False, Item);
end;

напишт?

~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~

да, ссылку на этот форум мне дали и только здесь я остался в игноре, всем спасибо



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2011.12.18;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.004 c
15-1314712629
Арксант
2011-08-30 17:57
2011.12.18
Загрузка в Image часть изображения


6-1248268608
Olleg_ator
2009-07-22 17:16
2011.12.18
POP3 кодировка KOI


2-1315504959
x2088
2011-09-08 22:02
2011.12.18
Системное меню окна


2-1315288804
TrashReg
2011-09-06 10:00
2011.12.18
Ключи реестра Windows


6-1248848880
Sonoleo
2009-07-29 10:28
2011.12.18
МЭК 80670-5-104





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский