Форум: "Начинающим";
Текущий архив: 2007.10.21;
Скачать: [xml.tar.bz2];
ВнизДобрый день, подскажите плз при помощи нажатия на кнопку создать Найти похожие ветки
← →
smartleds (2007-09-26 11:18) [0]на форме компонент Panel1, при следующем нажати рядом компонент Panel2 и т.д Panel[i]?
← →
Вася Правильный (2007-09-26 11:24) [1]o:=TPanel.Create
и установка параметров местонахождения и парента
← →
smartleds (2007-09-26 11:33) [2]procedure TForm1.Button3Click(Sender: TObject);
begin
panel2.create;
end;
Что то не получается....
← →
alles © (2007-09-26 11:34) [3]panel2.parent:=Form1
← →
Kolan © (2007-09-26 11:36) [4]> Что то не получается…
procedure TForm1.Button3Click(Sender: TObject);
begin
with TPanel.Create(Self) do
begin
Top := 100;
Left := 100;
Parent := Self;
Visible := True;
end;
end;
← →
alles © (2007-09-26 11:39) [5]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;
писАл без делфи, могут быть ошибки
← →
alles © (2007-09-26 11:40) [6]вместо if (i>2) then надо if (i>1) then
sorry
← →
Kolan © (2007-09-26 11:48) [7]> ArrOfPanels:array of TPanel;
Зачам он тебе?
← →
smartleds (2007-09-26 11:59) [8]Здорово, получилось, то что нужно при каждом нажатии на button3 появляется панель.
А вот еще вопрос можно ли из этого ряда панелей выделить нужную при помощи мыши по событию MouseDown и чтоб выбранная панель как то выделилась рамкой или цветом?
← →
Вася Правильный (2007-09-26 12:08) [9]можно
← →
smartleds (2007-09-26 12:12) [10]А это можно сделать при помощи одного обработчика MouseDown или для каждой панели нужно писать свой?
← →
Плохиш © (2007-09-26 12:20) [11]
> smartleds (26.09.07 12:12) [10]
> А это можно сделать при помощи одного обработчика MouseDown
> или для каждой панели нужно писать свой?
При помощи одного - можно, но его надо к каждой панели привязать, а для желаемой отрисовки надо перекрыть метод Paint.
← →
smartleds (2007-09-26 12:25) [12]А как это обработчик привязать к каждой панели, я вот так попытался
Вот у меня есть массив панелей
var ArrOfPanels:array of TPanel;
Пытаюсь сделать так: обработчик вызывается при нажатии на i-ю панель
procedure TForm1.ArrOfPanels[i]Click(Sender: TObject);
begin
end;
Но Делфи ругается что ArrOfPanels не декларирован, я где то не прав?
← →
Плохиш © (2007-09-26 12:29) [13]
> я где то не прав?
В нежелании изучить основы используемого языка программирования.
← →
smartleds (2007-09-26 12:39) [14]Как раз это я сейчас и делаю...но очень толстые книжки , хочется побыстрее попробовать на практике, поэтому и спрашиваю.
← →
Вася Правильный (2007-09-26 12:56) [15]квадратные скобки в именах процедур, переменных и методов недопустимы
← →
smartleds (2007-09-26 12:57) [16]Народ посоветуйте , понятную книжку по Делфи лучше на русском языке.
← →
Вася Правильный (2007-09-26 13:03) [17]http://delphimaster.net/view/15-1190438777/
← →
Anatoly Podgoretsky © (2007-09-26 13:21) [18]> smartleds (26.09.2007 12:39:14) [14]
Быстро только кошки плодятся
← →
Германн © (2007-09-26 13:31) [19]
> Anatoly Podgoretsky © (26.09.07 13:21) [18]
http://delphimaster.net/view/15-1190438777/
← →
Галинка © (2007-09-26 19:01) [20]пишешь обработчик один раз, а при создании надо что-то типа:
ArrOfPanels[i-1].OnMouseUp = MyMouseUp(соответствующее число параметров);
← →
Вася Правильный (2007-09-26 19:20) [21]
> Галинка © (26.09.07 19:01) [20]
> (соответствующее число параметров);
глупость
присваивается адрес, а не результат работы
← →
Malik © (2007-09-26 21:36) [22]Я чувствую, что поздно но хочется поучаствовать
...
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 21:44) [23]
> TPanel[sender]
это чё за конструкция?
а панель у тебя навсегда залепленная останется, при выборе другой не отлепится...
← →
Галинка © (2007-09-27 00:15) [24]Проверять надо MouseUp по-моему. Потому что она будет перерисовываться пока кнопка будет нажата. Мелькать может, и достаточно ощутимо.
Вася, да я ж не против. Я ж потому и написала, что "что-то типа". ))) Я хотела общую идею показать.
ПыСы: А разве в дельфи нет прикола, что при переопределении метода она сама синтаксис предложит?
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.10.21;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.044 c