Casa
Top.Mail.Ru Yandeks.Metrika
Foro: "Principal";
Archivo actual: 2002.01.08;
Descargar: [xml.tar.bz2];

abajo

Determine el número de elemento del menú Encontrar ramas similares


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

Crea un menú programáticamente. Introduzco en el menú emergente los nombres de los discos disponibles (cuántos hay de antemano). ¿Cómo saber qué elemento del menú se seleccionó, preferiblemente en un procedimiento de procesamiento?



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

Hago esto

Creo un procedimiento de procesamiento al que reenvío clics de todos los elementos. tipo:

procedimiento TForm1.popClick (Sender: TObject);
comenzar
si sender = b entonces showmessage ("b"); // haga clic en el elemento llamado b
si sender = a entonces showmessage ("a"); // elemento presionado con el nombre a
fin;

Por supuesto, con una gran cantidad de puntos necesita ser indexado.



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

Sí, pero los nombres "a" y "b" son desconocidos antes de la creación. No hay estos elementos de menú cuando
al compilar e intentar comparar el remitente = a, se muestra el error "Identificador no declarado:" a ". ¿Puede el código ser más claro?

procedimiento TMain.pu2Popup (Sender: TObject);
var s: tstringlist; i: byte; NewItem: TMenuItem; f: int64; d: string [1];
comenzar
pu2.Items.Clear; s: = tstringlist.create;
si.GetDriveList (s); para i: = 0 para s.Count-1 comenzar
NewItem: = TMenuItem.Create (Self);
d: = copia (mayúsculas (s.strings [i]), 1,1);
f: = disco libre (ord (d [1]) - 64); Si f = -1 entonces f: = 0;
NewItem.Caption: = "&" + d + ": (" "+ Inttostr (f) +" byte) ";
newitem.OnClick: = ddd;
imagelist1.getbitmap (0, newitem.Bitmap);
pu2.items.Add (NewItem);
fin;
fin;

procedimiento tmain.ddd (remitente: objeto);
comenzar
si sender = c1 entonces showmessage ("Disk <C> select"); // ¿Entonces?
fin;

De acuerdo



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

um ... en mi opinión, necesita crear y NewItem.Name (por ejemplo, a)



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

Tienes NewItem.Caption la segunda letra es el nombre del disco, esto es suficiente para la identificación



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

procedimiento tmain.ddd (remitente: objeto); var d: string [1];
comenzar
d: = copia (TMenuItem (remitente) .Caption, 2,1);
showmessage ("Disco <" + D + "> seleccionar");
// si sender = c1 entonces showmessage ("Disk <C> select"); // ¿Entonces?
fin;



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

¡Y puedes intentar usar la propiedad Tag!



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

Siempre he aplicado la propiedad TAG en tales casos. Y dependiendo de la cantidad de puntos, sabía exactamente en qué clic. (para todos los elementos un solo procedimiento de procesamiento) En este procedimiento:

caso (remitente como TComponent) .tag de
1: // disco B de procesamiento
2: // - / - C
...Venta de Casas y Condominios en Calgary. Fernando Aramburu agente inmobiliario



Páginas: 1 rama entera

Foro: "Principal";
Archivo actual: 2002.01.08;
Descargar: [xml.tar.bz2];

arriba





Memoria: 0.56 MB
Tiempo: 0.024 c
4-22508
Gluka
2001-11-06 00:18
2002.01.08
¿Es posible cambiar el cursor sobre la ventana de otra persona?


3-21957
KMM
2001-11-29 15:31
2002.01.08
En el curso del programa, es necesario crear y eliminar una tabla muchas veces ...


3-21898
Delirio
2001-11-30 18:56
2002.01.08
¿Es posible ejecutar asincrónicamente el procedimiento almacenado?


4-22506
gluka
2001-11-06 00:16
2002.01.08
¿Cómo meter un archivo * .dll en un archivo exe?


1-22065
vencedor
2001-12-19 07:30
2002.01.08
sobre el navegador web





africaans albanés Arabic armenio Azerbaiyán vasco Bielorruso Bulgarian Catalán Chino (simplificado) Chino (tradicional) Croata Checo Danés Dutch Inglés Estonia filipina Finnish French
gallego georgiano Alemán Griego criollo haitiano Hebreo hindi Húngaro islandés Indonesian irlandés Italiano Japonés Korean letón lituano macedonio Malay maltés Noruego
persa polaco Portuguese Rumano Ruso Serbio Slovak Esloveno Español swahili Sueco Thai turco ucranio Urdu vietnamita galés yídish bengalí bosnio
cebuano esperanto gujarati hausa hmong igbo javanés kannada khmer lao latín maorí marathi mongol nepali punjabi somalí Tamil telugu yoruba
zulú
Английский Francés Alemán Italiano portugués Русский Español