Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 21.05.2009, 22:25
Аватар для segas
segas segas вне форума
Новичок
 
Регистрация: 08.02.2009
Сообщения: 97
Репутация: 10
Лампочка Помогите пожалуйсто

Задача на первый взгляд простая, но чтото вот не получается
вообщем на форме по горезонтале стоят 5 кнопок BitBtn, необходимо чтобы они красивым образом плано переехали в другое положени и расположились по вертикали.
вот скинул код для реского перемещения 2х из них с одного положения в другое:
Код:
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
If   (((Form1.BitBtn1.Top:=208) and (Form1.BitBtn1.Left:=200)) or ((Form1.BitBtn2.Top:=208) and (Form1.BitBtn2.Left:=288)))
         Then  begin
         Form1.BitBtn1.Top:=16;  Form1.BitBtn1.Left:=16;
         Form1.BitBtn2.Top:=96;  Form1.BitBtn2.Left:=16;
         end;
end;

end.
Admin: Пользуемся тегами! Иначе санкции!

но вылезли 2ошибки:
[Error] Unit1.pas(29): Operator not applicable to this operand type
[Error] Unit1.pas(31): Type of expression must be BOOLEAN

но мне то нужно чтоб все 5 передвигались и плавно, в дабавок без ошибок.
Зарание спасибо, необходимо для проекта на зачет 1й стадии экзамена

Последний раз редактировалось Admin, 21.05.2009 в 22:33.
Ответить с цитированием
  #2  
Старый 21.05.2009, 22:35
Аватар для segas
segas segas вне форума
Новичок
 
Регистрация: 08.02.2009
Сообщения: 97
Репутация: 10
По умолчанию

Цитата:
Admin: Пользуемся тегами! Иначе санкции!

Дак я пользовался, ток пост не добовлялся((
пишит типо вы слишком много добавили "функций" както так точно не помню
Ответить с цитированием
  #3  
Старый 21.05.2009, 22:57
Nyctos Kasignete Nyctos Kasignete вне форума
Активный
 
Регистрация: 29.03.2009
Сообщения: 300
Репутация: 94
По умолчанию

Когда люди научатся отличать оператор присваивания := от знака сравнения =?
=(

Цитата:
чтобы они красивым образом плано переехали в другое положени
=)))

Последний раз редактировалось Nyctos Kasignete, 21.05.2009 в 23:01.
Ответить с цитированием
  #4  
Старый 21.05.2009, 23:16
Аватар для segas
segas segas вне форума
Новичок
 
Регистрация: 08.02.2009
Сообщения: 97
Репутация: 10
Смех

=)) Эт точно
чтот засиделся-глупые ошибки блин, а как сделать что они плавно передвигались по диагонали вверх?
Ответить с цитированием
  #5  
Старый 22.05.2009, 00:21
Nyctos Kasignete Nyctos Kasignete вне форума
Активный
 
Регистрация: 29.03.2009
Сообщения: 300
Репутация: 94
По умолчанию

Вот, написала небольшой примерчик...

pas-файл:
Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    BitBtn3: TBitBtn;
    BitBtn4: TBitBtn;
    BitBtn5: TBitBtn;
    procedure AnyBitBtn1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.AnyBitBtn1Click(Sender: TObject);
const
  StepCount = 200; // число шажков от начального к конечному положению
var
  i: Integer;
  Btn1LT0, Btn2LT0, Btn3LT0, Btn4LT0, Btn5LT0: TPoint;
  Btn1LT, Btn2LT, Btn3LT, Btn4LT, Btn5LT: TPoint;
begin
  // находим начальные положения кнопок
  Btn1LT0.X := BitBtn1.Left; Btn1LT0.Y := BitBtn1.Top;
  Btn2LT0.X := BitBtn2.Left; Btn2LT0.Y := BitBtn2.Top;
  Btn3LT0.X := BitBtn3.Left; Btn3LT0.Y := BitBtn3.Top;
  Btn4LT0.X := BitBtn4.Left; Btn4LT0.Y := BitBtn4.Top;
  Btn5LT0.X := BitBtn5.Left; Btn5LT0.Y := BitBtn5.Top;

  // задаём конечные положения кнопок
  Btn1LT.X := 400; Btn1LT.Y := 80;
  Btn2LT.X := 400; Btn2LT.Y := 112;
  Btn3LT.X := 400; Btn3LT.Y := 144;
  Btn4LT.X := 400; Btn4LT.Y := 176;
  Btn5LT.X := 400; Btn5LT.Y := 208;

  // поехали...
  for i := 1 to StepCount do
  begin
    BitBtn1.Left := Round(Btn1LT0.X + i * (Btn1LT.X - Btn1LT0.X) / StepCount);
    BitBtn1.Top := Round(Btn1LT0.Y + i * (Btn1LT.Y - Btn1LT0.Y) / StepCount);
    BitBtn2.Left := Round(Btn2LT0.X + i * (Btn2LT.X - Btn2LT0.X) / StepCount);
    BitBtn2.Top := Round(Btn2LT0.Y + i * (Btn2LT.Y - Btn2LT0.Y) / StepCount);
    BitBtn3.Left := Round(Btn3LT0.X + i * (Btn3LT.X - Btn3LT0.X) / StepCount);
    BitBtn3.Top := Round(Btn3LT0.Y + i * (Btn3LT.Y - Btn3LT0.Y) / StepCount);
    BitBtn4.Left := Round(Btn4LT0.X + i * (Btn4LT.X - Btn4LT0.X) / StepCount);
    BitBtn4.Top := Round(Btn4LT0.Y + i * (Btn4LT.Y - Btn4LT0.Y) / StepCount);
    BitBtn5.Left := Round(Btn5LT0.X + i * (Btn5LT.X - Btn5LT0.X) / StepCount);
    BitBtn5.Top := Round(Btn5LT0.Y + i * (Btn5LT.Y - Btn5LT0.Y) / StepCount);
  end;
end;

end.

dfm-файл:
Код:
object Form1: TForm1
  Left = 192
  Top = 114
  Width = 696
  Height = 480
  Caption = 'Form1'
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'MS Sans Serif'
  Font.Style = []
  OldCreateOrder = False
  PixelsPerInch = 96
  TextHeight = 13
  object BitBtn1: TBitBtn
    Left = 8
    Top = 384
    Width = 75
    Height = 25
    Caption = 'BitBtn1'
    TabOrder = 0
    OnClick = AnyBitBtn1Click
  end
  object BitBtn2: TBitBtn
    Left = 88
    Top = 384
    Width = 75
    Height = 25
    Caption = 'BitBtn2'
    TabOrder = 1
    OnClick = AnyBitBtn1Click
  end
  object BitBtn3: TBitBtn
    Left = 168
    Top = 384
    Width = 75
    Height = 25
    Caption = 'BitBtn3'
    TabOrder = 2
    OnClick = AnyBitBtn1Click
  end
  object BitBtn4: TBitBtn
    Left = 248
    Top = 384
    Width = 75
    Height = 25
    Caption = 'BitBtn4'
    TabOrder = 3
    OnClick = AnyBitBtn1Click
  end
  object BitBtn5: TBitBtn
    Left = 328
    Top = 384
    Width = 75
    Height = 25
    Caption = 'BitBtn5'
    TabOrder = 4
    OnClick = AnyBitBtn1Click
  end
end

Последний раз редактировалось Nyctos Kasignete, 22.05.2009 в 00:27.
Ответить с цитированием
  #6  
Старый 22.05.2009, 15:49
Аватар для segas
segas segas вне форума
Новичок
 
Регистрация: 08.02.2009
Сообщения: 97
Репутация: 10
По умолчанию

Большое спасибо!)
на новой форме нормально рботает, а вот если прикрепляю к своему проекту, то не вкакую не движеется((
Ответить с цитированием
  #7  
Старый 22.05.2009, 16:51
Nyctos Kasignete Nyctos Kasignete вне форума
Активный
 
Регистрация: 29.03.2009
Сообщения: 300
Репутация: 94
По умолчанию

При переносе в своё приложение там единственное, что нужно сделать, — это назначить всем пяти кнопкам (BitBtn1 ... BitBtn5) или какой-то одной из них эту процедуру как обработчик события OnClick. Ну, при желании можно изменить конечные положения кнопок. Если всё равно не получается, выложите сюда свой код, в который вставляете это.
Ответить с цитированием
  #8  
Старый 22.05.2009, 19:32
Аватар для segas
segas segas вне форума
Новичок
 
Регистрация: 08.02.2009
Сообщения: 97
Репутация: 10
Счастье

программа - бд каждая кнопка отвечает за фильтрацию, просто изначально кнопки у меня появляются в 1м месте по горизонтали, а потом ,при 1вом клике по одной из кнопок, с лева по вертикале.
вот как пришлось зделать:
Код:
const
  StepCount = 200; 
var
  Form2: TForm2;

  i: Integer;
  Btn1LT0, Btn2LT0, Btn3LT0, Btn4LT0, Btn5LT0: TPoint;
  Btn1LT, Btn2LT, Btn3LT, Btn4LT, Btn5LT: TPoint;

implementation

uses Unit3, Unit1;

{$R *.dfm}

procedure TForm2.BitBtn1Click(Sender: TObject);
begin

  Btn1LT0.X := BitBtn1.Left; Btn1LT0.Y := BitBtn1.Top;
  Btn2LT0.X := BitBtn2.Left; Btn2LT0.Y := BitBtn2.Top;
  Btn3LT0.X := BitBtn3.Left; Btn3LT0.Y := BitBtn3.Top;
  Btn4LT0.X := BitBtn4.Left; Btn4LT0.Y := BitBtn4.Top;
  Btn5LT0.X := BitBtn5.Left; Btn5LT0.Y := BitBtn5.Top;

  Btn1LT.X := 16; Btn1LT.Y := 50;
  Btn2LT.X := 16; Btn2LT.Y := 150;
  Btn3LT.X := 16; Btn3LT.Y := 250;
  Btn4LT.X := 16; Btn4LT.Y := 250;
  Btn5LT.X := 16; Btn5LT.Y := 350;

  for i := 1 to StepCount do
  begin
    BitBtn1.Left := Round(Btn1LT0.X + i * (Btn1LT.X - Btn1LT0.X) / StepCount);
    BitBtn1.Top := Round(Btn1LT0.Y + i * (Btn1LT.Y - Btn1LT0.Y) / StepCount);
    BitBtn2.Left := Round(Btn2LT0.X + i * (Btn2LT.X - Btn2LT0.X) / StepCount);
    BitBtn2.Top := Round(Btn2LT0.Y + i * (Btn2LT.Y - Btn2LT0.Y) / StepCount);
    BitBtn3.Left := Round(Btn3LT0.X + i * (Btn3LT.X - Btn3LT0.X) / StepCount);
    BitBtn3.Top := Round(Btn3LT0.Y + i * (Btn3LT.Y - Btn3LT0.Y) / StepCount);
    BitBtn4.Left := Round(Btn4LT0.X + i * (Btn4LT.X - Btn4LT0.X) / StepCount);
    BitBtn4.Top := Round(Btn4LT0.Y + i * (Btn4LT.Y - Btn4LT0.Y) / StepCount);
    BitBtn5.Left := Round(Btn5LT0.X + i * (Btn5LT.X - Btn5LT0.X) / StepCount);
    BitBtn5.Top := Round(Btn5LT0.Y + i * (Btn5LT.Y - Btn5LT0.Y) / StepCount);
    Application.ProcessMessages;
  end;

Form2.Label1.Caption:='';
Form2.Panel1.Caption:='';
GroupBox7.Visible:=true;
GroupBox8.Visible:=true;
Table1.Filter:='Klas='''+'film''';
Table1.Filtered:=True;

end;

procedure TForm2.BitBtn2Click(Sender: TObject);
begin

  Btn1LT0.X := BitBtn1.Left; Btn1LT0.Y := BitBtn1.Top;
  Btn2LT0.X := BitBtn2.Left; Btn2LT0.Y := BitBtn2.Top;
  Btn3LT0.X := BitBtn3.Left; Btn3LT0.Y := BitBtn3.Top;
  Btn4LT0.X := BitBtn4.Left; Btn4LT0.Y := BitBtn4.Top;
  Btn5LT0.X := BitBtn5.Left; Btn5LT0.Y := BitBtn5.Top;

  Btn1LT.X := 16; Btn1LT.Y := 50;
  Btn2LT.X := 16; Btn2LT.Y := 150;
  Btn3LT.X := 16; Btn3LT.Y := 250;
  Btn4LT.X := 16; Btn4LT.Y := 350;
  Btn5LT.X := 16; Btn5LT.Y := 450;

  for i := 1 to StepCount do
  begin
    BitBtn1.Left := Round(Btn1LT0.X + i * (Btn1LT.X - Btn1LT0.X) / StepCount);
    BitBtn1.Top := Round(Btn1LT0.Y + i * (Btn1LT.Y - Btn1LT0.Y) / StepCount);
    BitBtn2.Left := Round(Btn2LT0.X + i * (Btn2LT.X - Btn2LT0.X) / StepCount);
    BitBtn2.Top := Round(Btn2LT0.Y + i * (Btn2LT.Y - Btn2LT0.Y) / StepCount);
    BitBtn3.Left := Round(Btn3LT0.X + i * (Btn3LT.X - Btn3LT0.X) / StepCount);
    BitBtn3.Top := Round(Btn3LT0.Y + i * (Btn3LT.Y - Btn3LT0.Y) / StepCount);
    BitBtn4.Left := Round(Btn4LT0.X + i * (Btn4LT.X - Btn4LT0.X) / StepCount);
    BitBtn4.Top := Round(Btn4LT0.Y + i * (Btn4LT.Y - Btn4LT0.Y) / StepCount);
    BitBtn5.Left := Round(Btn5LT0.X + i * (Btn5LT.X - Btn5LT0.X) / StepCount);
    BitBtn5.Top := Round(Btn5LT0.Y + i * (Btn5LT.Y - Btn5LT0.Y) / StepCount);
    Application.ProcessMessages;
  end;

Form2.Label1.Caption:='';
Form2.Panel1.Caption:='';
GroupBox7.Visible:=true;
GroupBox8.Visible:=true;
Table1.Filter:='Klas='''+'myz''';
Table1.Filtered:=True;
end;

procedure TForm2.BitBtn3Click(Sender: TObject);
begin
// находим начальные положения кнопок
  Btn1LT0.X := BitBtn1.Left; Btn1LT0.Y := BitBtn1.Top;
  Btn2LT0.X := BitBtn2.Left; Btn2LT0.Y := BitBtn2.Top;
  Btn3LT0.X := BitBtn3.Left; Btn3LT0.Y := BitBtn3.Top;
  Btn4LT0.X := BitBtn4.Left; Btn4LT0.Y := BitBtn4.Top;
  Btn5LT0.X := BitBtn5.Left; Btn5LT0.Y := BitBtn5.Top;

  Btn1LT.X := 16; Btn1LT.Y := 50;
  Btn2LT.X := 16; Btn2LT.Y := 150;
  Btn3LT.X := 16; Btn3LT.Y := 250;
  Btn4LT.X := 16; Btn4LT.Y := 350;
  Btn5LT.X := 16; Btn5LT.Y := 450;

  for i := 1 to StepCount do
  begin
    BitBtn1.Left := Round(Btn1LT0.X + i * (Btn1LT.X - Btn1LT0.X) / StepCount);
    BitBtn1.Top := Round(Btn1LT0.Y + i * (Btn1LT.Y - Btn1LT0.Y) / StepCount);
    BitBtn2.Left := Round(Btn2LT0.X + i * (Btn2LT.X - Btn2LT0.X) / StepCount);
    BitBtn2.Top := Round(Btn2LT0.Y + i * (Btn2LT.Y - Btn2LT0.Y) / StepCount);
    BitBtn3.Left := Round(Btn3LT0.X + i * (Btn3LT.X - Btn3LT0.X) / StepCount);
    BitBtn3.Top := Round(Btn3LT0.Y + i * (Btn3LT.Y - Btn3LT0.Y) / StepCount);
    BitBtn4.Left := Round(Btn4LT0.X + i * (Btn4LT.X - Btn4LT0.X) / StepCount);
    BitBtn4.Top := Round(Btn4LT0.Y + i * (Btn4LT.Y - Btn4LT0.Y) / StepCount);
    BitBtn5.Left := Round(Btn5LT0.X + i * (Btn5LT.X - Btn5LT0.X) / StepCount);
    BitBtn5.Top := Round(Btn5LT0.Y + i * (Btn5LT.Y - Btn5LT0.Y) / StepCount);
    Application.ProcessMessages;
  end;

Form2.Label1.Caption:='';
Form2.Panel1.Caption:='';
GroupBox7.Visible:=true;
GroupBox8.Visible:=true;
Table1.Filter:='Klas='''+'game''';
Table1.Filtered:=True;
end;

procedure TForm2.BitBtn4Click(Sender: TObject);
begin

  Btn1LT0.X := BitBtn1.Left; Btn1LT0.Y := BitBtn1.Top;
  Btn2LT0.X := BitBtn2.Left; Btn2LT0.Y := BitBtn2.Top;
  Btn3LT0.X := BitBtn3.Left; Btn3LT0.Y := BitBtn3.Top;
  Btn4LT0.X := BitBtn4.Left; Btn4LT0.Y := BitBtn4.Top;
  Btn5LT0.X := BitBtn5.Left; Btn5LT0.Y := BitBtn5.Top;

  Btn1LT.X := 16; Btn1LT.Y := 50;
  Btn2LT.X := 16; Btn2LT.Y := 150;
  Btn3LT.X := 16; Btn3LT.Y := 250;
  Btn4LT.X := 16; Btn4LT.Y := 350;
  Btn5LT.X := 16; Btn5LT.Y := 450;

  for i := 1 to StepCount do
  begin
    BitBtn1.Left := Round(Btn1LT0.X + i * (Btn1LT.X - Btn1LT0.X) / StepCount);
    BitBtn1.Top := Round(Btn1LT0.Y + i * (Btn1LT.Y - Btn1LT0.Y) / StepCount);
    BitBtn2.Left := Round(Btn2LT0.X + i * (Btn2LT.X - Btn2LT0.X) / StepCount);
    BitBtn2.Top := Round(Btn2LT0.Y + i * (Btn2LT.Y - Btn2LT0.Y) / StepCount);
    BitBtn3.Left := Round(Btn3LT0.X + i * (Btn3LT.X - Btn3LT0.X) / StepCount);
    BitBtn3.Top := Round(Btn3LT0.Y + i * (Btn3LT.Y - Btn3LT0.Y) / StepCount);
    BitBtn4.Left := Round(Btn4LT0.X + i * (Btn4LT.X - Btn4LT0.X) / StepCount);
    BitBtn4.Top := Round(Btn4LT0.Y + i * (Btn4LT.Y - Btn4LT0.Y) / StepCount);
    BitBtn5.Left := Round(Btn5LT0.X + i * (Btn5LT.X - Btn5LT0.X) / StepCount);
    BitBtn5.Top := Round(Btn5LT0.Y + i * (Btn5LT.Y - Btn5LT0.Y) / StepCount);
    Application.ProcessMessages;
  end;

Form2.Label1.Caption:='';
Form2.Panel1.Caption:='';
GroupBox7.Visible:=true;
GroupBox8.Visible:=true;
Table1.Filter:='Klas='''+'prog'';
Table1.Filtered:=True;
  end;

end;

procedure TForm2.BitBtn5Click(Sender: TObject);
begin

  Btn1LT0.X := BitBtn1.Left; Btn1LT0.Y := BitBtn1.Top;
  Btn2LT0.X := BitBtn2.Left; Btn2LT0.Y := BitBtn2.Top;
  Btn3LT0.X := BitBtn3.Left; Btn3LT0.Y := BitBtn3.Top;
  Btn4LT0.X := BitBtn4.Left; Btn4LT0.Y := BitBtn4.Top;
  Btn5LT0.X := BitBtn5.Left; Btn5LT0.Y := BitBtn5.Top;

  Btn1LT.X := 16; Btn1LT.Y := 50;
  Btn2LT.X := 16; Btn2LT.Y := 150;
  Btn3LT.X := 16; Btn3LT.Y := 250;
  Btn4LT.X := 16; Btn4LT.Y := 350;
  Btn5LT.X := 16; Btn5LT.Y := 450;

  for i := 1 to StepCount do
  begin
    BitBtn1.Left := Round(Btn1LT0.X + i * (Btn1LT.X - Btn1LT0.X) / StepCount);
    BitBtn1.Top := Round(Btn1LT0.Y + i * (Btn1LT.Y - Btn1LT0.Y) / StepCount);
    BitBtn2.Left := Round(Btn2LT0.X + i * (Btn2LT.X - Btn2LT0.X) / StepCount);
    BitBtn2.Top := Round(Btn2LT0.Y + i * (Btn2LT.Y - Btn2LT0.Y) / StepCount);
    BitBtn3.Left := Round(Btn3LT0.X + i * (Btn3LT.X - Btn3LT0.X) / StepCount);
    BitBtn3.Top := Round(Btn3LT0.Y + i * (Btn3LT.Y - Btn3LT0.Y) / StepCount);
    BitBtn4.Left := Round(Btn4LT0.X + i * (Btn4LT.X - Btn4LT0.X) / StepCount);
    BitBtn4.Top := Round(Btn4LT0.Y + i * (Btn4LT.Y - Btn4LT0.Y) / StepCount);
    BitBtn5.Left := Round(Btn5LT0.X + i * (Btn5LT.X - Btn5LT0.X) / StepCount);
    BitBtn5.Top := Round(Btn5LT0.Y + i * (Btn5LT.Y - Btn5LT0.Y) / StepCount);
    Application.ProcessMessages;
  end;

Form2.Label1.Caption:='';
Form2.Panel1.Caption:='';
GroupBox7.Visible:=true;
GroupBox8.Visible:=true;
Table1.Filter:='Klas='''+'knigi''';
Table1.Filtered:=True;
  end;
end;

а как проще написать чтоб работало? Данным способом работает, но тут одно и тоже повторяется

Последний раз редактировалось segas, 22.05.2009 в 22:25.
Ответить с цитированием
  #9  
Старый 24.05.2009, 18:19
Аватар для segas
segas segas вне форума
Новичок
 
Регистрация: 08.02.2009
Сообщения: 97
Репутация: 10
Вопрос

Кто нибудь подскажет?
Ответить с цитированием
  #10  
Старый 24.05.2009, 18:59
Nyctos Kasignete Nyctos Kasignete вне форума
Активный
 
Регистрация: 29.03.2009
Сообщения: 300
Репутация: 94
По умолчанию

Я же вам показывала (в посте #5), как сделать, чтобы код не дублировался. Назначьте всем пяти кнопкам один и тот же обработчик события OnClick, в который вставьте эти действия, касательно перемещения кнопок. Ну, и с фильтром можно несложно разобраться, анализируя с помощью параметра Sender, какая именно кнопка вызвала событие. Зайдите в Object Inspector, найдите в свойствах ваших кнопок (BitBtn) свойство Tag. Первой кнопке задайте Tag=1, второй кнопке — Tag=2, третьей — Tag=3, четвертой — Tag=4, пятой — Tag=5. Теперь в обработчике события OnClick можно по этому свойству опознать, какая из кнопок вызвала событие, и соответствующим образом изменить фильтр.
Код:
procedure TForm1.AnyBitBtn1Click(Sender: TObject);
const
  StepCount = 200; // число шажков от начального к конечному положению
var
  i: Integer;
  Btn1LT0, Btn2LT0, Btn3LT0, Btn4LT0, Btn5LT0: TPoint;
  Btn1LT, Btn2LT, Btn3LT, Btn4LT, Btn5LT: TPoint;
begin
  // находим начальные положения кнопок
  Btn1LT0.X := BitBtn1.Left; Btn1LT0.Y := BitBtn1.Top;
  Btn2LT0.X := BitBtn2.Left; Btn2LT0.Y := BitBtn2.Top;
  Btn3LT0.X := BitBtn3.Left; Btn3LT0.Y := BitBtn3.Top;
  Btn4LT0.X := BitBtn4.Left; Btn4LT0.Y := BitBtn4.Top;
  Btn5LT0.X := BitBtn5.Left; Btn5LT0.Y := BitBtn5.Top;

  // задаём конечные положения кнопок
  Btn1LT.X := 400; Btn1LT.Y := 80;
  Btn2LT.X := 400; Btn2LT.Y := 112;
  Btn3LT.X := 400; Btn3LT.Y := 144;
  Btn4LT.X := 400; Btn4LT.Y := 176;
  Btn5LT.X := 400; Btn5LT.Y := 208;

  // поехали...
  for i := 1 to StepCount do
  begin
    BitBtn1.Left := Round(Btn1LT0.X + i * (Btn1LT.X - Btn1LT0.X) / StepCount);
    BitBtn1.Top := Round(Btn1LT0.Y + i * (Btn1LT.Y - Btn1LT0.Y) / StepCount);
    BitBtn2.Left := Round(Btn2LT0.X + i * (Btn2LT.X - Btn2LT0.X) / StepCount);
    BitBtn2.Top := Round(Btn2LT0.Y + i * (Btn2LT.Y - Btn2LT0.Y) / StepCount);
    BitBtn3.Left := Round(Btn3LT0.X + i * (Btn3LT.X - Btn3LT0.X) / StepCount);
    BitBtn3.Top := Round(Btn3LT0.Y + i * (Btn3LT.Y - Btn3LT0.Y) / StepCount);
    BitBtn4.Left := Round(Btn4LT0.X + i * (Btn4LT.X - Btn4LT0.X) / StepCount);
    BitBtn4.Top := Round(Btn4LT0.Y + i * (Btn4LT.Y - Btn4LT0.Y) / StepCount);
    BitBtn5.Left := Round(Btn5LT0.X + i * (Btn5LT.X - Btn5LT0.X) / StepCount);
    BitBtn5.Top := Round(Btn5LT0.Y + i * (Btn5LT.Y - Btn5LT0.Y) / StepCount);
  end;

  Form2.Label1.Caption := '';
  Form2.Panel1.Caption := '';
  GroupBox7.Visible := True;
  GroupBox8.Visible := True;
  case (Sender as TBitBtn).Tag of
    1: Table1.Filter := 'Klas=''' + 'film''';
    2: Table1.Filter := 'Klas=''' + 'myz''';
    3: Table1.Filter := 'Klas=''' + 'game''';
    4: Table1.Filter := 'Klas=''' + 'prog''';
  else Table1.Filter := 'Klas=''' + 'knigi''';
  end;
  Table1.Filtered := True;
end;

Последний раз редактировалось Nyctos Kasignete, 24.05.2009 в 19:01.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 19:30.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter