Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.03.2009, 13:18   #11
maladoy
delphi-ст!
Форумчанин
 
Аватар для maladoy
 
Регистрация: 02.01.2009
Сообщений: 825
По умолчанию

Цитата:
я же не знаю какие координаты у моего заголовка на DBGride
а в чем проблема их узнать?
Цитата:
нужно сделать так, чтобы при вызове события OnTitleBtnClick событие OnDblClick не вызывалось!
вопрос в том как это сделать?
заведи глоб переменную логическую и в OnTitleBtnClick- присваивай ей true а в OnDblClick-проверяй если она true то на выход!!!правда где ты ей false ,присваивать уж сам придумай
вступлю в команду разработчиков ПО на Delphi
maladoy вне форума Ответить с цитированием
Старый 26.03.2009, 13:26   #12
SlavaSH
Форумчанин
 
Регистрация: 12.08.2008
Сообщений: 174
По умолчанию

Цитата:
Сообщение от maladoy Посмотреть сообщение
а в чем проблема их узнать?
заведи глоб переменную логическую и в OnTitleBtnClick- присваивай ей true а в OnDblClick-проверяй если она true то на выход!!!
ну а как их узнать???

с глобальной переменной идея хорошая, я думал об этом... но тут возникает другая проблема:
при возникновении события OnTitleBtnClick эта переменная станет true и событие OnDblClick не возникнет, это хорошо.

Но в следующий раз когда я клацну двойным щелчком мыши уже не на заголовке событие OnDblClick опять же не возникнет, потому что переменная то не стала равной false
Это равносильно тому, чтобы при возникновении события OnTitleBtnClick выполнить такую команду
DBGrid.OnDblClick:=nil;

И событие OnDblClick уже никогда не выполнится.... а это не есть хорошо
SlavaSH вне форума Ответить с цитированием
Старый 26.03.2009, 13:28   #13
maladoy
delphi-ст!
Форумчанин
 
Аватар для maladoy
 
Регистрация: 02.01.2009
Сообщений: 825
По умолчанию

Цитата:
проверяй если она true то на выход!!!
но перед выходом присвой ей false

Цитата:
ну а как их узнать???
у формы и у грида есть свойства left и top то есть при знании разрешения экрана можно узнать координаты левого верхнего угла а так как есть еще и header.height и width у грида то и правый нижний угол узнать труда не составит
и при попадании мыши в этот прямоугольник и будет запрещено событие OnDblClick
вступлю в команду разработчиков ПО на Delphi

Последний раз редактировалось maladoy; 26.03.2009 в 13:33.
maladoy вне форума Ответить с цитированием
Старый 26.03.2009, 13:29   #14
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Не верю я в то, что это так сложно...
Ну не очень и сложно то

Кстати мож я чего-то недопонял но вот такой код:
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, TeEngine, Series, ExtCtrls, TeeProcs, Chart, StdCtrls, Grids,
  DBGrids;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Button1: TButton;
    DBGrid1: TDBGrid;
    procedure DBGrid1DblClick(Sender: TObject);
    procedure DBGrid1TitleClick(Column: TColumn);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.DBGrid1DblClick(Sender: TObject);
begin
ShowMessage('DBL');
end;

procedure TForm1.DBGrid1TitleClick(Column: TColumn);
begin
ShowMessage('TITLE');
end;

end.
Работает как полагается.
DBL по клику на заголовок не вылезает.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.03.2009, 13:37   #15
maladoy
delphi-ст!
Форумчанин
 
Аватар для maladoy
 
Регистрация: 02.01.2009
Сообщений: 825
По умолчанию

Цитата:
DBL по клику на заголовок не вылезает.
а по двойному клику?
вступлю в команду разработчиков ПО на Delphi
maladoy вне форума Ответить с цитированием
Старый 26.03.2009, 13:38   #16
SlavaSH
Форумчанин
 
Регистрация: 12.08.2008
Сообщений: 174
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Ну не очень и сложно то

Кстати мож я чего-то недопонял но вот такой код:
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, TeEngine, Series, ExtCtrls, TeeProcs, Chart, StdCtrls, Grids,
  DBGrids;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Button1: TButton;
    DBGrid1: TDBGrid;
    procedure DBGrid1DblClick(Sender: TObject);
    procedure DBGrid1TitleClick(Column: TColumn);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.DBGrid1DblClick(Sender: TObject);
begin
ShowMessage('DBL');
end;

procedure TForm1.DBGrid1TitleClick(Column: TColumn);
begin
ShowMessage('TITLE');
end;

end.
Работает как полагается.
DBL по клику на заголовок не вылезает.
если один раз кликнуть на заголовок, то конечно не сработает...
а при двойном щелчке на заголовке сработают оба события

просто не люблю, когда в программе есть недостатки)))
меня, например, бесит когда я клацаю 2 раза по заголовку и делается то, что вовсе и не нужно делать в реальной жизни может никому и в голову не прийдет так клацать, но лично мне как разработчику это ой как не нравится.
SlavaSH вне форума Ответить с цитированием
Старый 26.03.2009, 13:45   #17
maladoy
delphi-ст!
Форумчанин
 
Аватар для maladoy
 
Регистрация: 02.01.2009
Сообщений: 825
По умолчанию

а чтобы не заморачиваться используй DevExpress-овский грид!!!
вступлю в команду разработчиков ПО на Delphi
maladoy вне форума Ответить с цитированием
Старый 26.03.2009, 13:46   #18
SlavaSH
Форумчанин
 
Регистрация: 12.08.2008
Сообщений: 174
По умолчанию

Цитата:
Сообщение от maladoy Посмотреть сообщение
а чтобы не заморачиваться используй DevExpress-овский грид!!!
да нет, спасибо...
меня DBGridEh полностью устраивает, не хочу ничего другого
SlavaSH вне форума Ответить с цитированием
Старый 30.03.2009, 10:36   #19
SlavaSH
Форумчанин
 
Регистрация: 12.08.2008
Сообщений: 174
По умолчанию

спасибо всем за помощь
SlavaSH вне форума Ответить с цитированием
Старый 30.03.2009, 11:00   #20
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
а по двойному клику?
А двойной клик перехватывается одинарным по любому.
Цитата:
используй DevExpress-овский грид!!!
И придется с ним таскать его ActiveX
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработка событий от нескольких однотипных девайсов MadButcher Win Api 0 18.03.2009 15:05
Обработка событий в C++ Builder BychkovVV Помощь студентам 3 02.03.2009 01:48
Обработка событий динамически созданных объектов в С++ Builder Shafty Помощь студентам 1 26.02.2009 16:11
Обработка в Excel внешних событий pan Microsoft Office Excel 4 22.02.2009 17:26
обработка событий из консоли! nereus Общие вопросы Delphi 0 07.02.2007 15:33