Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 21.10.2011, 23:32
vasa911 vasa911 вне форума
Прохожий
 
Регистрация: 21.10.2011
Сообщения: 4
Репутация: 10
По умолчанию Окраска букв в RichEdit

Добрый вечер.Есть цель, загрузить текст в RichEdit, и окрасить определённые буквы, сделать это надо так, запомнить позиции в тексте определённой буквы, и по этим позиция окрасить.
Проблема в том, что после первого абзаца раскраска как-бы съезжает , не могу понять почему.
Заранее благодарен за помощь.
П.С. прилагаю текст, который загружают.

Код:
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
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,  StdCtrls, ComCtrls;
 
type
  TForm1 = class(TForm)
    RichEdit1: TRichEdit;
    Button1: TButton;
    Button2: TButton;
    Edit1: TEdit;
    OpenDialog1: TOpenDialog;
    Button3: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
  Path:string;// путь к текстовому файлу
  bufpoiska:string;
  positionbukv: array[0..1000] of integer;
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);//Загрузка текста
var
  UserName : string;
  UserNameLen : Dword;
begin
UserNameLen := 255;
  SetLength(userName, UserNameLen);
  if GetUserName(PChar(UserName), UserNameLen) then
    UserName := Copy(UserName,1,UserNameLen - 1);
 
OpenDialog1.InitialDir:='C:\Users\'+UserName+'\Desktop\';
if OpenDialog1.Execute then
  Path:=OpenDialog1.FileName;
RichEdit1.Lines.LoadFromFile(Path);
 
end;
 
procedure TForm1.Button2Click(Sender: TObject);//Запоминание позиции
var
n,j,z:Integer;
begin
 
     bufpoiska:=Edit1.Text;
     z:=0;
 
    for j := 1 to Length(RichEdit1.text) do
    begin
          if RichEdit1.text[j]=bufpoiska then
          begin
          positionbukv[z]:=j;
          inc(z);
          end;
    end;
end;
 
 
 
procedure TForm1.Button3Click(Sender: TObject); //Окраска по позициям
var
 i: integer;
begin
 i:=0;
 while positionbukv[i]<>0 do
  begin
    RichEdit1.SelStart:=positionbukv[i]-1;
    Richedit1.SelLength:=1;
    Richedit1.SelAttributes.Color:=clRed;
    inc(i);
  end;
 
end;
 
end.
Вложения
Тип файла: txt 1.txt (4.7 Кбайт, 4 просмотров)
Ответить с цитированием
 


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 03:58.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025