I have a program in which I need to update a database table with information entered into edit boxes, with a button at the end to do the updating. However, the form is created at runtime and all the elements including the button are also created in the same way. I figured a way to allow the database arguments would be to define a procedure to update the database such as:
procedure UpdateDatabase(Field1,Field2,Field3:string);
begin
//update database here...
end;
Then assign the OnClick event of my button to this procedure with the parameters pre filled like:
Button1.OnClick := UpdateDatabase(Edit1.text,Edit2.Text,Edit3.Text);
However the types are incompatible as it requires a different data type. I also noticed that parameters can't usually be passed into a OnClick function. Is there actually a way of achieving what I have proposed?
This is my current create button code:
function buttonCreate(onClickEvent: TProcedure;
left: integer; top: integer; width: integer; height: integer;
anchors: TAnchors; caption: string; parent: TWinControl; form: TForm;): TButton;
var
theButton: TButton;
begin
theButton := TButton.Create(form);
theButton.width := width;
theButton.height := height;
theButton.left := left;
theButton.top := top;
theButton.parent := parent;
theButton.anchors := anchors;
//theButton.OnClick := onClickEvent;
theButton.Caption := caption;
result := theButton;
end;
Any and all help appreciated!
(Sender: TObject). Then, wrap your own procedure inside of that.TButtonorTForm, so the Pascal tag does not apply here. If your question is about the generic Pascal language, include that tag. If it's about the Delphi language (which is not Pascal, although it has it's origins in that language), use the Delphi tag and omit the Pascal tag.