ввод и вывод подстроки в lazarus
Добавлено: 19.08.2014 13:21:30
здравствуйте, и зараннее спасибо за помощь.
а теперь к делу. у меня есть программа, которая выделяет строку из listbox затем переносит её в edit для редактирования, и возвращает отредактированную часть обратно.
вот код программы.
путём поиска в инете я нашол функцию которая может вставлять в edit часть строки
но при попытке вернёть часть обратно оно либо заменяет собой всё строку, а не возвращает на своё место.
если кто знает что можно с этим сделать подскажите пожалуйсто.
а теперь к делу. у меня есть программа, которая выделяет строку из listbox затем переносит её в edit для редактирования, и возвращает отредактированную часть обратно.
- Код: Выделить всё
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, SynHighlighterTeX, SynMemo, Forms, Controls,
Graphics, Dialogs, StdCtrls, StrUtils;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Edit1: TEdit;
ListBox1: TListBox;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Edit1Change(Sender: TObject);
procedure Edit1KeyPress(Sender: TObject; var Key: char);
procedure FormCreate(Sender: TObject);
procedure ListBox1Click(Sender: TObject);
procedure SaveDialog1CanClose(Sender: TObject; var CanClose: boolean);
procedure SaveDialog1FolderChange(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.Button1Click(Sender: TObject);
begin
if OpenDialog1.Execute then begin
ListBox1.Items.LoadFromFile(OpenDialog1.FileName);
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
if SaveDialog1.Execute then begin
ListBox1.Items.SaveToFile(SaveDialog1.FileName);
end;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
if MessageDlg('Удалить строку?', mtInformation,
[mbOk,mbCancel],0) = mrOK
then
begin
ListBox1.Items.delete(ListBox1.ItemIndex);
ListBox1.Items.SaveToFile('FileName');
end;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
if MessageDlg('Вставить строку выше выделенной?', mtInformation, [mbOk,mbCancel],0) = mrOK
then
begin
ListBox1.Items.Insert(ListBox1.ItemIndex, Edit1.text);
ListBox1.Items.SaveToFile('FileName');
end;
end;
procedure TForm1.Edit1Change(Sender: TObject);
begin
end;
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: char);
begin
with ListBox1 do
if (key=#13)and(ItemIndex<>-1) then begin
Items[ItemIndex]:=TEdit(Sender).Text;
SetFocus();
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
SaveDialog1.Filter:=
'текстовые файлы|*.txt|Все файлы|*.*';
end;
procedure TForm1.ListBox1Click(Sender: TObject);
begin
Edit1.Text := ListBox1.Items.Strings[ListBox1.ItemIndex];
end;
procedure TForm1.SaveDialog1CanClose(Sender: TObject; var CanClose: boolean);
begin
end;
procedure TForm1.SaveDialog1FolderChange(Sender: TObject);
begin
end;
end.
вот код программы.
путём поиска в инете я нашол функцию которая может вставлять в edit часть строки
- Код: Выделить всё
procedure TForm1.ListBox1Click(Sender: TObject);
begin
Edit1.Text := Trim(ExtractWord(1, ListBox1.Items
[ListBox1.ItemIndex], [';',' ','.',',']));
end;
но при попытке вернёть часть обратно оно либо заменяет собой всё строку, а не возвращает на своё место.
если кто знает что можно с этим сделать подскажите пожалуйсто.