Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вопрос по клонированию


Страницы:   1 2

49 Cent ©   (2006-05-02 16:32:00) 

С помощью такого кода создаю TRotateimage(обычный Image, только можно менять угол)
Fa:=TRotateimage.Create(Self);
Fa.Picture.LoadFromFile(IntToStr(i)+'.bmp');
Fa.OnMouseMove:=rotateimage1.OnMouseMove;
Fa.OnMouseUp:=rotateimage1.OnMouseUp;
Fa.OnMouseDown:=rotateimage1.OnMouseDown;
Fa.PopupMenu:=PopupMenu1;


Также есть PopupMenu1. В этом компоненте заложены 4 варианта положения картинки: 45,90,180,270 градусов.

Теоритически все должно смотреться следующим образом:
Юзер кликает на кнопку, происходит клонирование картинки, затем пользователь кликает на правую кнопку, всплывает менюшка PopupMenu и уже в этом меню пользователь выбирает нужный угол и как следствие клонированная картника поворачивается.

Вопрос собственно такой! Какой код может выполнить одну и туже задачу для только что кланированной картинки?


49 Cent   (2006-05-02 16:49:00) [21]

Вопросов нет! Круто! НО программа почти написана. Куча манипуляций заточенно именно на Rotateimage и на клонирование... наверняка должно быть решение задачи.


ЛшдлуттнСфе   (2006-05-02 16:46:00) [22]

примечание: пример из стандартной справки Делфи.


KilkennyCat   (2006-05-02 16:46:00) [23]

Пример работы с битмапом:

var
BitMap1,BitMap2 : TBitMap;
MyFormat : Word;
begin
  BitMap2 := TBitMap.Create;
  BitMap1 := TBitMap.Create;
try
  BitMap1.LoadFromFile('c:\Program Files\common Files\Borland Shared\Images\Splash\256color\factory.bmp');
  BitMap2.Assign(BitMap1);     // Copy BitMap1 into BitMap2
  BitMap2.Dormant;             // Free up GDI resources
  BitMap2.FreeImage;           // Free up Memory.
  Canvas.Draw(20,20,BitMap2);  // Note that previous calls don't lose the image

  BitMap2.Monochrome := true;
  Canvas.Draw(80,80,BitMap2);
  BitMap2.ReleaseHandle;       // This will actually lose the bitmap;
finally
  BitMap1.Free;
  BitMap2.Free;
end;
end;

так что, все очень просто. можно грузить картинку из файла, ресурса, потока. Можно рисовать и конвертировать как угодно.


49 Cent   (2006-05-02 16:40:00) [24]

Ну, признаться, я ламос и с Bitmap работать не умею да и текущий вариант меня бы очень устроили если бы возможность поворачивать клонированную картинку.


KilkennyCat   (2006-05-02 16:37:00) [25]

Понятно. В этом случае я бы просто работал с TBitMap. Алгоритмов поворотов и прочей трансформаций в сети тьма-тьмущая.


49 Cent   (2006-05-02 16:35:00) [26]

Понимаю, что вопрос не умно сформулирован, поэтому доп-но еще маленький простодушный комментарий.

Когда есть одна картинка и она точна известна, то ее можно управлять по простому: к примеру rotateimage1.angel:=90;
А если картинка сгенерирована в Run time, то фиг его знает как к ней обращаться! Подскажите, а?

Заранее благодарен.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо