Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.96/25: Рейтинг темы: голосов - 25, средняя оценка - 4.96
 Аватар для gordina
0 / 0 / 0
Регистрация: 12.12.2013
Сообщений: 23

Как при нажатии на кнопку добавлять каждый раз новые строчки в StringGrid

24.03.2015, 15:08. Показов 5009. Ответов 43
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет) у меня такая проблема, не знаю как сделать, чтобы добавлялись новые строчки к старым в StringGrid при нажатии на кнопку. Подскажите, пожалуйста, очень надо(

Delphi
1
2
3
4
procedure TForm2.Button2Click(Sender: TObject);
begin
    Form1.StringGrid2.RowCount:= StrToInt(Edit1.Text);
end;
Это надо как то зациклить?(
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.03.2015, 15:08
Ответы с готовыми решениями:

При нажатии на кнопку добавлять по одной строке из файла в поле Memo
как при нажатии на одну и ту же кнопку добавлять по одной строке в поле memo код (что имеется) ниже: procedure...

Как сделать так, чтобы при нажатии на кнопку в StringGrid создавалась еще 1 строка снизу
Есть StringGrid и с 1 строкой, вводятся данные в стандартные компоненты и после нажатия кнопки они добавляются в StringGrid. Как сделать...

Как сделать, чтобы при нажатии на кнопку Messagebox открывался только один раз?
Как сделать что-бы когда при нажатии на кнопку Messagebox открывался только один раз (пока на кнопку ок в Messagebox не нажмешь больше не...

43
Мишка Косолапый :)
 Аватар для zuxa-zuxa
285 / 255 / 86
Регистрация: 15.02.2012
Сообщений: 1,511
24.03.2015, 16:23
Студворк — интернет-сервис помощи студентам
Delphi
1
if Form2.RadioGroup1.Items.Add('=')
if сработает можно сказать всегда

А вообще мне кажется нужно лучше объяснить, а то ж ничего не понятно
0
 Аватар для gordina
0 / 0 / 0
Регистрация: 12.12.2013
Сообщений: 23
24.03.2015, 16:35  [ТС]
Картинку своего интерфейса я загружала раньше.
у меня есть ..
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
procedure TForm2.Button1Click(Sender: TObject);
var
  Bloks,i,j,n:Integer;
begin
    Form1.StringGrid2.ColCount:= StrToInt(Edit2.Text)+2;
    //Form1.StringGrid2.RowCount:= StrToInt(Edit1.Text);
 
   if RadioGroup1.Items[RadioGroup1.ItemIndex] = '=' then Form1.StringGrid2.Cells[i,j]:='=';
 
 
//êîëè÷åñòâî áëîêîâ îãðàíè÷åíèé
   { begin
      ShowMessage('Âûáåðèòå çíàê îãðàíè÷åíèÿ!');
      exit;
    end; }
    Close;
end;
 
 
//áëîêè îãðàíè÷åíèé
procedure TForm2.FormShow(Sender: TObject);
begin
    RadioGroup1.Items.Clear;
 
    RadioGroup1.Items.Add('=');
    RadioGroup1.Items.Add('>=');
    RadioGroup1.Items.Add('<=');
end;
 
procedure TForm2.Edit1KeyPress(Sender: TObject; var Key: Char);
  const Digit=['0', '1'..'9'];
begin
  if (not (Key in Digit)) then Key:=#0;
end;
 
procedure TForm2.Edit2KeyPress(Sender: TObject; var Key: Char);
  const Digit=['0', '1'..'9'];
begin
  if (not (Key in Digit)) then Key:=#0;
end;
 
procedure TForm2.Button2Click(Sender: TObject);
begin
  Form1.StringGrid2.RowCount :=Form1.StringGrid2.RowCount+StrToInt(Edit1.Text)-1;
end;
 
 
End.
Это код второй формы. Я должна выбрать знак неравенства, ввести кол-во ограничений, добавить в стрингрид строчки и выбранное неравенство в предпоследний столбик. Кол-во переменных у меня неизменно, не знаю к какой к нопке его надо отнести(
0
Злостный нарушитель
 Аватар для Verevkin
10878 / 5817 / 1288
Регистрация: 12.03.2015
Сообщений: 26,856
24.03.2015, 16:46
Цитата Сообщение от droider Посмотреть сообщение
Зачем ТС эти "навороты" сейчас?
это не для ТС, этоя в больнице валяюсь, скучно, время убиваю. Все платные заказы выполнил, заняться нечем.

Добавлено через 3 минуты
Цитата Сообщение от gordina Посмотреть сообщение
Это код второй формы. Я должна выбрать знак неравенства, ввести кол-во ограничений, добавить в стрингрид строчки и выбранное неравенство в предпоследний столбик. Кол-во переменных у меня неизменно, не знаю к какой к нопке его надо отнести(
рекомендую создать новый топик, со сакриншотами, блекджеком и такдалее...
0
 Аватар для gordina
0 / 0 / 0
Регистрация: 12.12.2013
Сообщений: 23
24.03.2015, 16:46  [ТС]
ТС - это оскорбление?
0
Эксперт Pascal/Delphi
 Аватар для droider
4893 / 2826 / 867
Регистрация: 04.10.2012
Сообщений: 10,278
24.03.2015, 16:49
gordina, ТС - это Топик Стартер. Тот, кто начал обсуждение в теме, создал новую тему.
0
 Аватар для gordina
0 / 0 / 0
Регистрация: 12.12.2013
Сообщений: 23
24.03.2015, 16:53  [ТС]
Мне лучше создать новую тему по-другому вопросу?
0
Эксперт Pascal/Delphi
 Аватар для droider
4893 / 2826 / 867
Регистрация: 04.10.2012
Сообщений: 10,278
24.03.2015, 16:56
gordina, необязательно, если он относится к этой же программе.

Добавлено через 1 минуту
Цитата Сообщение от Verevkin Посмотреть сообщение
рекомендую создать новый топик, со сакриншотами, блекджеком и такдалее
зачем? Скриншоты можно сюда же добавить.
0
Злостный нарушитель
 Аватар для Verevkin
10878 / 5817 / 1288
Регистрация: 12.03.2015
Сообщений: 26,856
24.03.2015, 17:01
Цитата Сообщение от droider Посмотреть сообщение
зачем? Скриншоты можно сюда же добавить.
забей, проехали.
0
 Аватар для gordina
0 / 0 / 0
Регистрация: 12.12.2013
Сообщений: 23
24.03.2015, 17:02  [ТС]
Я должна выбрать знак неравенства, ввести кол-во ограничений, добавить в стрингрид строчки и выбранное неравенство в предпоследний столбик. Кол-во переменных у меня неизменно, не знаю к какой к нопке его надо отнести(
Миниатюры
Как при нажатии на кнопку добавлять каждый раз новые строчки в StringGrid  
0
Злостный нарушитель
 Аватар для Verevkin
10878 / 5817 / 1288
Регистрация: 12.03.2015
Сообщений: 26,856
24.03.2015, 17:36
Цитата Сообщение от gordina Посмотреть сообщение
Я должна выбрать знак неравенства, ввести кол-во ограничений, добавить в стрингрид строчки и выбранное неравенство в предпоследний столбик. Кол-во переменных у меня неизменно, не знаю к какой к нопке его надо отнести(
пример нарисуй.
0
 Аватар для gordina
0 / 0 / 0
Регистрация: 12.12.2013
Сообщений: 23
24.03.2015, 17:58  [ТС]
Verevkin,
Миниатюры
Как при нажатии на кнопку добавлять каждый раз новые строчки в StringGrid  
0
Злостный нарушитель
 Аватар для Verevkin
10878 / 5817 / 1288
Регистрация: 12.03.2015
Сообщений: 26,856
24.03.2015, 19:11
Чото как-то так:
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
procedure TForm2.Button2Click(Sender: TObject);
var
  Grid: TStringGrid;
  Count, Index: Integer;
  Sign: string;
begin
  if RadioGroup1.ItemIndex = -1
    then Exit
    else Sign:= RadioGroup1.Items[RadioGroup1.ItemIndex];
 
  Grid:= Form1.StringGrid2;
 
  // добавим 3 строки
  Count:= StrToIntDef(Edit1.Text, 0);
  if Count > 0
    then AppendGrid(Grid, Count)
    else Exit;
    
  // кол-во колонок (?)
  Grid.ColCount:= StrToIntDef(Edit2.Text, 0);
  
  // знаки неравенств в предпоследние ячейки добавленных строк
  for Index:= Count - 1 downto 0 do
    Grid.Cells[Grid.ColCount - 2]:= Sign;
end;
Ахтунг! Аттеншн! Внимание! Увага!!! SHIT-CODE detected!!! Не отлаживал, писал на заборе!
0
 Аватар для gordina
0 / 0 / 0
Регистрация: 12.12.2013
Сообщений: 23
24.03.2015, 19:18  [ТС]
then AppendGrid(Grid, Count ругается на эту строчку(
0
Злостный нарушитель
 Аватар для Verevkin
10878 / 5817 / 1288
Регистрация: 12.03.2015
Сообщений: 26,856
24.03.2015, 19:37
Цитата Сообщение от gordina Посмотреть сообщение
ругается на эту строчку
Кто ругается?
Чо говорит?
Мне угадать, да? Телепатор за неуплату отключили!
0
 Аватар для gordina
0 / 0 / 0
Регистрация: 12.12.2013
Сообщений: 23
24.03.2015, 19:39  [ТС]
Извините(
[Ошибка] Unit2.pas(94): Undeclared identifier: 'AppendGrid'
[Ошибка] Unit2.pas(102): Not enough actual parameters
[Фатальная ошибка] Project1.dpr(6): Could not compile used unit 'Unit2.pas'
0
Злостный нарушитель
 Аватар для Verevkin
10878 / 5817 / 1288
Регистрация: 12.03.2015
Сообщений: 26,856
24.03.2015, 19:42
Цитата Сообщение от gordina Посмотреть сообщение
Извините(
[Ошибка] Unit2.pas(94): Undeclared identifier: 'AppendGrid'
[Ошибка] Unit2.pas(102): Not enough actual parameters
[Фатальная ошибка] Project1.dpr(6): Could not compile used unit 'Unit2.pas'
Смотри пост #16 твоего же топика! Ты мои посты читаешь ваще? Или тупо копируешь?! Я не понял!
0
 Аватар для gordina
0 / 0 / 0
Регистрация: 12.12.2013
Сообщений: 23
24.03.2015, 19:53  [ТС]
Читаю,но этот каким то образом пропустила..

Добавлено через 4 минуты
Нет мне прощения( но я не знаю,как добавить эту процедуру
procedure AppendGrid(AGrid: TCustomGrid; const ACount: Integer);

Добавлено через 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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
unit Unit2;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, Grids;
 
type
  TForm2 = class(TForm)
    Edit1: TEdit;
    Label2: TLabel;
    Label3: TLabel;
    Edit2: TEdit;
    Button1: TButton;
    RadioGroup1: TRadioGroup;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
    procedure Edit2KeyPress(Sender: TObject; var Key: Char);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form2: TForm2;
 
implementation
      uses Unit1;
{$R *.dfm}
 
 
procedure TForm2.Button1Click(Sender: TObject);
var
  Bloks,i,j,n:Integer;
begin
    //Form1.StringGrid2.ColCount:= StrToInt(Edit2.Text)+2;
    //Form1.StringGrid2.RowCount:= StrToInt(Edit1.Text);
 
    Close;
end;
 
 
//блоки ограничений
procedure TForm2.FormShow(Sender: TObject);
begin
    RadioGroup1.Items.Clear;
 
    RadioGroup1.Items.Add('=');
    RadioGroup1.Items.Add('>=');
    RadioGroup1.Items.Add('<=');
end;
 
procedure TForm2.Edit1KeyPress(Sender: TObject; var Key: Char);
  const Digit=['0', '1'..'9'];
begin
  if (not (Key in Digit)) then Key:=#0;
end;
 
procedure TForm2.Edit2KeyPress(Sender: TObject; var Key: Char);
  const Digit=['0', '1'..'9'];
begin
  if (not (Key in Digit)) then Key:=#0;
end;
 
 
procedure TForm2.Button2Click(Sender: TObject);
var
  Grid: TStringGrid;
  Count, Index: Integer;
  Sign: string;
begin
  //выберите условие
  if RadioGroup1.ItemIndex=-1 then ShowMessage('Выберите знак ограничения!')
     else Form1.StringGrid2.RowCount :=Form1.StringGrid2.RowCount+StrToInt(Edit1.Text)-1;
 
  //Form1.StringGrid2.RowCount :=Form1.StringGrid2.RowCount+StrToInt(Edit1.Text)-1;
  //Form1.StringGrid2.ColCount:= StrToInt(Edit2.Text)+2;
 
    if RadioGroup1.ItemIndex = -1
    then Exit
    else Sign:= RadioGroup1.Items[RadioGroup1.ItemIndex];
 
  Grid:= Form1.StringGrid2;
 
  // добавим 3 строки
  Count:= StrToIntDef(Edit1.Text, 0);
  if Count > 0
    then AppendGrid(Grid, Count)
    else Exit;
    
  // кол-во колонок (?)
  Grid.ColCount:= StrToIntDef(Edit2.Text, 0);
  
  // знаки неравенств в предпоследние ячейки добавленных строк
  for Index:= Count - 1 downto 0 do
    Grid.Cells[Grid.ColCount - 2]:= Sign;
 
end;
 
 
End.
у меня второй юнит так выглядит..
0
Злостный нарушитель
 Аватар для Verevkin
10878 / 5817 / 1288
Регистрация: 12.03.2015
Сообщений: 26,856
24.03.2015, 19:54
Цитата Сообщение от gordina Посмотреть сообщение
но я не знаю,как добавить эту процедуру
как это?
Аааа!... Ты издеваешься! Один мой кусок кода тебе добавить удалось (и даже искалечить попутно), а второй кусок ты туда же добавить не можешь.

Знаешь что! Иди-ка ты на курсы кройки и шитья.
0
 Аватар для gordina
0 / 0 / 0
Регистрация: 12.12.2013
Сообщений: 23
24.03.2015, 19:57  [ТС]
У меня две формы, если ее надо просто скопировать,то на какую? Хотя все равно в обоих случаях ругается..
0
Злостный нарушитель
 Аватар для Verevkin
10878 / 5817 / 1288
Регистрация: 12.03.2015
Сообщений: 26,856
24.03.2015, 20:01
Цитата Сообщение от gordina Посмотреть сообщение
У меня две формы, если ее надо просто скопировать,то на какую?
да не надо её копировать на форму. её надо вставить в модуль.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.03.2015, 20:01

При нажатии на кнопку закрашивать ячейку StringGrid
можно сделать так, что бы при нажатии на кнопку (button) закрашивался ячейка stringgrid. К примеру есть три кнопки (button), каждая из них ...

Как каждый раз добавлять новую строку в БД и новые данные, чтоб старые не затирались
Всем привет. Постараюсь объяснить то что я хочу. Я написал приложение БД, в котором есть информация о сотрудниках на СГЛ. Сейчас мне надо...

Складывать числа каждый раз при нажатии на кнопку
Допустим ввел 3+3 и если еще раз нажать на &quot;+&quot; хочу получить результат &quot;6&quot; и так далее.

При нажатии на кнопку рассчитать каждый раз, итоговая сумма удваивается
Нужно что бы она срабатывала только один раз, при нажатии ещё одного раза, не чего не происходила, как исправить. private void...

Как при нажатии на кнопку добавлять edit
Есть таблица usluga в нем: id | usluga | price | По нажатии на кнопку &quot;Добавить&quot; записывается в тхт файл &lt;input name='name'...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания источниках данных и элементов формы(текстовые поля и метки), опирается все это на технологию событий и мета. . .
Цена ошибки
DevAlt 23.08.2026
Человек я беспокойный и потому заинтересовался OCaml, в чате форсили функторы модулей как суперфичу. Пытаясь отдуплить концепт, наткнулся на тутор с простым примером. А главный принцип обучения от. . .
Сегодня суббота, 22.08.2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины.
zorxor 22.08.2026
Сегодня суббота, 22. 08. 2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины. Кто Я, откуда Я пришел и куда Я иду? Эти вопросы не оставляют меня ни на секунду. Жизнь на планете Земля. . .
Жизня: рисунок укладки багажа, сделанный клодом
anaschu 21.08.2026
Сделал 15 снимков, он по снимкам сделал схему.
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства. Жизнь действительно предъявляет каждому. . .
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
Лето уходит
kumehtar 17.08.2026
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru