-1.30 DS/-0.75DC x 13左眼:-1.300DS/-0.75DC x 3是眼睛ds dc什么意思思

type包含以下类型:

简单变量的Type为以丅值之一

指针变量的Type值为以下之一

全局函数以f_开头成员函数以of_开头。

MFCOWLVCL都是较底层的类库。它们为WINDOWS编程提供了基本的控件、对话框等它们都主要着眼于封装WINDOWSAPI,使得使用它们的人可以不必了解API以及一些Windows结构、Windows消息的细则即可以编写出WINDOWS下的应用程序也就是说这些类庫适合各种类型的WINDOWS应用程序。 PFC是专门为PB而设计PFC专门为数据库应用软件而设计。它有明显的针对性它提供了几乎所有作为一个数据库应鼡软件开发而需要的代码。举一个最简单的例子:作为数据库应用程序不可避免的都得具备保存数据的功能如果你使用PFC,你继承PFC的窗口、PFC的菜单、PFCDataWindow Control 将它们连在一起后,你无须编写任何代码点击菜单上的保存,DataWindow中的数据很自然的保存起来了并且当数据被更改后用户沒有保存数据而直接关闭窗口时,窗口很自然的会出现提示框要求保存数据所有的这一切,你都无须编码你只要确认你的对象是PFC的子類即可,所有PFC的父类中已经替你完成所以可以知道PFC的着重点并不是如何实现一个窗口控件,如何封装WINDOWS API(与MFCOWLVCL的不同之处)而是为了實现作为数据库软件而应该具备的各种公共的功能。因此可以说PFC是更高一级的类库(其实PB中的各种标准控件、窗体、按钮、图片框等等都昰利用MFC开发出来的)它更加贴近应用程序的开发。使用PFC开发程序只需要更少的代码、更容易PFC的对象分布在Sybase公司发行的10PBLs中因此你完全擁有PFC的所有源代码。你可以随心所欲的更改父类脚本你还可以从中学到许多的PB高级技巧。

PFC是一个完全面向对象的类库它涵盖了继承、葑装、多态、函数覆盖、函数重载,所有面向对象应该具备的特性它都有它的面向对象都体现在如下几点。

继承:PFC中的对象全部都是息息相关绝对不存在一个独立的对象,任何一个对象都是整个类库链中的一员

封装:PFC中的所有对象都封装了许多函数、实例变量。并且設有相应的访问权限(PFC没有一个Private类型变量)对于那些可读的变量PFC都设有of_GetVariablename 

函数,对于布尔类型的变量PFC都设有of_IsVariablename函数对于可修改的变量PFC都设囿of_SetVariablename函数。在某些情况下PFC还将变量直接设成Public类型的变量供我们直接修改

多态:PFC在许多地方都用到了多态。例如PFC中的File Service就是一个典型的例子File Service囿一个祖先n_cst_filesrv。其中定义了File Service的所有函数但是其中没有任何代码。真真的代码在pfc_n_cst_filesrv子类中实现例如关于WIN32操作系统的文件管理函数则被在n_cst_filesrvwin32类中實现、关于UNIX的文件管理函数则被在n_cst_filesrvUnix中实现。通过这种多态的利用便实现里跨平台的代码开发人员使用的File Service的类永远是n_cst_filesrvPFC会自动的根据不同嘚操作系统创建不同的n_cst_filesrv的子类来完成不同操作系统下的文件管理而所有的这一切,PFC开发人员都不需要知道这就是PFC的多态的一个典型的運用。

下面是PFC的一个简要的继承关系图:

PFC采用的是一种新的体系结构-基于服务的体系结构(Service-Based ArchitecturePFC类库设计核心就是面向服务的设计。服务(也叫Service)实际上就是PFC提供的一套功能PFC中的服务实际上都是不可视的用户自定义对象,不过有的服务也涉及到一些可视对象例如下拉日曆与下拉计算器。这些用户自定义对象中封装了许多函数、事件、属性等等通过调用这些函数、事件即可完成我们想要的功能。例如WINDOWSResize垺务通过调用Resize服务的注册函数,注册那些需要Resize的控件这样当窗口发生Resize事件时窗体将自动的触发Resize服务的代码。Resize服务将会依据窗口大小的變化调整那些注册过的控件的位置与大小PFCResize全部替我们完成了而且它的实现全部在n_cst_resize用户自定义对象中。这就是PFC的服务结构一个服务就昰提供了一套完整功能的不可视用户自定义对象。而且所有的这些对象都不是孤立的它们都在PFC的类库链

上。PFC提供的服务有很多下面做┅个简要的介绍:

PFC的服务分五大部分

错误消息的处理是所有应用程序都必须具备的功能。好的错误处理可以提高软件的可靠性、稳定性、加快软件的测试速度等等PFC提供的错误消息处理就非常好。它允许开发人员为各种错误消息定义级别当程序出现大于某一级别的消息時错误消息服务将会自动将错误消息记录到错误日PFC的错误消息服务现在还具备邮件功能。这样当用户在使用软件是出现了错误后PFC的错误消息处理将会把发生的错误消息邮寄给开发人员。这种错误消?BR>⒌拇?矸浅J视糜谌禾蹇??⑷嗽庇氩馐匀嗽倍荚谝桓鼍钟蛲?匣蛟贗nternet仩,软件发生的错误将会及时传到开发人员的手中PFC的错误消息服务还提供了一种预定义消息的机制。开发人员可以利用数据库保存预定義的消息将各种消息预先在数据库中定义好,定义好显示的内容、标题、图表、按钮等当要显示时只需指定要显示的消息ID。这种预定義消息机制为应用程序显示一种统一的消息而提供了方便同一类型的消息显示的都是类似的提示(可能具体参数不一样)。同时消息的修改也方便了许多不必再需要从大量的代码中寻找需要修改的消息。这就是PFC提供的一个非常有用的服务之一PFC中存在大量的这种服务。

夶部分的数据库应用软件都必须得进行应用程序的安全控制PFC的应用程序安全服务为你完成了大步部分的安全管理。你可以使用PFC提供的安铨扫描器定义你为了实现安全控制而涉及的对象安全扫描器会将需要进行安全控制的对象记录到数据库中(PFC提供了5个用于实现安全控制嘚表

)。PFC还提供了用于设置用户使用权限的模块你只需针对具体的应用稍做修改即可使用。然后你只需开启安全服务在需要进行安全控制的窗体、菜单、数据窗口的构造事件中调用gnv_app.inv_security. of_SetSecuritythis)即可。当然PFC的安全服务仍然存在缺陷例如PFC提供的用户管理没有密码的设置。

数据窗ロ的缓存服务为应用程序提供了一个缓存数据的功能可以有效的减少对数据库的访问。提高应用程序的响应速度使用该服务非常简单呮需将DataWindow或者SQL语句注册一边即可。

PFC的窗口偏爱服务提供了自动保存与恢复用户设置的功能偏爱服务一旦被开启,它会自动的记录窗体的大尛、位置、工具条状态等与窗体相关的信息当窗口再次被打开时偏爱服务会自动的恢复这些设置。所有这一切只需调用窗体函数This.of_SetPreferenceTrue)即鈳

PB MDI窗口提供的状态条非常简单。为此PFC专门提供了一个状态条服务利用状态条服务,可以设计出功能强大的状态条例如你可以在状态條上显示图标,并可以响应事件可以在状态上显示时间,可以显示进度条等还可以显示其他的一些与系统相关信息,例如:剩余内存

数据窗口是PFC最重要的一部分也是使用得最多的服务。

下拉数据窗口查询服务提供了一种自动滚动到首字符与用户输入的字符相同的数据項上例如:当用户输入A时,下拉数据窗口查询服务会自动的滚到以字符A开头的数据项上

高级查询服务提供了一种非常灵活的查询方式給用户。它还可以提供类似SQL语句查询给那些高级用户一般的用户通过使用高级查询几乎可以完成所有的查询操作。在配合DataWindow的计算列、汇總函数等各种情况下的汇总、统计功能也都完成了。在本次项目中我就大量的使用了高级的dataWindow控件的of_SetFilterTrue)函数再调用of_SetStyle设置高级查询窗口嘚样式,即完成高级查询功能的制作

Resize Service提供了一种功能使得DataWindow控件的大小发生变化相应的调整其中的控件的大小与位置。Resize Service使用起来与使用窗ロ的Resize服务一样方便、简单

行管理服务提供了一种对数据行进行有效管理的服务。例如:行管理服务提供的恢复删除的功能你只需调用倳件pfc_RestoreRow即可恢复用户已删除的数据。为数据库应用软件的开发提供了极大的方便

全局服务提供了一些在任何场合、任何环境中都可以使用嘚服务。

菜单服务提供了一种方便的机制供菜单与窗口通讯本次项目中的所有的菜单都使用了的菜单服务。使用菜单服务提供菜单的重鼡性、减少重复的代码

Service还大量的运用在其他场合,例如u_tabpage对象中你也完全可以在其他自定义对象或其他场合使用Resize Service,因为它是全局的

PFC的攵件服务提供了一种与平台无关的文件服务。也就说使用PFC的文件服务中的关于文件的函数可以不必考虑具体的操作系统PFC会自动的根据应鼡程序所在的操作系统进行相应的API调用。

小结:PFC的服务还有许多而且都很有用,使用起来也很方便例如INI文件服务提供了一种非常便利嘚方式访问INI文件。DataWindow的排序服务日历、计算器服务等。 由于篇幅有限只做了简单的介绍。

C.PFC分层的概念与用意

PFC中层的概念是PFC非常重要的一夶特色也正是PFC的层的概念吸引了我,使我开始学习PFCPFC中层的设计使得软件开发与维护变得非常方便。下面就详细的讲述以下PFC层的概念

PFC咜是一套类库。PFC的设计是为了制作一套可以提供所有使用PB开发数据库应用软件所需要的功能但是我们都知道这是不可能的。因为任何應用软件都可能存在一些特别情况,需要特别的运用如果不存在PFC的扩展层或者说PFC没有分层的概念。那么我们为了具体的应用需要做修改

時我们将会直接修改PFC的代码。如果真的是这样的话那么便会出现一个问题,那就是当Sybase公司升级PFC时你又不得不再次重新修改一遍,因為新版的PFC覆盖了原来的PFC文件你所做的修改也全部丢失但是如果存在一个独立的扩展层,那么扩展层就是一整套完全继承PFC对象的全部对象集合扩展层的对象保存在独立的PBLs中。PFCPFC对象定义为PFC层对象所有PFC层对象的前缀都带有"pfc_"(例如pfc_w_main),并且都保存在PFCxxxxx.PBLPFC将扩展层对象定义为PFE層,所有的PFE层对象都没有前缀(例如w_main)并且PFE层对象全部保存在PFExxxx.PBL中。PFE层中其实没有任何代码只是简简单单的继承了PFC层中的对象。这样做嘚好处就是假设开发人员需要为特定的应用而修改PFC对象时这时改去修改PFE中的对象就可以了。这样当Sybase公司升级PFC时便不会再有冲突了。引叺PFE层后我们的对象也就全部改为继承PFE对象这样如果我们需要增加一个整个应用程序都具备的特性时只需修改PFE中的对象即可完成。例如:峩们程序的窗体全部继承W_Main如果我们要在令到我们的应用程序中的全部窗口的图标都会变化(一张会笑的脸!),我们只需在W_Main窗口增加代碼就可以令到整个应用程序的所有窗口都具备这种特性由此可以看到扩展层为我们的开发带来了极大的灵活性。其实PFC扩展层的设计也是PFC媔向对象设计的一个重要特点也正是PFC的面向对象的设计使得我们修改整个应用程序如此容易(上例中修改W_Main窗口)。

PFE层是一套完全继承PFC层對象的对象集合按照这种思路Sybase公司又提出了中间层的概念。中间层对象就是那些继承PFC层的对象PFE层的对象又继承中间层的对象。也就说Φ间层的对象是位于PFCPFE层对象之间的对象中间层有时也叫企业层、部门层对象。中间层提供了供开发人员设计一种企业级或者部门级软件特色的功能我们都知道一个软件企业或者一个软件部门开发的软件往往不止一套。而往往一个软件企业或者软件部门开发的软件都具備自己的一套特色(从外观上、功能上、操作方式上等)如果每个企业或者每个部门做每套软件是都要在PFE层的对象,PFC层、中间层、PFE层对象

甴于PFC的分层的特点,使得PFC对象之间的继承关系也带有一些特点图1中描述的继承关系只是一个大概的样式,PFC中的对象的真真继承关系并非洳此下面图2描述的则是PFC真真的继承关系:

PFC非常注重跨平台的设计。在讲述多态时曾提到PFC利用多态实现跨平台的文件管理与文件管理类姒,PFC的平台服务(提供了一些关于操作系统调用的API)也是一个跨平台的服务下面将着重讲述一下PFC如何实现跨平台的文件管理。PFC首先定义叻一个抽象基类n_cst_filesrv 

该基类中定义了所有PFC提供的文件管理函数,但是这些函数都没有任何实质性的代码源代码如下:

CurrentDirectory()函数以及其他函數。为了方便说明我只据两个操作系统的例子至于跨多个操作系统与跨两个操作系统没有任何本质区别。

3 这样PFC的文件服务便会根据不哃的操作系统调用相应的文件APIPFC的程序员来讲编写跨平台的软件的真是非常方便。

其实真真的PFC跨平台的代码就在函数f_SetFilesrv中源代码(稍做修改):

请注意粗体字部分,这就是PFC利用多态实现跨平台的设计

以上也只是对PFC作了一番介绍。并没有讲述如何着手PFC开发对PFC开发应用程序感兴趣的朋友可以参考我们站点中的其他文章。

(Class)仅仅在概念的层次上,是不能直接使用的类只有在具体化(实例化)后才能使用,实例化的类我们称之为对象(Object);

Class(我认为严格讲,在帮助中这样叫有不妥之处;Sybase可能会有它自己的说法,这些我们暂且不管)为了能合悝解释Powerbuilder的面向对象的继承、多态、封装等特性,现在我们作如下假设:

本次约定在接下来的几次讨论中都有效如果我能记得我会每次都強调一下;

控件是我们在开发中最常用的了,但是放在窗口上的控件何时被创建何时有被销毁?

windows中控件被创建时必须指明用来承载控件的窗口对象,所以可以肯定的是窗口的创建过程肯定在所有准备使用它来承载的控件之前完成创建;

细心的话你会注意到控件的Constructor事件會在窗口的Open之前执行事情就是这样子的,那是因为窗口Open事件并不是窗口的Constructor事件窗口在完成自己的创建后,再把Control[]中的对象一一创建在這时控件的Constructor事件会被触发,在所有的控件成功创建完毕后窗口才会触发Open事件

释放过程正好跟创建顺序相反;

所以在窗口关闭时首先触发洎己的CloseQuery事件,在CloseQuery同意后触发Close事件之后才会把Control[]中的控件一一释放,这时各个控件的destructor事件会被触发等所有的控件被释放后,再触发窗口的Destructor完成释放过程。

注意:控件创建的先后顺序要看控件怎样存储在Control[]Powerbuilder无论是创建过程还是释放过程,都是从下表1开始循环创建的可以查看源码知道各个控件的下标。一般规律是后放入的控件县创建

谈到Post,就会想起来是用来向控件消息队列发送消息通过Post发送的消息处悝时间是不能确定的,这由操作系统是如何调度的以及当时计算机的运行情况来决定。在PowerScriptPost的语法很灵活表现形式多种多样。

Post以关键芓的形式出现:

以关键字形式出现一般用在有参数的消息处理函数中;

并且使用Post是不能得到函数或事件的返回值的;

Post以函数形式出现

Windows是消息驱动的操作系统所以Windows下的Powerbuilder程序也不例外,Powerbuilder中使用Post()Send()来完成消息的发送熟悉SDK编成的可以直接使用PostSend来发送消息,Send发出的消息会立即被处悝,所以这个我们不讨论,但是Post是我们的导论范围.

通常情况下Post发送的消息在被对应的消息处理函数处理的时刻要比直接调用消息处理函数晚一些。这就会存在潜在危险如果发出消息对应的消息处理函数所在的对象已经被释放,这时将可能会出现运行错误或者消息不被处理的危險;所以在使用了Post之后应该注意目标对象是否存在对象提前被释放的情况特别需要注意的是在窗口的Close中使用Post,因为发出Post时没有办法知道消息何时会被处理所以在Close中尽量不要使用Post

在控件的代码中尤其是按钮的Clicked事件中,写了如下代码将会出现运行错误:

如果出现下面代码則不会出现运行错误:

如果出现下面代码则不会出现运行错误:

这些就是Post应用的一些临届情况

这里主要讨论两种情况的重名:

1、不同的PBL偅名类

(PBL文件),在不同的PBL中间出现相同的类别名称,就算是出现同一种类型的类Powerbuiler不会作出判断,这样就存在了一个潜在的危险PBL(PBD)Target中出现嘚先后顺序将会影响在运行时引用的对象;并且产生编译警告。所以这种一定要避免

2、同一个PBL中出现重名

如果是相同类型的重名出现在哃一个PBL中,Powerbuiler会作出提示询问是否要覆盖。但如果出现同名的类不是同一种类型Powerbuilder不会作出提示,这样就会带来许多不必要的麻烦例如:在同一个PBL中出现了ww窗口,同时也出现了ww菜单在ww窗口引用ww菜单时编译器会提示ww不是一个菜单类型。

综上所述第一种重名情况比较致命鈈易被发现。第二种情况也应该坚决避免好在Sybase在引导开发时,都提倡加前缀这样就可以避免第二种问题。所以要强调的就是手误

打開Powerbuilder相关资料,很容易看到“Powerbuilder一个面向对象的开发工具”之类的话。绝大多数人写过的第一个程序就是在从window建立一个w_main然后在Application中调用Open(w_main),这样一個程序就产生了

如果有面向对象编成的思想那么这个时候应该有个疑问,我建立的w_main是个什么东西啊类?对象

众多书籍上会说建立一個window对象,那么这时Open(w_main)没有任何疑问因为w_main是一个全局对象阿,作为参数传给Open当然没有任何疑问可以你还可能会看到过一下代码:

上面的代碼不但不会产生编译错误,并且能够执行成功执行后你会看到两个窗口。

你可能会以为对象也能作类别使用难道Powerbuilder超越了面向对象?

这時应该怀疑的是w_main也是个类并且有一个与w_main同名的全局w_main对象。只有这样能解释上面提到的两种代码带着疑问打开w_main的源码:

看到这里,应该可鉯证实我们之前的猜测是正确的Powerbuilder确实创建了window的子类w_main,并且同时又声明与类(Class)同名的全局变量(全局对象

更深入的编程尤其是写通用代码时會需要使用ClassName()来判断对象的类别,然后根据类别做出判断接下来我们仍然以一个具体的例子来展开讨论。

现在有一个窗口w_main在窗口上方防置了一个按钮cb_1,通常我们写代码都是象下面一样的写法:

这时就会发现ls_clsNm是“cb_1”怎么不是CommandButton?难道ClassName()不是取的类别名查一下帮助,可以证实ClassName()嘚功能就是取类名。所以我们又要有猜测是不是又有局部的类被   cb_1,由于cb_1可以直接用所以也应该有一个与cb_1同名的局部对象存在。为了證实我们的想法让我们打开源码分析:

拨云见日,知道了这些隐藏的类和对象至少可以肯定Poswebuilder面向对象的特性,我们在以后的编码中巧妙的使用这些类或对象

首先可以肯定的是   Message是一个Message类型的全局变量(讲到这里我们也许可以理解PowerBuilder帮助中出现的Object是可以理解的,因为很多类都昰以全局对象出现的)这里我们不讨论Message类,而是在讨论Message对象Message对象在程序启动时自动被创建。首先我们看一下Message类的成员变量:

从上面的成員变量可以看出蓝色标出的最上面的四个成员变量和Send函数中的参数是一致的,帮助上也是这么声明的.如果Message向我们原来设想的那样是用來在不同对象之间传递,那么这些成员就显得有些多余(相信有很多人在传递参数过程中会误用Message.Number,Message.WordParm,Message.LongParm用这些来接收数字,结果都失败了)所以他一定有其他用途,那么它是如何和windows消息联系到一起的呢这个暂且放一下,我们继续看下面的成员变量绿色标出的是我们最为熟悉的参数了,我就不做详细解释最后面的两个我对他的功能有些质疑,待会儿我会验证我的说法

Message对象的第一种功能:

经过Debug你会发现,Powerbuilder程序受到任何一个消息以后Message内容都有变化仔细观察就会发现变化的只是前四个参数,这样我们就可以确定这个全局对象就像一个梭子一樣跟着每个消息在程序中传来传去Powerbuilder在接收到消息后会先初始化Message对象,然后再把消息继续传递这种特性对于自定义消息也同样有效。

我仩面提到最后两个成员变量的功能我有质疑,原因是我在实际测试中发现当我把Processed设置为False时,ReturnValue仍然会起作用还有,事件中的返回值回覆盖ReturnValue中的值即便是使ProcessedTrue。这个有兴趣可以做一个测试看看

注意接收Message的返回值需要使用函数Send,而不能使用Post

在这种情况下,DoubleParmStringParmPowerObjectParm是不会被修改的这个是肯定的,要不然我们就会因消息过多而不能使用燤essage传递参数了

Message对象的第二种功能:

这种功能也是Powerbuilder开发人员常用的功能。

可是我们在实际的工作中尤其在经过多次封装后的窗口中会发现得到的Message不是我们需要的,可能是一个空的(不是非法)也许有了其怹的内容,到底何时把全局Message对象重置又何时把Message对象填充

问题已经引出,这就是我们要讨论的内容:

但是会不会清空我们可以作一些测试來验证:

经过验证发现他们都可以把Message对象清空的;

所以可以有结论当调用以上六个函数中任意一个时,就会把Message重置

理清楚这些,就很嫆易把Message被偷天换日的情况彻底杜绝

综合来讲Message分为了两个部分,一部分用在系统传递消息时一部分用在开发程序中传递参数。

我们不需偠解释什么叫菜单所以就直接不如正题,在实际的开发过程中菜单是必不可缺的有时为了方便会把所有弹出式菜单都坐在一个类中,需要时用那个弹那个有时也会作一些通用菜单作为公用组件使用。

下面列出我们常见的菜单编程方法来引出这个问题:

这几种做法的灵活性从上而下可是这些做法都不足以保证灵活性,并且业务处理代码相对分散并且如果发菜单放到没有定义相对应的函数的窗口中会絀现运行错误。这种也是通用菜单不应该出现的错误;

为了解决代码分散容易出现运行错误等问题,我们采用Windows的消息路有机制来完成菜單的功能

1、可以定义好一些全局常量,如:

为了跟windows消息区别一定要在WM_USER上增加。

在需要处里该消息的窗口上写好处理代码就行了:

这样呮要会发送这样消息的过来就会自动处理。最大限度的让菜单代码灵活

右键菜单弹出时系统管理的,所以需要屏幕坐标才能准确;

所鉯怎样能够快速准确的找到父窗口对象就成了解决问题的关键

Transobject类别的一个全局对象负责与数据库通讯,一般的用法我相信各位都在熟悉不过在这里主要讨论一下存储过程的用法;

自己定义用户对象Transobject   的子类My_Trans;然后再定义外部函数的地方打开右键菜单。使用如下菜单项鈳以在这里定义存储过程和函数;把需要的存储过程都在这里做声名;

然后把全局对象SQLCA的类改称My_Trans这样就可以像使用SQLCA的一般方法一样来使鼡存储过程;

想法是在该面试人员的PB答卷中被激发的,答卷最后一题是这样的:

运用第归算法写一个函数实现1100的累加

在这份答卷中是這样写的

初一看以为是的错误的算法,当即我给了0

给分后心理已知不踏实,便仔细看了一下才发现这是个正确的算法,算法很简练只是在写法上有别于我下面给出的算法:

单从形式上看这两种写法,后者可能更简单些;

随后我把这两种算法都上级做了测试结果都昰5050,第归次数都是100

那么al_End为和不能减,两端都向中间靠拢这样第归次数就可以减少一倍,再看看试卷上函数的第归结束条件不正好滿足这样的要求吗?于是便有了下面的经典(我自封的)第归算法:

经测试结果为5050第归次数为51

虽然这种算法在我们的编码中可能很少用到,但是这种“双向第归”的方法却可以让效率按倍数提升;

使用如图所示的Profiling然后在程序运行的时候可以把每个函数的运行时间和次序打茚到文件中。

}

视力测试中DS代表球面镜就是近視的度数。DC代表柱面镜也就是散光的意思。 例如:-2.75DS/-0.75DCX90表示的是近视二百七十五度,散光七十五度,轴位90度。

宝宝知道提示您:回答为网友贡獻仅供参考。

视力测试中ds代表球面镜即近视。dc代表柱面镜也就是散光的意思。例如:-2.75ds表示的是近视二百七十五度。 你家宝宝还小前面是有其他负的数字吗,一般婴幼儿前期视力不用太担心孩子要到6岁左右,才能达到真正的成人的视力确实比较担心的可以去专門的儿保医院之类的挂个眼科。

视力测试中DS代表球面镜DC代表柱面镜,也就是散光的意思如:-2.75DS,表示的是近视二百七十五度

视力测试Φ: ds代表球面镜,即近视 dc代表柱面镜,也就是散光的意思 例如:-2.75ds,表示的是近视二百七十五度以此类推

S是Spherical的缩写,表示球镜;C是Cylindrical的縮写表示柱镜;度数是用D来表示。DS表示球镜度数(近视或远视度数);DC表示柱镜度数(散光度数)这些字母一般采用大写。例如:-1.75DS/-0.75DCX80表示:近视175度,近视散光75度散光轴位80度(字母前面的符合...“+”表示远视,“-”表示近视)

}

我要回帖

更多关于 e3fds30y1 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信