Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.04.2010, 23:04   #1
designer999
Форумчанин
 
Регистрация: 16.02.2010
Сообщений: 187
По умолчанию уменьшения кода процедур

Здравствуйте
Как сделать например такой кусок программы меньше, тут например 4 одинаковых (только меняется Load2.Strings[0], меньше на 1 за номер кнопки) действий, а у меня в программе например 20,и вот я думаю не рационально так делать как представлено ниже, и вот хотелось бы узнать возможно как то это сделать по другому ?

Код:
procedure TForm1.CheckBox1Click(Sender: TObject);
var Load2:TStringList;
begin
Load2:=TStringList.Create;
Load2.LoadFromFile('imacros.ini');
if CheckBox1.checked=true then
begin 
Load2.Strings[0]:='1'; 
end;


procedure TForm1.CheckBox3Clik(Sender: TObject);
var Load2:TStringList;
begin
Load2:=TStringList.Create;
Load2.LoadFromFile('imacros.ini');
if CheckBox2.checked=true then
begin 
Load2.Strings[1]:='1'; 
end;
end;

procedure TForm1.CheckBox3Clik(Sender: TObject);
var Load2:TStringList;
begin
Load2:=TStringList.Create;
Load2.LoadFromFile('imacros.ini');
if CheckBox1.checked=true then
begin 
Load2.Strings[2]:='1'; 
end;
end;

procedure TForm1.CheckBox3Clik(Sender: TObject);
var Load2:TStringList;
begin
Load2:=TStringList.Create;
Load2.LoadFromFile('imacros.ini');
if CheckBox1.checked=true then
begin 
Load2.Strings[3]:='1'; 
end;
end;
designer999 вне форума Ответить с цитированием
Старый 19.04.2010, 23:30   #2
Marsel737
Форумчанин
 
Аватар для Marsel737
 
Регистрация: 09.11.2009
Сообщений: 669
По умолчанию

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

Код:
unit uMain;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    CheckBox1: TCheckBox;
    CheckBox2: TCheckBox;
    CheckBox3: TCheckBox;
    CheckBox4: TCheckBox;
    procedure CheckBox1Click(Sender: TObject);
    procedure LoadStr(intANum: integer);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

{ TForm1 }

procedure TForm1.CheckBox1Click(Sender: TObject);
begin
  LoadStr((Sender as TCheckBox).Tag);
end;

procedure TForm1.LoadStr(intANum: integer);
var 
  Load2:TStringList;
  Sender: TObject;
begin
  Load2 := TStringList.Create;
  Load2.LoadFromFile('imacros.ini');
  if (Sender as TCheckBox).Checked then
  begin
    Load2.Strings[intANum] := '1';
  end;
  Load2.SaveToFile('imacros.ini');
  Load2.Free; //!!!
end;

end.
Вложения
Тип файла: rar Sender.rar (12.3 Кб, 6 просмотров)
Я не всегда знаю, о чем говорю, но знаю, что прав. © Мухаммед Али.
К чёрту обстоятельства. Я создаю возможности. © Брюс Ли
Marsel737 вне форума Ответить с цитированием
Старый 20.04.2010, 00:17   #3
designer999
Форумчанин
 
Регистрация: 16.02.2010
Сообщений: 187
По умолчанию

спасибо, а если мне например нужны только чекбоксы с 3 по 20 то как тут можно реализовать ?

Последний раз редактировалось designer999; 20.04.2010 в 00:19.
designer999 вне форума Ответить с цитированием
Старый 20.04.2010, 01:10   #4
W0LF
Форумчанин
 
Аватар для W0LF
 
Регистрация: 28.03.2008
Сообщений: 940
По умолчанию

Код:
procedure TForm1.CheckBox1Click(Sender: TObject);
begin
  LoadStr((Sender as TCheckBox).Tag);
end;

procedure TForm1.LoadStr(intANum: integer);
var 
  Load2:TStringList;
  Sender: TObject;
begin
  Load2 := TStringList.Create;
  Load2.LoadFromFile('imacros.ini');
  if intANum = 3..20 then begin// чото типа такого...
  if (Sender as TCheckBox).Checked then
  begin
    Load2.Strings[intANum] := '1';
  end;
  Load2.SaveToFile('imacros.ini');
end;
  Load2.Free; //!!!
end;

end.
W0LF вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Упрощение кода программы за счет использования процедур uraura Общие вопросы Delphi 10 26.03.2009 21:54
Как мне в визуальном программировании написать программу увеличения масштаба и уменьшения до исчезновения Надежда.. Мультимедиа в Delphi 3 29.12.2008 19:28
Уменьшения букв в тексте igordeg Паскаль, Turbo Pascal, PascalABC.NET 1 07.11.2008 10:32
Microsoft Office Outlook : Опция уменьшения картинок copypaste Софт 0 20.05.2008 11:40
Увеличение, уменьшения Bitmap Mickle Общие вопросы Delphi 4 28.03.2007 18:04