Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.12.2011, 06:32   #1
Aleksey1989
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 127
По умолчанию Компонент - нисподающее окно.

Добрый день. Помогите найти компонент, который состоит из ссылки, при нажатии на которую открывается панель. Например, в Windows 7 в разделе "Компьютер" можно свернуть диски, развернуть, нажав на небольшой треугольник.
Aleksey1989 вне форума Ответить с цитированием
Старый 19.12.2011, 11:35   #2
{Shadowevil}
Пользователь
 
Регистрация: 15.01.2009
Сообщений: 52
По умолчанию

Сделай через, допустим, обычную метку (TLabel), вот те примерчик:

Для примера тебе надо кинуть 1 TLabel на форму и определить для нее методы onClick, onMouseEnter и onMouseLeave, а для самой формы метод onCreate
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    procedure FormCreate(Sender: TObject);
    procedure Label1MouseEnter(Sender: TObject);
    procedure Label1MouseLeave(Sender: TObject);
    procedure Label1Click(Sender: TObject);
  private
    { Private declarations }
  public
    lblclick: boolean;
    a,b,c: TLabel;
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  lblclick:=false;
end;

procedure TForm1.Label1MouseEnter(Sender: TObject);
begin
  Label1.Font.Style:=Label1.Font.Style + [fsUnderline];
end;

procedure TForm1.Label1MouseLeave(Sender: TObject);
begin
  Label1.Font.Style:=Label1.Font.Style - [fsUnderline];
end;


procedure TForm1.Label1Click(Sender: TObject);
begin
  if lblclick=false then
   begin
    a:=TLabel.Create(self);
    a.Caption:='Метка 1';
    a.Parent:=self;
    a.Left:=Label1.Left+10;
    a.Top:=Label1.Top+Label1.Height+5;

    b:=TLabel.Create(self);      //Здесь элементы, в моем случае TLabel
    b.Caption:='Метка 2';        //создаются и разрушаются динамически.
    b.Parent:=self;              //Примерно также можно сделать просто метод Hide
    b.Left:=Label1.Left+10;      //Для уже созданных элементов формы, просто играя
    b.Top:=a.Top+a.Height+5;     //с их координатами

    c:=TLabel.Create(self);
    c.Caption:='Метка 3';
    c.Parent:=self;
    c.Left:=Label1.Left+10;
    c.Top:=b.Top+b.Height+5;

    lblclick:=true;
   end
  else
   begin
    a.Destroy;
    b.Destroy;
    c.Destroy;
    lblclick:=false;
   end;
end;

end.
{Shadowevil} вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Треугольное окно со сторонами A, B, C. Проверить, пройдёт ли в окно коробка цилиндрической формы (D и H) (паскаль) ihimaru Помощь студентам 5 02.10.2011 22:11
[?] Послать клавишу в чужое окно, не выводя окно на передний план. Moriarty Win Api 4 21.02.2011 05:11
Открывать окно печати, окно просмотра и изменять масштаб. segail Microsoft Office Excel 1 08.08.2010 19:31
Компонент Всплывающее окно - AdvAlert Vladya Компоненты Delphi 6 24.04.2009 15:18
«Окно+символ». Создать класс, представляющий окно в текстовом режиме. RustreX Паскаль, Turbo Pascal, PascalABC.NET 1 11.11.2007 19:28