Colección de citas famosas - Slogan de motivación - ¿Cómo definir una matriz de control y obtener el subíndice en delphi7?

¿Cómo definir una matriz de control y obtener el subíndice en delphi7?

Te hice una demostración: yo mismo agregué algunas funciones.

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! ! !