Страница 1 из 1
Как обновить список ComboBox?
Добавлено: 22 Ноябрь 2020, 20:55
vic7tar
Всем привет.
C63(ABC)
В ComboBox список формируется из файла (например, file.tps).
Файл file.tps изменился. А как обновить список ComboBox? Вручную переформировывать очередь Queue:FileDropCombo:xxx?
Как обновить список ComboBox?
Добавлено: 23 Ноябрь 2020, 12:18
kreator
Как обновить список ComboBox?
Добавлено: 23 Ноябрь 2020, 12:24
vic7tar
Первым делом пытался использовать. Не срабатывает.
Как обновить список ComboBox?
Добавлено: 23 Ноябрь 2020, 12:30
kreator
Есть ещё просто Reset. У меня везде ResetQueue, работает железно.
Как обновить список ComboBox?
Добавлено: 23 Ноябрь 2020, 12:49
vic7tar
kreator писал(а): ↑23 Ноябрь 2020, 12:30
Есть ещё просто Reset.
Имеется ввиду ThisWindow.Reset()? - тоже никакого эффекта.
Как обновить список ComboBox?
Добавлено: 23 Ноябрь 2020, 13:14
kreator
Есть FDCB1.Reset(). Но это наследник ViewManager'а. Ну его на фиг. В справке чёрным по белому написано, что ResetQueue перезаливает очередь. Надо разбираться - что у Вас не так.
Как обновить список ComboBox?
Добавлено: 23 Ноябрь 2020, 13:33
vic7tar
Вот метод 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
А где тут упоминание о формировании очереди из файла?
Как обновить список ComboBox?
Добавлено: 23 Ноябрь 2020, 14:06
kreator
A SELF.Next() и последующий вызов SELF.SetQueueRecord и SELF.AddRecord() не оно?
Как обновить список ComboBox?
Добавлено: 23 Ноябрь 2020, 21:20
vic7tar
kreator писал(а): ↑23 Ноябрь 2020, 12:30
У меня везде ResetQueue, работает железно.
Всё правильно, срабатывает при FDCBx.ResetQueue(1), я по глупости параметр опускал.