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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.07.2008, 17:42   #1
Иллидан
Форумчанин
 
Регистрация: 16.01.2008
Сообщений: 288
По умолчанию Как передать параметр?

В цикле стоит Application.processmessages. Программа может прерываться при нажатии одной из 4 button. Мне необходимо передать параметры, в процедуру, которая обрабатывает нажатие button1. Можно ли это осуществить?
Иллидан вне форума Ответить с цитированием
Старый 11.07.2008, 17:59   #2
Ozerich
Студент 1 курса
Форумчанин Подтвердите свой е-майл
 
Аватар для Ozerich
 
Регистрация: 27.06.2008
Сообщений: 959
По умолчанию

Создай глобальные переменые
C++(STL, QT, WinInet) / DHTML(CSS) / JavaScript / PHP Developer
Ozerich вне форума Ответить с цитированием
Старый 11.07.2008, 18:07   #3
Иллидан
Форумчанин
 
Регистрация: 16.01.2008
Сообщений: 288
По умолчанию

Цитата:
Создай глобальные переменые
Этот способ не очень подходит. Нет других вариантов?
Иллидан вне форума Ответить с цитированием
Старый 11.07.2008, 18:10   #4
Ozerich
Студент 1 курса
Форумчанин Подтвердите свой е-майл
 
Аватар для Ozerich
 
Регистрация: 27.06.2008
Сообщений: 959
По умолчанию

можно значение хранить и обновлять ну например в реестре.
А ваще для таких целей используют глобальные переменые
C++(STL, QT, WinInet) / DHTML(CSS) / JavaScript / PHP Developer
Ozerich вне форума Ответить с цитированием
Старый 11.07.2008, 18:29   #5
Иллидан
Форумчанин
 
Регистрация: 16.01.2008
Сообщений: 288
По умолчанию

Ок, мне просто важна скорость работы. Такой вопрос еще, если можно: обращение локальным и глобальным переменным а также к переменным Public и Private происходят с одинаковой скоротью?
Иллидан вне форума Ответить с цитированием
Старый 11.07.2008, 18:48   #6
Ozerich
Студент 1 курса
Форумчанин Подтвердите свой е-майл
 
Аватар для Ozerich
 
Регистрация: 27.06.2008
Сообщений: 959
По умолчанию

Так проверь по способу который я тебе приводил в другом твоем вопросе
C++(STL, QT, WinInet) / DHTML(CSS) / JavaScript / PHP Developer
Ozerich вне форума Ответить с цитированием
Старый 11.07.2008, 19:19   #7
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

Цитата:
Сообщение от Иллидан Посмотреть сообщение
Такой вопрос еще, если можно: обращение локальным и глобальным переменным а также к переменным Public и Private происходят с одинаковой скоротью?
без разницы! всё происходит с одинаковой скоростью будь переменная в классе, локальная переменная, глобальная, в другом юните. всё одинаково. за исключением случаев типа

Код:
    procedure SetXXX(const Value: integer);
    function GetXXX:integer;

    property XXX:integer read GetXXX write SetXXX;
в данном случае время обращения к свойству полностью зависит от функций GetXXX, SetXXX.
rpy3uH вне форума Ответить с цитированием
Старый 12.07.2008, 12:19   #8
GN_
Пользователь
 
Аватар для GN_
 
Регистрация: 25.11.2006
Сообщений: 86
По умолчанию

Цитата:
Сообщение от Иллидан Посмотреть сообщение
В цикле стоит Application.processmessages. Программа может прерываться при нажатии одной из 4 button. Мне необходимо передать параметры, в процедуру, которая обрабатывает нажатие button1. Можно ли это осуществить?
Если я правильно понял вопрос, то попробуй так сделать:
Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    procedure ButtonClick(Sender: TObject; par: string = '');
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

// Процедура которая обрабатывает нажатие button1 и других кнопок
procedure TForm1.ButtonClick(Sender: TObject; par: string);
begin
  if par <> '' then
    ShowMessage('Перадача параметра - ' + par)
  else
    ShowMessage('Без параметра' );
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Form1.ButtonClick(Self);
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  st: string;
begin
  st := 'Hello World!';
  Form1.ButtonClick(Self, st);
end;

end.
Мой ник - GN
GN_ вне форума Ответить с цитированием
Старый 12.07.2008, 12:57   #9
Иллидан
Форумчанин
 
Регистрация: 16.01.2008
Сообщений: 288
По умолчанию

У меня цикл оформлен вот так:
Код:

while i<10000 do begin
application.ProcessMessages;
 if form1.tag=1 then
  while form1.tag<>0 do begin
  application.ProcessMessages;//
  end;
i:=i+1;
...............
end;

Последний раз редактировалось Иллидан; 12.07.2008 в 13:08.
Иллидан вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
объясните что значит 3й параметр в выражении MadBeef Помощь студентам 1 21.05.2008 16:21
Динамически массив как параметр ф-ии SNUPY Помощь студентам 2 11.05.2008 01:16
Параметр Инночка БД в Delphi 7 19.04.2008 15:33
параметр ShowCmd в ShellExecute Евгений_k Общие вопросы Delphi 9 16.04.2008 16:37
друзья!!! как записать в реестр мультистроковой параметр??? tetraciclinum+ Общие вопросы Delphi 5 04.11.2006 13:49