나는 편집을 위해 입력 된 정보로 데이터베이스 테이블을 업데이트해야하며, 버튼을 눌러 업데이트 할 필요가있는 프로그램이 있습니다. 그러나 런타임에 폼이 만들어지고 버튼을 비롯한 모든 요소가 같은 방식으로 만들어집니다.런타임에 델파이 버튼의 OnClick 프로 시저 설정하기
:처럼 작성 사전procedure UpdateDatabase(Field1,Field2,Field3:string);
begin
//update database here...
end;
는 그 다음 매개 변수를 사용하여이 절차에 내 단추의 OnClick 이벤트를 할당 : I 데이터베이스 인수는 데이터베이스 등을 업데이트하는 절차를 정의하는 것입니다 수있는 방법을 생각
Button1.OnClick := UpdateDatabase(Edit1.text,Edit2.Text,Edit3.Text);
그러나 형식에 다른 데이터 형식이 필요하므로 호환되지 않습니다. 나는 또한 매개 변수가 일반적으로 OnClick 함수로 전달 될 수 없다는 것을 알아 차렸다. 실제로 내가 제안한 것을 성취 할 수있는 방법이 있습니까?
이는 현재의 내 생성 버튼 코드가있다 :
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;
모든 모든 도움에 감사!
예, 귀하의 절차는 이벤트 유형 (발송 인 : TObject)의 규칙을 준수해야합니다. 그런 다음 자신의 프로 시저를 그 안에 넣습니다. –
예를 들려 줄 수 있습니까? 죄송합니다. 델파이에 조금 익숙합니다. –
단추 컨트롤 이전 또는 이후에 편집 컨트롤이 만들어 졌습니까? –