ورود

View Full Version : درج در آیتم های یک منو در حالت Runtime



hadisalahi2
سه شنبه 25 بهمن 1390, 15:42 عصر
با سلام.
من یک منوی Pop Up دارم که میخوام گزینه های اون از یک جدول خونده بشن و در اون قرار بگیرن در هنگام اجرای برنامه.
تکه کد زیر رو نوشتم ولی نمیدونم چرا عمل نمیکنه. ممنون میشم از دوستان اگه راهنمایی کنند
یا حق


for I := 1 to DBForm.ADOQuery1.RecordCount do Begin
x:=TMenuItem.Create(GroupMenu);
x.Caption:=DBForm.ADOQuery1['GroupName'];
x.Name:='X'+IntToStr(i);x.Visible:=True;
//GroupMenu.Items.Add(x);
GroupMenu.Items.Insert(i,x);
DBForm.ADOQuery1.Next;
x.Destroy;
End;

Mask
سه شنبه 25 بهمن 1390, 16:09 عصر
اینجوری بنویس.
یادت نره آخره کار free کنی.

procedure TForm1.Button1Click(Sender: TObject);
var t:TMenuItem;
begin
t:=TMenuItem.Create(PopupMenu1);
t.Caption:='salam';
PopupMenu1.Items.Insert(0,t);
end;

hadisalahi2
سه شنبه 25 بهمن 1390, 16:35 عصر
خوب منم که همین رو نوشتم
چی فرقی داره با کدی که شما نوشتی؟

Mask
سه شنبه 25 بهمن 1390, 16:57 عصر
فرقش اینه که شما بعد از ساختن ، x.Destroy انجام میدید.
این کا رو در پایان کار برنامتون انجام بدید.

hadisalahi2
سه شنبه 25 بهمن 1390, 17:29 عصر
حق با شما بود.
فقط در کد بالا بابد به جای فراخوانی متد Insert با مقدار 1 باید ابتدا با مقدار 0 فراخوانی بشه.
یا حق

Mask
سه شنبه 25 بهمن 1390, 17:32 عصر
فقط در کد بالا بابد به جای فراخوانی متد Insert با مقدار 1 باید ابتدا با مقدار 0 فراخوانی بشه
اصراری نیست. شاید یکی دلش بخاد ایندکسش رو از یک شروع کنه.:چشمک: