Տուն
Top.Mail.Ru Moscow
Ֆորում: «Գլխավոր»;
Ընթացիկ արխիվը `2002.01.08;
Բեռնել: [xml.tar.bz2];

Down

Որոշել ընտրացանկի տարրերի համարը Գտնել նմանատիպ մասնաճյուղեր


T2   (2001-12-16 07:29) [0]

Ծրագրավորվելով ստեղծել մենյուն: Հասանելի սկավառակների անունները ես մղում եմ թռուցիկ ընտրացանկ (նախապես հայտնի չէ, թե քանի հատ կա): Ինչպե՞ս պարզել, թե որ ընտրացանկի տարրն է ընտրվել, նախընտրելի է մեկ մշակման կարգով:



KilkennyCat   (2001-12-16 08:02) [1]

Ես դա անում եմ.

создаю процедуру обработки, на которую переправляю клики со всех пунктов. типа:

procedure TForm1.popClick(Sender: TObject);
սկսել
if sender = b then showmessage("b"); //нажат пункт с именем b
if sender = a then showmessage("a"); //нажат пункт с именем а
վերջը.

конечно, при большом количестве пунктов нужно индексироваться.



T2   (2001-12-16 08:59) [2]

Да, но имена "a" и "b" неизвестны до создания. Этих пунктов меню нет при
компиляции и при попытки сравнить sender=a выдается ошибка "Undeclared identifier: "a". Мож на коде будет нагляднее?

procedure TMain.pu2Popup(Sender: TObject);
var s:tstringlist;i:byte;NewItem: TMenuItem;f:int64;d:string[1];
սկսել
pu2.Items.Clear;s:=tstringlist.create;
si.GetDriveList(s);for i:=0 to s.Count-1 do begin
NewItem := TMenuItem.Create(Self);
d:=copy(uppercase(s.strings[i]),1,1);
f:=diskfree(ord(d[1])-64);If f=-1 then f:=0;
NewItem.Caption := "&"+d+": ("+Inttostr(f)+" байт)";
newitem.OnClick:=ddd;
imagelist1.getbitmap(0,newitem.Bitmap);
pu2.items.Add(NewItem);
end;s.free;
վերջը.

procedure tmain.ddd(sender:tobject);
սկսել
if sender=c1 then showmessage("Disk < C > select"); // Так ?
վերջը.

Все верно?



KilkennyCat   (2001-12-16 09:07) [3]

um ... իմ կարծիքով, անհրաժեշտ է ստեղծել NewItem.Name (օրինակ ՝ ա)



Anatoly Podgoretsky   (2001-12-16 10:11) [4]

Դուք ունեք NewItem: Caption երկրորդ տառը սկավառակի անունն է, սա բավական է նույնականացնելու համար



Dmitriy(new)   (2001-12-16 12:09) [5]

procedure tmain.ddd(sender:tobject); var d:string[1];
սկսել
d:=copy(TMenuItem(sender).Caption,2,1);
showmessage("Disk <"+D+"> select");
// if sender=c1 then showmessage("Disk < C > select"); // Так ?
վերջը.



Петрович   (2001-12-17 04:47) [6]

Կամ դուք կարող եք փորձել օգտագործել Tag- ի գույքը:



GennadyS   (2001-12-17 08:45) [7]

Я всегда в подобных случаях применял свойство TAG. И в зависимости от кол-ва пунктов точно знал на каком кликаешся. (для всех пунктов единая процедура обработки) В этой процедуре:

case (sender as TComponent).tag of
1: // обработка диска Б
2: // --/-- С
...



Էջեր: 1 ամբողջ ճյուղը

Ֆորում: «Գլխավոր»;
Ընթացիկ արխիվը `2002.01.08;
Բեռնել: [xml.tar.bz2];

Up





Հիշողություն `0.57 ՄԲ
Ժամանակը `0.031 գ
6-22272
Ստվեր
2001-10-06 18:26
2002.01.08
Խնդիրն zakovyrkoy!


1-22012
Սոկոլ
2001-12-15 16:00
2002.01.08
Նիկոլայ


7-22440
Ռոմրուններ
2001-05-13 00:32
2002.01.08
Win98- ը հնարավորություն ունի թույլատրել ինտերնետի փոխանակումը տեղական ցանցի համար:


6-22312
Leviathan
2001-10-15 00:24
2002.01.08
Հեյ, ով գիտի Ինդիի մասին: Օգնության կարիք ունեք:


14-22335
Sergey1- ը
2001-11-05 21:44
2002.01.08
նիշերի մուտքագրում





afrikaans ալբանական արաբական հայերեն ադրբեջանական Բասկերի Բելառուսի Բուլղարիայի catalan Չինարեն (պարզեցված) Չինարեն (ավանդական) Խորվաթիայի չեխ դանիերեն հոլանդական Անգլերեն
Էստոնիայի filipino ֆիններեն ֆրանսերեն
galician վրացական գերմանական հունարեն haitian Creole եբրայերեն հինդի հունգարերեն icelandic հայերեն իռլանդական իտալական ճապոնացի Կորեայի Լատվիայի Լիտվայի մակեդոներեն Մալայերեն մալթերեն նորվեգական
պարսկական Լեհաստանի պորտուգալացի ռումինական ռուսական սերբերեն Սլովակիայի Սլովենիայի իսպաներեն սուահիլի շվեդերեն թայերեն թուրքական ուկրաինական ուրդու վիետնամերեն ուելսերեն հայերեն bengali բոսնիերեն
Cebuano Esperanto գուջարաթի հաուսա Hmong Igbo ճավաերեն kannada Khmer Lao լատիներեն մաորի մարաթի մոնղոլական նեպալերեն Punjabi Somali tamil telugu յորուբա
զուլուսերեն
Անգլերեն Французский Немецкий Итальянский Португальский Русский Испанский