aşağıdaki kodda urungrup tablosundaki kayıtlar doğrultusunda TcxTabSheet ekliyorum. urun tablosunda kayıtlı olan ürünleri de buton olarak o tabsheet'lerin içerisine ekliyorum. tabi bide porsiyonlarım var onlarıda popup olarak ekliyorum. istediğim şu; her butonun popupları var ve butonları tıkladığımda (sağ tıkladığımda sorun yok) popup açılsın istiyorum. popupac diye bir prosedür ekledim ve butonların onclick olayına bunu atadım. şimdi popupac prosedürüne ne eklemem. gerek birkaç şey denedim ama hep hata ile karşılaştım. yardımlarınız için şimdiden teşekkür ederim. tabiki eğer yanlış yaptığım şeyler varsa onları da dile getirmenizi isterim.
Kod: Tümünü seç
procedure TMasaAc.popupac(Sender: tobject);
begin
end;
Kod: Tümünü seç
procedure TMasaAc.FormCreate(Sender: TObject);
var
ust,sol,genis,yuksek,i,a,b:integer;
begin
dm.urungrup.Active:=false;
dm.urungrup.SQL.Clear;
dm.urungrup.SQL.Add('select * from urungrup');
dm.urungrup.Open;
dm.urungrup.First;
for i:= 1 to dm.urungrup.RecordCount do
begin
grup[i]:=TcxTabSheet.Create(self);
grup[i].CAPTION:=dm.urungrupgrup.AsString;
grup[i].PageControl:=page_urun;
dm.urun.Active:=false;
dm.urun.SQL.Clear;
dm.urun.SQL.Add('select * from urun');
dm.urun.SQL.Add('where urungrup=:s');
dm.urun.Parameters.ParamByName('s').Value:=dm.urungrupid.AsInteger;
dm.urun.active:=true;
dm.urun.First;
sol:=0; yuksek:=0; ust:=0; genis:=0;
for a := 1 to dm.urun.RecordCount do
begin
urun[a]:=tcxbutton.create(self);
urun[a].CAPTION:=dm.urunurun.AsString;
urun[a].Tag:=dm.urunid.AsInteger;
urun[a].Caption:=dm.urunurun.AsString;
urun[a].Parent:=grup[i];
urun[a].onclick:=popupac;
dm.porsiyon.Close;
dm.porsiyon.SQL.Clear;
dm.porsiyon.SQL.Add('select * from porsiyon');
dm.porsiyon.SQL.Add('where');
dm.porsiyon.SQL.Add('urunid=:urunid');
dm.porsiyon.Parameters.ParamByName('urunid').Value:=dm.urunid.AsInteger;
dm.porsiyon.Open;
dm.porsiyon.First;
popup[a]:=tdxbarpopupmenu.Create(self);
for b := 1 to dm.porsiyon.RecordCount do
begin
with popup[a].ItemLinks.AddButton.Item as TdxBarButton do
begin
ButtonStyle := bsDefault;
Tag := dm.porsiyonid.AsInteger;
Caption := dm.porsiyonporsiyon.AsString+' '+dm.porsiyonfiyat.AsString+' TL';
OnClick := urunekle;
end;
dm.porsiyon.Next;
end;
urun[a].PopupMenu:=popup[a];
popup[a].Font.Size:=15;
if a=1 then
begin
ust:=20;
sol:=0;
end
else
begin
if (GRUP[i].Width - sol ) div 100 = 1 then
begin
ust:=ust+80;
sol:=0;
end else
SOL:=sol+150;
end;
urun[a].Left:=sol;
urun[a].Top:=ust;
urun[a].Height:=80;
urun[a].Width:=150;
dm.urun.Next;
end;
dm.urungrup.Next;
end;
end;