PictureBox во фрейме.

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
#set
Новичок
Новичок
 
Сообщения: 45
Зарегистрирован: 05.10.2006 (Чт) 11:06

PictureBox во фрейме.

Сообщение #set » 19.10.2006 (Чт) 11:02

Ребята помогите со следущей проблемой. Не могу найти где ж**а.
На форме есть табы по верх табов, как обычно, идет фрейм на котором есть еще фрейм с нулевым индексом и так же с нулевым индексом пикчербокс и лебел. По записям в базе данных они плодятся. Фрейм в котором должен быть пикчербокс размещается все правильно а бикчербокс и лебел блин найти не могу. Или они под табами или фреймом плодятся но я пробовал ставить zOrder(0) - таже фигня ничего нет. Вот пример кода:
(Картинки размещаются по три в ряд)

Код: Выделить всё

While Not .EOF
  PersonID = .Fields(1).Value
  ImgPath = "C:\Temp\Photo\" & Int(PersonID / 1000) & "000\" & PersonID & ".jpg"
  If isfile("C:\Temp\Photo\" & Int(PersonID / 1000) & "000\" & PersonID & ".jpg") Then
  ImgPath = "D:\VB\tickets\empty.jpg"
  End If
  FramePosition Form1.Frame2(n), Form1.Picture1(n), Form1.LbName(n)
  Form1.Picture1(n).Visible = True
  ResizePicture Form1.Picture1(n), Form1.Picture1(n).Height, Form1.Picture1(n).Width, ImgPath
  resData2.ActiveConnection = cn
  resData2.Open "SELECT * FROM Clients WHERE client_nr LIKE " & PersonID
  Form1.LbName(n).Caption = RTrim(resData2.Fields(3).Value) & " " & RTrim(resData2.Fields(4).Value)
  resData2.Close
  n = n + 1
  .MoveNext
  Wend

Private Sub ResizePicture(sDestPict As PictureBox, sH As Long, sW As Long, ImgPath As String)
Dim sSrcPict As StdPicture
Set sSrcPict = LoadPicture(ImgPath)
sDestPict.Height = sH
sDestPict.Width = sW
sDestPict.AutoRedraw = True
sDestPict.Picture = LoadPicture()
sDestPict.PaintPicture sSrcPict, 0, 0, sW, sH
End Sub

Private Sub FramePosition(frame As frame, Pic As PictureBox, Name As Label)
Load frame: Load Pic: Load Name
frame.Visible = True: Pic.Visible = True: Name.Visible = True
frame.Height = FH: frame.Top = FT: frame.Left = FL: frame.Width = FW
Pic.Top = PT: Pic.Height = PH: Pic.Left = PL: Pic.Width = PW
Name.Height = LH: Name.Top = LT: Name.Left = LL: Name.Width = LW
FL = FL + 5040
counter = counter + 1
If counter = 4 Then
FT = FT + 4560: FL = 240: PT = PT + 4560: LT = LT + 4560: PL = 120: LL = 0
End If
End Sub

#set
Новичок
Новичок
 
Сообщения: 45
Зарегистрирован: 05.10.2006 (Чт) 11:06

Сообщение #set » 19.10.2006 (Чт) 12:21

Некому подсказать? :(

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 19.10.2006 (Чт) 12:29

1. Загружай до вызова процедуры.
2. Задавай контейнер.
Lasciate ogni speranza, voi ch'entrate.

#set
Новичок
Новичок
 
Сообщения: 45
Зарегистрирован: 05.10.2006 (Чт) 11:06

Сообщение #set » 19.10.2006 (Чт) 13:46

Спасибо alibek
Загрузку перенес.
Код: Выделить всё
Load Form1.Frame2(n): Load Form1.Picture1(n): Load Form1.LbName(n)
FramePosition Form1.Frame2(n), Form1.Picture1(n), Form1.LbName(n)


А как контейнер задать? Помогите бегинеру.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 19.10.2006 (Чт) 15:17

Set Picture1(n).Container=Frame2(n)
Лучший способ понять что-то самому — объяснить это другому.

#set
Новичок
Новичок
 
Сообщения: 45
Зарегистрирован: 05.10.2006 (Чт) 11:06

Сообщение #set » 19.10.2006 (Чт) 15:25

Да, ... спасибо получилось...

Профи последние два вопроса... все остальное по своей проге вроде знаю... :wink:

1) Как добавить события динамически созданным объектам.
2) Как покрасить долбаный TabStrip :evil:

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 19.10.2006 (Чт) 15:49

1) эти события у тебя уже все есть, так как элемент с 0 индексом ,я так понимаю, у тебя создан заранее :)
2) никак, хотя если извратиться, то можно, но лучше не стоит 8)

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 19.10.2006 (Чт) 15:53

Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 19.10.2006 (Чт) 16:30

это только для SSTab, а обычный из MSComCtl глючит с отрисовкой

#set
Новичок
Новичок
 
Сообщения: 45
Зарегистрирован: 05.10.2006 (Чт) 11:06

Сообщение #set » 19.10.2006 (Чт) 16:52

Ребята вот еще пока колупал наткнулся на такую фигню.
На фрейме динамически размещаются фреймы с пикчербоксами и соответственно когда грузится больше 6 они размещаются за пределом формы но в пределах основного фрейма. И когда все подгружено при нажатии на кнопку (Frame1.Move 0, -4560) - фрейм то двигается и двигается все что в фрейме но вот дальше 6 отрисованных ничего не видно. :(
Хотя может я не то изобретаю. Мне просто нужно на основной фрейм присобачить две кнопки прокрутки какой код в них засунуть что бы прокручивались фотки нЭзнаЮ :cry:
Frame1.Move 0, -4560 - единственное что пришло в голову и то не дает результата.

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 19.10.2006 (Чт) 17:06

Вложения
cscroll.zip
(93.35 Кб) Скачиваний: 37

#set
Новичок
Новичок
 
Сообщения: 45
Зарегистрирован: 05.10.2006 (Чт) 11:06

Сообщение #set » 19.10.2006 (Чт) 17:25

dll'ю подключил.
Открыл проект - выдает ошибку \ не найден проект или библиотека\
на вот этой строке
Private m_emr As EMsgResponse


И все же это не то если это только для скрол баров.
Мне нужен не скрол бар мне нужны КНОПКИ.
Прога для тач скринов!.

#set
Новичок
Новичок
 
Сообщения: 45
Зарегистрирован: 05.10.2006 (Чт) 11:06

Сообщение #set » 19.10.2006 (Чт) 17:52

Все сделал прокрутку гораздо проще.
Private Sub Command1_Click()
For n = 1 To Text1.Text
Form1.Frame2(n).Top = Form1.Frame2(n).Top - 4560
Next n
End Sub

в текстбокс записал количество элементов и все крутится
Только теперь ограничение осталось поставить когда последний элемент пересечет зону видимости скрол будет enable = false типо того
Может быть с точки зрения профессионалов и не модно и коряво но работает! Ребята всем спасибо! Не ожидал такой помощи!

ФОРУМУ vbstreets РЕСПЕКТ!!!!


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот, Mail.ru [бот] и гости: 17

    TopList