¿Cómo definir una matriz de control y obtener el subíndice en delphi7?
Mira primero las representaciones:
{————————————La hermosa línea divisoria comienza————
unidad ? unidad 1;
Conectar
Usando
Windows,? ¿información? SysUtils? ¿variante? ¿clase? gráficos,? Control,? Formulario,
¿Conversación? StdCtrls,? ExtCtrls
Tipo
TForm1? =?Categoría(formato t)
scrBox1:? TScrollBox
pnl1:? TPanel
btn1:? botón t;
edt2:? TEdit
lbl1:? ¿Programa TLabel
? btn1Click(remitente:? al objeto);
¿Programa? FormCreate(remitente:? al objeto);
¿Programa? Cambiar tamaño del cuadro SCR 1(remitente:? al objeto);
¿Programa? scrBox1MouseWheelDown(Remitente:?al objeto;?Shift:?TShiftState
?MousePos:?TPoint?var?Processing:?Boolean);
¿Programa? scrBox1MouseWheelUp(Remitente:?al objeto;?Shift:?TShiftState
?MousePos:?TPoint?var?Handling:?Boolean);
Privado
btn :? botón t;
FList:? ¿Lista T? //Defina una variable TList para cargar el botón.
{?Privado? ¿declarar? }
¿Programa? ¿Programa SetPosition
? btnClick(remitente:?al objeto);
Público
{?Público? ¿declarar? }
Fin;
Definir variables
Form1:? t forma 1;
Rendimiento
{$R? *.dfm}
{Ajustar posición}
¿Procedimiento? TForm1. SetPosition
Definir variable
intLeft,? intArriba:? Entero;
intCount:? Entero;
Inicio
intLeft? :=?20;
intArriba? :=?20;
¿Para qué? intCount? :=?0?¿A dónde ir? fList. ¿Contar? -?1?¿
Iniciar
btn? :=?FLista. artículos[int count];
¿Si? intIzquierda? +?btn. ¿ancho? >? scrBox1. ¿ancho? ¿Entonces
empezar
? intIzquierda? :=?20;
? intArriba? :=?intArriba? +?btn. ¿altura? +?20;
Fin;
pulsar. ¿izquierda? :=?intLeft
btn. ¿Arriba? :=?intArriba
intIzquierda? :=?intIzquierda? +?btn. ¿ancho? +?20;
Fin;
Fin;
-Haz clic en el botón para comenzar a crear.
¿Programa? TForm1.btn1Click(remitente:? al objeto);
Definir variables
intCount:? Entero;
Inicio
¿Si? StrToIntDef(edt2.
Palabra,? 1)?& gt? ¿1000? Entonces
Empezar
¿Y si? Si ingresa demasiadas pulsaciones de teclas en MessageBox (identificador, PChar), ¡la computadora se congelará! ! ! +#10#13+'¿Quieres continuar? ' ),?pista',? MB_ICONINFORMACIÓN? +?MB_YESNO)? =?señorNo? ¿Entonces
? Salir;
Fin;
{Si FList ya tiene un objeto, libérelo primero}
¿Y si? ¿Asignado (FList)? Entonces
¿Para qué? intCount? :=?0?¿A dónde ir? Lista FL. ¿Contar? -?1?Hacer
? objetar (FList[int count]). Gratis;
FList. claro;? // Después de soltarlo, borre el puntero, es decir, nulo (¡esta línea de código es muy importante, de lo contrario se producirá un error!)
{Los botones se crean de forma predeterminada}
¿Para qué? intCount? :=?1?¿Adónde ir? StrToIntDef(edt2.text,?1)?do
iniciar
btn? :=?t botón. crear (ninguno);? //Crea un control (cuando el parámetro es self, no es necesario liberarlo manualmente, se liberará automáticamente después de cerrar el formulario).
FLista. agregar(BTN);? //Pon el botón creado en FList.
¿Establecer posición? //Ajustar posición
btn. ¿padres? :=?Caja SCR 1;? //Se muestra en ScrollBox (esta línea de código es crítica, no se mostrará sin ella)
btn. ¿título? :=?Botón'+? int tostr(int recuento);
btn. ¿Al hacer clic? :=?btnHacer clic? //Crea dinámicamente el evento de clic del botón.
Fin;
scrBox1. SetFocus
Fin;
Da algunos puntos y habrás terminado de publicar. . .
{————————————Hermosa línea divisoria en ambos extremos————
PD: 1. En cuanto a la función y el uso de las variables FList anteriores, búsquelas usted mismo
2. No utilicé una matriz dinámica, la clase TList utilizada es más flexible
3. El botón que demostré se puede usar en cualquier momento. Cambia con el cambio de ventana y posición, pruébelo usted mismo;
4. Si la computadora no está configurada correctamente, se congelará.
Yo uso Delphi2007, ¿siempre y cuando tú no uses Delphi? XE(2), todo lo demás debería estar bien;
6. Pregunta nuevamente si no entiendes;
7. Publiqué el código y no encontré puntos. Estoy muy frustrado. ¡qué demonios! No se otorgarán puntos por hacer preguntas y sus esfuerzos serán en vano.
Si necesitas el código completo, ¡suma 50 puntos! ! !