Форум: "Основная";
Текущий архив: 2003.05.01;
Скачать: [xml.tar.bz2];
ВнизРеализация события клика кнопки в окне созданном динамически Найти похожие ветки
← →
R (2003-04-18 01:58) [0]Вот пример функции из исходников Делфи, как в ней реализовать
механизм не закрывая это модальное окно клика по кнопке и
выполнения по этому клику например Beep ?
function InputQuery(const ACaption, APrompt: string;
var Value: string): Boolean;
var
Form: TForm;
Prompt: TLabel;
Edit: TEdit;
DialogUnits: TPoint;
ButtonTop, ButtonWidth, ButtonHeight: Integer;
begin
Result := False;
Form := TForm.Create(Application);
with Form do
try
Canvas.Font := Font;
DialogUnits := GetAveCharSize(Canvas);
BorderStyle := bsDialog;
Caption := ACaption;
ClientWidth := MulDiv(180, DialogUnits.X, 4);
ClientHeight := MulDiv(63, DialogUnits.Y, 8);
Position := poScreenCenter;
Prompt := TLabel.Create(Form);
with Prompt do
begin
Parent := Form;
AutoSize := True;
Left := MulDiv(8, DialogUnits.X, 4);
Top := MulDiv(8, DialogUnits.Y, 8);
Caption := APrompt;
end;
Edit := TEdit.Create(Form);
with Edit do
begin
Parent := Form;
Left := Prompt.Left;
Top := MulDiv(19, DialogUnits.Y, 8);
Width := MulDiv(164, DialogUnits.X, 4);
MaxLength := 255;
Text := Value;
SelectAll;
end;
ButtonTop := MulDiv(41, DialogUnits.Y, 8);
ButtonWidth := MulDiv(50, DialogUnits.X, 4);
ButtonHeight := MulDiv(14, DialogUnits.Y, 8);
with TButton.Create(Form) do
begin
Parent := Form;
Caption := SMsgDlgOK;
ModalResult := mrOk;
Default := True;
SetBounds(MulDiv(38, DialogUnits.X, 4), ButtonTop, ButtonWidth,
ButtonHeight);
end;
with TButton.Create(Form) do
begin
Parent := Form;
Caption := SMsgDlgCancel;
ModalResult := mrCancel;
Cancel := True;
SetBounds(MulDiv(92, DialogUnits.X, 4), ButtonTop, ButtonWidth,
ButtonHeight);
end;
if ShowModal = mrOk then
begin
Value := Edit.Text;
Result := True;
end;
finally
Form.Free;
end;
end;
← →
DJ_Sedoy (2003-04-18 05:15) [1]Логично предположить, что убрать MedalResult:=true?
Если я правильно понял вопрос
← →
Palladin (2003-04-18 07:16) [2]самое очевиднейшее это назначить св-во OnClick нужному TButton
← →
R (2003-04-18 08:11) [3]>Palladin ©
А как его назначить ведь форма создана динамичеки и кнопки тоже.
Понемаю вопрос ламерский но все же как.Приведите пример.
← →
Palladin (2003-04-18 08:17) [4]у тебя пример под носом...
в файле с главной формой...
создай кнопку визуально и назначь ей обработчик OnClick и посмотри что добавилось в проекте и как это оформлено, а потом учитывай что события у компонентов это свойства которые можно присваивать...
← →
R (2003-04-18 08:51) [5]Я всеже не понимаю как это сделать динамически. Приведите пример кода.
← →
Skier (2003-04-18 09:23) [6]>R
http://www.delphimaster.ru/cgi-bin/faq.pl?look=1&id=988625051&n=19
← →
Palladin (2003-04-18 09:27) [7]идем в справку и видим
property OnClick: TNotifyEvent;
идем дальше, видим:
type TNotifyEvent = procedure (Sender: TObject) ofobject;
думаем, думаем еще (на всякий случай)
догадались и пишем в главной форме
procedure OnMyButtonClick(Sender:TObject);
потом
описываем ее
procedure TForm1.OnMyButtonClick(Sender:TObject);
begin
Application.ShowMessage("Где моя голова была раньше?!","Эврика!);
end;
в коде дин создания твоей формы пишем (что бы достучатся до класса TForm1, мы поместим твою процедуру создания в модуль с главной формой)
with TButton.Create(Form) do
begin
Parent := Form;
Caption := SMsgDlgOK;
ModalResult := mrOk;
Default := True;
SetBounds(MulDiv(38, DialogUnits.X, 4), ButtonTop, ButtonWidth,
ButtonHeight);
OnClick:=TForm1.OnMyButtonClick;
end;
← →
R (2003-04-18 09:38) [8]Спасибо за помощь.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.05.01;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.744 c