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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.08.2009, 11:57   #1
Murlokotan61
 
Регистрация: 21.06.2009
Сообщений: 6
По умолчанию Связка TrackBar с Label. Проблема с кодом.

На форме два TrackBar, 1 и 2. Соответсвено им, два Label, 1 и 2. Как вычислить произведение чисел, отобразившихся в зависимости от положений бегунков и результат "выдать" в Label3 (тоже уже стоит на форме)? Числа должны быть отображены именно, как в Label, StaticText, но не как в Edit?
Murlokotan61 вне форума Ответить с цитированием
Старый 25.08.2009, 15:45   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

если верно понял то Label3.Caption:=IntToStr(TrackBar1. Position*TrackBar2.Position)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 25.08.2009, 16:10   #3
Murlokotan61
 
Регистрация: 21.06.2009
Сообщений: 6
По умолчанию

Уважаемый "Пепел...", спасибо за отзыв, но не прошло, хотя предложенный вариант я не применял. Я пытался "плясать" от значений Label-ов. Хотя весь код скомпиллировался без проблем.
Murlokotan61 вне форума Ответить с цитированием
Старый 25.08.2009, 16:14   #4
havok
Пользователь
 
Аватар для havok
 
Регистрация: 24.08.2009
Сообщений: 42
По умолчанию

а если я верно понял то так:
Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
lbl1.Caption:=IntToStr(trckbr1.position);
lbl2.Caption:=IntToStr(trckbr2.position);
lbl3.Caption:=IntToStr(trckbr1.position*trckbr2.position);
end;

procedure TForm1.trckbr1Change(Sender: TObject);
begin
lbl1.Caption:=IntToStr(trckbr1.position);
lbl3.Caption:=IntToStr(trckbr1.position*trckbr2.position);
end;

procedure TForm1.trckbr2Change(Sender: TObject);
begin
lbl2.Caption:=IntToStr(trckbr2.position);
lbl3.Caption:=IntToStr(trckbr1.position*trckbr2.position);
end;
icq 580047636 You're WELCOME!!!

Последний раз редактировалось havok; 25.08.2009 в 16:17.
havok вне форума Ответить с цитированием
Старый 25.08.2009, 18:57   #5
Murlokotan61
 
Регистрация: 21.06.2009
Сообщений: 6
По умолчанию

havok, c ShowMessage пошло прекрасно, спасибо. Как сделать с Labe3, дойду сам.

Здравствуйте, уважаемые программисты! Прошу помощь. :wall: Создаю программу, которая: 1. вычисляет произведение целых чисел; 2. находит квадрат произвольного числа. На форму нанесены: два TrackBar, соответственно им две Lbl_(1,2), GroupBox с надписью 'Произведение', содержащий Label4 для отображения результата, CheckBox для переключения на вычисление квадрата числа на основании положения бегунка, и обратно, на произведение. При этом изменяется надпись у GroupBox на 'Квадрат'. Привожу код того, что сделано, все работает. Проблема одна: текст процедуры, которая вычисляет квадрат числа на основании Position бегунка и выводит найденное значение в GroupBox.Label4.

Код:
unit Zadacha_pas;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics,
  Controls, Forms, Dialogs, StdCtrls, ExtCtrls, Buttons,
  ComCtrls;
type
  TForm1 = class(TForm)
    BitBtn1: TBitBtn;
    TrackBar1: TTrackBar;
    TrackBar2: TTrackBar;
    Label1: TLabel;
    Label2: TLabel;
    Lbl_1: TLabel;
    Lbl_2: TLabel;
    CheckBox1: TCheckBox;
    GroupBox1: TGroupBox;
    Label4: TLabel;
    procedure BitBtn1Click(Sender:TObject);
    procedure TrackBar1Change(Sender:TObject);
    procedure TrackBar2Change(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure CheckBox1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
  Lbl_1:Integer;    Lbl_2:Integer;       Label4:String;
  GroupBox1:TGroupBox;
  CheckBox1:TCheckBox;
implementation
{$R *.dfm}
 procedureTForm1.FormCreate(Sender: TObject);
begin
GroupBox1.Caption:='Произведение';
Lbl_1.Caption:=IntToStr(TrackBar1.Position);
Lbl_2.Caption:=IntToStr(TrackBar2.Position);
Label4.Caption:=IntToStr(TrackBar1.Position*TrackBar2.Position);
end;
procedure TForm1.TrackBar1Change(Sender: TObject);
 begin
 Lbl_1.Caption:=IntToStr(TrackBar1.Position);
 Label4.Caption:=IntToStr(TrackBar1.Position*TrackBar2.Position);
 end
procedure TForm1.TrackBar2Change(Sender: TObject);
begin
Lbl_2.Caption:=IntToStr(TrackBar2.Position);
Label4.Caption:=IntToStr(TrackBar1.Position*TrackBar2.Position);
end;
procedure TForm1.CheckBox1Click(Sender: TObject);
 begin
   case CheckBox1.State of
        cbChecked:GroupBox1.Caption:='Квадрат';
       else
        GroupBox1.Caption:='Произведение';
   end;
 end;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
  Close;
end;
end.

Последний раз редактировалось Stilet; 02.12.2009 в 15:00.
Murlokotan61 вне форума Ответить с цитированием
Старый 02.12.2009, 12:50   #6
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

А чем отличается произведение чисел от квадрата числа?
Или начнем с азов арифметики?
mihali4 вне форума Ответить с цитированием
Старый 02.12.2009, 14:52   #7
Murlokotan61
 
Регистрация: 21.06.2009
Сообщений: 6
По умолчанию Азы арифметики

Цитата:
Сообщение от mihali4 Посмотреть сообщение
А чем отличается произведение чисел от квадрата числа?
Или начнем с азов арифметики?
Если числа одинаковые, то ничем, к примеру 35 и35. В произведении же может быть 35 и, к примеру, 30, и каждое из них устанавливается своим TrackBar. В случае же вычисления квадрата возникает необходимость синхронной работы TrackBar1 и TrackBar2, независимо от того, какой бегунок подвергается воздействию. А вообще, этот вопрос задать бы тем, кто дает такие "мертворожденные" задания. С уважением, Сергей.
Murlokotan61 вне форума Ответить с цитированием
Старый 02.12.2009, 14:56   #8
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Сообщение от Murlokotan61 Посмотреть сообщение
...возникает необходимость синхронной работы TrackBar1 и TrackBar2, независимо от того, какой бегунок подвергается воздействию...
Вот на основе этой ключевой фразы и вопрос прозвучал бы гораздо конкретнее.
Этот вопрос недавно поднимался.
Форум - перед вами.
Осталось приложить (самому!) небольшие усилия и найти интересующую тему.
mihali4 вне форума Ответить с цитированием
Старый 07.12.2009, 01:58   #9
Murlokotan61
 
Регистрация: 21.06.2009
Сообщений: 6
По умолчанию

Большое спасибо всем, кто откликнулся. Помощь уже не требуется, решил самостоятельно. Привожу фрагмент решения (для возможных будущих поколений):
Код:
procedure TForm1.CheckBox1Click(Sender: TObject);
 begin
  if CheckBox1.Checked then
     TrackBar2.Position:=TrackBar1.Position;
     Lbl_1.Caption:=IntToStr(TrackBar1.Position);
     Lbl_2.Caption:=IntToStr(TrackBar1.Position);
     Label4.Caption:=IntToStr(sqr(TrackBar1.Position));
   case CheckBox1.State of
        cbChecked:GroupBox1.Caption:='Квадрат';
   else
        GroupBox1.Caption:='Произведение';
        Lbl_2.Caption:=IntToStr(TrackBar2.Position);
        Label4.Caption:=IntToStr(TrackBar1.Position*TrackBar2.Position);
   end;
 end;
Оформить код тэгом - на радостях забыли?

Последний раз редактировалось mihali4; 07.12.2009 в 02:03.
Murlokotan61 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
связка MySQL+PHP5 - странная проблема SwiP SQL, базы данных 2 06.04.2009 23:25
При расположении Label на компонентах, место под Label, не реагирует на событие onClick. NavigatorNeba Компоненты Delphi 3 15.11.2008 19:56
Проблема с кодом( DM_bite Помощь студентам 3 02.08.2008 20:02
проблема с TrackBar`ом AndrewASV Общие вопросы Delphi 2 22.11.2007 22:21
Вопрос по label. Как сделать так чтобы label была прозрачной. Lonix Компоненты Delphi 2 01.04.2007 06:23