Нужна помощь со строками

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

Нужна помощь со строками

Сообщение GoaTrancer13 » 09.12.2006 (Сб) 12:49

Прошу помочь. Обьясню суть проблемы. У меня в Label есть текст. К примеру такой:

Рубашка - 5 руб
Брюки - 15 руб
Жилетка - 11 руб

Мне надо создать динамический массив,в котором каждый элемент массива содержал бы 1 строчку,т.е.
D1(1) = "Рубашка - 5 руб"
D1(2) = "Брюки - 15 руб"
и так далее.
Как это сделать? Спасибо

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

Сообщение Antonariy » 09.12.2006 (Сб) 12:55

Массив контролов. Ставишь лабелу свойство Index = 0, он становится массивом c одним элементом с индексом 0. Созается новый элемент так: Load Label1(x). Даешь ему координаты, текст, показываешь.
Лучший способ понять что-то самому — объяснить это другому.

GoaTrancer13
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 09.12.2006 (Сб) 12:41

Сообщение GoaTrancer13 » 09.12.2006 (Сб) 15:01

мне это не не надо. текст динамически меняется,как я могу задавать статические координаты? мне надо универсальный код.

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Сообщение dr.MIG » 09.12.2006 (Сб) 15:06

Почему статические? Получай их из ширины или длины предыдущего лэйбла.
Salus populi suprema lex

GoaTrancer13
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 09.12.2006 (Сб) 12:41

Сообщение GoaTrancer13 » 09.12.2006 (Сб) 15:09

Код можно конкретный?

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Сообщение dr.MIG » 09.12.2006 (Сб) 15:22

Что-нить типа
Код: Выделить всё
For i = 1 To Label1.Count - 1
Label1(i).Top = Label1(i - 1).Top + Label1(i - 1).Height
Next
Salus populi suprema lex

GoaTrancer13
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 09.12.2006 (Сб) 12:41

Сообщение GoaTrancer13 » 09.12.2006 (Сб) 15:26

а при чем здесь высота и ширина? какие предыдущие лэйблы? 1 лабел в котором меняется текст и все

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Сообщение dr.MIG » 09.12.2006 (Сб) 15:29

Antonariy писал(а):Массив контролов. Ставишь лабелу свойство Index = 0, он становится массивом c одним элементом с индексом 0. Созается новый элемент так: Load Label1(x). Даешь ему координаты, текст, показываешь.

Т.о. создавай массив элементов из нужного числа лэйблов, а затем, устанавливай их свойства, так как я сказал.
Salus populi suprema lex

GoaTrancer13
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 09.12.2006 (Сб) 12:41

Сообщение GoaTrancer13 » 09.12.2006 (Сб) 15:35

Господи,да не надо мне никакой массив элементов. 1 строковый массив внутри программы,в котором будут храниться строки из одного лэйбла и все. мне надо, чтобы программа взяла текст из лабела,разбила текст по отдельным строчкам и засунула каждую строчку в массив. все

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Сообщение dr.MIG » 09.12.2006 (Сб) 15:42

Короче все запутались... Было бы в чём...
Код: Выделить всё
D = Split(Label1.Caption, vbCrLf)
For Each i In D
MsgBox i
Next
Salus populi suprema lex

GoaTrancer13
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 09.12.2006 (Сб) 12:41

Сообщение GoaTrancer13 » 09.12.2006 (Сб) 15:50

Вот теперь спасибо огромное,все работает. еще раз спасибо за помощь и понимание

GoaTrancer13
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 09.12.2006 (Сб) 12:41

Сообщение GoaTrancer13 » 09.12.2006 (Сб) 16:15

еще вопрос,как это в массив теперь засунуть?

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 09.12.2006 (Сб) 16:27

D - это и есть массив.

GoaTrancer13
Начинающий
Начинающий
 
Сообщения: 15
Зарегистрирован: 09.12.2006 (Сб) 12:41

Сообщение GoaTrancer13 » 09.12.2006 (Сб) 16:46

Да нет,не массив. мне надо,чтоб был массив с размерностью определенной,и в каждом элементе массива была строчка

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 09.12.2006 (Сб) 16:56

Это массив с размерностью от LBound до UBound (учи матчасть).

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

Private Sub Form_Load()
    Dim d() As String, msg As String
    Dim i As Long
   
    Label1.Caption = "Рубашка - 5 руб"
    Label1.Caption = Label1.Caption & vbCrLf & "Брюки - 15 руб"
    Label1.Caption = Label1.Caption & vbCrLf & "Жилетка - 11 руб"
   
    d = Split(Label1.Caption, vbCrLf)
   
    For i = LBound(d) To UBound(d)
        msg = msg & "Элемент c индексом" & i & ": " & d(i) & vbCrLf
    Next i
   
    MsgBox msg
End Sub


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

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

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

    TopList  
cron