Как обновить список ComboBox?
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Как обновить список ComboBox?
Всем привет.
C63(ABC)
В ComboBox список формируется из файла (например, file.tps).
Файл file.tps изменился. А как обновить список ComboBox? Вручную переформировывать очередь Queue:FileDropCombo:xxx?
C63(ABC)
В ComboBox список формируется из файла (например, file.tps).
Файл file.tps изменился. А как обновить список ComboBox? Вручную переформировывать очередь Queue:FileDropCombo:xxx?
C10, Win10x64
-
- ✯ Ветеран ✯
- Сообщения: 4999
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 21 раз
Как обновить список ComboBox?
Например, вызвать:
Код: Выделить всё
FDCB1.ResetQueue(1)
We are hard at work… for you.
-
- ✯ Ветеран ✯
- Сообщения: 4999
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 21 раз
Как обновить список ComboBox?
Есть ещё просто Reset. У меня везде ResetQueue, работает железно.
We are hard at work… for you.
Как обновить список ComboBox?
Имеется ввиду ThisWindow.Reset()? - тоже никакого эффекта.
C10, Win10x64
-
- ✯ Ветеран ✯
- Сообщения: 4999
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 21 раз
Как обновить список ComboBox?
Есть FDCB1.Reset(). Но это наследник ViewManager'а. Ну его на фиг. В справке чёрным по белому написано, что ResetQueue перезаливает очередь. Надо разбираться - что у Вас не так.
We are hard at work… for you.
Как обновить список ComboBox?
Вот метод ResetQueue (ABDROPS.CLW):
А где тут упоминание о формировании очереди из файла?
Код: Выделить всё
FileDropClass.ResetQueue PROCEDURE(BYTE Force)
i LONG,AUTO
ptr LONG,AUTO
CODE
IF SELF.ApplyRange() OR Force OR ~SELF.Loaded
i = 0
SELF.Loaded = 1
SETCURSOR(CURSOR:Wait)
FREE(SELF.ListQueue)
SELF.Reset
LOOP
IF SELF.UseMRP
IF SELF.View{PROP:IPRequestCount} = 0
SELF.View{PROP:IPRequestCount} = 20
END
END
IF SELF.Next()<>Level:Benign THEN BREAK.
SELF.SetQueueRecord
IF SELF.AddRecord()
ptr = POINTER (SELF.ListQueue)
IF i = 0
IF SELF.BufferMatches()
i = ptr
END
ELSIF ptr <= i
i += 1
END
END
END
SELF.Close
SELF.ClearFilesRecord()
IF i = 0 AND SELF.DefaultFill AND RECORDS(SELF.ListQueue) THEN i = 1 .
IF i
IF SELF.ListField = SELF.ListControl
SELF.ListField{PROP:Selected}=i
ELSE
SELF.ListField{PROP:Selected}=i
SELF.ListControl{PROP:Selected}=1
END
SELF.TakeNewSelection(SELF.ListField)
END
SELF.ListField{PROP:VScroll}=CHOOSE(RECORDS(SELF.ListQueue)>SELF:ListField{PROP:Items})
SETCURSOR
ELSE
i = CHOICE(SELF.ListField)
END
RETURN i
C10, Win10x64
-
- ✯ Ветеран ✯
- Сообщения: 4999
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 21 раз
Как обновить список ComboBox?
A SELF.Next() и последующий вызов SELF.SetQueueRecord и SELF.AddRecord() не оно?
We are hard at work… for you.
Как обновить список ComboBox?
Всё правильно, срабатывает при FDCBx.ResetQueue(1), я по глупости параметр опускал.
C10, Win10x64