![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#16
|
|||
|
|||
|
спасибо.половина работает)
а именно,одна ошибка гдето, Sh1.left:=TShape(MySender).left-2 здесь left берётся не из объекта на который кликаю,а из пложение формы на экране. может я MySender:=Sender; не туда вписал? я его сюда : Код:
procedure TForm1.FormCreate(Sender: TObject); begin Sh:=TShape.Create(Self) ; <...> MySender:=Sender; Апд: всё,разобрался как сендер работает!) его в процедуру NewSh надо вписывать.спасибо! Последний раз редактировалось Snake22, 14.03.2011 в 18:22. |
|
#17
|
|||
|
|||
|
подскажите еще такую штуку.
вот у меня массив из двух кнопок. и при нажатии на другую кнопку(кнопка не из массива) надо чтобы эти две кнопки в массиве поменялись местами.Подскажите как если это вообще реально сделать? ![]() |
|
#18
|
|||
|
|||
|
Поменять местами кнопки в массиве...
Код:
...
var Buttons: array[1..2] of TButton;
Buff:Tbutton;
begin
Buff:=Buttons[1];
Buttons[1]:=Buttons[2];
Buttons[2]:=Buff;
end;Код:
...
var Buttons: array[1..2] of TButton;
Buff:Integer;
begin
Buff:=TButton(Buttons[1]).left;
TButton(Buttons[1]).left:=TButton(Buttons[2]).left;
TButton(Buttons[1]).left:=Buff;
end; |
|
#19
|
|||
|
|||
|
ага спасибоюсейчас возможности проверить нету попозже проверю.а свойства все обменяются? имя теги кепшн..?
|
|
#20
|
|||
|
|||
|
Цитата:
Последний раз редактировалось Janom, 16.03.2011 в 23:37. |
|
#21
|
|||
|
|||
|
хм действительно какаято фигня получилась..
и у меня опять вопрос, вот допустим я создал массив кнопок , кажой кнопке при созданиии добалвяеться имя , допустим Btns[1].name:='abc'; как мне потом обратиться к имени этой кнопки,а не к номеру массива? ну написать например abc.caption:=...ошибка получаеться |
|
#22
|
|||
|
|||
|
Цитата:
Код:
function FindBTN(BtnName:ShortString):TComponent;
var i:integer;
begin
for i:=0 to form1.ComponentCount-1 do
begin
if form1.components[i].name=(BtnName) then
FindBTN:=form1.findcomponent(form1.components[i].name);
end;
end;использовать так: Код:
TButton(FindBTN('abc')).caption:='asdasdasd'; |
|
#23
|
||||
|
||||
|
Цитата:
|
|
#24
|
|||
|
|||
|
За-то схема то работает!)
|
|
#25
|
||||
|
||||
|
Посмотри реализацию Findcomponent. Пошустрее работать будет
Да и привязки к Form1 нету ![]() А так, зачем лишний раз велосипед изобретать? Хотя, в самообразовательных целях, наверно, каждый городит свой огород. |
|
#26
|
|||
|
|||
|
а еще подскажите пожалуйста.
создаю массив memo, и у каждого есть тег, как мне обратиться к мему из массива,зная только его тег? ну то есть короче как мне найти компонент определенного типа по тегу? |
|
#27
|
|||
|
|||
|
бежать по массиву циклом от начала до конца и проверять в цикле ar[i].Tag = чему_нужно, где ar - массив из TMemo, i - переменная цикла, как только нашли то что нужно, делать break циклу.
типо вот так: Код:
for i := Low(ar) to High(ar) do
begin
if ar[i].Tag = 2 {или что вам нужно} then
begin
ar[i].Lines.Add('1'); // добавляем в найденный Memo текст
break; // прерываем цикл (не тот о котором подумали некоторые, нет)
end;
end;Последний раз редактировалось Assistant, 26.03.2011 в 00:43. |