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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 09.05.2011, 08:34
Holic Holic вне форума
Прохожий
 
Регистрация: 09.05.2011
Сообщения: 2
Репутация: 10
Вопрос проблемы с поиском

Народ помогите плиз =( у мя такая проблема,написан текстовый редактор с поиском подобно как в опере,но когда ищуться слова они как надо выделяються, а сам текст не двигается тем самым не показывая найденые слова,как сделать так что бы он двигался?
Ответить с цитированием
  #2  
Старый 09.05.2011, 16:05
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Мне кажется что надо переставить ScrollBar в другую позицию.
Может поможет изменение положения курсора, но не факт.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
  #3  
Старый 09.05.2011, 17:34
Holic Holic вне форума
Прохожий
 
Регистрация: 09.05.2011
Сообщения: 2
Репутация: 10
По умолчанию спасибо=)

спасибо))но тут дело кажись в другом ==" привожу код :unit Unit1;

Код:
interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, StdCtrls, ExtCtrls, ComCtrls, ToolWin, ImgList;

type
  TForm1 = class(TForm)
    RichEdit1: TRichEdit;
    OpenDialog1: TOpenDialog;
    SaveDialog1: TSaveDialog;
    FontDialog1: TFontDialog;
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    N4: TMenuItem;
    N5: TMenuItem;
    N6: TMenuItem;
    N7: TMenuItem;
    N8: TMenuItem;
    N9: TMenuItem;
    N10: TMenuItem;
    N11: TMenuItem;
    N12: TMenuItem;
    N13: TMenuItem;
    N14: TMenuItem;
    N15: TMenuItem;
    ToolBar1: TToolBar;
    ToolButton1: TToolButton;
    ToolButton2: TToolButton;
    ToolButton3: TToolButton;
    FindDialog1: TFindDialog;
    ImageList2: TImageList;
    ToolButton4: TToolButton;
    ToolButton5: TToolButton;
    ToolButton6: TToolButton;
    ToolButton7: TToolButton;
    ToolBar2: TToolBar;
    Edit1: TEdit;
    Button1: TButton;
    Button2: TButton;
    CheckBox1: TCheckBox;
    CheckBox2: TCheckBox;
    ToolButton8: TToolButton;
    ToolButton9: TToolButton;
    procedure RefreshPos;
    procedure Button2Click(Sender: TObject);
    procedure Edit1Change(Sender: TObject);
    procedure ToolButton7Click(Sender: TObject);
    procedure ToolButton6Click(Sender: TObject);
    procedure ToolButton5Click(Sender: TObject);
    procedure ToolButton4Click(Sender: TObject);
    procedure ToolButton3Click(Sender: TObject);
    procedure ToolButton2Click(Sender: TObject);
    procedure ToolButton1Click(Sender: TObject);
    procedure N15Click(Sender: TObject);
    procedure N9Click(Sender: TObject);
    procedure N8Click(Sender: TObject);
    procedure N7Click(Sender: TObject);
    procedure N5Click(Sender: TObject);
    procedure N12Click(Sender: TObject);
    procedure N3Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure FindItemClick(Sender: TObject);
    procedure RichEditChange(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  CurrPos, LPos: integer;
  Pos: array of integer;

implementation

uses ABOUT;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  if CurrPos>1 then
  begin
    Dec(CurrPos);
  end;
  RefreshPos;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
    if CurrPos<lpos then
  begin
    inc(CurrPos);
  end;
  RefreshPos;
end;

procedure Tform1.RefreshPos;
begin
  with RichEdit1 do
  begin
    SelStart := Pos[CurrPos-1];
    SelLength := Length(Edit1.Text);
    SetFocus;
  end;

  Button1.Enabled := true;
  Button2.Enabled := true;

  if CurrPos = 1 then
  begin
    Button1.Enabled := false;
  end;

  if CurrPos = lpos then
  begin
    Button2.Enabled := false;
  end;

end;

procedure TForm1.Button3Click(Sender: TObject);
begin
 if FontDialog1.Execute then
RichEdit1.SelAttributes.Assign(FontDialog1.Font);
end;

procedure TForm1.Edit1Change(Sender: TObject);
var
  ss: string;
  startpos: integer;
  Position: integer;
  st: TSearchTypes;
begin
  ss :=Edit1.Text;
  lpos := 0;
  startpos := 0;

  st := [];

  if CheckBox1.Checked then st := st + [stWholeWord];
  if CheckBox2.Checked then st := st + [stMatchCase];

  if ss <> '' then
  begin
    with RichEdit1 do
    while FindText(ss,  startpos, length(Text), st)<>-1 do
    begin
      Position := FindText(ss,  startpos, length(Text), st);
      lpos := lpos + 1;
      SetLength(pos, lpos);
      Pos[lpos-1] := Position;
      startpos := Position + 1;
    end;
    CurrPos := 1;
  end;
  RefreshPos;
  ShowMessage(IntToStr(lpos));
end;

procedure TForm1.N12Click(Sender: TObject);
begin
ToolButton3.OnClick(self);
end;

procedure TForm1.N15Click(Sender: TObject);
begin
  AboutBox.ShowModal;
end;

procedure TForm1.N2Click(Sender: TObject);
begin
ToolButton1.OnClick(self) ;
end;

procedure TForm1.N3Click(Sender: TObject);
begin
    ToolButton2.OnClick(self)  ;
end;

procedure TForm1.N5Click(Sender: TObject);
begin
   Form1.Close;
end;

procedure TForm1.N7Click(Sender: TObject);
begin
 RichEdit1.CopyToClipboard;
end;

procedure TForm1.N8Click(Sender: TObject);
begin
     RichEdit1.CutToClipboard;
end;

procedure TForm1.N9Click(Sender: TObject);
begin
 RichEdit1.PasteFromClipboard;
end;

procedure TForm1.ToolButton1Click(Sender: TObject);
begin
  if OpenDialog1.Execute then
RichEdit1.Lines.LoadFromFile(OpenDialog1.Filename);
end;

procedure TForm1.ToolButton2Click(Sender: TObject);
begin
   if SaveDialog1.Execute then
RichEdit1.Lines.SaveToFile(SaveDialog1.Filename);
end;

procedure TForm1.ToolButton3Click(Sender: TObject);
begin
   if FontDialog1.Execute then
RichEdit1.SelAttributes.Assign(FontDialog1.Font);
end;

procedure TForm1.ToolButton4Click(Sender: TObject);
begin
RichEdit1.Lines.Text;
    RichEdit1.Paragraph.Alignment:=taCenter; //весь текст выравниваеться по центру

end;

procedure TForm1.ToolButton5Click(Sender: TObject);
begin
   RichEdit1.Text;
RichEdit1.Paragraph.Alignment:=taRightJustify;  //весь текст выравниваеться справа

end;

procedure TForm1.ToolButton6Click(Sender: TObject);
begin
  RichEdit1.Text;
RichEdit1.Paragraph.Alignment:=taLeftJustify;//весь текст выравниваеться слева

end;

procedure TForm1.ToolButton7Click(Sender: TObject);
begin
RichEdit1.Destroy;
end;

procedure TForm1.FindItemClick(Sender: TObject);
begin

end;//процедура поиска на кнопку TButton это которая поиск, а событие на ней FindItemClick

procedure TForm1.RichEditChange(Sender: TObject);
begin
RichEdit1.Tag := 1;
end;

end.

Последний раз редактировалось lmikle, 09.05.2011 в 19:30.
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter