Ver Mensaje Individual
  #7  
Antiguo 30-10-2006
Delar Delar is offline
Miembro
 
Registrado: oct 2006
Posts: 90
Reputación: 18
Delar Va por buen camino
A ver. Me explico. Yo lo que estoy haciendo es una DLL. Esta DLL es para crear objetos en tiempo de ejecución. Entonces, como le daria una accion a un boton creado en tiempo de ejecución?
Aquí os dejo el source de la DLL (No está acabada):
Código Delphi [-]
library GMControls;

uses
  Windows,
  Messages,
  SysUtils,
  Variants,
  Classes,
  Graphics,
  Controls,
  Forms,
  Dialogs,
  StdCtrls,
  Menus;

var button: array[0..32767] of TButton;
var edit: array[0..32767] of TEdit;
var check: array[0..32767] of TCheckBox;
var buttonv: integer=1;
var editv: integer=1;
var checkv: integer=1;
{$R *.res}
//Button Functions
function CreateButton(pw,x,y,w,h:real):real; cdecl;
begin
button[buttonv]:= TButton.Create(application.MainForm);
button[buttonv].Left := round(x);
button[buttonv].Top := round(y);
button[buttonv].Height := round(h);
button[buttonv].Width := round(w);
button[buttonv].Caption := '';
button[buttonv].ParentWindow := round(pw);
button[buttonv].Default := False;
buttonv := buttonv+1;
Result:= buttonv-1;
end;
function ButtonSetCaption(at:double;cpt:string):double; cdecl;
begin
button[round(at)].Caption := cpt;
end;
function ButtonSetEnabled(at:double;enabled: real):real; cdecl;
begin
if enabled = 0 then
begin
button[round(at)].Enabled := false;
end
else
begin
button[round(at)].Enabled := True;
end;
Result := enabled;
end;
//Edit Functions
function CreateEdit(pw,x,y,w,h:real):real; cdecl;
begin
edit[editv]:= TEdit.Create(nil);
edit[editv].Text := '';
edit[editv].Left := round(x);
edit[editv].Top := round(y);
edit[editv].Width := round(w);
edit[editv].Height := round(h);
edit[editv].Visible := True;
edit[editv].ParentWindow := round(pw);
editv := editv+1;
Result := editv-1;
end;
function EditSetText(at:double;text:string):double; cdecl;
begin
edit[round(at)].Text := text;
end;
function EditSetEnabled(at:double;enabled: real):real; cdecl;
begin
if enabled = 0 then
begin
edit[round(at)].Enabled := false;
end
else
begin
edit[round(at)].Enabled := True;
end;
Result := enabled;
end;
//Check Functions
function CheckBoxCreate(pw,x,y,w,h:real):real; cdecl;
begin
check[checkv]:= TCheckBox.Create(nil);
check[checkv].Left := round(x);
check[checkv].Top := round(y);
check[checkv].Width := round(w);
check[checkv].Height := round(h);
check[checkv].ParentWindow := round(pw);
check[checkv].Color := clWhite;
checkv := checkv+1;
result := checkv-1;
end;
//--------------------
//Exports
exports CreateButton, ButtonSetCaption, CreateEdit, ButtonSetEnabled, EditSetText, EditSetEnabled,
CheckBoxCreate;
//--------------------
begin
end.

Saludos, y a ver si alguien lo soluciona!
PD: dec, gracias por la explición, era realmente buena.
Responder Con Cita