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

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.006 c
1-70780
DanilaBagrov
2002-07-09 02:36
2002.07.22
QuickRep


1-70761
Fiend
2002-07-09 18:21
2002.07.22
Service


3-70597
Fox_Home
2002-06-28 04:46
2002.07.22
Как избавиться от появления лишних данных в базе?


1-70713
sdram
2002-07-10 15:42
2002.07.22
Fields editor


1-70796
Cowboy
2002-07-10 11:31
2002.07.22
Как узнать имя компоненты?





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