Avatar billede hr__hallandsen Nybegynder
07. december 2005 - 09:43 Der er 10 kommentarer og
1 løsning

Genvejsmenu i proceslinjen

Jeg har lagt mærke til, at der kun fremkommer mulighederne gendan, minimer og luk, når jeg højreklikker på mit Delphiprogram i proceslinjen. I andre programmer fremkommer der ydermere flyt, størrelse og maksimer. Det er en helt almindelig form, jeg bruger. Hvordan får jeg min genvejsmenu udvidet med ovennævnte muligheder

Mvh

Hr. Hallandsen (hr__hallandsen), korrupt bagmand
Avatar billede psycosoft-funware Nybegynder
08. december 2005 - 07:44 #1
du skal ind og have fat i apien append menu, så kan du tilføje dine helt egne menuer, f.eks. en aboutbox :-)
Avatar billede hr__hallandsen Nybegynder
08. december 2005 - 15:01 #2
ja, tak, men kan du beskrive det lidt mere specifikt, evt. med et eks.?
Avatar billede psycosoft-funware Nybegynder
09. december 2005 - 09:18 #3
procedure TMainForm.FormCreate(Sender: TObject);
var
    hSysMenu: HMENU;
begin

    {API for setting up tray icons}
            IconCount:=0;
            IconData.cbSize:=sizeof(IconData);
            IconData.Wnd:= Handle;
            IconData.uID:=100;
            IconData.uFlags:= NIF_Message or NIF_Icon or NIF_TIP;
            IconData.uCallbackMessage:=WM_User + 1;
            IconData.hIcon:= LoadIcon(HInstance,'MAINICON');
            StrPCopy(IconData.szTip, Application.Title);
            Shell_NotifyIcon(NIM_ADD,@IconData);

    Application.OnMessage:=AppMessageEvent;
    // Add this item to the Application's System Menu
    hSysMenu := getSystemMenu(Application.handle, false );
    AppendMenu( hSysmenu, MF_STRING, $100, 'About...' );

    // Add this item to the Form's System Menu
    hSysMenu := getSystemMenu(handle, false );
    AppendMenu( hSysmenu, MF_SEPARATOR, 0, '');
    AppendMenu( hSysmenu, MF_STRING, $100, 'About...' );

    GetPotentialKeys;
    MainForm.Hide;
    TrayAppTimer.enabled        :=true;

end;


procedure TMainForm.FormDestroy(Sender: TObject);
var
    I: Integer;
begin
    for I := ComboBox1.Items.Count -1 downto 0 do
            ComboBox1.Items.Objects[I].Free;
         
    Shell_NotifyIcon(NIM_DELETE,@IconData); //Removes Icon From The Tray
end;
Avatar billede psycosoft-funware Nybegynder
09. december 2005 - 09:19 #4
unit sysmenu;

interface

uses
  SysUtils, WinTypes, WinProcs, Messages, Classes,
  Graphics, Controls, Forms, Dialogs, Menus;

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    {This declaration is of the type TMessageEvent which
      is a pointer to a procedure that takes two variable
      arguments of type TMsg and Boolean, respectively}

    procedure WinMsgHandler(var Msg : TMsg;
                            var Handled : Boolean);
  end;

var
  Form1: TForm1;

const
  MyItem = 100; {Here's the menu identifier.
                It can be any WORD value}

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
begin

  {First, tell the application that its message
  handler is different from the default}
  Application.OnMessage := WinMsgHandler;

  {Add a separator}
  AppendMenu(GetSystemMenu(Self.Handle, False),
          MF_SEPARATOR, 0, '');

  {Add your menu choice. Since the Item ID is high,
  using the MF_BYPOSITION constant will place
  it last on the system menu} 
  AppendMenu(GetSystemMenu(Self.Handle, False),
            MF_BYPOSITION, MyItem, 'My Men&u Choice');

end;


procedure TForm1.WinMsgHandler(var Msg : TMsg;
                          var Handled : Boolean);
begin
{if the message is a system one...}
  if Msg.Message=WM_SYSCOMMAND then
  if Msg.wParam = MyItem then
    {Put handling code here. I've opted for
      a ShowMessage for demonstration purposes}
    ShowMessage('You picked my menu!!!');
end;

end.
Avatar billede psycosoft-funware Nybegynder
09. december 2005 - 09:20 #5
her er to stumper kode, så kan du selv vælge hvad der passer dig best :-)
Avatar billede psycosoft-funware Nybegynder
09. december 2005 - 09:27 #6
du må unskylde den lange responstid, men jeg har haft så meget at se til
Avatar billede hr__hallandsen Nybegynder
16. december 2005 - 12:13 #7
Gør ikke noget...

Kigger på det
Avatar billede hr__hallandsen Nybegynder
19. december 2005 - 20:24 #8
Tak, jeg kan få det anden stykke kode til at virke fint, men det kniber med "IconData" i første kode. Hvilket objekt skal det oprettes af?
Er det i øvrigt muligt af føje samme punkt til genvejsmenuen, når man højreklikker på processlinien?. Det fremkommer kun, når man klikker på selve formen?

Hilsen
Avatar billede hr__hallandsen Nybegynder
19. december 2005 - 20:24 #9
Hallandsen
Avatar billede hr__hallandsen Nybegynder
17. februar 2006 - 09:43 #10
Lukker. Sig til, hvis du vil have point.
Avatar billede psycosoft-funware Nybegynder
17. februar 2006 - 15:18 #11
:o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester