Вопрос к опытным программерам,

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Nikita
Обычный пользователь
Обычный пользователь
 
Сообщения: 90
Зарегистрирован: 05.02.2003 (Ср) 15:09
Откуда: Russia

Вопрос к опытным программерам,

Сообщение Nikita » 01.08.2003 (Пт) 13:37

если большой проект, в нем много форм, и часто формы простые, сообщательные, вроде "выберите то или се", с одной стороны они разные, потому что разное количество пунктов, могут быть разные контролы (там просто да-нет а там радиобаттоны ли еще чего) и тп - потому каждый такой диалог естественно делать на новой форме, а можно по-другому, сделать одну универсальную сообщательную форму, под все случаи жизни,
как лучше? какие проблемы того и сего? кто как делает?

создать новую форму не проблема, но если по любому поводу то их будет много десятков

skiperski
Идеолог
Идеолог
Аватара пользователя
 
Сообщения: 1386
Зарегистрирован: 25.06.2002 (Вт) 15:52

Сообщение skiperski » 01.08.2003 (Пт) 14:15

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

Dmitriy2003
Постоялец
Постоялец
 
Сообщения: 690
Зарегистрирован: 27.05.2003 (Вт) 22:47
Откуда: Deutschland

Сообщение Dmitriy2003 » 01.08.2003 (Пт) 17:01

На практике написать универсальный диалог может стать блин делом Всей ЖИЗНИ. Вот и подумайте.... (овчинка выделки не стоит). Однако наиболее употребимые и часто используемые диалоги логично было бы сразу реализовывать как классы в отдельных DLL. :idea:
Dmitrich

GoGosha
Постоялец
Постоялец
 
Сообщения: 642
Зарегистрирован: 02.08.2002 (Пт) 9:14
Откуда: Russia

Сообщение GoGosha » 01.08.2003 (Пт) 18:44

На мой взгляд даже если два раза в жизни надо показать два похожих окна, то лучше зделать универсальную форму
http://poetry.mooo.com
http://poetry.myboard.info
«Человек есть нечто, что до́лжно превзойти» (Ф. Ницше)

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 01.08.2003 (Пт) 22:27

Если кому интересно, то я обычно ставлю на форму контрол TabStrip, делаю вкладок столько, сколько надо, ставлю значение Top ~-200 (чтобы не были видны сами вкладки) и заставляю его по нажатию "Next >" просто переходить на следующую вкладку.
Нет меня больше

Cav
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 14.07.2003 (Пн) 19:25

Сообщение Cav » 01.08.2003 (Пт) 23:07

Бррр ... ни кто что про пикчеры не слышал? зачем осх для табстрипа -
сделал кучу пикчербоксов индексовоных с нулёвыми бордерами и забабахал их на одну огромную форуму. перед открытием формы выполнять функцию, которая будет показывать толко нужный пикчер, при этом подгонять размер форумы дод его размер, а уж в пикчере - чё хоши суй. Универсайльная форма готова. чуток будет тормозить при первой загрузке, а потом нормально - проверено.

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

Сообщение alibek » 02.08.2003 (Сб) 12:06

Вообще-то лучше использовать Frame вместо PictureBox. Но это так, к слову. Потому, что лучше не делать кучу избыточных контролов на каждый вариант, а сделать процедуру, которая будет их перемещать, ресайзить и менять параметры для каждого вида диалога, а неиспользуемые -- скрывать.
Lasciate ogni speranza, voi ch'entrate.

GoGosha
Постоялец
Постоялец
 
Сообщения: 642
Зарегистрирован: 02.08.2002 (Пт) 9:14
Откуда: Russia

Сообщение GoGosha » 02.08.2003 (Сб) 12:09

A.A.Z. писал(а):Если кому интересно, то я обычно ставлю на форму контрол TabStrip, делаю вкладок столько, сколько надо, ставлю значение Top ~-200 (чтобы не были видны сами вкладки) и заставляю его по нажатию "Next >" просто переходить на следующую вкладку.


А я , если делаю мастер, то делаю много фреймов с одинаковыми именами, и массив, куда загоняю порядок их следования.

На, держи, своё время всегда ценится больше чужого, но мне я думаю она тоже пригодится
Вложения
Universal.rar
УНИВЕРСАЛЬНАЯ ФОРМА!!!!!!!!
(2.78 Кб) Скачиваний: 50
http://poetry.mooo.com
http://poetry.myboard.info
«Человек есть нечто, что до́лжно превзойти» (Ф. Ницше)

GoGosha
Постоялец
Постоялец
 
Сообщения: 642
Зарегистрирован: 02.08.2002 (Пт) 9:14
Откуда: Russia

Сообщение GoGosha » 02.08.2003 (Сб) 17:38

Один глюк исправил

Код: Выделить всё
Private Sub Form_Activate()
    On Error Resume Next
   
    Dim fors      As Long
    Dim MaxOption As Long
    Dim AllWidth  As Long
    Dim OptHeight As Long
    Dim MeHeight  As Long
    Dim ButWidth  As Long
    Dim MaxBut    As Long
    Dim CurLeft   As Long

    Dim ElemBut As CommandButton
    Dim ElemOpt As CommandButton
   
    vRes.ResButton = ""

    For Each ElemBut In Button
        ElemBut.Visible = False
        Unload ElemBut
    Next ElemBut
   
    For Each ElemOpt In optOption
        ElemOpt.Visible = False
        Unload ElemOpt
    Next ElemOpt
   
    imgIcon.Picture = IconPict
    optOption(0).Left = imgIcon.Width + 10
   
    For fors = 0 To UBound(vOptions)
        If TextWidth(vOptions(fors)) > MaxOption Then
            MaxOption = TextWidth(vOptions(fors))
        End If
       
        Load optOption(fors)
        optOption(fors).Visible = True
        optOption(fors).Caption = vOptions(fors)
        optOption(fors).Top = OptHeight + 10
        optOption(fors).Left = optOption(0).Left
        optOption(fors).Width = TextWidth(vOptions(fors)) + 20
        OptHeight = OptHeight + TextHeight(vOptions(fors)) + 4
    Next fors
   
    For fors = 0 To UBound(vButtons)
        If TextWidth(vButtons(fors)) > MaxBut Then
            MaxBut = TextWidth(vButtons(fors))
        End If
    Next fors
   
    ButWidth = (MaxBut + 15) * (UBound(vButtons) + 1) + 20
   
    lblText.Height = TextHeight(Text)
    lblText.Caption = Text
    lblText.Width = TextWidth(Text)
    OptHeight = Max(OptHeight, TextHeight(Text) + 10)
    MeHeight = OptHeight + Button(0).Height + 50
    Me.Height = MeHeight * Screen.TwipsPerPixelY
    Button(0).Top = OptHeight + 5
   
    AllWidth = imgIcon.Width + MaxOption + TextWidth(Text) + 80
   
    If AllWidth > ButWidth Then
        MaxBut = (AllWidth - 20) / (UBound(vButtons) + 1) - 15
    Else
        AllWidth = ButWidth
    End If
   
    AllWidth = AllWidth + 10
    Me.Width = (AllWidth) * Screen.TwipsPerPixelY
   
    MaxBut = (AllWidth - 20) / (UBound(vButtons) + 1) - 15
   
    Button(0).Top = Me.ScaleHeight - Button(0).Height - 10
   
    For fors = 0 To UBound(vButtons)
        Load Button(fors)
        Button(fors).Visible = True
        Button(fors).Caption = vButtons(fors)
        Button(fors).Left = 10 + CurLeft
        Button(fors).Width = MaxBut + 10
        Button(fors).Height = Button(0).Height
        Button(fors).Top = Button(0).Top
        CurLeft = CurLeft + MaxBut + 15
    Next fors
   
    imgIcon.Top = OptHeight / 2 - imgIcon.Height / 2 + 10
   
    If UBound(vOptions) = 0 Then
        optOption(0).Visible = False
    End If
   
    Do
        DoEvents
    Loop While vRes.ResButton = ""
   
    Me.Hide
End Sub
http://poetry.mooo.com
http://poetry.myboard.info
«Человек есть нечто, что до́лжно превзойти» (Ф. Ницше)

Nikita
Обычный пользователь
Обычный пользователь
 
Сообщения: 90
Зарегистрирован: 05.02.2003 (Ср) 15:09
Откуда: Russia

Сообщение Nikita » 05.08.2003 (Вт) 16:54

всем спасибо :) узнал несколько хороших идей!

gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Сообщение gaidar » 05.08.2003 (Вт) 17:29

Я думаю, что все на этом.
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6

    TopList