Форум: "Начинающим";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
ВнизКак сделать обработчик события в консоли? Найти похожие ветки
← →
leklerk © (2012-04-13 13:45) [0]Добрый день. Создаю в консоли форму с кнопкой и не могу сделать обработчик события OnClick кнопки. Как это сделать, помогите?
← →
ProgRAMmer Dimonych © (2012-04-13 13:46) [1]Form154231.OnClick := MethodName;
Так?
← →
Плохиш © (2012-04-13 13:46) [2]procedure blablabla(<parameters>) of object;
← →
Ega23 © (2012-04-13 13:46) [3]
procedure Txxx.ButtonOnClick(Sender: TObject);
....
Button1.OnClick := ButtonOnClick;
← →
leklerk © (2012-04-13 13:49) [4]ProgRAMmer Dimonych, Плохиш, где это писать?
← →
Плохиш © (2012-04-13 13:51) [5]
> где это писать?
Где больше нравится, там и пиши. Но пора программиста нанимать.
← →
leklerk © (2012-04-13 13:53) [6]Ega23, у меня ругается, что несовместимые типы.
← →
Ega23 © (2012-04-13 13:59) [7]
> Ega23, у меня ругается, что несовместимые типы.
Попробуй поменять местами.
← →
Anatoly Podgoretsky © (2012-04-13 14:02) [8]> leklerk (13.04.2012 13:53:06) [6]
Сказали же - программиста.
← →
Омлет © (2012-04-13 14:07) [9]
TMyForm = class(TForm)
private
procedure ButtonClickEvent(Sender: TObject);
end;
{ TMyForm }
procedure TMyForm.ButtonClickEvent(Sender: TObject);
begin
Caption := "Button clicked";
end;
...
begin
...
FORM1 := TMyForm.Create(nil);
...
Button1 := TButton.Create(Form1);
with Button1 do
begin
Parent := Form1;
OnClick := Form1.ButtonClickEvent;
end;
...
end.
← →
Омлет © (2012-04-13 14:11) [10]Не совсем понятно - зачем вам динамическое надписей и кнопок на форме? Создайте форму, как обычно - в дизайнере форм. Разместите на ней все нужные компоненты, назначьте обработчики событий. Эту форму можно динамически создавать и показывать в нужный момент.
← →
leklerk © (2012-04-13 14:27) [11]Омлет, у меня ошибка: несовместимые типы TNotifyEvent и Procedure.
А нужно это потому, что сообщение должно выдаваться только, если ADODataSet вернет хотя бы одну запись. Если делать в дизайнере форм, то пришлось бы уничтожать форму из события OnCreate.
← →
leklerk © (2012-04-13 14:28) [12]Омлет, спасибо за помощь.
← →
Омлет © (2012-04-13 14:32) [13]
> несовместимые типы TNotifyEvent и Procedure.
Код покажите.
> сообщение должно выдаваться только, если ADODataSet вернет
> хотя бы одну запись. Если делать в дизайнере форм, то пришлось
> бы уничтожать форму из события OnCreate.
Возможно, вы не понимаете чего-то. Не нужно уничтожать форму в OnCreate. Динамическое создание и удаление модальной формы выглядит примерно так:var
MyModalForm: TMyForm;
begin
MyModalForm := TMyForm.Create(nil);
try
MyModalForm.ShowModal;
finally
MyModalForm.Free;
end;
end;
← →
Ega23 © (2012-04-13 14:32) [14]
> А нужно это потому, что сообщение должно выдаваться только,
> если ADODataSet вернет хотя бы одну запись. Если делать
> в дизайнере форм, то пришлось бы уничтожать форму из события
> OnCreate.
Почему?
> несовместимые типы TNotifyEvent и Procedure.
Естественно. Тебе уже несколько раз сказали, что метод надо использовать. А не процедуру.
← →
leklerk © (2012-04-13 14:46) [15]
> Код покажите.program Achtung_console;
uses
Windows,
Messages,
SysUtils,
Variants,
Classes,
Graphics,
Controls,
Forms,
Dialogs,
DB,
ADODB,
Grids,
DBGrids,
ExtCtrls,
ActiveX,
StdCtrls;
type
TForm1 = class(TForm)
private
procedure ButtonClickEvent(Sender: TObject);
end;
procedure TForm1.ButtonClickEvent(Sender: TObject);
begin
Caption := "Button clicked";
end;
var ADO1: TADODataSet;
Form1: TForm;
Label1: TLabel;
Button1: TButton;
SH, SW: Integer;
begin
{ TODO -oUser -cConsole Main : Insert code here }
try
CoInitialize(nil);
ADO1 := TADODataSet.Create(nil);
with ADO1 do begin
ConnectionString:="Provider=SQLOLEDB.1;Integrated Security=SSPI;"+
"Persist Security Info=False;Initial Catalog=Work_pk;"+
"Data Source=PROG\SQLEXPRESS";
CommandType := cmdText;
CommandText := "select * from Табель where Корректировка=1";
Open;
end;
if (not ADO1.IsEmpty) then begin
SH := Screen.Height;
SW := Screen.Width;
try
Form1 := TForm1.Create(nil);
with Form1 do begin
Position := poScreenCenter;
Height := 400;
Width := 400;
end;
Label1 := TLabel.Create(Form1);
with Label1 do begin
Parent := Form1;
Caption := "Вас ждут заказы!";
Left := 120;
Top := 50;
Font.Size := 15;
Font.Color := clRed;
end;
Button1 := TButton.Create(Form1);
with Button1 do begin
Parent := Form1;
Left := 160;
Top := 100;
Caption := "OK";
OnClick := TForm1.ButtonClickEvent;
end;
Form1.ShowModal;
finally
Form1.Free();
end;
end;
finally
ADO1.Free();
CoUninitialize;
end;
end.
← →
Сергей М. © (2012-04-13 14:50) [16]
> leklerk © (13.04.12 14:46) [15]
Что-то консолью тут не пахнет ..
Где волшебное слово "{$APPTYPE CONSOLE}" ?
← →
Ega23 © (2012-04-13 14:51) [17]
> OnClick := TForm1.ButtonClickEvent;
Вот тут ошибка
← →
Плохиш © (2012-04-13 14:56) [18]
> leklerk © (13.04.12 14:46) [15]
>
>
Чем MessageBox и MessageDlg не угодили?
← →
Нанятый программист (2012-04-13 14:59) [19]> Плохиш © (13.04.12 13:51) [5]
Но пора программиста нанимать.
За последние год - полтора другого рода ответов (комментариев) от него не было
:)
← →
Омлет © (2012-04-13 15:19) [20]
> OnClick := TForm1.ButtonClickEvent;
OnClick := Form1.ButtonClickEvent;
← →
Сергей М. © (2012-04-13 15:28) [21]
> Нанятый программист (13.04.12 14:59) [19]
Тебе ли жить в печали ?)
Без работы уж точно не останешься - вон реклама тебе какая).. И что характерно - халявная)
← →
sniknik © (2012-04-13 18:32) [22]> Эту форму можно динамически создавать и показывать в нужный момент.
сделать проверку с выходом до создания главной формы в файле обычной программы... и вообще ничего больше не нужно менять.
уж точно не писать подобные "консоли".
> За последние год - полтора другого рода ответов (комментариев) от него не было
> :)
и, что характерно, все по делу...
+ ADO датасет без ADO коннекта, программа без обработки ошибок, еще преподнесет "пару сюрпризов".
к примеру сделай ошибку в строке коннекта.
← →
leklerk © (2012-04-16 08:31) [23]
> OnClick := Form1.ButtonClickEvent;
Тогда другая ошибка: Undeclared identifier: "ButtonClickEvent".
← →
leklerk © (2012-04-16 08:52) [24]Ладно, уже подсказали, вопрос снят. :)
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.071 c