Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Добрый день, подскажите плз при помощи нажатия на кнопку создать


Страницы:   1 2

smartleds ©   (2007-09-26 11:18:00) 

на форме компонент Panel1, при следующем нажати рядом компонент Panel2 и т.д Panel[i]?


Галинка   (2007-09-27 00:15:00) [1]

Проверять надо MouseUp по-моему. Потому что она будет перерисовываться пока кнопка будет нажата. Мелькать может, и достаточно ощутимо.

Вася, да я ж не против. Я ж потому и написала, что "что-то типа". ))) Я хотела общую идею показать.

ПыСы: А разве в дельфи нет прикола, что  при переопределении метода она сама синтаксис предложит?


Вася Правильный   (2007-09-26 21:44:00) [2]


> TPanel[sender]

это чё за конструкция?
а панель у тебя навсегда залепленная останется, при выборе другой не отлепится...


Malik   (2007-09-26 21:36:00) [3]

Я чувствую, что поздно но хочется поучаствовать

...
procedure MyPanelsMouseDown(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
...
procedure TForm1.MyPanelsMouseDown(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
begin
TPanel[sender].BevelOuter:=bvLowered;
end;
...
for i:=0 to lenght(MyPanels)-1 do begin
   MyPanels[i].BevelWidth:=2;
   MyPanels[i].OnMouseDown:=MyPanelsMouseDown;
   end;
...


Вася Правильный   (2007-09-26 19:20:00) [4]


> Галинка ©   (26.09.07 19:01) [20]
> (соответствующее число параметров);

глупость
присваивается адрес, а не результат работы


Галинка   (2007-09-26 19:01:00) [5]

пишешь обработчик один раз, а при создании надо что-то типа:

ArrOfPanels[i-1].OnMouseUp = MyMouseUp(соответствующее число параметров);


Германн   (2007-09-26 13:31:00) [6]


> Anatoly Podgoretsky ©   (26.09.07 13:21) [18]

http://www.delphimaster.ru/cgi-bin/forum.pl?id=1190751106&n=18


Anatoly Podgoretsky   (2007-09-26 13:21:00) [7]

> smartleds  (26.09.2007 12:39:14)  [14]

Быстро только кошки плодятся


Вася Правильный   (2007-09-26 13:03:00) [8]

http://www.delphimaster.ru/cgi-bin/forum.pl?id=1190438777&n=3


smartleds   (2007-09-26 12:57:00) [9]

Народ посоветуйте , понятную книжку по Делфи лучше на русском языке.


Вася Правильный   (2007-09-26 12:56:00) [10]

квадратные скобки в именах процедур, переменных и методов недопустимы


smartleds   (2007-09-26 12:39:00) [11]

Как раз это я сейчас и делаю...но очень толстые книжки , хочется побыстрее попробовать на практике, поэтому и спрашиваю.


Плохиш   (2007-09-26 12:29:00) [12]


> я где то не прав?

В нежелании изучить основы используемого языка программирования.


smartleds   (2007-09-26 12:25:00) [13]

А как это обработчик привязать к каждой панели, я вот так попытался  
Вот у меня есть массив панелей
var   ArrOfPanels:array of TPanel;
Пытаюсь сделать так: обработчик вызывается при нажатии на i-ю панель  

procedure TForm1.ArrOfPanels[i]Click(Sender: TObject);
begin

end;
Но Делфи ругается что ArrOfPanels не декларирован, я где то не прав?


Плохиш   (2007-09-26 12:20:00) [14]


> smartleds   (26.09.07 12:12) [10]
> А это можно сделать при помощи одного обработчика MouseDown
> или для каждой панели нужно писать свой?

При помощи одного - можно, но его надо к каждой панели привязать, а для желаемой отрисовки надо перекрыть метод Paint.


smartleds   (2007-09-26 12:12:00) [15]

А это можно сделать при помощи одного обработчика MouseDown или для каждой панели нужно писать свой?


Вася Правильный   (2007-09-26 12:08:00) [16]

можно


smartleds   (2007-09-26 11:59:00) [17]

Здорово, получилось, то что нужно при каждом нажатии на button3 появляется панель.
А вот еще вопрос можно ли из этого ряда панелей выделить нужную при помощи мыши по событию MouseDown и чтоб выбранная  панель как то выделилась рамкой или цветом?


Kolan   (2007-09-26 11:48:00) [18]

> ArrOfPanels:array of TPanel;

Зачам он тебе?


alles   (2007-09-26 11:40:00) [19]

вместо if (i>2) then надо if (i>1) then
sorry


alles   (2007-09-26 11:39:00) [20]

var i:integer;
   ArrOfPanels:array of TPanel;

procedure Form1.Create;
begin
i:=0;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
Inc(i);
SetLength(ArrOfPanels,i);
ArrOfPanels[i-1]:=TPanel.Create(Form1);
ArrOfPanels[i-1].Parent:=Form1;
if (i>2) then
ArrOfPanels[i-1].Left:=ArrOfPanels[i-2].Left+ArrOfPanels[i-2].Width;
end;
писАл без делфи, могут быть ошибки


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо