Cita:
Empezado por juniorSoft
Cuando tienes la declaración de un procedimiento o función en una clase a esto es que se le conoce como método
Dentro de la clase solo tienes las cabeceras de los procedimientos o las funciones(métodos) que utilices, a estas cabeceras se le llaman Prototipos e indican que luego se van a implementar, la definición es como dice Roman
solo tienes que hacer lo siguiente
En la clase del formulario
Código:
TfrmEjecucion = class(TForm)
..........
..........
private
procedure CrearEdits(Edits:TMatriz; MaxX, MaxY:integer);
procedure LlenarEdits(Edits:TMatriz; MaxX, MaxY:integer);
public
.......
......
end;
Colocas el cursor encima de los métodos y le das a las teclas Ctrl + Shift + C para que cree el esqueleto de los métodos en la sección de implementation el entorno te crear algo como sigue:
Código:
procedure TfrmEjecucion.llenarEdits(var Edits: TArrEdits; MaxX, MaxY:integer);
begin
end;
procedure TfrmEjecucion.CrearEdits(var Edits: TArrEdits; MaxX, MaxY:integer);
begin
end;
end.
ahora solo tienes que copiar el código que esta en los procedimientos sueltos en sus correspondientes métodos.
|
Listo ya hice todo lo sugerido ya no me sale ese error pero ahora hay otro.
lo que pasa es que me sale error cuando llamo a los dos procedimientos el de LlenarEdits y CrearEdits
Código Delphi
[-]
CrearEdits(Matriz); llenarEdits(Matriz);
y mi codigo va asi:
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
procedure CrearEdits(Edits:TMatriz; MX, MY:integer);
procedure LlenarEdits(Edits:TMatriz; MX, MY:integer);
public
end;
var
frmEjecucion: TfrmEjecucion;
implementation
{$R *.dfm}
procedure TfrmEjecucion.Button1Click(Sender: TObject);
var
Matriz:TMatriz;
MX, MY:integer;
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
MY := StrToInt(Edt.Text);
MX := StrToInt(Edt.Text);
SetLength(Matriz, MX, MY);
Button1.Visible := False;
Edt.Visible := False;
end;
CrearEdits(Matriz);
llenarEdits(Matriz);
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;
end.
muchas gracias.