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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.04.2010, 10:48   #1
katttes
Пользователь
 
Регистрация: 02.04.2010
Сообщений: 33
Вопрос CheckBox и его размер.

Пишу программу на Delphi 7. Преподаватель выставил следущее требование:
Чтобы размер CheckBox (а именно того окошка, в котором ставится галочка) был намного больше.
Подскажите пожалуйста как это сделать.
katttes вне форума Ответить с цитированием
Старый 02.04.2010, 11:31   #2
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,551
По умолчанию

Мышкой растянуть.
Arigato вне форума Ответить с цитированием
Старый 02.04.2010, 11:37   #3
katttes
Пользователь
 
Регистрация: 02.04.2010
Сообщений: 33
По умолчанию

если растянуть мышкой увеличивается поле надписи. а мне нужно увеличить сам квадратик белый.
katttes вне форума Ответить с цитированием
Старый 02.04.2010, 15:22   #4
prog.delphin
 
Регистрация: 16.01.2009
Сообщений: 3
По умолчанию

ну есть вариант поставить на форму image а ядом label и при нажатии на них менять картинку image.
другой вариант, написать компонент типо этого.(в моем варианте компонент не принимает фокуса )
Код:
unit CheckBoxSizable;

interface

uses
  SysUtils, Classes, Controls, Graphics;

type
  TCheckBoxSizable = class(TCustomControl)
  private
    FChecked: Boolean;
    FSize: longint;
    FCaption: String;
    procedure SetCaption(const Value: String);
    procedure SetChecked(const Value: Boolean);
    procedure SetSize(const Value: longint);
    { Private declarations }
  protected
    procedure MouseDown(Button: TMouseButton; Shift: TShiftState;
      X: Integer; Y: Integer); override;
    procedure Paint; override;
    { Protected declarations }
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
    { Public declarations }
    
  published
    { Published declarations }
    property Checked:Boolean read FChecked write SetChecked;
    property Caption:String read FCaption write SetCaption;
    property Size:longint read FSize write SetSize;
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Samples', [TCheckBoxSizable]);
end;

{ TCheckBoxSizable }

constructor TCheckBoxSizable.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);

end;

destructor TCheckBoxSizable.Destroy;
begin

  inherited Destroy;
end;

procedure TCheckBoxSizable.MouseDown(Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
 Checked:=not Checked;
 Paint;
end;

procedure TCheckBoxSizable.Paint;
var h:Longint;
begin
  inherited Paint;
  h:=Height div 2 - Size div 2;
  Canvas.Brush.Color:=clBtnFace;
  Canvas.Rectangle(0,0,Width+1,Height+1);
  Canvas.Brush.Color:=clWhite;
  Canvas.Rectangle(2,h,2+size,h+size);
  Canvas.Brush.Color:=clBtnFace;
  if Checked then
   begin
    Canvas.Pen.Width:=2;
    Canvas.MoveTo(size div 4,h+size div 3);
    canvas.LineTo(size div 2 +1,h+2*(size div 3));
    canvas.LineTo(3*(size div 4),h+size div 4);
   end;
  Canvas.TextOut(size+2,height div 2-Canvas.Font.Size div 2,Caption);
end;

procedure TCheckBoxSizable.SetCaption(const Value: String);
begin
  FCaption := Value;
  Paint;
end;

procedure TCheckBoxSizable.SetChecked(const Value: Boolean);
begin
  FChecked := Value;
  Paint;
end;

procedure TCheckBoxSizable.SetSize(const Value: longint);
begin
  FSize := Value;
  Paint;
end;

end.
prog.delphin вне форума Ответить с цитированием
Старый 02.04.2010, 15:49   #5
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,551
По умолчанию

Вам нужно что-то типа этого?



Тогда качайте архив из вложения. Ни каких дополнительных компонент. В коде уже сами разбирайте, что от куда и куда.
Вложения
Тип файла: rar checkbox.rar (1.1 Кб, 316 просмотров)
Arigato вне форума Ответить с цитированием
Старый 03.04.2010, 19:28   #6
katttes
Пользователь
 
Регистрация: 02.04.2010
Сообщений: 33
По умолчанию

Спасибо!!!!!!
katttes вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[C++]замена каждого эл-та на ср. арифметическое его и его соседей. AntonNeChehov Общие вопросы C/C++ 13 01.01.2010 20:04
неубиваемый вирус! все антивирусы не находят его! кто знает как его убрать? Yury111 Безопасность, Шифрование 12 05.06.2009 11:19
Как узнать размер файла имея его URL SeRhy Работа с сетью в Delphi 2 19.04.2009 21:04
Размер Image изменяется на размер картинки, а сама она рисуется на области первой картинки RPGer Мультимедиа в Delphi 6 20.10.2008 19:54