|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
проблемы с поиском
Народ помогите плиз =( у мя такая проблема,написан текстовый редактор с поиском подобно как в опере,но когда ищуться слова они как надо выделяються, а сам текст не двигается тем самым не показывая найденые слова,как сделать так что бы он двигался?
|
#2
|
||||
|
||||
Мне кажется что надо переставить ScrollBar в другую позицию.
Может поможет изменение положения курсора, но не факт. jmp $ ; Happy End! The Cake Is A Lie. |
#3
|
|||
|
|||
спасибо=)
спасибо))но тут дело кажись в другом ==" привожу код :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. |