Форум: "Основная";
Текущий архив: 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.004 c