![]()  | 
	
 
  | 
| 
		 
			 
			#1  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Добрый день! Подскажите пожалуйста как сделать так, чтобы в заполненном стринг гриде цифрами, я мог выбрать два любых числа и если они одинаковые, то они удалялись бы в тот момент, когда я выбрал второе число. Цель: по нажатию на какие-то ячейки в таблице, удалять два числа, находящиеся в выбранных ячейках, если они равны друг другу. Или любые числа. Как это можно сделать? Заранее Спасибо за помощь. 
		
	
		
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#2  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Машина состояний. 
		
	
		
		
		
		
		
	
		
		
	
	
	У тебя следующие состояния: 1. Не выбрано ни одно число. 2. Выбрано 1е число 3. Выбрано второе число. Делаешь где-то переменную, инициализируя ее значением 1. При первом щелчке меняешь ее на 2. При втором щелчке а) проверяешь одинаковые числа или нет и если одинаковые - удаляешь; б) сбрасываешь выделение и меняешь переменную состояния обратно на 1.  | 
| 
		 
			 
			#3  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 lmikle, не могли бы помочь с кодом? А то слишком серьезно для меня объяснили). Я тут пробовал так: 
		
	
		
		
		
		
		
	
		
		
	
	
	Код: 
	procedure TForm1.SG1Click(Sender: TObject);
var
 OldVal: string;
 OldX, OldY: integer;
begin
 OldVal:='';
 if (OldVal <> '') and (OldVal = SG1.Cells[OldX,OldY]) then
   begin
    OldVal:=SG1.Cells[OldX,OldY];
   end;
end; | 
| 
		 
			 
			#4  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Да уж куда проще-то??? 
		
	
		
		
		
		
		
	
		
		
	
	
	Код: 
	unit Unit1;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids;
type
  TForm1 = class(TForm)
    StringGrid1: TStringGrid;
    procedure StringGrid1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
    FState : Integer;
    FSel : TPoint;
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.StringGrid1Click(Sender: TObject);
begin
  Case FState Of
    1 : // No selected
      Begin
        FSel.X := StringGrid1.Col;
        FSel.Y := StringGrid1.Row;
        FState := 2;
        Exit;
      End;
    2 : // 1 selected
      Begin
        If StringGrid1.Cells[StringGrid1.Col,StringGrid1.Row] = StringGrid1.Cells[FSel.X,FSel.Y] Then
          Begin
            StringGrid1.Cells[StringGrid1.Col,StringGrid1.Row] := '';
            StringGrid1.Cells[FSel.X,FSel.Y] := '';
          End;
        FState := 1;
        Exit;
      End;
  End;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
  FState := 1;
end;
end. | 
| 
		 
			 
			#5  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 lmikle, спасибо тебе дружище!!!)))) очень помог. Красавчик!)) Спасибо 
		
	
		
		
		
		
		
	
		
		
	
	
	 |