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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.09.2020, 03:47   #11
BLACK_RAIN
Форумчанин
 
Регистрация: 13.02.2012
Сообщений: 867
По умолчанию

Цитата:
Сообщение от Arigato Посмотреть сообщение
Вопрос автора можно однозначно решить выносом данных действий в отдельную процедуру. После этого вопросов на счет переменных уже не возникнет, она будет локальной в этой процедуре и единственной в коде.
Вы всё усложняете. Вопрос автора был совершенно про другое. Я считаю очевидным, о чем он спрашивал. Тут не важно, для чего была нужна эта переменная и что он хотел с ней делать.
Скорее всего, этот код он написал просто для примера.

Последний раз редактировалось BLACK_RAIN; 29.09.2020 в 03:50.
BLACK_RAIN вне форума Ответить с цитированием
Старый 29.09.2020, 10:57   #12
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,542
По умолчанию

Цитата:
Сообщение от BLACK_RAIN Посмотреть сообщение
Я считаю очевидным, о чем он спрашивал.
Глупо отвечать на его вопрос "используй глобальные переменные" или "используй локальные переменные", так как оба этих ответа примерно равнозначны, то есть не совсем корректны. Правильный ответ - вынеси эти действия в отдельную процедуру и вызывай ее из обработчика, переменные будут локальными для этой процедуры.
Arigato вне форума Ответить с цитированием
Старый 29.09.2020, 12:35   #13
BLACK_RAIN
Форумчанин
 
Регистрация: 13.02.2012
Сообщений: 867
По умолчанию

Цитата:
Сообщение от Arigato Посмотреть сообщение
Глупо отвечать на его вопрос "используй глобальные переменные" или "используй локальные переменные", так как оба этих ответа примерно равнозначны, то есть не совсем корректны. Правильный ответ - вынеси эти действия в отдельную процедуру и вызывай ее из обработчика, переменные будут локальными для этой процедуры.
Значит, вы так и не поняли вопрос топикстартера. Вы пытаетесь ответить на вопрос, который сами же и придумали. Это странно.
BLACK_RAIN вне форума Ответить с цитированием
Старый 29.09.2020, 13:20   #14
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,542
По умолчанию

А что там непонятного?
Цитата:
В двух кнопках две переменных с одинаковым именем и типом. Лучше в каждой кнопке объявить локальную, или один раз глобальную?
Ответ на этот вопрос - лучше вынести код в отдельную процедуру, а не заниматься копи-пастой программного кода.

Это из разряда: чем лучше забивать гвозди, камнем или топоров? Гвозди лучше забивать молотком. Но ТС не то спрашивал, ты вопроса не понял, ему не нужен молоток, его интересуют камни и топоры
Arigato вне форума Ответить с цитированием
Старый 29.09.2020, 13:59   #15
BLACK_RAIN
Форумчанин
 
Регистрация: 13.02.2012
Сообщений: 867
По умолчанию

Цитата:
Сообщение от Arigato Посмотреть сообщение
Ответ на этот вопрос - лучше вынести код в отдельную процедуру, а не заниматься копи-пастой программного кода.
Я не улавливаю, как этот ответ связан с вопросом. Вы не на тот вопрос отвечаете.

Цитата:
В двух кнопках две переменных с одинаковым именем и типом. Лучше в каждой кнопке объявить локальную, или один раз глобальную?
Мне кажется, что автор имел ввиду вот что
код 1:
Код:
type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  a : Integer;
begin
  a := 666;
  ...
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  a : Integer;
begin
  a := 666;
  ...
end;
код 2:
Код:
type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  a : Integer;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  a := 666;
  ...
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  a := 666;
  ...
end;
Что из этого лучше? Вне зависимости от того, как будут использоваться эти переменные.

Последний раз редактировалось BLACK_RAIN; 29.09.2020 в 14:45.
BLACK_RAIN вне форума Ответить с цитированием
Старый 29.09.2020, 14:39   #16
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,542
По умолчанию

Цитата:
Сообщение от BLACK_RAIN Посмотреть сообщение
Вне зависимости от того, как будут использоваться эти переменные.
Но ведь во втором сообщении был приведен реальный код, в котором возник вопрос. То есть это не абстрактный вопрос на счет локальных и глобальных переменных, а вопрос в конкретной ситуации. И в этой конкретной ситуации надо идти по пути объявления отдельной процедуры, а не по пути копи-пасты.
Arigato вне форума Ответить с цитированием
Старый 29.09.2020, 14:53   #17
BLACK_RAIN
Форумчанин
 
Регистрация: 13.02.2012
Сообщений: 867
По умолчанию

Цитата:
Сообщение от Arigato Посмотреть сообщение
Но ведь во втором сообщении был приведен реальный код, в котором возник вопрос.
Я в этом не уверен. Неопытные люди часто задают вопросы некорректно и не всегда приводят правильный пример кода.
В данном случае, мне кажется, что его вопрос я понял правильно.
Надо, чтобы он прояснил.
BLACK_RAIN вне форума Ответить с цитированием
Старый 29.09.2020, 18:26   #18
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,542
По умолчанию

Цитата:
Сообщение от BLACK_RAIN Посмотреть сообщение
Неопытные люди часто задают вопросы некорректно
На некорректный вопрос можно и ответ некорректный получить.
Arigato вне форума Ответить с цитированием
Старый 29.09.2020, 19:56   #19
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

Сага о X, Y и Z...
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 30.09.2020, 07:46   #20
Алексей1153
фрилансер
Форумчанин
 
Регистрация: 11.10.2019
Сообщений: 960
По умолчанию

спор ни о чём, коллеги Что имел в виду ТС - знает только он, без его пояснений нет смысла спорить

На данный момент ТС вообще считает, что всё происходит в кнопке (типичное представление начинающих борландистов):

Цитата:
Сообщение от Женя32 Посмотреть сообщение
В двух кнопках две переменных с одинаковым именем и типом
Алексей1153 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Глобальная функция + приватные переменные + вызов из другого класса? chiffa Общие вопросы C/C++ 7 12.01.2018 23:46
Подсчитать количество локальных минимумов вектора Х(25). Предусмотреть распечатку значений локальных минимумов Shved2298 Помощь студентам 1 08.05.2017 12:01
несколько структур одна переменна Khayzenberg Общие вопросы Delphi 11 05.10.2012 09:18
График, одна общая ось х, несколько y Dobrk_k Microsoft Office Excel 6 29.04.2012 14:04
Как вместо статических локальных переменных использовать переменные объявленные в namespace? Oleg_SK Общие вопросы C/C++ 25 05.07.2010 18:46