如何使用DLGCreateImagePopup在创建的对话框中选择打开的图像



我用DLGCreateImagePopup创建了一个对话框来选择打开的图像。但是在我选择图像后,我无法对该图像执行任何操作。如何获取所选图片的镜像ID或名称?

如果要将其作为摆姿势对话框(即单击"确定"按钮后获取图像(,则可以执行以下操作:

Class CMyDLG : UIframe
{
TagGroup DLG,DLGItems,imgPop        
object Init(object self)
{
DLG = DLGCreateDialog("Test",DLGItems)
imgPop = DLGCreateImagePopup()
DLGItems.DLGAddElement( imgPop )       
return self.super.init(DLG)
}
image GetSelectedImage( object self )
{
string selectedImageLabel
imgPop.DLGGetValue(selectedImageLabel)
Result("n" + selectedImageLabel)
// From the string, get the label
string label = selectedImageLabel.left( selectedImageLabel.find(":") )
Result("n" + label)
// From label, return image
return FindImageByLabel(label)
}
}
// main
{
object dlg = Alloc(CMyDLG).Init()
dlg.Pose()
image selected := dlg.GetSelectedImage()
if ( selected.ImageIsValid() )
selected.SetName( "Selected" + random())
else Throw( "Error, nothing selected." )
}

如果要在对话框仍显示时对图像执行某些操作(无模式对话框(,则必须将 OnChanged 类型方法附加到项目,如下所示:

Class CMyDLG : UIframe
{
TagGroup DLG,DLGItems,imgPop        
void FieldChanged(object self, taggroup tg)
{
string selectedImageLabel
tg.DLGGetValue(selectedImageLabel)
Result("n" + selectedImageLabel)
// From the string, get the label
string label = selectedImageLabel.left( selectedImageLabel.find(":") )
Result("n" + label)
// From label, return image
image selected := FindImageByLabel(label)
if ( selected.ImageIsValid() )
selected.SetName( "Selected" + random())
else Throw( "Error, nothing selected." )
}
object Init(object self)
{
DLG = DLGCreateDialog("Test",DLGItems)
imgPop = DLGCreateImagePopup().DLGChangedMethod("FieldChanged")
DLGItems.DLGAddElement( imgPop )       
return self.super.init(DLG)
}
}
// main
{
Alloc(CMyDLG).Init().display("myDialog")   
}

请注意,当我在最新的 GMS 3 上测试此脚本时,我注意到了一个错误。更改方法(以及实际选择(似乎仅在第二次访问下拉列表时才发生。

最新更新