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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.05.2010, 18:30   #1
OST_K
 
Регистрация: 15.05.2010
Сообщений: 6
Восклицание Как обьединить кучу однобразного кода собый Button Click

У меня есть много кнопок Button1 ... Button27 и каждая выполняет загрузку html-страничку вот

procedure TForm1.Button1Click(Sender: TObject);
begin
mydir:=ExtractFilePath(Application. ExeName);
form1.WebBrowser1.Navigate(mydir+'d ata\a.htm');
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
mydir:=ExtractFilePath(Application. ExeName);
form1.WebBrowser1.Navigate(mydir+'d ata\b.htm');
end;
...................

procedure TForm1.Button11Click(Sender: TObject);
begin
mydir:=ExtractFilePath(Application. ExeName);
form1.WebBrowser1.Navigate(mydir+'d ata\с.htm');
end;

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

procedure TForm1.FormCreate(Sender: TObject);
begin
mydir:=ExtractFilePath(Application. ExeName);
Button1.Click:=WebBrowser1.Navigate (mydir+'data\a.htm');
Button2.Click:=WebBrowser1.Navigate (mydir+'data\b.htm');
Button3.Click:=WebBrowser1.Navigate (mydir+'data\с.htm');
Button4.Click:=WebBrowser1.Navigate (mydir+'data\d.htm');
или
как допустим
if Button1.Click then begin
WebBrowser1.Navigate(mydir+'data\a. htm');
if Button2.Click then begin
WebBrowser1.Navigate(mydir+'data\b. htm');
if Button3.Click then begin
WebBrowser1.Navigate(mydir+'data\b. htm');

//--- это неправильно типо того как можно
OST_K вне форума Ответить с цитированием
Старый 25.05.2010, 18:35   #2
DoDge_VipeR
Форумчанин
 
Аватар для DoDge_VipeR
 
Регистрация: 30.04.2010
Сообщений: 317
По умолчанию

Код:
 if (Sender as TButton).name = "Button1" then WebBrowser1.Navigate(mydir+'data\a. htm');
и т.д.
icq:627719[сто сорок четыре] - помогу с Pascal & Delphi!
DoDge_VipeR вне форума Ответить с цитированием
Старый 25.05.2010, 18:43   #3
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Лучше использовать свойство Tag кнопок и тогда можно все это сделать через оператор выбора Case...
Код:
Case (Sender as TButton).Tag of
 X1:
 X2:
 ...
XN:
end;
Перемешивай дело с бездельем и не сойдешь с ума...

Последний раз редактировалось Grag; 25.05.2010 в 18:45.
Grag вне форума Ответить с цитированием
Старый 25.05.2010, 19:16   #4
OST_K
 
Регистрация: 15.05.2010
Сообщений: 6
По умолчанию Испробовал ваши предложения чета не получается

с этим
if (Sender as TButton).name = "Button1" then WebBrowser1.Navigate(mydir+'data\a. htm');
///
[Error] Unit1.pas(80): Illegal character in input file: '"' ($22)

а вот тут Invalid class typecast
////
Case (Sender as TButton).Tag of
1:form1.WebBrowser1.Navigate(mydir+ 'data\a.htm');
2:form1.WebBrowser1.Navigate(mydir+ 'data\b.htm');
3:form1.WebBrowser1.Navigate(mydir+ 'data\v.htm');
4:form1.WebBrowser1.Navigate(mydir+ 'data\g.htm');
5:form1.WebBrowser1.Navigate(mydir+ 'data\d.htm');
end;
end;
OST_K вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi Как связать и хранить кучу объектов? Эльфийский Помощь студентам 9 21.08.2009 01:40
Как узнать имя button BuT@JL Общие вопросы Delphi 7 19.08.2009 10:42
Обьединить несколько макросов в один kzld Microsoft Office Excel 5 31.07.2009 11:08
помогите обьединить Darkstar Помощь студентам 1 29.05.2009 11:09
Как реализовать "Click pass through" ? Legat Win Api 1 15.10.2007 19:35