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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.07.2010, 08:32   #71
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,194
По умолчанию

Слушай, сейчас протестировал и вручную проверил сначала на бумаге результат, а потом сравнил его с тем, что выдала программа. Есть расхождения. Давай я тебе в личку отправлю результаты? Посмотришь, я там выделил что-надо.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 28.07.2010, 08:42   #72
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
Просто не вижу смысла расписывать тему на семь страниц из-за пустяка.
Просто artemavd как студент, легких путей не ищет ), потому и будет дальше парится и ловить баги вместо того чтоб разобраться с закраской, хотя бы с тем примером что я дал.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 28.07.2010, 08:42   #73
DIgorevich
Погулять вышел
Участник клуба
 
Аватар для DIgorevich
 
Регистрация: 17.05.2010
Сообщений: 1,573
По умолчанию

Цитата:
Сообщение от artemavd Посмотреть сообщение
Слушай, сейчас протестировал и вручную проверил сначала на бумаге результат, а потом сравнил его с тем, что выдала программа. Есть расхождения. Давай я тебе в личку отправлю результаты? Посмотришь, я там выделил что-надо.
Отправляй, конечно.
Никогда не знаешь, где тебе повезет... (Фрай)
DIgorevich вне форума Ответить с цитированием
Старый 28.07.2010, 08:50   #74
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,194
По умолчанию

Цитата:
Просто artemavd как студент, легких путей не ищет )
Адназначна :D
Цитата:
Отправляй, конечно.
Щас, отсканю и отправлю.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 21.09.2011, 18:46   #75
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,194
По умолчанию

Добрый день! Переделал код сравнения на работу с sRichEdit`ами. Интересует такой вопрос. Можно ли сделать выделение текста, в процессе сравнения, каким-то цветом? То есть если например в первом списке и во втором есть одинаковые значения, то закрасить эти значения красным цветом, а остальные - зеленым. Причем, важное условие: чтобы курсор в обоих списках перемещался к сравниваемым значениям, т.е. чтобы это было видно пользователю. Вот код сравнения:
Код:
procedure TForm1.ActionFirstAnalizExecute(Sender: TObject);
var
 i,i1,j,row: integer;
 ravno:boolean;
begin
  for I := 0 to Form1.sRichEdit3.Lines.Count - 1 do
  Form1.sRichEdit3.Lines.Clear;
  j:=0;
  i:=0;
  i1:=0;
  for i1:=0 to Form1.sRichEdit1.Lines.Count - 1 do //проверяем значения первой
    begin
      ravno:=false;
      for i:=0 to Form1.sRichEdit2.Lines.Count - 1 do   // проверяем значения второой
      begin
        if Form1.sRichEdit2.Lines.Strings[i] = Form1.sRichEdit1.Lines.Strings[i1] then
          begin
            ravno:=true; // если совпадения есть, то ничего не будет в Мемо
          end;
      end;
        if ravno=False then // если есть совпадения, то заносим их
          begin
            Form1.sRichEdit3.Lines.Add(Form1.sRichEdit1.Lines.Strings[i1]);
            inc(j);
          end;
    end;
end;
Можно и без курсора, просто интересно чисто технически как такое можно сделать...
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 21.09.2011, 21:01   #76
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

1. Цвет - задать
RichEdit.SelStart - позиция в тексте, с которой менять цвет текста
RichEdit.SelLength - кол-во символов
RichEdit.SelAttributes.Color - цвет текста

2. Синхронность курсора
Ловить перемещение текстового курсора (наверно с помощью OnKeyPress). Если нет выделенного текста, то SelStart - позиция курсора в тексте. Иметь в памяти таблицу соответствия смещений и длин нужных фрагментов текста в двух RichEdit-ах. Если соответствие найдено, то во втором RichEdit-е менять SelStart в соответствии с таблицей. Как-то так, очень муторно

add Не обратил внимания, что в процессе сравнения. Если так, то второе гораздо проще - управлять SelStart-ом второго RichEdit-а
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 21.09.2011 в 21:21.
Аватар вне форума Ответить с цитированием
Старый 22.09.2011, 04:05   #77
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,194
По умолчанию

Код:
Если так, то второе гораздо проще - управлять SelStart-ом второго RichEdit-а
Можешь помочь с этим примером?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 22.09.2011, 10:21   #78
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Код для Д7
Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    RichEdit1: TRichEdit;
    RichEdit2: TRichEdit;
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
const cWords1: array[1..10] of String = (
               'Паук','Яблоня','Кружка','Пиво-О-О','Таракан',
               'Слово','Кровать','Фантомас','Ведьма','Иго');
      cWords2: array[1..11] of String = (
               'Стакан','Word','Фантомас','Технология X','Кукушка',
               'Степь','Кровать1','паук','СССССС','Иго',
               'YYYYYYYYYY');
var i: Integer;
begin
  RichEdit1.Clear;
  for i:=Low(cWords1) to High(cWords1) do RichEdit1.Lines.Add(cWords1[i]);
  RichEdit1.SelStart:=0;
  RichEdit1.ReadOnly:=True;
  RichEdit1.HideSelection:=False;
  RichEdit2.Clear;
  for i:=Low(cWords2) to High(cWords2) do RichEdit2.Lines.Add(cWords2[i]);
  RichEdit2.SelStart:=0;
  RichEdit2.ReadOnly:=True;
  RichEdit2.HideSelection:=False;
end;

procedure TForm1.Button1Click(Sender: TObject);
var i1,i2,xPos1,xPos2: Integer;
begin
  {Подготовка RichEdit1}
  RichEdit1.SelStart:=0;
  RichEdit1.SelLength:=Length(RichEdit1.Text);
  RichEdit1.SelAttributes.Color:=RichEdit1.Font.Color;
  RichEdit1.SelStart:=0;
  {Подготовка RichEdit2}
  RichEdit2.SelStart:=0;
  RichEdit2.SelLength:=Length(RichEdit2.Text);
  RichEdit2.SelAttributes.Color:=RichEdit2.Font.Color;
  RichEdit2.SelStart:=0;
  {Поиск}
  xPos1:=0;
  for i1:=0 to RichEdit1.Lines.Count-1 do begin
    xPos2:=0;
    for i2:=0 to RichEdit2.Lines.Count-1 do begin
      if AnsiSameText(RichEdit1.Lines.Strings[i1],RichEdit2.Lines.Strings[i2]) then begin
        RichEdit1.SelStart:=xPos1;
        RichEdit1.SelLength:=Length(RichEdit1.Lines.Strings[i1]);
        RichEdit1.SelAttributes.Color:=clRed;
        RichEdit2.SelStart:=xPos2;
        RichEdit2.SelLength:=Length(RichEdit2.Lines.Strings[i2]);
        RichEdit2.SelAttributes.Color:=clRed;
        Sleep(1000); //Пауза в 1сек чтобы успеть что-то увидеть
        RichEdit1.SelStart:=xPos1;
        RichEdit2.SelStart:=xPos2;
        Break;
      end;
      Inc(xPos2,Length(RichEdit2.Lines.Strings[i2])+2);
    end;
    Inc(xPos1,Length(RichEdit1.Lines.Strings[i1])+2);
  end;
  RichEdit1.SelStart:=0;
  RichEdit2.SelStart:=0;
end;

end.
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
StringGrid Определение значений по 3-ем критериям Juliya_U Помощь студентам 3 04.05.2010 14:19
сверка значений на другом листе подстановка подходящего marc-nikita Microsoft Office Excel 5 07.02.2010 14:10
умножение значений Stringgrid zluchka Помощь студентам 3 03.11.2009 11:33
StringGrid сумма значений monushka Общие вопросы Delphi 21 26.10.2009 17:12
Сверка данных с помощью VBA mal001 Microsoft Office Excel 2 06.08.2008 14:39