Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Программа и интерфейс
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 26.04.2013, 11:27
corpse6666 corpse6666 вне форума
Прохожий
 
Регистрация: 26.04.2013
Сообщения: 9
Версия Delphi: Delphi 7
Репутация: 10
Восклицание Реализация повтора клавиш

Как реализовать повтор клавиш которые нажимал пользователь?
Вот код программы но что бы он изменял значения приходиться нажимать на кнопку повторно в ручную.
http://yadi.sk/d/qCLJgTgD4MXv0
[spoiler="code"]
Код:
var
  Form1: TForm1;
  a: string;
  c,x: integer;
  v11,v12,v13,v14,v21,v22,v23,v24,v31,v32,v33,v34,v35,v36,v37,v38,v61,v62,v63,v64,v71,v72,v73,v74,v81,v82,v83,v84,v91,v92,v93,v94,v101,v102,v103,v104,v105,v106,v107,v108,v109,v111,v112,v113,v114,v115,v116,v117,v118,v119,v121,v122,v123,v124,v125,v126,v127,v128,v131,v132,v133,v134,v141,v142,v143,v144,v151,v152,v153,v154,v155,v156,v157,v158,v159,v161,v162,v163,v164,v165,v166,v167,v168,v169: integer;

  start: integer;
  List: array of Integer;
  Len: Integer;
  Iterator: Integer;

  implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
a:=button1.caption;
c:=radiogroup1.itemindex;
Len:=Length(List) + 1;
  SetLength(List, Len);
  List[Len - 1] := (Sender as TButton).Tag;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
 a:=button2.caption;
c:=radiogroup2.itemindex;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
    a:=button3.caption;
c:=radiogroup3.itemindex;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
   a:=button4.caption;
c:=radiogroup4.itemindex;
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
  a:=button5.caption;
c:=radiogroup5.itemindex;
end;

procedure TForm1.Button6Click(Sender: TObject);
begin
 a:=button6.caption;
c:=radiogroup6.itemindex;
end;

procedure TForm1.Button7Click(Sender: TObject);
begin
    a:=button7.caption;
c:=radiogroup7.itemindex;
end;

procedure TForm1.Button8Click(Sender: TObject);
begin
  a:=button8.caption;
c:=radiogroup8.itemindex;
end;

procedure TForm1.Button10Click(Sender: TObject);
begin
button10.Caption:=a;
v11:=c;
end;

procedure TForm1.Button11Click(Sender: TObject);
begin
button11.Caption:=a;
v12:=c;
end;

procedure TForm1.Button12Click(Sender: TObject);
begin
button12.Caption:=a;
v13:=c;
end;

procedure TForm1.Button13Click(Sender: TObject);
begin
button13.Caption:=a;
v14:=c;
end;

procedure TForm1.Button9Click(Sender: TObject);
var
x,y,d: integer;
begin
a:=button9.Caption;
x:=v11 and v12;
y:=v13 and v14;
d:=x or y;
c:=1-d;
label1.caption:=inttostr(c);
end;

procedure TForm1.Button14Click(Sender: TObject);
begin
button14.Caption:=a;
v21:=c;
end;

procedure TForm1.Button15Click(Sender: TObject);
begin
button15.Caption:=a;
v22:=c;
end;

procedure TForm1.Button16Click(Sender: TObject);
begin
button16.Caption:=a;
v23:=c;
end;

procedure TForm1.Button17Click(Sender: TObject);
begin
button17.Caption:=a;
v24:=c;
end;

procedure TForm1.Button18Click(Sender: TObject);
var
x,y: integer;
begin
x:=v21 and v22;
y:=v23 and v24;
c:=x or y;
label2.caption:=inttostr(c);
a:=button18.Caption;
end;

procedure TForm1.Button19Click(Sender: TObject);
begin
button19.Caption:=a;
v31:=c;
end;

procedure TForm1.Button20Click(Sender: TObject);
begin
 button20.Caption:=a;
v32:=c;
end;

procedure TForm1.Button21Click(Sender: TObject);
begin
button21.Caption:=a;
v33:=c;
end;

procedure TForm1.Button22Click(Sender: TObject);
begin
button22.Caption:=a;
v34:=c;
end;

procedure TForm1.Button23Click(Sender: TObject);
begin
button23.Caption:=a;
v35:=c;
end;

procedure TForm1.Button24Click(Sender: TObject);
begin
button24.Caption:=a;
v36:=c;
end;

procedure TForm1.Button25Click(Sender: TObject);
begin
button25.Caption:=a;
v37:=c;
end;

procedure TForm1.Button26Click(Sender: TObject);
begin
button26.Caption:=a;
v38:=c;
end;

procedure TForm1.Button27Click(Sender: TObject);
var
x: integer ;
begin
x:=v31 and v32;
c:=1-x;
label3.caption:=inttostr(c);
a:=button27.Caption;
end;

procedure TForm1.Button28Click(Sender: TObject);
var
x: integer ;
begin
x:=v33 and v34;
c:=1-x;
label4.caption:=inttostr(c);
a:=button28.Caption;
end;

procedure TForm1.Button29Click(Sender: TObject);
var
x: integer ;
begin
x:=v35 and v36;
c:=1-x;
label5.caption:=inttostr(c);
a:=button29.Caption;
end;

procedure TForm1.Button30Click(Sender: TObject);
var
x: integer ;
begin
x:=v37 and v38;
c:=1-x;
label6.caption:=inttostr(c);
a:=button30.Caption;
end;


procedure TForm1.Button43Click(Sender: TObject);
begin
 button43.Caption:=a;
v61:=c;
end;

procedure TForm1.Button44Click(Sender: TObject);
begin
button44.Caption:=a;
v62:=c;
end;

procedure TForm1.Button45Click(Sender: TObject);
begin
button45.Caption:=a;
v63:=c;
end;

procedure TForm1.Button46Click(Sender: TObject);
begin
button46.Caption:=a;
v64:=c;
end;

procedure TForm1.Button47Click(Sender: TObject);
var
x:integer;
begin
x:=v61 and v62 and v63 and v64;
c:=1-x;
label7.Caption:= inttostr(c);
a:=button47.Caption
end;

procedure TForm1.Button48Click(Sender: TObject);
begin
  button48.Caption:=a;
v71:=c;
end;



procedure TForm1.Button69Click(Sender: TObject);
begin
button69.Caption:=a ;
v104:=c              ;
end;

procedure TForm1.Button70Click(Sender: TObject);
begin
button70.Caption:=a ;
v105:=c              ;
end;

procedure TForm1.Button71Click(Sender: TObject);
begin
button71.Caption:=a ;
v106:=c              ;
end;

procedure TForm1.Button64Click(Sender: TObject);
var
x:integer;
begin
x:=v104 and v105 and v106;
c:=1-x;
label12.caption:=inttostr(c);
a:=button64.Caption   ;
end;

procedure TForm1.Button72Click(Sender: TObject);
begin
button72.Caption:=a ;
v107:=c              ;
end;

procedure TForm1.Button73Click(Sender: TObject);
begin
button73.Caption:=a ;
v108:=c              ;
end;

procedure TForm1.Button74Click(Sender: TObject);
begin
button74.Caption:=a ;
v109:=c              ;
end;

procedure TForm1.Button65Click(Sender: TObject);
var
x:integer;
begin
x:=v107 and v108 and v109;
c:=1-x;
label13.caption:=inttostr(c);
a:=button65.Caption   ;
end;



procedure TForm1.Button80Click(Sender: TObject);
begin
button80.caption:=a;
v111:=c;
end;

procedure TForm1.Button81Click(Sender: TObject);
begin
button81.caption:=a;
v112:=c;
end;

procedure TForm1.Button82Click(Sender: TObject);
begin
button82.caption:=a;
v113:=c;
end;

procedure TForm1.Button83Click(Sender: TObject);
begin
button83.caption:=a;
v114:=c;
end;

procedure TForm1.Button84Click(Sender: TObject);
begin
 button84.caption:=a;
v115:=c;
end;

procedure TForm1.Button85Click(Sender: TObject);
begin
button85.caption:=a;
v116:=c;
end;

procedure TForm1.Button86Click(Sender: TObject);
begin
button86.caption:=a;
v117:=c;
end;

procedure TForm1.Button87Click(Sender: TObject);
begin
button87.caption:=a;
v118:=c;
end;

procedure TForm1.Button88Click(Sender: TObject);
begin
button88.caption:=a;
v119:=c;
end;

procedure TForm1.Button79Click(Sender: TObject);
var
x,y,z,h,j:integer;
begin
x:=v111 and v112;
y:=v113 and v114;
z:=v115 and v116 and v117;
h:=v118 and v119;
j:=x or y or z or h;
c:=1-j;
label14.Caption:=inttostr(c);
a:=button79.Caption;
end;

procedure TForm1.Button89Click(Sender: TObject);
begin
button89.Caption:=a;
v121:=c ;
end;

procedure TForm1.Button90Click(Sender: TObject);
begin
button90.Caption:=a;
v122:=c;
end;

procedure TForm1.Button91Click(Sender: TObject);
begin
button91.Caption:=a;
v123:=c;
end;

procedure TForm1.Button92Click(Sender: TObject);
begin
button92.Caption:=a;
v124:=c;
end;

procedure TForm1.Button93Click(Sender: TObject);
begin
button93.Caption:=a;
v125:=c;
end;

procedure TForm1.Button94Click(Sender: TObject);
begin
button94.Caption:=a;
v126:=c;
end;

procedure TForm1.Button95Click(Sender: TObject);
begin
button95.Caption:=a;
v127:=c;
end;

procedure TForm1.Button96Click(Sender: TObject);
begin
button96.Caption:=a;
v128:=c;
end;

procedure TForm1.Button97Click(Sender: TObject);
var
x: integer;
begin
a:=button97.Caption;
x:=v121 and v122;
c:=1-x;
label15.caption:=inttostr(c);
end;

procedure TForm1.Button98Click(Sender: TObject);
var
x: integer;
begin
a:=button98.Caption;
x:=v123 and v124;
c:=1-x;
label16.caption:=inttostr(c);
end;


procedure TForm1.Button137Click(Sender: TObject);
begin
button137.Caption:=a;
v163:=c;
end;

procedure TForm1.Button138Click(Sender: TObject);
begin
button138.Caption:=a;
v164:=c;
end;

procedure TForm1.Button139Click(Sender: TObject);
begin
button139.Caption:=a;
v165:=c;
end;

procedure TForm1.Button140Click(Sender: TObject);
begin
button140.Caption:=a;
v166:=c;
end;

procedure TForm1.Button141Click(Sender: TObject);
begin
button141.Caption:=a;
v167:=c;
end;

procedure TForm1.Button142Click(Sender: TObject);
begin
button142.Caption:=a;
v168:=c;
end;

procedure TForm1.Button143Click(Sender: TObject);
begin
button143.Caption:=a;
v169:=c;
end;

procedure TForm1.Button144Click(Sender: TObject);
var
x: integer;
begin
x:=v161 and v162 and v163;
c:=1-x;
label22.Caption:=IntToStr(c);
a:=button144.Caption;
end;

procedure TForm1.Button145Click(Sender: TObject);
var
x: integer;
begin
x:=v164 and v165 and v166;
c:=1-x;
label23.Caption:=IntToStr(c);
a:=button145.Caption;
end;

procedure TForm1.Button146Click(Sender: TObject);
var
x: integer;
begin
x:=v167 and v168 and v169;
c:=1-x;
label24.Caption:=IntToStr(c);
a:=button146.Caption;
end;

procedure TForm1.Button36Click(Sender: TObject);
begin
start:=c;
ListBox1.Clear;
  Iterator:=Len;
  Timer1.Enabled:=True;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
if (0 < Iterator) then
    begin
      Dec(Iterator);
      start:=c;
      ListBox1.Items.Add(IntToStr(start));
    end
  else
    Iterator := Len;
    start:=c ;
end;

end.
[/spoiler]

Последний раз редактировалось corpse6666, 26.04.2013 в 11:48.
Ответить с цитированием
  #2  
Старый 26.04.2013, 11:35
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Цитата:
v11,v12,v13,v14,v21,v22,v23,v24,v31,v32,v33,v34,v3 5,v36,v37,v38,v61,v62,v63,v64,v71,v72,v73,v74,v81, v82,v83,v84,v91,v92,v93,v94,v101,v102,v103,v104,v1 05,v106,v107,v108,v109,v111,v112,v113,v114,v115,v1 16,v117,v118,v119,v121,v122,v123,v124,v125,v126,v1 27,v128,v131,v132,v133,v134,v141,v142,v143,v144,v1 51,v152,v153,v154,v155,v156,v157,v158,v159,v161,v1 62,v163,v164,v165,v166,v167,v168,v169: integer;
Зачотный код!
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #3  
Старый 26.04.2013, 22:06
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Нужно бооооольше переменных... IDA-style.

Не знаю, как надо упороться, чтобы написать такой код. Вообще задача решается в 3 строчки. Ставим всем кнопкам (ведь судя по коду, под клавишами подразумеваются кнопки?) один обработчик, который вытаскивает текущий tag и кладет его в очередь. Потом все кнопки повторяем по тегам.
А если имеются в виду именно клавиши - так это еще проще: по событию onKeyDown формы добавляем клавишу в очередь.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
  #4  
Старый 26.04.2013, 22:38
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Переменные ладно, вы лучше оцените количество кнопочек на форме
Автор! Скрин этой формы можно в студию?
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #5  
Старый 28.04.2013, 22:02
corpse6666 corpse6666 вне форума
Прохожий
 
Регистрация: 26.04.2013
Сообщения: 9
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от Страдалецъ
Переменные ладно, вы лучше оцените количество кнопочек на форме
Автор! Скрин этой формы можно в студию?
Ну в архиве полный исходник.
И по поводу укоротить а вы думайте я идиот не об являть переменные массивами?
Если было бы без резницы какая переменная что делает сделал бы массив а к массиву бы код под 1-2 клавиши: D
Только там целый лабораторный стол элементов и или нет + еще реализация генератора синхроимпульсов. + осцилографа и тд.
Ответить с цитированием
  #6  
Старый 29.04.2013, 02:15
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Посмотрел я вашу форму. Я бы вам рекомендовал положить на форму компонент ScrollBox, а уже в него все ваши компоненты. Форма у вас здоровая получается, не всякий монитор может ее отобразить в полном объеме. Кроме того, судя по тому что вы планируете, стандартные компоненты вам не очень подходят для реализации этой задачи. Можете нарисовать собственные, а можете взять уже готовый набор, например вот тут посмотрите.
А вообще, вот для размышления
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #7  
Старый 29.04.2013, 09:40
corpse6666 corpse6666 вне форума
Прохожий
 
Регистрация: 26.04.2013
Сообщения: 9
Версия Delphi: Delphi 7
Репутация: 10
Печаль

Цитата:
Сообщение от Страдалецъ
Посмотрел я вашу форму. Я бы вам рекомендовал положить на форму компонент ScrollBox, а уже в него все ваши компоненты. Форма у вас здоровая получается, не всякий монитор может ее отобразить в полном объеме. Кроме того, судя по тому что вы планируете, стандартные компоненты вам не очень подходят для реализации этой задачи. Можете нарисовать собственные, а можете взять уже готовый набор, например вот тут посмотрите.
А вообще, вот для размышления
Мне нужен частичный повтор для RS тригеров так как они подключаются к генератору импульсов.
повтор клавиш в порядке установленным пользователем. Остальное сам реализую)) дабы это дело ставиться под таймаут.
Вот пример
arr: array of integer;
где арр будет принимать значение кнопок и заполняться с 0.
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Button[arr].onclick;
end

Button[arr].onclick;
Только данная функция не кампелируется в делфи 7

Последний раз редактировалось corpse6666, 29.04.2013 в 13:34.
Ответить с цитированием
  #8  
Старый 30.04.2013, 01:07
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

И не будет, integer и событие, это разные вещи, если только здесь не идёт речь о массиве кнопок, но можно вот так
Код:
var
i,j: integer;
arr: array of integer;
begin
for i := 0 to ComponentCount - 1 do
   if (Components[i] is TButton) then
    for j := Low(arr) to High(arr) do
     if (Components[i] as TButton).Tag = arr[j] then (Components[i] as TButton).OnClick;
end;
или
Код:
var
i: integer;
arr: array of integer;
begin
for i := Low(arr) to High(arr) do
(FindComponent('Button' + IntToStr(arr[i])) as TButton).OnClick;
end;
Ответить с цитированием
  #9  
Старый 06.05.2013, 10:32
corpse6666 corpse6666 вне форума
Прохожий
 
Регистрация: 26.04.2013
Сообщения: 9
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Выводит ошибки в таймере(находиться в конце).
Код:
var
  Form1: TForm1;
       a,b,c,d:integer;
       i: integer;
       arr: array of integer;
       v1,v2:integer;
       l: string;
implementation

{$R *.dfm}


procedure TForm1.Button3Click(Sender: TObject);
begin
i:=i+1;
arr[i]:=3;
a:=radiogroup1.ItemIndex;
l:=button3.Caption;
end;

procedure TForm1.Button6Click(Sender: TObject);
begin

i:=i+1;
arr[i]:=6;
a:=radiogroup2.itemindex;
 l:=button6.Caption;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
i:=i+1;
arr[i]:=1;
button1.Caption:=l;
v1:=a;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin

i:=i+1;
arr[i]:=2;
button2.Caption:=l;
v2:=a;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
i:=i+1;
arr[i]:=4;
b:=v1 and v2;
a:=1-b;
label1.caption:=inttostr(a);
l:=button4.Caption;
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
i:=i+1;
arr[i]:=5;
Memo2.Text:=IntToStr(a);
Timer1.Enabled:=True;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
for i := Low(arr) to High(arr) do \[Warning] Unit1.pas(103): For loop control variable must be simple local variable
(FindComponent('Button' + IntToStr(arr[i])) as TButton).OnClick;\[Error] Unit1.pas(104): Not enough actual parameters
end;

end.
Ответить с цитированием
  #10  
Старый 06.05.2013, 11:00
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Цитата:
Сообщение от corpse6666
Выводит ошибки в таймере(находиться в конце)...
Публичное объявление массива, копилятор "боится" что его параметры могут быть измены прям во время выполнения цикла, поэтому
перенесите arr из публичного объявления в локальную секцию var обработчика таймера и ещё, при поиске компонета замените жим кнопки .OnClick на просто .Click.
Ответить с цитированием
Этот пользователь сказал Спасибо Alegun за это полезное сообщение:
corpse6666 (06.05.2013)
  #11  
Старый 06.05.2013, 12:47
corpse6666 corpse6666 вне форума
Прохожий
 
Регистрация: 26.04.2013
Сообщения: 9
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Как избавиться от вечного заполнения массива?
Код:
var
  Form1: TForm1;
       a,b,c,d:integer;
       i: integer;
        arr: array [0..10000] of integer;
       v1,v2:integer;
       l: string;
implementation

{$R *.dfm}


procedure TForm1.Button3Click(Sender: TObject);
begin
i:=i+1;
arr[i]:=3;
a:=radiogroup1.ItemIndex;
l:=button3.Caption;
end;

procedure TForm1.Button6Click(Sender: TObject);
begin

i:=i+1;
arr[i]:=6;
a:=radiogroup2.itemindex;
 l:=button6.Caption;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
i:=i+1;
arr[i]:=1;
button1.Caption:=l;
v1:=a;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin

i:=i+1;
arr[i]:=2;
button2.Caption:=l;
v2:=a;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
i:=i+1;
arr[i]:=4;
b:=v1 and v2;
a:=1-b;
label1.caption:=inttostr(a);
l:=button4.Caption;
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
i:=i+1;
arr[i]:=5;
Memo2.lines.Add(inttostr(c));
Timer1.Enabled:=True;

end;

procedure TForm1.Timer1Timer(Sender: TObject);
var ii:integer;
begin
for ii := Low(arr)+1 to High(arr) do
begin
//Memo3.Lines.Add(inttostr(arr[ii]));
(FindComponent('Button' + IntToStr(arr[ii])) as TButton).onClick(Sender);
end;

end;

procedure TForm1.FormCreate(Sender: TObject);
begin
i:=0;
end;

end.
Ответить с цитированием
  #12  
Старый 06.05.2013, 13:31
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Нужно объявить Button1Click для всех баттонов

Код:
var
i: integer = 0; 
...

procedure TForm1.Button1Click(Sender: TObject);
begin

inc(i);

arr[i]:= (Sender as TButton).Tag;

case (Sender as TButton).Tag of
3: a:= radiogroup1.ItemIndex;
6: a:=radiogroup2.itemindex;
1,2,4 :  l:= (Sender as TButton).Caption;
end;

case (Sender as TButton).Tag of
1: v1:=a;
2: v2:=a;
4:
begin
b:=v1 and v2;
a:=1-b;
label1.caption:=inttostr(a);
end;
5:
begin
Memo2.lines.Add(inttostr(c));
Timer1.Enabled:=True;
end;
end;

// итд.

end;
вроде значение свойства tag совпадает с нумерацией кнопок.
Ответить с цитированием
  #13  
Старый 06.05.2013, 14:34
corpse6666 corpse6666 вне форума
Прохожий
 
Регистрация: 26.04.2013
Сообщения: 9
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Код:
procedure TForm1.Timer1Timer(Sender: TObject);
var ii:integer;
begin
for ii := Low(arr)+1 to 7 do
begin
//Memo3.Lines.Add(inttostr(arr[ii]));
(FindComponent('Button' + IntToStr(arr[ii])) as TButton).onClick(Sender);
end;
Спасибо за помощь уже во всем разобрался) ограничить массив количеством кнопок к примеру раз исходный код большой можно взять чуть больше 50%
Ответить с цитированием
  #14  
Старый 06.05.2013, 18:48
icWasya icWasya вне форума
Местный
 
Регистрация: 09.11.2010
Сообщения: 499
Репутация: 10
По умолчанию

только Sender не тот
Код:
procedure TForm1.Timer1Timer(Sender: TObject); 
var
 ii:integer; 
 C:TComponent;
begin
  for ii := Low(arr)+1 to 7 do
  begin
    //Memo3.Lines.Add(inttostr(arr[ii])); 
    C:=FindComponent('Button' + IntToStr(arr[ii]));
   if C is TButton then
     (C as TButton).onClick(C); //<<==-----
end;

или даже
Код:
procedure TForm1.Timer1Timer(Sender: TObject); 
var
 ii:integer; 
 C:TComponent;
begin
  for ii := Low(arr)+1 to 7 do
  begin
    //Memo3.Lines.Add(inttostr(arr[ii])); 
    C:=FindComponent('Button' + IntToStr(arr[ii]));
   if C is TButton then
     (C as TButton).Click; //<<==-----
end;
Ответить с цитированием
  #15  
Старый 06.05.2013, 19:34
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Да нет, можно просто
Код:
(FindComponent('Button' + IntToStr(arr[ii])) as TButton).Click;
компонент (баттон) и так уже найден.
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 04:45.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter