Öncelikle Index'i girilen Edit varsa bunu bize TEdit olarak döndüren bir fonksiyona ihtiyaç var:
Kod: Tümünü seç
function GetEditBox(Index: integer; var edt: TEdit): Boolean;
var c: TComponent;
begin
Result := False;
c := FindComponent('Edit'+IntToStr(Index));
if (c<>nil) and (c is TEdit) then
begin
edt := TEdit(c);
Result := True;
end;
end;
Edit sayısı kadar bir döngü içinde bu fonksiyon yardımıyla ilk boş olan TEdit'i bulup sırasıyla ondan sonrakilerin içeriğini bir önceki edit'e atalım:
Kod: Tümünü seç
const
EditCount = 10;
var
tmpEdit1, tmpEdit2: TEdit;
i,j: integer;
begin
for i := 1 to EditCount-1 do
begin
if GetEditBox(i, tmpEdit1) then
begin
if (tmpEdit1.Text='') then
for j := i+1 to EditCount do
begin
if GetEditBox(j, tmpEdit2) then
begin
tmpEdit1.Text := tmpEdit2.Text;
tmpEdit1 := tmpEdit2;
tmpEdit2.Text := '';
end;
end;
end;
end;
end;