Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.04.10;
Скачать: [xml.tar.bz2];

Вниз

Создание компонентов в RunTime и дальнейшая работа с ними??   Найти похожие ветки 

 
Duke DEE   (2003-03-26 19:26) [0]

Я создал, неопределённое количество Label к примеру 10, В RunTime, Как мне с каждым из них работать??? К примеру удалить 3ий, или поменять цвет у пятого, или вообще все созданные удалить???, получается работать только с последним!!! И ещё, как мне в созданный в RunTime копмонент, сделать обработку процедур?? К примеру при наведении на Label он подчёркивается!!
Вот как я делал, а чё делать дальше???
var
Form1: TForm1;
A: TLabel;
top: integer = 20;
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
const
color: array [0..4] of string = "clblue","clRed","clGreen","clYellow","clLime");
begin
for i:=1 to 20 do
begin
A:=Tlabel.Create(Self);
A.Parent:=Form1;
A.Name:="Label"+inttostr(i);
A.Font.Color:= stringtocolor(color[random(5)]);
A.Top:=top+24;
A.Left:=30;
A.Caption:="Label N"+inttostr(i)+"!!!";
inc(top,20);
end;
end;

А если я хочу A.onmousemove То чё мне делать, куда и как прописывать???


 
Palladin   (2003-03-26 19:57) [1]

голова тебе на что?
думай... читай... написано много об этом...


 
pasha_golub   (2003-03-26 19:58) [2]

Можно работать через property TForm.Components[i] и проверять

for i:=0 to Self.ComponentCount - 1 do
if (Self.Components[i] is TLabel) then
if (Self.Components[i] as TLabel).Name = "Label1" then
(Self.Components[i] as TLabel).onMouseMove := твой обработчик;


 
theodor_iv   (2003-03-26 20:08) [3]

> Paladin

Программист и голова -- вещи несовместные. :) см. пример, приведенный pasha_golub © (26.03.03 19:58)

> Duke DEE © (26.03.03 19:26)

Во первых, напиши вместо const...


const
color: array [0..4] of TColor = (clblue, clRed, clGreen, clYellow , clLime);


и убери ф-цию StringToColor

А если

> я хочу A.onmousemove


то напиши А.OnMouseMove := НазваниеТвоегоОбработчка;
Твой обработчик можно создать ручками (но это уж совсем для трудоголиков), либо у любого TLabel"a...


 
Duke DEE   (2003-03-26 21:13) [4]

Ну с первой частью я разобрался

procedure TForm1.Button2Click(Sender: TObject);
var
i:integer;
k:integer;
begin
for k:=n downto strtoint(edit2.text) do
begin
for i:=0 to form1.ComponentCount - 1 do
begin
if (Self.Components[i] is TLabel) then
if (Self.Components[i] as TLabel).Name = "Nick"+inttostr(k) then
(Self.Components[i] as TLabel).caption:="Changed N"+inttostr(k);
end;
end;
end;


А вот с обработчиком не понял!!!
Как свой создать?? дайте какой нить пример пожалста!!!


 
Duke DEE   (2003-03-26 21:18) [5]


> Palladin

Чем умнее человек, тем хуже он даёт советы =)


 
MBo   (2003-03-27 05:50) [6]

Чтобы не прочесывать все компоненты на форме, создай массив
array[1..20] of TLabel или список TList или TObjectList и при создании метки добавляй ее туда.

delphi.vitpc.com
hello world
Жизнь и смерть в run-time


 
Duke DEE   (2003-03-28 14:58) [7]

Дайте какой нибудь пример на обработчик событий, не могу понять!
a.onmouseclick:= ????


 
MBo   (2003-03-28 15:02) [8]

Статью по ссылке явно не прочитал. А зря...


 
Duke DEE   (2003-03-28 16:27) [9]

МВо, извени, не заметил Ссылку! Щаз посмотрю!


 
ewgeny   (2003-03-28 16:28) [10]

используй свойство Tag и по нему ориентируйся


 
ЮРИЙ_К   (2003-03-31 09:45) [11]

Да все гараздо проще 8-). При создании лабелов, туда-же создаешь и обработчик

...
private
procedure onMyKeyPress(Sender: TObject; var Key: Char);
...

implementation
...
procedure TSpisokFrm.onMyKeyPress(Sender: TObject; var Key: Char);
begin
Пишешь чего надо
end;

// Собственно создание самих лабелов

with TLabel.Create(Self) do
begin
Parent := Form1;
Alignment := taLeftJustify;
Width := 400;
Left := 110;
Top := (k * 25) + 32; // если в цикле
Name := "Label" + IntToStr(k + 1);
Caption := "Label" + IntToStr(k + 1);
OnMouseMove := onMyMouseMove;
end;
//



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2003.04.10;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.006 c
14-30516
petr_v_a
2003-03-22 15:27
2003.04.10
1С SQL-версия


1-30350
Intell
2003-03-31 16:00
2003.04.10
Как в PopupMenu добавить ProgressBar?


3-30256
Dima2002
2003-03-20 18:22
2003.04.10
Помогите с IB - charset-ом!


8-30468
jeka
2003-01-08 09:44
2003.04.10
Перенаправление звукового потока


1-30363
esa
2003-04-01 06:23
2003.04.10
Как скопировать папку





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский