Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Борьба с одинаковыми кусками кода 
:(
    Опции темы
Dende-Soft
Дата 11.2.2008, 10:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 10.3.2007

Репутация: нет
Всего: нет



Такой глупый вопрос.
У меня в программе - 80% кода - одинаковый, различающийся всего одной строкой.

Код

повторяющийся код
sl.Lines.Add('варпарр'); / та "особенная строка"


Как можно это упростить, не утяжеляя программу тысячей одинаковых строк?
PM MAIL WWW ICQ   Вверх
kemiisto
Дата 11.2.2008, 10:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



Профиль
Группа: Участник Клуба
Сообщений: 3292
Регистрация: 29.7.2007

Репутация: 2
Всего: 160



Повторяющийся кусок кода нужно оформить в виде процедуры или функции и вызывать ее в необходимых местах.


--------------------
PM MAIL WWW GTalk Jabber   Вверх
pukin
Дата 11.2.2008, 10:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 6.9.2007
Где: Россия. Москва/Ко ролёв

Репутация: нет
Всего: нет



Цитата(Dende-Soft @ 11.2.2008,  10:40)
Такой глупый вопрос.
У меня в программе - 80% кода - одинаковый, различающийся всего одной строкой.

Код

повторяющийся код
sl.Lines.Add('варпарр'); / та "особенная строка"


Как можно это упростить, не утяжеляя программу тысячей одинаковых строк?

А можно глянуть каике данные ты добавляешь в sl? Покажи немного кода, а то мало данных, чтобы понять как именно тебе это упростить.

Можно было бы написать процедурку и передавать ей твой текст, который надо добавить в sl, но мало ли, может можно передавать сразу кучу значений, которые процедурка должна добавить в sl. Зависит от того, что ты туда пихаешь. smile


Если я правильно понял - то sl у тебя VCLTMemo..
Пример процедурки:

Код

procedure AddToMemo(Memo: TMemo; AddText: AnsiString); // А ведь можно сделать так, чтобы сюда добавлялся массив текста, а не кусочек. :)
begin
  Memo.Lines.Add(AddText)
end;

procedure TForm1.FormCreate(Sender: TObject);
var
  i : integer;
begin
  for i:=0 to 20 do AddToMemo(Form1.sl,'варпарр');
end;


 smile 
PM MAIL   Вверх
Dende-Soft
Дата 11.2.2008, 11:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 10.3.2007

Репутация: нет
Всего: нет




Цитата

Если я правильно понял - то sl у тебя VCL: TMemo..


Это не мемо, а синедит, тоесть разницы практически нет.

Вот сам кусок кода
Код


var
Sl:Tsynedit;
i:integer;
begin
i:=PageControl2.ActivePageIndex;
with PageControl2 do
if ActivePage.Controls[0] is Tsynedit then  begin
Sl:=Tsynedit(Pages[i].Controls[0]);
sl.Lines.Add('варпарр');

PM MAIL WWW ICQ   Вверх
pukin
Дата 11.2.2008, 15:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 6.9.2007
Где: Россия. Москва/Ко ролёв

Репутация: нет
Всего: нет



Цитата(Dende-Soft @ 11.2.2008,  11:10)
Цитата

Если я правильно понял - то sl у тебя VCL: TMemo..


Это не мемо, а синедит, тоесть разницы практически нет.

Вот сам кусок кода
Код


var
Sl:Tsynedit;
i:integer;
begin
i:=PageControl2.ActivePageIndex;
with PageControl2 do
if ActivePage.Controls[0] is Tsynedit then  begin
Sl:=Tsynedit(Pages[i].Controls[0]);
sl.Lines.Add('варпарр');

Дык, засунь этот код в отдельную процедуру и вызывай её одной строчкой...

Код

procedure AddToMemo(AddText: AnsiString); // А ведь можно сделать так, чтобы сюда добавлялся массив текста, а не кусочек. :)
var
   sl: TSynEdit;
   i : Integer;
begin
   i:=Form1.PageControl2.ActivePageIndex;
   if Form1.PageControl2.ActivePage.Controls[0] is TSynEdit then
      begin
    sl := TSynEedit(Form1.PageControl2.Pages[i].Controls[0]);
    sl.Lines.Add(AddText);
      end;
end;

AddToMemo('варпарр');


Или я чего-то недопонимаю?  smile 
PM MAIL   Вверх
Dende-Soft
Дата 11.2.2008, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 10.3.2007

Репутация: нет
Всего: нет



Цитата

Или я чего-то недопонимаю?

Это я просто туго в делфи соображаю.
Всем спасибо!
PM MAIL WWW ICQ   Вверх
pukin
Дата 11.2.2008, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 6.9.2007
Где: Россия. Москва/Ко ролёв

Репутация: нет
Всего: нет



Цитата(Dende-Soft @ 11.2.2008,  15:58)
Цитата

Или я чего-то недопонимаю?

Это я просто туго в делфи соображаю.
Всем спасибо!

Пожалуйстаsmile

Незабудь отметить, что решено.  smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1132 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.