Главная страница
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.035 c
15-1158740484
Layner
2006-09-20 12:21
2006.10.15
Должны ли банки после погашения кредита выдавать справки о его


3-1155812178
Antoxa2005
2006-08-17 14:56
2006.10.15
Подскажите, а как монопольно открыть бд FB и что будет...


2-1159206788
dreamse
2006-09-25 21:53
2006.10.15
TBlobStream


8-1142727130
ivane
2006-03-19 03:12
2006.10.15
Мультимедийные клавиши


2-1159533557
KyRo
2006-09-29 16:39
2006.10.15
Открывается ли файл