Кнопка прямо в таблице

Вопросы новичков или обсуждения без определенной тематики (посты в дальнейшем будут перемещены в соответствующие разделы форума)
Аватара пользователя
Samlam
Сообщения: 12
Зарегистрирован: 01 окт 2018, 08:31

Кнопка прямо в таблице

Сообщение Samlam » 07 май 2019, 00:13

Доброго здравия!
Давно задаюсь вопросом. Как сделать кнопку непосредственно в самой таблице с данными?
Например что бы при нажатии на кнопку можно было совершить звонок. Как показано на скрине ниже.
Либо при нажатии на кнопку вносились данные в строку. Это было бы очень удобно, много раз упирался в этот момент, но не придумал как его реализовать.
Изображение
В какую сторону копать?

Теги:

Аватара пользователя
Runenkov
Сообщения: 20
Зарегистрирован: 01 мар 2018, 14:39

Кнопка прямо в таблице

Сообщение Runenkov » 10 май 2019, 09:38

Ну вот как-то так...
Вложения
CALL_BTN.zip
(45.32 КБ) 25 скачиваний

Аватара пользователя
Владимир
Администратор
Сообщения: 587
Зарегистрирован: 10 фев 2018, 18:27
Откуда: Белгород
Контактная информация:

Кнопка прямо в таблице

Сообщение Владимир » 10 май 2019, 13:10

Без кнопки - да, полегче будет...
Чуть добавил по-мелочи:

Код: Выделить всё

var S,V,N:string;

procedure GetTitleCaption(Column: TColumn);
begin
 S:= Column.Title.Caption;
 if Column.Field.Value=Null then exit else
 V := Column.Field.Value;
  If Self.Fields['Телефон'] =Null then exit else
  N := Self.Fields['Телефон'];
  if V='ПОЗВОНИТЬ' then  debug ('Call '+ N)
end;

procedure ControlFocus(Sender: TObject);
var C:TWinControl;
begin
if Trim(S)='' then exit;
 C:=TWinControl(Self.FindComponentByFieldName(S));
 if C.Parent<>Self
   then
     if C.Parent is TdxTabSheet then
     TdxTabSheet(C.Parent).PageControl.ActivePageIndex:=
     TdxTabSheet(C.Parent).TabIndex;
     C.SetFocus;
end;
procedure CallNo(Sender: TOBject);
begin
  If Self.Fields['Телефон'] =Null then exit else
  N := Self.Fields['Телефон'];
  debug ('Call '+ N)
end;

procedure SetCursor(Sender: TObject; Shift: TShiftState; X, Y: Integer);
var i:integer;
C:TColumn;
G:TdxGrid;
CW:integer;
begin
  G:=TdxGrid(Sender);
  for i:=0 to G.Columns.Count-1 do
  begin
  C:=G.Columns[i];
  CW:=CW+C.Width;
  if (X<=CW)and (X>=CW-C.Width) then
   G.Cursor:=crHandPoint else
   G.Cursor:=crDefault;
  end;
end;

procedure Form_Create;
begin
  Self.Grid.OnCellClick:=@GetTitleCaption;
  Self.Grid.OnMouseMove := @SetCursor;
  Self.EditWindow.OnShow:=@ControlFocus;
  CallBtn.OnClick:= @CallNo;
end;

Аватара пользователя
Samlam
Сообщения: 12
Зарегистрирован: 01 окт 2018, 08:31

Кнопка прямо в таблице

Сообщение Samlam » 11 май 2019, 23:37

Огромнейшее спасибо! Это то что нужно. И вариант без кнопки даже лучше и удобнее.

Быстрый ответ

Смайлики
:-) ;-) :-( :-[ :-D :-P O_O :bye: :good: :help: :lol: :ok: :pardon: :sorry: :yes:
Ещё смайлики…
Загрузить изображение
 
   
Ответить