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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.05.2014, 16:29   #1
alexey9999
Пользователь
 
Регистрация: 09.12.2013
Сообщений: 13
По умолчанию Запретить выбор двух одинаквых цветов

Есть программа, изменяет цвет ободочной линии и заливки у фигур, вопросы:
1) как запретить выбор двух одинаковых цветов,
2) как предоставить пользователю возможность изменять ширину ободочной линии с помощью кнопки(от 1 до 20 пикселей).

Попытался сделать запрет на выбор двух цветов, не работает.


Код:
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ColorGrd, StdCtrls, ExtCtrls;
 
type
  TForm1 = class(TForm)
    ColorGrid1: TColorGrid;
    Shape1: TShape;
    Shape2: TShape;
    Shape3: TShape;
    Shape4: TShape;
    Shape5: TShape;
    Shape6: TShape;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Button1: TButton;
    procedure ColorGrid1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    procedure ColorGrid1Change(Sender: TObject);
    procedure ComboBox1Change(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
procedure TForm1.ColorGrid1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
  with ColorGrid1 do
    if ForeGroundColor = BackgroundColor then
    begin
      ShowMessage('Цвета совпадают!');
      ForegroundIndex := ColorToIndex(Shape1.Pen.Color);
      BackgroundIndex := ColorToIndex(Shape1.Brush.Color);
    end
    else
      if Button = mbLeft then
        Shape1.Pen.Color := ForegroundColor
      else
        if Button = mbRight then
          shape1.Brush.Color := BackgroundColor;
end;
procedure TForm1.ColorGrid1Change(Sender: TObject);
begin
with ColorGrid1 do
begin
shape1.Pen.Color:=ForeGroundColor;
shape2.Pen.Color:=ForeGroundColor;
shape3.Pen.Color:=ForeGroundColor;
shape4.Pen.Color:=ForeGroundColor;
shape5.Pen.Color:=ForeGroundColor;
shape6.Pen.Color:=ForeGroundColor;
shape1.Brush.Color:=BackgroundColor;
shape2.Brush.Color:=BackgroundColor;
shape3.Brush.Color:=BackgroundColor;
shape4.Brush.Color:=BackgroundColor;
shape5.Brush.Color:=BackgroundColor;
shape6.Brush.Color:=BackgroundColor;
end;
end;
alexey9999 вне форума Ответить с цитированием
Старый 18.05.2014, 17:40   #2
alexey9999
Пользователь
 
Регистрация: 09.12.2013
Сообщений: 13
По умолчанию

с цветами разобрался, помогите сделать увеличение ободочной линии по нажатию кнопки
alexey9999 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
MySql Выбор данных из двух таблиц Миша PHP 3 12.08.2013 23:35
Сложный выбор из двух таблиц. Миша SQL, базы данных 2 06.08.2013 20:44
Есть n цветов разных видов. Составьте все возможные сочетания букетов из всех этих цветов. Количество цветов и их названия вводит lesha18 Паскаль, Turbo Pascal, PascalABC.NET 1 26.02.2013 16:54
Как запретить выбор одинаковых значений из списка в одном столбце? Santik Microsoft Office Excel 1 21.04.2012 16:37
Смешивание двух RGBA цветов Dj_smart Мультимедиа в Delphi 7 01.03.2012 20:35