![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Несколько image в scrollbox [D6, Win2k]
denis24 © (2004-11-22 12:04:00)Есть сабж.Добавляю туда картинки из файлов.Все ок.А как организовать визуальное удаление этих картинок из сабжа.TabStop image не имееет,фокус не получает...
denis24 (2004-11-23 13:16:00) [1]С buton все ок.
А как убрать появление этого батона перед image когда я на нем нажимаю?
TUser (2004-11-23 12:43:00) [2]А ты поставь BitBtn - будет тебе фокус.
TUser (2004-11-23 12:41:00) [3]
> Не вижу фокуса при клике....
А у панели ты когда-нибудь видешь фокус?
Smithson (2004-11-23 12:41:00) [4]Не вижу фокуса при клике <> не получается.
Панель просто не изменяет внешний вид при получении фокуса.
я делал такую штуку
TImageCarrier = class(TPanel)
private
{ Private declarations }
FSelected: Boolean;
procedure ImageClick(Sender: TObject);
procedure SetSelected(ASelected: Boolean);
public
{ Public declarations }
FileName: TLabel;
Info: TLabel;
Image: TImage;
{$Warnings off}
Constructor Create(Owner: TComponent; ASelect: Boolean);
{$Warnings on}
Destructor Destroy; override;
property Selected: Boolean read FSelected write SetSelected;
end;
Constructor TImageCarrier.Create(Owner: TComponent; ASelect: Boolean);
Begin
inherited Create(Owner);
Width := SizeX+6;
Height := SizeY+24;
Selected := ASelect;
FileName := TLabel.Create(Self);
Info := TLabel.Create(Self);
FileName.Align := alBottom;
Info.Align := alBottom;
Image := TImage.Create(Self);
Image.Parent := Self;
Image.Top := 3;
Image.Left := 3;
Image.Width := SizeX;
Image.Height := SizeY;
Image.OnClick := ImageClick;
OnClick := ImageClick;
FileName.OnClick := ImageClick;
Info.OnClick := ImageClick;
Name := '';
Image.Parent := Self;
FileName.Parent := Self;
Info.Parent := Self;
Image.Stretch := True;
ParentColor := False;
ShowHint := True;
End;
procedure TImageCarrier.SetSelected(ASelected: Boolean);
Begin
FSelected := Aselected;
Color := Cl[FSelected];
End;
procedure TImageCarrier.ImageClick(Sender: TObject);
begin
Selected := not Selected;
Form1.ImageCarrierClick(Self);
end;
Destructor TImageCarrier.Destroy;
Begin
FileName.Destroy;
Info.Destroy;
Image.Destroy;
inherited;
End;
Все не относбщиеся к вопросу детали убраны, поэтому код просто так не скомпилиться. Это просто для сведения.
denis24 (2004-11-23 12:37:00) [5]Не получается.Не вижу фокуса при клике....
Вызываю эту процедуру с frm1
panel := TPanel.Create(frmmain);
with panel do
begin
Parent := frmmain.ScrollBox3;
Name := 'Picture'+inttostr(foto);
Top := 0;
Left :=0;
TabStop:=true;
end;
image := Timage.Create(frmmain);
with image do
begin
Parent := panel;
Top := 0;
Left := 0;
Width := 180;
Height := 140;
Visible := true;
onclick:=image_onclick;
.
.
.
end;
Получение фокуса панели на которой нарисован image
procedure tfrm1.image_onclick(sender:tobject);
begin
timage(sender).Parent.SetFocus;
end;
Что я делаю не так?
denis24 (2004-11-23 11:04:00) [6]понял спасибо
TUser (2004-11-23 10:22:00) [7]procedure TForm1.Image1Click(Sender: TObject);
begin
panel1.SetFocus;
end;
denis24 (2004-11-23 09:57:00) [8]Создал панели ,tabstop=true
Кликаю на них а они не получает фокус.Я чего то не понимаю?
TUser (2004-11-22 15:05:00) [9]Нет у него фокуса. Кидай TImage'ы на TPanel'ов и передавай фокус панелям, если хочешь.
denis24 (2004-11-22 14:28:00) [10]а фокус как им получить?
TUser (2004-11-22 12:11:00) [11]vasible
free