大家看看我这段代码怎么改?(30分)

  • 主题发起人 主题发起人 chuanxue
  • 开始时间 开始时间
C

chuanxue

Unregistered / Unconfirmed
GUEST, unregistred user!
unit main;

interface

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

type
TForm1 = class(TForm)
PopupMenu1: TPopupMenu;
imgmain: TImage;
imgclose: TImage;
imgmin: TImage;
procedure PopupMenu1Popup(Sender: TObject);
private
procedure OnMenuClick(Sender: TObject);

{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
implementation

{$R *.dfm}
procedure TForm1.OnMenuClick(Sender: TObject);
begin
showmessage(TMenuItem(Sender).Caption);
form1.imgmain.Picture.LoadFromFile(ExtractFilePath(Application.Exename)+'skin/'+TMenuItem(Sender).Caption+'/main.bmp');
end;
procedure TForm1.PopupMenu1Popup(Sender: TObject);
var
TempItem,chsk:TMenuItem;
sr: TSearchRec;
FileAttrs: Integer;
begin
FileAttrs:=0;
//i:=0;
popupmenu1.Items.Clear ;
FileAttrs:=FileAttrs + faDirectory;
chsk:= TMenuItem.Create(Self);
chsk.Caption := '更换皮肤';
PopupMenu1.Items.Insert(0,chsk);
if FindFirst(ExtractFilePath(Application.Exename)+'skin/*.*', FileAttrs, sr) = 0 then
begin
repeat
if (sr.Attr and FileAttrs) = sr.Attr then
begin
if (sr.Name <> '.') and (sr.Name <> '..') then
begin
TempItem := TMenuItem.Create(chsk);
TempItem.Caption := sr.Name ;
popupmenu1.Items .Items[0].Insert(0,tempitem);
TempItem.OnClick := OnMenuClick;
//i:=i+1;
end;
end;
until FindNext(sr) <> 0;
FindClose(sr);
end;
end;

end.
 
我把菜单的caption 放到弹出的消息对话框中正常[showmessage(TMenuItem(Sender).Caption);]但是,我在下面用的时候就多出了一个“&”来?[form1.imgmain.Picture.LoadFromFile(ExtractFilePath(Application.Exename)+'skin/'+TMenuItem(Sender).Caption+'/main.bmp');]
 
不要使用popupmenu的caption
 
将PopupMenu1的AutoHotkeys设为maManual
 
谢谢,我先试试。
 
谢谢,非常感谢,这个问题我想了好几天,没想到这么简单。我就奇怪,&到底是哪里来的呢?
 
后退
顶部