Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.10.15;
Скачать: CL | DM;

Вниз

Дабл клик на гриде   Найти похожие ветки 

 
aht ©   (2006-09-28 09:02) [0]

Доброго времени суток.
Создаю в своем приложении StringGrid create"ором, но не могу сообразить как "прикрутить" нужную процедуру к событию ДаблКлик на созданном гриде?


 
Elen ©   (2006-09-28 09:10) [1]

  unit Unit1;

interface

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

type
 TForm1 = class(TForm)
   StringGrid1: TStringGrid;
   procedure FormCreate(Sender: TObject);
   procedure DBL(Sender: TObject);

 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

//********* PROCEDURE**********
procedure tform1.DBL;
//const
//Var
begin

end;
//********* END PROCEDURE*******

procedure TForm1.FormCreate(Sender: TObject);
begin
StringGrid1.OnDblClick:=dbl;
end;

end.



 
aht ©   (2006-09-28 09:47) [2]

это всё так, если грид создается вместе с формой1, но если он создается, предположим, при нажатии какого-либо батона, описание должно быть другое :-(


 
clickmaker ©   (2006-09-28 10:00) [3]


> но если он создается, предположим, при нажатии какого-либо
> батона, описание должно быть другое

в смысле другое?


 
Elen ©   (2006-09-28 10:07) [4]


>  описание должно быть другое

Глупости! Динамическое приатачивание событий остается неизменным - StringGrid1.OnDblClick:=dbl;


 
ЮЮ ©   (2006-09-28 10:11) [5]

Код обработчика, естественно, должен быть создан заранее, как метод формы
(см. tform1.DBL в [1]), а код внутри должен использовать Sender, а не какой-нибудь ButtonXXX, как можно было бы позволить себе, когда создаешь уникальный по действию обработчик для кнопки ButtonXXX непоследственно в IDE


 
aht ©   (2006-09-28 10:17) [6]

ну хорошо, почему в таком случае, появляется диалог (сделал также, как описала Elen): "Field Form4.sg2 does not have a corresponding componrnt. Remove the declaration?" а точнее:

type
 TForm4 = class(TForm)
   sg2: TStringGrid;                        //sg 2
   procedure sg2DblClick(Sender: TObject);  //sg 2
   procedure FormCreate(Sender: TObject);
...
procedure TForm4.FormCreate(Sender: TObject);
begin
sg2.OnDblClick:=sg2DblClick;
end;


 
Elen ©   (2006-09-28 10:19) [7]


> aht

потому что  sg2: TStringGrid; надо прописывать в разделе

 private
   { Private declarations }
 public
   { Public declarations }

Т,К, делфи не находит на форме явного присутствия грида


 
clickmaker ©   (2006-09-28 10:19) [8]


> [6] aht ©   (28.09.06 10:17)

перенеси sg2 в секцию private или protected


 
ЮЮ ©   (2006-09-28 10:29) [9]


> перенеси sg2 в секцию private или protected

тогда и создать его не забудь.
Потому как в [1] StringGrid уже лежал на фоме и ему только назначался обработчик.


 
umbra ©   (2006-09-28 10:34) [10]


> procedure tform1.DBL;
> //const
> //Var
> begin
>
> end;

procedure tform1.dbl(Sender: Tobject);


 
Elen ©   (2006-09-28 10:41) [11]


> umbra

см. выше :
type
TForm1 = class(TForm)
  StringGrid1: TStringGrid;
  procedure FormCreate(Sender: TObject);
  procedure DBL(Sender: TObject);
...


 
aht ©   (2006-09-28 10:50) [12]

ну вот, пасибо большое всем!
поставил описание грида в раздел

  private
   { Private declarations }

описание процедуры - в форме, присвоение процедуры - после динамического создания грида.
ЗЫ. Грид на форме не лежит, он создается динамически!!!


 
umbra ©   (2006-09-28 11:09) [13]

2 Elen ©   (28.09.06 10:41) [11]

прошу прощения! :)



Страницы: 1 вся ветка

Текущий архив: 2006.10.15;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.052 c
1-1157526893
Term
2006-09-06 11:14
2006.10.15
Как создать файл в нужной мне кодировке


3-1155885560
Valery
2006-08-18 11:19
2006.10.15
Список в DBLoocupCombobox


2-1158753837
Darkwing
2006-09-20 16:03
2006.10.15
TIBQuery. Как сделать поиск (select, like) нечувствительным


1-1157564587
Calibr
2006-09-06 21:43
2006.10.15
Как программно записать ipConfig в файл


6-1147754944
DelphiN!
2006-05-16 08:49
2006.10.15
Прикрепление атача к письму через компонент idSmtp 10х Индей