Главная страница
    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.47 MB
Время: 0.04 c
6-1148039639
kernel
2006-05-19 15:53
2006.10.15
IP2HostName


15-1158737267
Ega23
2006-09-20 11:27
2006.10.15
С Днём рождения! 20 сентября


1-1157698439
Grid
2006-09-08 10:53
2006.10.15
dbgrid


2-1159273402
Stanislav
2006-09-26 16:23
2006.10.15
Рисовать в FastReport


2-1159346762
Aleks
2006-09-27 12:46
2006.10.15
Как из программы открыть окно проводника с выделенным,нужным файл





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский