Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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]

> Что то не получается&#133

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
1-1184324771
clickmaker
2007-07-13 15:06
2007.10.21
Как открыть веб-папку программно?


2-1191114938
trigger
2007-09-30 05:15
2007.10.21
не отображаются данные в Gride


8-1166771143
DVM
2006-12-22 10:05
2007.10.21
Использование джойстика. Проблема с joySetCapture.


15-1190329171
Bogdan1024
2007-09-21 02:59
2007.10.21
Помогите рассчитать мощность UPS


4-1176956104
roughneck
2007-04-19 08:15
2007.10.21
Подсказки





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский