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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.01.2015, 14:03   #1
Elena13
Пользователь
 
Регистрация: 07.01.2015
Сообщений: 27
По умолчанию Размер формы. TrackBar

Здравствуйте, помогите пожалуйста!
Подскажите, как изменить размер формы через TrackBar?
Elena13 вне форума Ответить с цитированием
Старый 07.01.2015, 14:06   #2
isst
Пользователь
 
Регистрация: 02.01.2015
Сообщений: 85
Сообщение

Возможно это поможет:

http://delphi-prg.ru/komponent-trackbar
http://www.cyberforum.ru/delphi-begi...ead657211.html
http://www.programmersforum.ru/showthread.php?t=118186

И вот это еще (!) http://forum.sources.ru/index.php?showtopic=48872
isst вне форума Ответить с цитированием
Старый 07.01.2015, 14:10   #3
Elena13
Пользователь
 
Регистрация: 07.01.2015
Сообщений: 27
По умолчанию

Не очень(( была уже там((
Elena13 вне форума Ответить с цитированием
Старый 07.01.2015, 14:26   #4
isst
Пользователь
 
Регистрация: 02.01.2015
Сообщений: 85
Радость

Я тут сам покопался, сделал для примера изменение длины формы. Вот у меня начальная длина например 700, 10 позиций трекбара (свойство Position), и вот как можно изменить длину формы в ходе изменения положения трекбара:

Код:
unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ComCtrls;

type
  TForm1 = class(TForm)
    TrackBar1: TTrackBar;
    procedure TrackBar1Change(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.TrackBar1Change(Sender: TObject);
begin
  case TrackBar1.Position of
    1: Form1.ClientWidth:= 510;
    2: Form1.ClientWidth:= 520;
    3: Form1.ClientWidth:= 530;
    4: Form1.ClientWidth:= 540;
    5: Form1.ClientWidth:= 550;
    6: Form1.ClientWidth:= 560;
    7: Form1.ClientWidth:= 570;
    8: Form1.ClientWidth:= 580;
    9: Form1.ClientWidth:= 590;
    10: Form1.ClientWidth:= 600;
  end;
end;

end.
Соответственно высоту формы можно поменять, изменяя через Case свойство Form1.ClientHeight в процедуре OnClick в другом (втором трекбаре). Если вам надо сразу оба св-ва изменять пропорционально, то можно в первую процедуру встроить таковое в Case. Как-то так, я думаю. У меня так работает. Понятно пока, что я говорю?
isst вне форума Ответить с цитированием
Старый 07.01.2015, 14:40   #5
isst
Пользователь
 
Регистрация: 02.01.2015
Сообщений: 85
Радость

В итоге, вот Вам код с 3 процедурами, где в первой - только длина, во второй - только высота, а в третьей - и то и то.

Код:
unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ComCtrls, Vcl.StdCtrls;

type
  TForm1 = class(TForm)
    TrackBar1: TTrackBar;
    TrackBar2: TTrackBar;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    TrackBar3: TTrackBar;
    procedure TrackBar1Change(Sender: TObject);
    procedure TrackBar2Change(Sender: TObject);
    procedure TrackBar3Change(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.TrackBar1Change(Sender: TObject);
begin
  case TrackBar1.Position of
    1: Form1.ClientWidth:= 510;
    2: Form1.ClientWidth:= 520;
    3: Form1.ClientWidth:= 530;
    4: Form1.ClientWidth:= 540;
    5: Form1.ClientWidth:= 550;
    6: Form1.ClientWidth:= 560;
    7: Form1.ClientWidth:= 570;
    8: Form1.ClientWidth:= 580;
    9: Form1.ClientWidth:= 590;
    10: Form1.ClientWidth:= 600;
  end;
end;

procedure TForm1.TrackBar2Change(Sender: TObject);
begin
  case TrackBar2.Position of
    1: Form1.ClientHeight:= 510;
    2: Form1.ClientHeight:= 520;
    3: Form1.ClientHeight:= 530;
    4: Form1.ClientHeight:= 540;
    5: Form1.ClientHeight:= 550;
    6: Form1.ClientHeight:= 560;
    7: Form1.ClientHeight:= 570;
    8: Form1.ClientHeight:= 580;
    9: Form1.ClientHeight:= 590;
    10: Form1.ClientHeight:= 600;
  end;
end;

procedure TForm1.TrackBar3Change(Sender: TObject);
begin
  case TrackBar3.Position of
    1: begin Form1.ClientWidth:= 510; Form1.ClientHeight:= 510; end;
    2: begin Form1.ClientWidth:= 520; Form1.ClientHeight:= 520; end;
    3: begin Form1.ClientWidth:= 530; Form1.ClientHeight:= 530; end;
    4: begin Form1.ClientWidth:= 540; Form1.ClientHeight:= 540; end;
    5: begin Form1.ClientWidth:= 550; Form1.ClientHeight:= 550; end;
    6: begin Form1.ClientWidth:= 560; Form1.ClientHeight:= 560; end;
    7: begin Form1.ClientWidth:= 570; Form1.ClientHeight:= 570; end;
    8: begin Form1.ClientWidth:= 580; Form1.ClientHeight:= 580; end;
    9: begin Form1.ClientWidth:= 590; Form1.ClientHeight:= 590; end;
    10: begin Form1.ClientWidth:= 600; Form1.ClientHeight:= 600; end;
  end;
end;

end.
Вот ссылка на исполняемый файл:
https://yadi.sk/d/3ZFfgJupdprJU

Если что непонятно, спрашивайте Удачи
isst вне форума Ответить с цитированием
Старый 07.01.2015, 14:41   #6
NetSpace
Участник клуба
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Сообщений: 1,814
По умолчанию

а можно просто так сделать:
Код:
procedure TForm1.TrackBar1Change(Sender: TObject);
begin
   Form1.Width:=400+TrackBar1.Position*20;//400-начальная длина формы.
end;
аналогично можно и для высоты формы сделать. да и калибровку нужно только один раз задать - 20. а не каждый раз новое значение прописывать: 500, 520, 540 и т.д.
//--------------------------------------------------
разрешите спросить, а вот это как он вам пишет: сам Delphi или вы для себя дописываете?
Код:
uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ComCtrls;
просто у меня в 5 и 7-й версии покороче выглядит:
Код:
uses Windows,Forms,ExtCtrls,StdCtrls,Graphics,Controls,Classes,SysUtils,Messages,
     ComCtrls;
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.

Последний раз редактировалось NetSpace; 07.01.2015 в 14:47.
NetSpace вне форума Ответить с цитированием
Старый 07.01.2015, 14:42   #7
isst
Пользователь
 
Регистрация: 02.01.2015
Сообщений: 85
Сообщение

Цитата:
Сообщение от NetSpace Посмотреть сообщение
разрешите спросить, а вот это как он вам пишет сам Delphi или вы для себя дописываете?
Код:
uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ComCtrls;
просто у меня покороче:
Код:
uses Windows,Forms,ExtCtrls,StdCtrls,Graphics,Controls,Classes,SysUtils,Messages,
     ComCtrls;
Я просто работаю на RAD Studio XE7, ну бывший Борланд, т.к. последний не идет на винду 8.1 Это он сам автоматически добавляет в Юнит, я даже не посмотрел щас
isst вне форума Ответить с цитированием
Старый 07.01.2015, 14:43   #8
isst
Пользователь
 
Регистрация: 02.01.2015
Сообщений: 85
По умолчанию

Не ну безусловно там не все нужно, можно койчо и убрать из Юзесов
isst вне форума Ответить с цитированием
Старый 07.01.2015, 14:44   #9
isst
Пользователь
 
Регистрация: 02.01.2015
Сообщений: 85
По умолчанию

И похоже Вы пишете на Борланде/Лазарус, не так ли?
isst вне форума Ответить с цитированием
Старый 07.01.2015, 14:53   #10
isst
Пользователь
 
Регистрация: 02.01.2015
Сообщений: 85
По умолчанию

Цитата:
Сообщение от NetSpace Посмотреть сообщение
а можно просто так сделать:
Код:
procedure TForm1.TrackBar1Change(Sender: TObject);
begin
   Form1.Width:=400+TrackBar1.Position*20;//400-начальная длина формы.
end;
аналогично можно и для высоты формы сделать. да и калибровку нужно только один раз задать - 20. а не каждый раз новое значение прописывать: 500, 520, 540 и т.д.
//--------------------------------------------------
разрешите спросить, а вот это как он вам пишет: сам Delphi или вы для себя дописываете?
Код:
uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ComCtrls;
просто у меня в 5 и 7-й версии покороче выглядит:
Код:
uses Windows,Forms,ExtCtrls,StdCtrls,Graphics,Controls,Classes,SysUtils,Messages,
     ComCtrls;
Я просто не стал особо заморачиваться. А-а, понял, Вы работаете в 5 и 7 Drlphi. Кстати , Елена, Вы тоже учтите это для своей среды разработки (насчет Uses"ов)
isst вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Размер формы Andrey85 Компоненты Delphi 4 13.12.2010 00:14
размер формы blackstersl Общие вопросы Delphi 9 13.01.2010 07:44
Размер формы segail Microsoft Office Excel 2 10.07.2009 21:39
Помогите измененить размер картинки с помощью TrackBar oblachko Мультимедиа в Delphi 6 30.06.2009 02:25
Размер формы vitamin.rulez Помощь студентам 2 06.02.2009 15:29