Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Графика в VB, премещение програмно созданных объектов 
:(
    Опции темы
fAL_in_school
Дата 13.11.2004, 11:26 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Мне нужно "вырезать"(по заданным коорадинатам (x1,y1)-(x2,y2)) и "вставить"(по заданным координатам(x3,y3)-(x4,y4)) графическую структуру созданную несколькими обьектами LINE (LINE я прописывал в коде, а не создавал руками). Структуру нужно вставлять на форму несколько раз (координаты разные). Как это сделать? smile
  Вверх
Sirik
Дата 13.11.2004, 11:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 13.11.2004

Репутация: нет
Всего: нет



Попробуй использовать функцию BitBlt из gdi32.

Вот описание:
Код

Public Declare Function BitBlt Lib "gdi32" Alias "BitBlt" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long



Примерчик можешь посмотреть тут:
http://www.sources.ru/vb/vb_bitblt_pong.shtml

Это сообщение отредактировал(а) Sirik - 13.11.2004, 11:54
PM MAIL   Вверх
Alles
Дата 16.11.2004, 08:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 26.6.2003
Где: RUSSIA

Репутация: 2
Всего: 2



Код

Dim MyLine As String
Private Sub CommandButton1_Click()
On Error Goto Button1_Exit
ActiveSheet.Shapes(MyLine).Select
 Selection.Delete

MyLine = "Line1"

   ActiveSheet.Shapes.AddLine(162#, 336.75, 963#, 336.75).Select
   Selection.ShapeRange.IncrementTop -1.5
   Selection.ShapeRange.Line.ForeColor.SchemeColor = 8
   Selection.ShapeRange.Line.Visible = msoTrue
   Selection.Name = MyLine
   ActiveSheet.Shapes(MyLine).Select
   Selection.ShapeRange.Flip msoFlipHorizontal
'Добавляем объект на лист
Button1_Exit:
End Sub

Private Sub CommandButton2_Click()

X = 162
n = 1
For n = 2 To 100
X = X + (801 / 100)
m = Int((10000 * Rnd) + 1)
ZZ = Log(m) * 25
Y = 336 - ZZ
ActiveSheet.Shapes(MyLine).Nodes.Insert 1, msoSegmentLine, msoEditingAuto, X, Y
DoEvents
Next
End Sub

Это просто пример , но можно делать очень эффектные графики !

Это сообщение отредактировал(а) cardinal - 16.11.2004, 13:58
PM MAIL ICQ   Вверх
Alles
Дата 16.11.2004, 08:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 26.6.2003
Где: RUSSIA

Репутация: 2
Всего: 2



Я поправлюсь это будет работать только в VBA (Excel )
PM MAIL ICQ   Вверх
cardinal
Дата 16.11.2004, 13:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Alles, а кто [code=vb] в конце кода закрывать будет?
(я уже сделал за тебя smile)


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Alles
Дата 16.11.2004, 15:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 26.6.2003
Где: RUSSIA

Репутация: 2
Всего: 2



Пардон ! smile
PM MAIL ICQ   Вверх
Alles
Дата 16.11.2004, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 26.6.2003
Где: RUSSIA

Репутация: 2
Всего: 2



И еще раз прошу прощения !
код работать не будет пока не заремарить
Код

ActiveSheet.Shapes(MyLine).Select
Selection.Delete

Сначала объект должен быть создан , а так по Error-у программа будет уходить на выход , потому , что объекта еще нет.
А потом ремы нужно убрать.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0439 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.