La verdad es que sigo sin entender lo que buscas pero vamos a aclarar algunos puntos, y quizá de ahí puedas partir.
El colocar los edits dentro de un panel es nada más para facilitar la inicialización del arreglo mediante un ciclo
for, pero si tienes varios controles mezclados y no todos ellos han de formar parte del arreglo, siempre puedes optar por hacer la asignación directa:
Código Delphi
[-]
Edits[0] := UnEdit;
Edits[1] := OtroEdit;
Edits[2] := UnEditMas;
Ahora, para efectos de eventos asociados a estos edits, te conviene, además, asignar a cada edit el índice que ocupa en el arreglo. Esto puedes hacerlo en la propiedad Tag del edit.
Código Delphi
[-]
for J := 0 to Length(Edits) - 1 do
begin
Edit[J].Tag := J;
Edit[J].OnExit := EditExit;
Edit[J].OnKeyPressed := EditKeyPressed;
...
end;
EditExit y EditKeyPressed son métodos que declaras manualmente con los mismos parámetros que los eventos normales:
Código Delphi
[-]
type
TForm1 = class(TForm)
private
procedure EditExit(Sender: TObject);
procedure EditKeyPressed(Sender: TObject; var Key: Char);
end;
Nota que los pones en la sección
private, porque no los genera el IDE sino tú mismo.
Entonces, todos los edits del arreglo comparten los mismos manejadores de eventos, así que en éstos, debes distinguir cuál es el que está generando el evento, y para ello usas el Tag que asignaste:
Código Delphi
[-]
procedure TForm1.EditExit(Sender: TObject);
var
Edit: TEdit;
begin
Edit := Sender as TEdit;
case Edit.Tag of
0: ...;
1: ...;
2: ...;
...
end;
end;
// Saludos