Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.07.22;
Скачать: CL | DM;

Вниз

Как узнать имя компоненты?   Найти похожие ветки 

 
Cowboy ©   (2002-07-10 11:31) [0]

Ещё раз здрасьте! Динамически создаётся туева хонна TImage. Я кликаю по одному из них мышой... Как узнать имя компоненты по которой я кликнул? Пробую так:
var
Comp : TComponent;
NameComp : TComponentName;
...
Comp := Self;
NameComp := Comp.Name;

ни фига не получается.
Как быть?


 
Kaban ©   (2002-07-10 11:33) [1]

в процедуре обработки клика
(Sender as TImage).Name
TImage(Sender).Name


 
Skier ©   (2002-07-10 11:34) [2]

>Cowboy
Вообще-то имя компонента следовало бы задать при
создании.


 
GenBr ©   (2002-07-10 11:36) [3]

1. Ты уверен, что Self-это тот объект, который тебе нужен?
2. Ты уверен, что задал имя нужого тебе компонента?

Из твоего кода ничего не понятно


 
Kaban ©   (2002-07-10 11:38) [4]

Кроме того, создание большого числа TImage трудно назвать хорошим стилем программирования. Да и не совсем понятно, зачем тебе знать их имена


 
Skier ©   (2002-07-10 11:39) [5]

>Cowboy


procedure TForm1.Button1Click(Sender: TObject);
var
AComponent : TImage;
begin
AComponent:= TImage.Create(self);
try
AComponent.Name:= "YourImage";
AComponent.Parent:= self;
ShowMessage(AComponent.Name); //будет показываться "YourImage"
finally
AComponent.Free;
end; //try
end;


 
Skier ©   (2002-07-10 11:40) [6]

>Cowboy
А ащё есть такая вещь как TObjectList


 
RV ©   (2002-07-10 12:02) [7]

??????
напиши процедуру, повесь ее всем имаджам на онклик....


 
Cowboy ©   (2002-07-10 12:03) [8]

>Kaban
Я пишу прогу для автоматизации инвентаризации компов на фирме (во! :)). Timage это картинка монитора. В зависимости от кол-ва компов на этаже (записей в базе), я динамически создаю столько же TImage (картинок монитора).
>Skier
Создаю я TImage в цикле, поэтому... Хотя постой.


 
Skier ©   (2002-07-10 12:05) [9]

>Cowboy
А ты не можешь написать функцию, которая бы
возвращала тебе уникальное имя компонента ?!


 
Skier ©   (2002-07-10 12:07) [10]

>Cowboy
И ещё :
тебе обязательно испольовать Name, может быть Tag-ом
можно обойтись ???


 
Cowboy ©   (2002-07-10 12:23) [11]

>Skier
Не, имя я сам присвоить не могу. Если бы я мог написать функцию, то я не обратился бы за помощью :(. А имя мне нужно для того, что бы я мог перетаскивать этот TImage по форме.



 
Skier ©   (2002-07-10 12:24) [12]

>Cowboy
> перетаскивать этот TImage по форме


То есть ???


 
Cowboy ©   (2002-07-10 12:29) [13]

>Skier
Drag&Drop


 
Skier ©   (2002-07-10 12:33) [14]

>Cowboy


procedure TForm1.Button1Click(Sender: TObject);

function GetUniqueName(AComponentOwner : TComponent; const ANamePrefix : String) : String;
var
ii : Integer;
ACurrentName : String;
begin
Result := EmptyStr;
if (AComponentOwner = nil) or
(ANamePrefix = EmptyStr) then Exit;
ACurrentName := EmptyStr;
for ii := 1 to MAXINT do begin
ACurrentName := ANamePrefix + IntToStr(ii);
if AComponentOwner.FindComponent(ACurrentName) = nil then begin
Result := ACurrentName;
Exit;
end; //if
end; //for
end; //GetUniqueName

var
ii : Integer;
AComponent : TImage;
begin
for ii := 1 to 5 do begin
AComponent:= TImage.Create(Self);
AComponent.Name:= GetUniqueName(Self, "Image");
AComponent.Parent:= Self;
ShowMessage(AComponent.Name);
end; //for
end;


 
Cowboy ©   (2002-07-10 12:40) [15]

Огромное спа!



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

Текущий архив: 2002.07.22;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.014 c
3-70614
rty
2002-06-28 14:47
2002.07.22
Не работает БД Парадокс!!!


3-70587
masik
2002-06-28 15:51
2002.07.22
Помогите подключить Linked Server


14-70895
Роман Василенко
2002-06-21 10:39
2002.07.22
Ищу братьев по разуму (Advantage TDataset Descendant)


7-70930
YY
2002-04-30 18:51
2002.07.22
Ламерский вопрос по встроенному Assembler у


3-70608
Weare
2002-06-28 12:36
2002.07.22
Не виден индекс по сети...