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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.11.2008, 20:36   #11
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,210
По умолчанию

Я сделал процедуру удаления цифр немного по другому. Там если числа в двух ячеках одинаковые, то они удаляются. Вот код этой процедуры:
Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    SG1: TStringGrid;
    procedure SG1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    FState : Integer;
    FSel : TPoint;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.SG1Click(Sender: TObject);
begin
  Case FState Of
    1 : // No selected
      Begin
        FSel.X := SG1.Col;
        FSel.Y := SG1.Row;
        FState := 2;
        Exit;
      End;
    2 : // 1 selected
      Begin
        If SG1.Cells[SG1.Col,SG1.Row] = SG1.Cells[FSel.X,FSel.Y] Then
          Begin
            SG1.Cells[SG1.Col,SG1.Row] := '';
            SG1.Cells[FSel.X,FSel.Y] := '';
          End;
        FState := 1;
        Exit;
      End;
  End;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  FState := 1;
end;

end.
Вот щас мне надо добавить еще одно условие. А именно я думаю, что надо добавить это условие вот в этот кусок кода:
Код:
2 : // 1 selected
      Begin
        If SG1.Cells[SG1.Col,SG1.Row] = SG1.Cells[FSel.X,FSel.Y] Then
          Begin
            SG1.Cells[SG1.Col,SG1.Row] := '';
            SG1.Cells[FSel.X,FSel.Y] := '';
          End;
        FState := 1;
        Exit;
      End;
. Условие следующее: нужно чтобы можно было убирать не только одинаковые числа, но те, которые дают в сумме 10. Т.е. например, убираем одинаковые, например, 1 и 1 и убираем, например, 9 и 1, т.к. сумма равна 10. Я пробовал вместо знака равенства ставить "+" и приравнивать к 10, но так не получается. А как надо добавить правильно?)
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одинаковые ветки в DBTreeView Andreych74 БД в Delphi 4 19.08.2008 15:38
Одинаковые элементы kodov Общие вопросы Delphi 3 11.08.2008 14:03
Одинаковые строки Македонский Общие вопросы Delphi 3 05.10.2007 14:40
Убрать одинаковые значения D-mon БД в Delphi 1 23.08.2007 10:55
Как просуммировать одинаковые наименования? Алька Microsoft Office Excel 1 23.05.2007 22:02