Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
dnetclah
22 / 0 / 0
Регистрация: 27.06.2013
Сообщений: 31
1

Вставка текста через кнопку

28.06.2013, 10:34. Просмотров 456. Ответов 3
Метки нет (Все метки)

Всем доброго времени суток. Нужна помощь в написании кода. Имеется окно результатов StringGrid3 имеются кнопки на форме 1) Ошибка ТСО, 2)Ошибка СБЫТа, 3) Ошибка опертора.
Имеется столбец примечаний и изменено.
В столбеце примечания нужно сделать так что бы при нажатии на ячейку в этом столбце, мы нажимаем на кномпу "Ошибка оператора или Ошибка ТСО" текст который написан на кнопке автоматически вставлялся в эту ячейку.
код кнопки которая вычисляет разногласия показаний эл.счетчиков.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
  //Разногласия поазаний
procedure TForm1.Button11Click(Sender: TObject);
var
  i, k: integer;
begin
for i := 1 to n3 do
  for k := 1 to 9 do
StringGrid3.Cells[k,i] := '';
StringGrid3.Visible := True;
StringGrid3.ColCount := 9;
StringGrid3.Cells[0,0] := '№ п/п';
StringGrid3.Cells[1,0] := 'Наименование потребителя';
StringGrid3.Cells[2,0] := 'объект потребителя';
StringGrid3.Cells[3,0] := '№ счетчика';
StringGrid3.Cells[4,0] := 'Потребление по данным ОАО "Смоленскэнергосбыт"';
StringGrid3.Cells[5,0] := 'Потребление по данным ООО "Прогресс плюс"';
StringGrid3.Cells[6,0] := 'Разногласия';
StringGrid3.Cells[7,0] := 'примечания' ;
StringGrid3.Cells[8,0] := 'изменено' ;
 
k := 0;
for i := 1 to n3 do
 k := k + 1;
    StringGrid3.Cells[0,k] := itog[1,i];
    StringGrid3.Cells[1,k] := itog[3,i];
    StringGrid3.Cells[2,k] := itog[5,i];
    StringGrid3.Cells[3,k] := itog[4,i];
    StringGrid3.Cells[4,k] := itog[10,i];
    StringGrid3.Cells[5,k] := itog[14,i];
    StringGrid3.Cells[6,k] := FloatTostr(StrToFloat(itog[14,i]) - FloatToStr(StrToFloat(itog[10,i]));
  end;
StringGrid3.RowCount := k;
end;
Пример работы программы на скриншоте.
0
Миниатюры
Вставка текста через кнопку  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.06.2013, 10:34
Ответы с готовыми решениями:

Нажать на кнопку btn1 через enter + проверка текста
Хочу реализовать такую процедуру, что, если ты ввел в edt1 какой либо текст, нажав на Enter,...

Вставка текста
Пользователь вводит в едит число и в ричедит должна выводится строка, которая будет повторяться...

Вставка текста
В окне есть чат,который открывается с помощью кнопки ф6 keybd_event(VK_F6, 0, 0, 0);...

Вставка определенного текста
Например нужно мне вставить вот этот текст <b></b> , но что бы написанный посередине текст...

Вставка текста из файла
Немогу найти ошибку, не хочет брать отдельно каждую строку из файла и записывать в PansiChar, после...

3
dnetclah
22 / 0 / 0
Регистрация: 27.06.2013
Сообщений: 31
29.06.2013, 23:25  [ТС] 2
Всем доброго времени суток. С поставленной задачей справились. ТОчнее помог мне друг, и то с головной болью.
Вот код, может кому нибудь понадобится.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
//Процедура определения нажатия мышкой по ячейке в stringGri3
procedure TForm1.StringGrid3SelectCell(Sender: TObject; ACol,
  ARow: Integer; var CanSelect: Boolean);
begin
 form1.Caption:=Format('%d', [ARow]);
end;
 
//Внесение изменение в нужную ячейку 7 столбца путем нажатия кнопки
procedure TForm1.FormCreate(Sender: TObject);
begin
   button6.Visible:=false;
   button7.Visible:=false;
   button10.Visible:=false;
end;
  procedure TForm1.Button6Click(Sender: TObject);
begin
stringgrid3.Cells[7,strtoint(form1.Caption)]:='Ошибка ТСО'
end;
 
procedure TForm1.Button7Click(Sender: TObject);
begin
stringgrid3.Cells[7,strtoint(form1.Caption)]:='Ошибка сбыта'
end;
 
procedure TForm1.Button10Click(Sender: TObject);
begin
stringgrid3.Cells[7,strtoint(form1.Caption)]:='Ошибка оператора'
end;
Осталась еще одна проблемма, нужно что бы при нажатии мышки можно было редактировать другой столбец. Нашел код на этом форуме, но не могу понять как его добить под свои нужды. Буду признателен если сможете помочь.
Delphi
1
2
3
4
procedure TForm1.StringGrid3Click(Sender: TObject);
begin
  with StringGrid3 do
    Edit1.Text:=Cells[Col,Row];
0
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
27031 / 18075 / 7147
Регистрация: 22.10.2011
Сообщений: 31,824
Записей в блоге: 6
29.06.2013, 23:38 3
@dnetclah, задача решается безо всяких изменений Caption формы:

Delphi
1
2
3
4
5
procedure TForm1.Button6Click(Sender: TObject);
begin
  with StringGrid3 do
    Cells[Col, Row] := (Sender as TButton).Caption;
end;
, и этот же обработчик в Инспекторе Объектов вешаешь на 7-ю и 10-ю кнопки. Всё, никаких выкрутасов, не надо запоминать, какая ячейка выбрана. В ту, которая была выбрана, будет занесен текст с кнопки...

Цитата Сообщение от dnetclah Посмотреть сообщение
нужно что бы при нажатии мышки можно было редактировать другой столбец.
Вот опять ты недоговариваешь, опять будешь жаловаться, что тебе не помогают. Если goEditing в опциях грида включена, то и так, безо всякого кода можно редактировать ячейки. Что в твоем проекте мешает это сделать? Твой заумный StringGrid3SelectCell? Я показал, как от него избавиться...
0
dnetclah
22 / 0 / 0
Регистрация: 27.06.2013
Сообщений: 31
29.06.2013, 23:43  [ТС] 4
Цитата Сообщение от UI Посмотреть сообщение
Вот опять ты недоговариваешь, опять будешь жаловаться, что тебе не помогают. Если goEditing в опциях грида включена, то и так, безо всякого кода можно редактировать ячейки. Что в твоем проекте мешает это сделать?
Дело в том что если я включу эту опцию то будет возможность редактировать все строки. StringGrida. Что критически не нужно. т.к. если оператор захочет исправить показания без согласования с потребителем или начальником компании то будет очень плохо. Через кнопку это делать слишком муторно, точнее некрасиво и неудобно получится для оператора.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.06.2013, 23:43

Вставка текста в чужой программе
Здравствуйте. Пишу программу, которая отлавливает нажатие коткея в чужой программе и вставляет...

Вставка большого объема текста
Стоит задача вставить большое кол-во текста на форму(8 страниц a4). Причем в тексте есть еще...

Вставка текста в активный элемент
В общем нужно организовать вставку текста в активный элемент другого прилажения. ситуация такая:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru