Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 18.05.2010, 11:19
inspector inspector вне форума
Прохожий
 
Регистрация: 25.12.2009
Сообщения: 13
Репутация: 10
По умолчанию добавить в программу кое-какие функции

необходимо добавить в программу возможность рисовать ещё одну фигуру (треугольник, ромб, трапецию, параллелограмм и т.д.), а также генерацию заданного кол-ва фигур, случайного размера и цвета
Вложения
Тип файла: rar лаб3.rar (12.1 Кбайт, 8 просмотров)
Ответить с цитированием
  #2  
Старый 18.05.2010, 11:46
Аватар для friz
friz friz вне форума
Местный
 
Регистрация: 04.04.2008
Адрес: Минск
Сообщения: 596
Версия Delphi: 2007 & JAVA EE
Репутация: 10670
По умолчанию

добавил треугольник и ромб с миру по нитке...
Вложения
Тип файла: rar лаб3.rar (12.6 Кбайт, 16 просмотров)
Ответить с цитированием
  #3  
Старый 18.05.2010, 13:55
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

Цитата:
Сообщение от friz
с миру по нитке...
...наберём функционала на AutoCAD или Photoshop "made in DelphiSources"))
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
  #4  
Старый 19.05.2010, 07:27
inspector inspector вне форума
Прохожий
 
Регистрация: 25.12.2009
Сообщения: 13
Репутация: 10
По умолчанию

спасибо, осталось только включить генерацию заданного кол-ва фигур. кто-то может помочь?
Ответить с цитированием
  #5  
Старый 19.05.2010, 07:49
Аватар для dr. F.I.N.
dr. F.I.N. dr. F.I.N. вне форума
I Like it!
 
Регистрация: 12.12.2009
Адрес: Россия, г. Новосибирск
Сообщения: 663
Версия Delphi: D6/D7
Репутация: 26643
По умолчанию

Код:
unit Unit1;

interface

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

type
  TMainForm = class(TForm)
    rLabel: TLabel;
    SpinEdit: TSpinEdit;
    ColorButton: TButton;
    Shape1: TShape;
    Image: TImage;
    ColorDialog: TColorDialog;
    TypeFigure: TRadioGroup;
    ExitButton: TButton;
    procedure FormActivate(Sender: TObject);
    procedure ImageMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure ExitButtonClick(Sender: TObject);
  private
    { Private declarations }
  public
    procedure ClearFigList;
  end;

var
  MainForm: TMainForm;
  FigList: TList;
implementation

{$R *.dfm}
Uses Unit2;

procedure TMainForm.ClearFigList;
var
  i: Integer;
begin
  if FigList.Count = 0 then Exit;
  for i := 0 to FigList.Count - 1 do
  TMyFigure(FigList.Items[i]).Free;
  FigList.CLear;
end;
  
procedure TMainForm.FormActivate(Sender: TObject);
begin
Image.Canvas.Brush.Color:=clWhite; {установить белый фон}
Image.Canvas.Pen.Color:=clBlack; {установить цвет рисования}
end;

procedure TMainForm.ImageMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
  C:TMyFigure;
begin
if Button=mbLeft then {если нажата левая кнопка мыши}
begin
{если объект создан, то уничтожить его}
case TypeFigure.ItemIndex of
0: C:=TMyCircle.Create(Image,X,Y,SpinEdit.Value,
                    Image.Canvas.Pen.Color); {конструировать}
1: C:=TMySquare.Create(Image,X,Y,SpinEdit.Value,
                    Image.Canvas.Pen.Color); {конструировать}
2: C:=TMyRomb.Create(Image,X,Y,SpinEdit.Value,
                    Image.Canvas.Pen.Color);
end;
C.Draw; {изобразить объект с заданными параметрами}
FigList.Add(C);
end;
end;

procedure TMainForm.ExitButtonClick(Sender: TObject);
begin
Application.Terminate;
end;

Initialization 
FigList := TList.Create;

Finalization 
ClearFigList;
FigList.Free;

end.
Снова пишу на коленке, поэтому внимательно проверить надо.
Красным пометил изменения.
Смену цвета и размера я убрал, тут продумать надо че хотим (если фигур несколько надо знать у какой что менять).
Принцип должен быть ясен, дальше - копать

З.Ы. Тут тоже самое, но при каждом новом клике по имэйджу создается новая фигура.

Последний раз редактировалось dr. F.I.N., 19.05.2010 в 07:51.
Ответить с цитированием
  #6  
Старый 21.05.2010, 23:47
inspector inspector вне форума
Прохожий
 
Регистрация: 25.12.2009
Сообщения: 13
Репутация: 10
По умолчанию

спасибо большое, но я особо не разбираюсь в delphi. в итоге, просто скопипастил в исходник всё, и ничего не получилось. а общий принцип я не особо понял. по поводу размера и цвета, нужно сделать кнопку, чтобы произвольно выбиралось кол-во и цвет фигур, и их размер.
Ответить с цитированием
  #7  
Старый 24.05.2010, 09:43
inspector inspector вне форума
Прохожий
 
Регистрация: 25.12.2009
Сообщения: 13
Репутация: 10
По умолчанию

поднимаю, до дня показа программы остались одни сутки.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 09:30.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025