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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.04.2013, 15:48   #1
Daria7
 
Регистрация: 17.06.2012
Сообщений: 3
По умолчанию Редактирование ячеек TStringGrid

Можно ли при двойном клике мыши сделать так, чтобы при каждом клике менялось значение ячейки, т.е:
ячейка пустая , двойной клик => '=' , двойной клик => '>=', и т.д.
Daria7 вне форума Ответить с цитированием
Старый 09.04.2013, 16:29   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

Код:
procedure TForm1.StringGrid1DblClick(Sender: TObject);
var
  s: string;
begin
  s:=self.StringGrid1.Cells[self.StringGrid1.Col, self.StringGrid1.Row];
  s:=GetNextOperator(s);
  if s<>'' then self.StringGrid1.Cells[self.StringGrid1.Col, self.StringGrid1.Row]:=s;
end;

function GetNextOperator(const op: string): string;
begin
  if op='' then result:='='
  else if op='=' then result:='>='
....
  else result:='';
end;
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 16.04.2013, 00:35   #3
Daria7
 
Регистрация: 17.06.2012
Сообщений: 3
По умолчанию

Спасибо=) Ток есть еще один вопрос.

Код:
unit simplex;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids, ExtCtrls, ComCtrls;

type
  TForm1 = class(TForm)
    Tab_ish: TStringGrid;     // ввод начальных данных
    Button1: TButton;         // построить табл для нач данных
    Edit1: TEdit;                // кол-во ограничений
    Edit2: TEdit;                // кол-во переменных
    Label1: TLabel;            // введите кол-во ограничений
    Label2: TLabel;            // введите кол-во переменных
    Label3: TLabel;           // введите тип оптимизации
    Celev_function: TStringGrid;
    Tab_preobr: TStringGrid;
    Button2: TButton;
    Edit3: TEdit;
    Label4: TLabel;
    Button3: TButton;
    Nachal: TStringGrid;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);   

  private 
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var  i,j,n,m, k, r , p , n1 , m1:integer;
      nazv_perem :array [0..9] of string;    
      maxmin:string;
begin

  Tab_ish.RowCount :=StrToInt(Edit1.Text)+1;         //stroka n
  Tab_ish.ColCount :=2*StrToInt(Edit2.Text)+2;        //stolbec m
  n:=StrToInt(Edit1.Text);             //количество строк/ограничений
  m:=StrToInt(Edit2.Text);             //количество столбцов/переменных

  nazv_perem[0]:='x1';    nazv_perem[1]:='x2';
  nazv_perem[2]:='x3';    nazv_perem[3]:='x4';
  nazv_perem[4]:='x5';    nazv_perem[5]:='x6';
  nazv_perem[6]:='x7';    nazv_perem[7]:='x8';
  nazv_perem[8]:='x9';    nazv_perem[9]:='x10';

  //оформление исх матрицы
  Tab_ish.Cells[2*m,0]:='      знак';
  Tab_ish.Cells[2*m+1,0]:='  коэф. огр';

  k:=1;
  for i := 0 to 2*n - 1 do
    begin
      for j := 0 to m - 1 do
        begin
          Tab_ish.Cells[j+k,i]:=nazv_perem[j];
          k:=k+1;
        end;
      k:=1;
    end;

   maxmin:=Edit3.Text;
  //celevaya function
  Celev_function.RowCount :=2;
  Celev_function.ColCount :=StrToInt(Edit2.Text)*2;
  p:=1;                         //количество строк/ограничений
  r:=StrToInt(Edit2.Text);      //количество столбцов/переменных

  //оформление коэф целевой функции
  k:=1;
  for i := 0 to 1 do
    begin
      for j := 0 to 2*r-1 do
        begin
          Celev_function.Cells[j+k,i]:=nazv_perem[j];
          k:=k+1;
        end;
      k:=1;
    end;
end;

end.
Как вставить процедуру и функцию, которые вы написали, чтобы ввод знаков неравенства выводились только в определенном столбце под надписью "знак"?



________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(это кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.

Последний раз редактировалось Daria7; 16.04.2013 в 00:52.
Daria7 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Редактирование ячеек в datagridview IlyaXXX Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) 0 13.10.2011 17:10
Запрет на редактирование отдельных ячеек soundstream Microsoft Office Excel 8 12.07.2011 14:29
Запрет на редактирование ячеек от даты valerij Microsoft Office Excel 6 12.12.2010 21:46