Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 11.12.2011, 23:21   #1 (permalink)
g1one
Member
 
Регистрация: 11.12.2011
Сообщений: 15
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Друзья, нужна ваша помощь

1. На форме располагаются: редактор Memo; две панели для вывода размера редактора и две панели выше с соответствующими надписями «Ширина» и «Высота»; четыре кнопки , , , ; список ListBox с опциями "Левый верхний" и "Правый нижний" и кнопка Close. Нажатие кнопок со стрелками приводит к соответствующему изменению размера редактора вследствие перемещения указанного в ListBox угла, что отображается на панелях. Размер редактора находится в диапазоне от 100х100 до 250х250. При достижении граничного значения соответствующая кнопка исчезает. Кнопка Close заканчивает программу.
g1one вне форума   Ответить с цитированием

Старый 11.12.2011, 23:21
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Данные топики очень похожи по содержанию на вашу тему

Нужна помощь с ремонтом плеера
Мощный преобразователь с 17 на 12 вольт, нужна ваша помощь
Delphi. Нужна ваша помощь
Ремонт резинового подвеса - нужна ваша помощь

Старый 11.12.2011, 23:35   #2 (permalink)
g1one
Member
 
Регистрация: 11.12.2011
Сообщений: 15
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Данную задачу нужно сделать на Delphi
g1one вне форума   Ответить с цитированием
Старый 12.12.2011, 05:06   #3 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
По умолчанию

На событие OnClick соответствующей кнопки повесьте команду изменения линейного размера компоненты (соответственно Width и Hight) и анализируйте его значение (If ...). При достижении предельного значения соответствующую кнопку спрячьте (свойство Visible:=False).
AlexZir вне форума   Ответить с цитированием
Старый 17.12.2011, 00:23   #4 (permalink)
g1one
Member
 
Регистрация: 11.12.2011
Сообщений: 15
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

А можно по подробнее, Пожалуйста)
g1one вне форума   Ответить с цитированием
Старый 17.12.2011, 19:22   #5 (permalink)
MrSTEP
一步一步地会到目的
 
Аватар для MrSTEP
 
Регистрация: 09.05.2009
Адрес: Черноземье
Сообщений: 10,939
Записей в дневнике: 10
Сказал(а) спасибо: 140
Поблагодарили 80 раз(а) в 33 сообщениях
Репутация: 28362
По умолчанию

Двойной щелчок по любой кнопке на форме (в режиме конструирования) открывает процедуру обработки щелчка по этой кнопке (Событие OnClick, о чем писал AlexZir). В нее-то и нужно записать действие, которое бы меняло высоту и ширину формы, или ее положение на экране.

Вы говорите, я делал похожую задачу? Дайте-ка ссылку, посмотреть. Кажется, там все неплохо расписано..
MrSTEP вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 17.12.2011, 19:25   #6 (permalink)
g1one
Member
 
Регистрация: 11.12.2011
Сообщений: 15
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Задачка в делфи
g1one вне форума   Ответить с цитированием
Старый 17.12.2011, 19:52   #7 (permalink)
MrSTEP
一步一步地会到目的
 
Аватар для MrSTEP
 
Регистрация: 09.05.2009
Адрес: Черноземье
Сообщений: 10,939
Записей в дневнике: 10
Сказал(а) спасибо: 140
Поблагодарили 80 раз(а) в 33 сообщениях
Репутация: 28362
По умолчанию

В общем-то, все похоже, надо лишь немного изменить процедуры перемещения.
Поясню по событиям: среди окон делфи в левом нижнем углу есть окно Инспектора объектов (Object Inspector), на одной вкладке которого отображаются Свойства выделенного объекта, на второй - события для данного объекта (Properties и Events соответственно). Так, событие Щелчок мыши обрабатывается через OnClick, нажатие клавиши - OnKeyPress, изменение - OnChange, и т.д.. В соответствующие события вам нужно вписать код, который бы обрабатывал это и производил какие-то действия.
Так вот, для обработки изменения ЛистБокса добавляем в глобальный var переменную flag логического типа, а в саму процедуру вставляем это:
Код:
сase ListBox1.ItemIndex of
 0: flag:=false;
 1: flag:=true;
 end;
MrSTEP вне форума   Ответить с цитированием
Старый 17.12.2011, 20:05   #8 (permalink)
MrSTEP
一步一步地会到目的
 
Аватар для MrSTEP
 
Регистрация: 09.05.2009
Адрес: Черноземье
Сообщений: 10,939
Записей в дневнике: 10
Сказал(а) спасибо: 140
Поблагодарили 80 раз(а) в 33 сообщениях
Репутация: 28362
По умолчанию

Далее, коды для кнопок направлений из той темы справедливы и для вас, только лишь объект Form1 замените на Memo1.
MrSTEP вне форума   Ответить с цитированием
Старый 17.12.2011, 20:55   #9 (permalink)
g1one
Member
 
Регистрация: 11.12.2011
Сообщений: 15
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

unit Unit3;

interface

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

type
TForm3 = class(TForm)
Memo1: TMemo;
Memo2: TMemo;
Memo3: TMemo;
Memo4: TMemo;
ListBox1: TListBox;
CheckBox1: TCheckBox;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
procedure Button1Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
procedure ListBox1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form3: TForm3;

implementation

{$R *.dfm}

procedure TForm3.Button1Click(Sender: TObject);
begin
Case flag of
false: Memo1.Left:=Form1.Left-5;
true: Memo1.Width:=Form1.Width-5;
end;
end;

procedure TForm3.Button2Click(Sender: TObject);
begin
Case flag of
false: Memo1.Top:=Form1.Top+5;
true: Memo1.Height:=Form1.Height+5;
end;
end;

procedure TForm3.Button3Click(Sender: TObject);
begin
Case flag of
false: Memo1.Left:=Form1.Left+5;
true: Memo1.Width:=Form1.Width+5;
end;
end;

procedure TForm3.Button4Click(Sender: TObject);
begin
Case flag of
false: Memo1.Top:=Form1.Top-5;
true: Memo1.Height:=Form1.Height-5;
end;
end;

procedure TForm3.CheckBox1Click(Sender: TObject);
begin
Application.Terminate;
end;

procedure TForm3.ListBox1Click(Sender: TObject);
begin
var flag of
сase ListBox1.ItemIndex of
0: flag:=false;
1: flag:=true;
end;
end;

end.
Вот что я смог сделать) Ошибку выдает case flag of
g1one вне форума   Ответить с цитированием
Старый 17.12.2011, 21:09   #10 (permalink)
MrSTEP
一步一步地会到目的
 
Аватар для MrSTEP
 
Регистрация: 09.05.2009
Адрес: Черноземье
Сообщений: 10,939
Записей в дневнике: 10
Сказал(а) спасибо: 140
Поблагодарили 80 раз(а) в 33 сообщениях
Репутация: 28362
По умолчанию

Цитата:
Сообщение от MrSTEP Посмотреть сообщение
добавляем в глобальный var переменную flag логического типа
Вы это пропустили. Подскажу, в глобальном var'e у вас уже описана Form3 (откуда там три?).

И еще: не везде заменено Form1 на мемо, внимательнее надо искать. Или пользоваться процедурой замены-подстановки.
MrSTEP вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 13:17.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.