Cita:
Empezado por juniorSoft
Con esta corrección al invocar los métodos debería funcionar
|
juniorSoft si tienes razon ya con estos dos parametros ya no me genera el error eres un genio.
otra cosa es que al momento de ejecutar el programa me funciona bien pero al momento de darle en el boton para que me genere los Edit no me genera nada que podria ser.
codigo completo:
Código Delphi
[-]unit Ejecucion;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls, Vcl.Menus;
type
TMatriz = array of array of TEdit;
TfrmEjecucion = class(TForm)
Button1: TButton;
Edt: TEdit;
Panel1: TPanel;
Panel2: TPanel;
Button2: TButton;
Button3: TButton;
MainMenu1: TMainMenu;
Volver1: TMenuItem;
Button4: TButton;
Label1: TLabel;
Label2: TLabel;
procedure Button1Click(Sender: TObject);
private
public
procedure CrearEdits(Edits:TMatriz; Mx, My:integer);
procedure LlenarEdits(Edits:TMatriz; Mx, My:integer);
var
Matriz : TMatriz;
Mx,My : Integer;
end;
var
frmEjecucion: TfrmEjecucion;
implementation
{$R *.dfm}
procedure TfrmEjecucion.Button1Click(Sender: TObject);
begin
if Trim(Edt.Text) = '' then
begin
ShowMessage('Debe escribir un número');
Exit;
end;
if StrToInt(Edt.Text) >= 11 then
begin
ShowMessage('El valor tiene que ser igual o menor a 10');
Edt.Clear;
end
else
begin
Mx := StrToInt(Edt.Text);
My := StrToInt(Edt.Text);
SetLength(Matriz, Mx, My);
Button1.Visible := False;
Edt.Visible := False;
CrearEdits(Matriz,Mx,My);
llenarEdits(Matriz,Mx,My);
end;
end;
procedure TfrmEjecucion.CrearEdits(Edits: TMatriz; Mx, My: integer);
var
i,j : integer;
begin
for i := 0 to Mx-1 do
begin
for j := 0 to My-1 do
begin
Edits[i,i] := TEdit.Create(Self);
Edits[i,i].Text := '';
Edits[i,i].Top := 21 * (i + 1);
Edits[i,i].Left := 21 * (j + 1);
Edits[i,i].Width := 20;
Edits[i,i].Height := 20;
Edits[i,i].AutoSize := False;
Edits[i,i].Enabled := False;
Edits[i,j].Parent := Panel1;
Button3.Visible := True;
end;
end;
end;
procedure TfrmEjecucion.LlenarEdits(Edits: TMatriz; Mx, My: integer);
var
i,j:integer;
begin
for i := 0 to Mx-1 do
begin;
for j := 0 to My-1 do
begin
Edits[i,j].Text:=IntToStr(Random(100));
end;
end;
end;
le he modificado y ya me genera un edit pero me sale el siguiente error:
Access Violation at address 005D006D in module 'PruebasDelphi.exe'. Read of address 00000000.