Новый визард поиск и замена.
так как меня достало ручками править отчеты из 2.53.
сделал визард.
подципляете к проекту frx_BsReplace. Мастер появляется в дизайнере.
теперь нажмем на панели мастеров на мастер замену.
набираем текс который нужно заменить
нажмем поиск в левом столбце будут все объекты мемо где встречается
данный поиск.
Кликаем на панели слево. на имя объекта
с право будет текст. нажимает заметь. дальше все очень просто.
мастер кинул в ньюса бинарники.
сделал визард.
подципляете к проекту frx_BsReplace. Мастер появляется в дизайнере.
теперь нажмем на панели мастеров на мастер замену.
набираем текс который нужно заменить
нажмем поиск в левом столбце будут все объекты мемо где встречается
данный поиск.
Кликаем на панели слево. на имя объекта
с право будет текст. нажимает заметь. дальше все очень просто.
мастер кинул в ньюса бинарники.
Комментарии
поиск и замена пропертей.
Stretch
ShiftOver
WordWrap
WordBreak
Очень погает после конвертации отчетов из 2.53.
заменяет все списком сразу.
с исходниками можете добавить другие которые вам нужны.
мне пока хватает этих.
unit frx_BsReplace;
function TfrxWizardReplace.Execute: Boolean;
var
Page: TfrxReportPage;
begin
Designer.Lock;
FrmReplace := TFrmReplace.Create(self);
FrmReplace.Wizard := Self;
if FrmReplace.ShowModal = mrOk then
Result := true;
FrmReplace.Free;
end;
Ты столько увидишь багов.
Designer.Lock;
и станет нормально. правда я не знаю где это может аукнуться.
Странно что есть Lock, но отсутствует UnLock. Но это вопрос уже к автору.
И еще я не понял как с помощью данного визарда, сделать массовую замену, например пробежаться по всем мемо и убрать DialogForm.
кликаешь в списке на объект у тебя в мемо текст появляется.
жмешь кнопку над мемо.
появляется диалог поиск и замена. жми найти
находит .потом заменить. все на экране. в мемо
потом ручками заменяешь скобки в функциях.
и жмещь замент в фасте.
в принципе можешь написать свою функцию.
которая будет заменять во всех объетах. типа поиск и замена в текста в буфере.
Replaces all occurrences of a substring with another string.
Unit StrUtils
function AnsiReplaceStr
или
StringReplace
мне пока этого хватает.
выстави в диалоговых комбобоксах итем индекс которые тебе нужны по умолчанию.
procedure TFrmReplace.ButMemoReplaceAllClick(Sender: TObject);
var
I : Integer;
s1 : String;
begin
if Trim(Ed_FindText.Text)='' then exit;
for i:=0 to Lb_Controls.Items.Count-1 do
begin
Lb_Controls.ItemIndex := i;
Lb_ControlsClick(Sender);
s1:= AnsiReplaceText(Memo.Text, Ed_FindText.Text, Ed_ReplaceText.Text);
// s1 := StringReplace(Memo.Text, Ed_FindText.Text, Ed_ReplaceText.Text,[rfReplaceAll, rfIgnoreCase]);
Memo.Text := s1;
ButMemoReplace.Click;
end;
end;
Спасибо.
на ButMemoReplace
кнопка заменить в мемо
раньше была кажется ButReplaceMemo
посмотри рядом с крыжиком она
тебе прийдется сохранить его в файл.
потом найти заменить.
и только тогда снова загрузить в Блоб.
Не спорю что в фаре навороченей