请各位高手帮忙:如何在listView中显示下拉菜单!
解决方案 »
- 我新打开个窗口,新窗口不关闭老窗口不让使用~~~~~~~~~~~~~
- 请大家看看小弟的代码错在那儿?
- windindance(风舞轻扬) 只才靠你了!帮我看看下成两个sql语句的区别?
- delphi爱好者的群欢迎大家的加入!!!群号3975439
- 请问交叉报表用什么控件做比较好
- 安装oracle客户端?非得用软件来装么,可不可以通过copy文件的方式?只要客户端的应用程序可以使用就行了。怎么做?
- 两个问题,我新来的,请多指教
- 请问怎样让QUICKREPORT的QRDBEDIT控件的内容自动换行?
- 使用AFileStream改变字体大小字体类型等
- 一个很简单的DELPHI+ACESS错误,不能添加...急,在线等待回答
- 在delphi6中如何定义一个基类窗口?
- Delphi 不写一行代码快速制作漂亮的表格,打印(预览),(欢迎回帖有分)
关注ING
var
CurrItem :TListItem;
CurrItemLeft,CurrItemRight, CurrItemTop, CurrItemBottom :integer;
//以下代码保存当前节点的位置,然后在ITEM的点击事件里通过这些全局变量来设置下拉列表位置!
procedure TForm1.ListView1Change(Sender: TObject; Item: TListItem;
Change: TItemChange);
begin
CurrItem := Item;
CurrItemLeft := Item.DisplayRect.left;
CurrItemRight := Item.DisplayRect.Right;
CurrItemTop := Item.DisplayRect.Top;
CurrItemBottom := Item.DisplayRect.Bottom;
end;
有好方法吧,赶紧告诉小弟吧!
CurrItemLeft := Item.DisplayRect.left;
CurrItemRight := Item.DisplayRect.Right;
CurrItemTop := Item.DisplayRect.Top;
CurrItemBottom := Item.DisplayRect.Bottom;
报参数不够,麻烦再看一下谢谢
我的是DELPHI7,你看看帮助啦,看看DisplayRect这个方法是不是要参数!
popupmemu应该没有那个效果吧
Pos:TPoint;
begin
GetCursorPos(pos);
popupmenu1.Popup(pos.X,pos.Y);
end;
下学期我也得自学delphi,好惨,什么都不会
Selected: Boolean);
var
Pos:TPoint;
beginif ListView1.Selected<>nil then
BEGIN
GetCursorPos(pos);
popupmenu1.Popup(pos.X,pos.Y);
END;
end;
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, StdCtrls;type
TForm1 = class(TForm)
ListView1: TListView;
ComboBox1: TComboBox;
procedure FormDestroy(Sender: TObject);
procedure ListView1Click(Sender: TObject);
private
FComboBox: TComboBox;
{ Private declarations }
procedure CreateCombobox(var aComboBox:TCombobox;aLeft, aTop: integer);
procedure MyComboBoxChange(Sender: TObject);
procedure MyComboBoxExit(Sender: TObject);
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.DFM}{ TForm1 }procedure TForm1.CreateCombobox(var aComboBox: TCombobox;
aLeft, aTop: integer);
begin
aComboBox := TComboBox.Create(Self);
aComboBox.Parent := Self;
aComboBox.OnChange := MyComboBoxChange;
aComboBox.OnExit := MyComboBoxExit;
aComboBox.DropDownCount := 5;
aComboBox.Style := csDropDown;
aComboBox.Items.Add('字段');
aComboBox.Items.Add('aaa');
aComboBox.Items.Add('bbb');
aComboBox.Items.Add('ccc');
aComboBox.Items.Add('其他类型');
aComboBox.Left := aLeft + ListView1.Left + 1;
aComboBox.Top := aTop + ListView1.Top + 1;
aComboBox.Width := 50;
aComboBox.BringToFront;
aComboBox.SetFocus;
end;procedure TForm1.MyComboBoxChange(Sender: TObject);
begin
if Assigned(ListView1.Selected) then
ListView1.Selected.Caption := TCombobox(Sender).Text;
end;procedure TForm1.MyComboBoxExit(Sender: TObject);
begin
try
FComboBox.Free;
except
end;
FComboBox := nil;
end;procedure TForm1.FormDestroy(Sender: TObject);
var
lp: integer;
begin
for lp := ComponentCount - 1 downto 0 do
begin
if Components[lp] is TCombobox then
begin
TCombobox(Components[lp]).Free;
end;
end;
FComboBox := nil;
end;procedure TForm1.ListView1Click(Sender: TObject);
begin
FormDestroy(Sender);
if Assigned(ListView1.Selected) then
CreateCombobox(FComboBox, ListView1.Selected.Left, ListView1.Selected.Top);
end;end.