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

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

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.06.2014, 03:12   #1
compdoktor
Пользователь
 
Регистрация: 12.02.2014
Сообщений: 14
По умолчанию Конструктор заборов

Подскажите (направьте) в нужном направлении.
Как написать программу "Конструктор заборов" на C++ Builder вот такой как на этом сайте http://green-beton.dn.ua/ru/constructor что бы я пришел к клиенту и смоделировал его будущий забор.
compdoktor вне форума Ответить с цитированием
Старый 24.06.2014, 06:37   #2
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

По Вашей ссылке -
Цитата:
Not Found
The requested URL /ru/constructor was not found on this server.
Может на словах объясние, что именно подразумевается под "конструктором заборов"?
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 24.06.2014, 11:34   #3
compdoktor
Пользователь
 
Регистрация: 12.02.2014
Сообщений: 14
По умолчанию

Smitt&Wesson, вот перешел на главную страницу этого сайта http://green-beton.dn.ua и сделал скрин. там таким образом есть формы плит, набираешь наборку и смотришь внешний вид будущего забора.
Изображения
Тип файла: jpg Безымянный.jpg (108.9 Кб, 125 просмотров)
compdoktor вне форума Ответить с цитированием
Старый 24.06.2014, 13:26   #4
compdoktor
Пользователь
 
Регистрация: 12.02.2014
Сообщений: 14
По умолчанию

Вот уже есть макет. Только нужно сделать его рабочим*)
Подскажите что делать дальше?
Это нужно делать работу с изображениями?
как осуществить "Рассчет примерной стоимости забора:
длина забора "..." метров - (и кнопку) "Рассчитать"
Изображения
Тип файла: jpg Безымянный.jpg (116.5 Кб, 123 просмотров)
compdoktor вне форума Ответить с цитированием
Старый 24.06.2014, 16:00   #5
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Это нужно делать работу с изображениями?
Странный вопрос. Конечно с изображениями. Компонент Image. Нужно подготовить заготовки, которые разместить на другой форме. Делаем выбор кликом. Заготовка переносится в выбранную область. Расчёт делается перемножением цены выбранного блока, на их количество.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 24.06.2014, 16:46   #6
compdoktor
Пользователь
 
Регистрация: 12.02.2014
Сообщений: 14
По умолчанию

Smitt&Wesson, с добавлением изображения я уже разобрался. А как по нажатию на кнопку поворачивать изображение в Image на 180 градусов. Подскажите как это осуществить в C++ Builder. Вот нашел такую же тему только на Delphi, а мне нужно на C++ Builder
Вот код
Код:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
	: TForm(Owner)
{
}
//---------------------------------------------------------------------------


void __fastcall TForm1::Button1Click(TObject *Sender)
{
if(OpenPictureDialog1->Execute())
Image5->Picture->LoadFromFile(OpenPictureDialog1->FileName);
Image6->Picture->LoadFromFile(OpenPictureDialog1->FileName);
Image11->Picture->LoadFromFile(OpenPictureDialog1->FileName);
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)
{
if(OpenPictureDialog1->Execute())
Image2->Picture->LoadFromFile(OpenPictureDialog1->FileName);
Image8->Picture->LoadFromFile(OpenPictureDialog1->FileName);
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button3Click(TObject *Sender)
{
if(OpenPictureDialog1->Execute())
Image3->Picture->LoadFromFile(OpenPictureDialog1->FileName);
Image9->Picture->LoadFromFile(OpenPictureDialog1->FileName);
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button4Click(TObject *Sender)
{
if(OpenPictureDialog1->Execute())
Image4->Picture->LoadFromFile(OpenPictureDialog1->FileName);
Image10->Picture->LoadFromFile(OpenPictureDialog1->FileName);
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button9Click(TObject *Sender)
{
if(OpenPictureDialog1->Execute())
Image1->Picture->LoadFromFile(OpenPictureDialog1->FileName);
Image7->Picture->LoadFromFile(OpenPictureDialog1->FileName);
}
//---------------------------------------------------------------------------



void __fastcall TForm1::Button5Click(TObject *Sender)
{
вот тут нужно вставить код поворота
}
//---------------------------------------------------------------------------
Изображения
Тип файла: jpg Безымянный.JPG (34.6 Кб, 69 просмотров)

Последний раз редактировалось compdoktor; 24.06.2014 в 16:58.
compdoktor вне форума Ответить с цитированием
Старый 24.06.2014, 19:12   #7
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Можно при помощи обмена пикселями нижних и верхних строк.

Код:
TColor X;
for(int h=0; h < Image1->Height/2; h++)
  for(int w=0; w < Image1->Width/2; w++)
  { 
    X = ImageX->Canvas->Pixsels[w][h];
    ImageX->Canvas->Pixsels[w][h] = ImageX->Canvas->Pixsels[Image1->Width - w][Image1->Height - h];
    ImageX->Canvas->Pixsels[Image1->Width - w][Image1->Height - h] = X;
  }
Как то так. Код не проверял, возможны ошибки, но алгоритм такой.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 24.06.2014, 19:29   #8
compdoktor
Пользователь
 
Регистрация: 12.02.2014
Сообщений: 14
По умолчанию

не работает(
вот нашел код переворота но картинка исчезает а не переворачивается
Код:
Graphics::TBitmap *SrcBitmap=new Graphics::TBitmap;
Graphics::TBitmap *DestBitmap=new Graphics::TBitmap;
//SrcBitmap->LoadFromFile("YourBitmap.bmp");
// поворачиваем на 180
DestBitmap->Width=SrcBitmap->Width;
DestBitmap->Height=SrcBitmap-> Height;
// вращаем попиксельно
for (int x=0;x<SrcBitmap->Width;x++)
  {
	for(int y=0;y<SrcBitmap->Height;y++)
	  {
		DestBitmap->Canvas->Pixels[x][SrcBitmap->Height-1-y]=
		SrcBitmap->Canvas->Pixels[x][y];
	  }
  }
// назначаем результирующее изображение TImage
Image1->Picture->Bitmap=DestBitmap;
delete DestBitmap;
delete SrcBitmap;

Последний раз редактировалось compdoktor; 24.06.2014 в 19:35.
compdoktor вне форума Ответить с цитированием
Старый 24.06.2014, 19:42   #9
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Картинку нужно загрузить в SrcBitmap.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 24.06.2014, 19:49   #10
compdoktor
Пользователь
 
Регистрация: 12.02.2014
Сообщений: 14
По умолчанию

В том то и проблема. Её не нужно загружать, потому что каталог плит большой, все не загрузишь, а если и загрузишь получиться не то что нужно. Картинку должно брать с image. Как это сделать в строчке?
Код:
SrcBitmap->LoadFromFile "тут должно брать картинку с image"

Последний раз редактировалось compdoktor; 24.06.2014 в 19:55.
compdoktor вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Конструктор Freewill Общие вопросы C/C++ 1 18.02.2012 21:51
Конструктор С++ sir.andrey Помощь студентам 7 25.07.2011 10:30
конструктор _ILYA_ Visual C++ 2 14.10.2010 01:38
С++ (конструктор, деструктор, копирующий конструктор) Jane-sad Помощь студентам 2 01.10.2010 10:01
конструктор An123 Помощь студентам 1 17.01.2010 17:14