Delphi showmessage消息提示框被 窗体缩略图覆盖。

图片说明

如上图所示,前边的登录窗是主窗体,后边的是主界面。主界面窗关闭的时候弹出的消息框,总是被登录框的缩略图遮挡。。什么原理? 这种情况只会出现在,主界面最小化之后,重新最大化。然后就这样了。

谁遇到过哦?谁有思路哦?

2个回答

额,问题我自己解决了。登录界面成功之后,手动创建主界面,而不是通过delphi的工程管理器自动创建。将登陆窗free掉,手动创建出主界面,然后主动对主界面show。那么上述问题迎刃而解。
不知别人还有什么更好的方法呢。谢了哦。

同时,在系统的任务栏底下看应用程序的时候,程序的缩略图是 登录界面,而不是主窗体缩略图。这不科学哦就算在delphi中,我把主界面设置成主窗体,依然解决不掉这个问题哦。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
debian10.2安装phpstorm2019.3.1时出现了问题,求大佬解答
debian 10.2 phpstorm 2019.3.1 在设置完环境变量后,运行phpstorm与直接进入文件目录执行./phpstorm.sh出现的都是这个问题,求各位大佬给个解决方法,万分感谢 另外我实在是莫得币子了,知识无价,学海无涯,有任何解决办法我都会去尝试,谢谢大家了 OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release. No protocol specified 2020-01-19 23:59:09,363 [ 2351] WARN - #com.intellij.idea.Main - java.awt.AWTError: Can't connect to X11 window server using ':0' as the value of the DISPLAY variable. java.util.concurrent.ExecutionException: java.awt.AWTError: Can't connect to X11 window server using ':0' as the value of the DISPLAY variable. at java.base/java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:395) at java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1999) at com.intellij.idea.StartupUtil.runInEdtAndWait(StartupUtil.java:678) at com.intellij.idea.StartupUtil.lambda$showUserAgreementAndConsentsIfNeeded$15(StartupUtil.java:673) at com.intellij.ui.AppUIUtil.showConsentsAgreementIfNeeded(AppUIUtil.java:332) at com.intellij.idea.StartupUtil.showUserAgreementAndConsentsIfNeeded(StartupUtil.java:673) at com.intellij.idea.StartupUtil.startApp(StartupUtil.java:231) at com.intellij.idea.StartupUtil.prepareApp(StartupUtil.java:213) at com.intellij.ide.plugins.MainRunner.lambda$start$0(MainRunner.java:39) at java.base/java.lang.Thread.run(Thread.java:834) Caused by: java.awt.AWTError: Can't connect to X11 window server using ':0' as the value of the DISPLAY variable. at java.desktop/sun.awt.X11GraphicsEnvironment.initDisplay(Native Method) at java.desktop/sun.awt.X11GraphicsEnvironment$1.run(X11GraphicsEnvironment.java:102) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.desktop/sun.awt.X11GraphicsEnvironment.<clinit>(X11GraphicsEnvironment.java:61) at java.base/java.lang.Class.forName0(Native Method) at java.base/java.lang.Class.forName(Class.java:315) at java.desktop/java.awt.GraphicsEnvironment$LocalGE.createGE(GraphicsEnvironment.java:101) at java.desktop/java.awt.GraphicsEnvironment$LocalGE.<clinit>(GraphicsEnvironment.java:83) at java.desktop/java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:129) at java.desktop/sun.awt.X11.XToolkit.<clinit>(XToolkit.java:232) at java.base/java.lang.Class.forName0(Native Method) at java.base/java.lang.Class.forName(Class.java:315) at java.desktop/java.awt.Toolkit$2.run(Toolkit.java:588) at java.desktop/java.awt.Toolkit$2.run(Toolkit.java:583) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.desktop/java.awt.Toolkit.getDefaultToolkit(Toolkit.java:582) at java.desktop/java.awt.Toolkit.getEventQueue(Toolkit.java:1499) at java.desktop/java.awt.EventQueue.invokeLater(EventQueue.java:1318) at com.intellij.idea.StartupUtil.lambda$scheduleInitUi$9(StartupUtil.java:265) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ... 1 more 2020-01-19 23:59:10,475 [ 3463] ERROR - tellij.diagnostic.LoadingState - Should be called at least in the state LAF_INITIALIZED, the current state is: BOOTSTRAP Current violators count: 1 java.lang.Throwable at com.intellij.diagnostic.LoadingState.logStateError(LoadingState.java:55) at com.intellij.diagnostic.LoadingState.checkOccurred(LoadingState.java:51) at com.intellij.util.ui.UIUtil.<clinit>(UIUtil.java:83) at com.intellij.ide.a.c.a.a(a.java:182) at com.intellij.ide.a.d.n.a(n.java:544) at com.intellij.ide.a.d.n.c(n.java:222) at com.intellij.ide.a.d.n.a(n.java:117) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at com.intellij.idea.MainImpl.start(MainImpl.java:94) at com.intellij.idea.StartupUtil.lambda$startApp$5(StartupUtil.java:246) at com.intellij.util.ui.EdtInvocationManager.executeWithCustomManager(EdtInvocationManager.java:73) at com.intellij.idea.StartupUtil.startApp(StartupUtil.java:241) at com.intellij.idea.StartupUtil.prepareApp(StartupUtil.java:213) at com.intellij.ide.plugins.MainRunner.lambda$start$0(MainRunner.java:39) at java.base/java.lang.Thread.run(Thread.java:834) 2020-01-19 23:59:10,475 [ 3463] ERROR - tellij.diagnostic.LoadingState - PhpStorm 2019.3.1 Build #PS-193.5662.63 2020-01-19 23:59:10,476 [ 3464] ERROR - tellij.diagnostic.LoadingState - JDK: 11.0.5; VM: OpenJDK 64-Bit Server VM; Vendor: JetBrains s.r.o 2020-01-19 23:59:10,476 [ 3464] ERROR - tellij.diagnostic.LoadingState - OS: Linux 2020-01-19 23:59:10,485 [ 3473] ERROR - tellij.diagnostic.LoadingState - Should be called at least in the state LAF_INITIALIZED, the current state is: BOOTSTRAP Current violators count: 2 java.lang.Throwable at com.intellij.diagnostic.LoadingState.logStateError(LoadingState.java:55) at com.intellij.diagnostic.LoadingState.checkOccurred(LoadingState.java:51) at com.intellij.openapi.util.registry.Registry.is(Registry.java:52) at com.intellij.util.ui.UIUtil.<clinit>(UIUtil.java:90) at com.intellij.ide.a.c.a.a(a.java:182) at com.intellij.ide.a.d.n.a(n.java:544) at com.intellij.ide.a.d.n.c(n.java:222) at com.intellij.ide.a.d.n.a(n.java:117) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at com.intellij.idea.MainImpl.start(MainImpl.java:94) at com.intellij.idea.StartupUtil.lambda$startApp$5(StartupUtil.java:246) at com.intellij.util.ui.EdtInvocationManager.executeWithCustomManager(EdtInvocationManager.java:73) at com.intellij.idea.StartupUtil.startApp(StartupUtil.java:241) at com.intellij.idea.StartupUtil.prepareApp(StartupUtil.java:213) at com.intellij.ide.plugins.MainRunner.lambda$start$0(MainRunner.java:39) at java.base/java.lang.Thread.run(Thread.java:834) 2020-01-19 23:59:10,486 [ 3474] ERROR - tellij.diagnostic.LoadingState - PhpStorm 2019.3.1 Build #PS-193.5662.63 2020-01-19 23:59:10,486 [ 3474] ERROR - tellij.diagnostic.LoadingState - JDK: 11.0.5; VM: OpenJDK 64-Bit Server VM; Vendor: JetBrains s.r.o 2020-01-19 23:59:10,486 [ 3474] ERROR - tellij.diagnostic.LoadingState - OS: Linux 2020-01-19 23:59:10,540 [ 3528] ERROR - llij.ide.plugins.PluginManager - Could not initialize class sun.awt.X11.XToolkit java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11.XToolkit at java.base/java.lang.Class.forName0(Native Method) at java.base/java.lang.Class.forName(Class.java:315) at java.desktop/java.awt.Toolkit$2.run(Toolkit.java:588) at java.desktop/java.awt.Toolkit$2.run(Toolkit.java:583) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.desktop/java.awt.Toolkit.getDefaultToolkit(Toolkit.java:582) at java.desktop/sun.swing.SwingUtilities2.getSystemMnemonicKeyMask(SwingUtilities2.java:2210) at java.desktop/javax.swing.plaf.basic.BasicLookAndFeel.initComponentDefaults(BasicLookAndFeel.java:1096) at java.desktop/javax.swing.plaf.metal.MetalLookAndFeel.initComponentDefaults(MetalLookAndFeel.java:440) at java.desktop/javax.swing.plaf.basic.BasicLookAndFeel.getDefaults(BasicLookAndFeel.java:150) at java.desktop/javax.swing.plaf.metal.MetalLookAndFeel.getDefaults(MetalLookAndFeel.java:1560) at java.desktop/javax.swing.UIManager.setLookAndFeel(UIManager.java:592) at java.desktop/javax.swing.UIManager.setLookAndFeel(UIManager.java:634) at java.desktop/javax.swing.UIManager.initializeDefaultLAF(UIManager.java:1409) at java.desktop/javax.swing.UIManager.initialize(UIManager.java:1522) at java.desktop/javax.swing.UIManager.maybeInitialize(UIManager.java:1488) at java.desktop/javax.swing.UIManager.getDefaults(UIManager.java:714) at java.desktop/javax.swing.UIManager.getFont(UIManager.java:727) at com.intellij.ui.scale.JBUIScale.lambda$static$0(JBUIScale.java:47) at com.intellij.openapi.util.AtomicNotNullLazyValue$1.compute(AtomicNotNullLazyValue.java:59) at com.intellij.openapi.util.AtomicNotNullLazyValue.getValue(AtomicNotNullLazyValue.java:37) at com.intellij.ui.scale.JBUIScale.lambda$static$1(JBUIScale.java:152) at com.intellij.util.LazyInitializer$MutableNotNullValue.initialize(LazyInitializer.java:113) at com.intellij.util.LazyInitializer$NullableValue.get(LazyInitializer.java:41) at com.intellij.util.LazyInitializer$MutableNotNullValue.get(LazyInitializer.java:102) at com.intellij.ui.scale.JBUIScale.lambda$static$2(JBUIScale.java:170) at com.intellij.util.LazyInitializer$MutableNotNullValue.initialize(LazyInitializer.java:113) at com.intellij.util.LazyInitializer$NullableValue.get(LazyInitializer.java:41) at com.intellij.util.LazyInitializer$MutableNotNullValue.get(LazyInitializer.java:102) at com.intellij.ui.scale.JBUIScale.scale(JBUIScale.java:294) at com.intellij.util.ui.JBInsets.create(JBInsets.java:41) at com.intellij.util.ui.UIUtil.<clinit>(UIUtil.java:457) at com.intellij.ide.a.c.a.a(a.java:182) at com.intellij.ide.a.d.n.a(n.java:544) at com.intellij.ide.a.d.n.c(n.java:222) at com.intellij.ide.a.d.n.a(n.java:117) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at com.intellij.idea.MainImpl.start(MainImpl.java:94) at com.intellij.idea.StartupUtil.lambda$startApp$5(StartupUtil.java:246) at com.intellij.util.ui.EdtInvocationManager.executeWithCustomManager(EdtInvocationManager.java:73) at com.intellij.idea.StartupUtil.startApp(StartupUtil.java:241) at com.intellij.idea.StartupUtil.prepareApp(StartupUtil.java:213) at com.intellij.ide.plugins.MainRunner.lambda$start$0(MainRunner.java:39) at java.base/java.lang.Thread.run(Thread.java:834) 2020-01-19 23:59:10,542 [ 3530] ERROR - llij.ide.plugins.PluginManager - PhpStorm 2019.3.1 Build #PS-193.5662.63 2020-01-19 23:59:10,543 [ 3531] ERROR - llij.ide.plugins.PluginManager - JDK: 11.0.5; VM: OpenJDK 64-Bit Server VM; Vendor: JetBrains s.r.o 2020-01-19 23:59:10,543 [ 3531] ERROR - llij.ide.plugins.PluginManager - OS: Linux Start Failed: Internal error. Please refer to http://jb.gg/ide/critical-startup-errors java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11.XToolkit at java.base/java.lang.Class.forName0(Native Method) at java.base/java.lang.Class.forName(Class.java:315) at java.desktop/java.awt.Toolkit$2.run(Toolkit.java:588) at java.desktop/java.awt.Toolkit$2.run(Toolkit.java:583) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.desktop/java.awt.Toolkit.getDefaultToolkit(Toolkit.java:582) at java.desktop/sun.swing.SwingUtilities2.getSystemMnemonicKeyMask(SwingUtilities2.java:2210) at java.desktop/javax.swing.plaf.basic.BasicLookAndFeel.initComponentDefaults(BasicLookAndFeel.java:1096) at java.desktop/javax.swing.plaf.metal.MetalLookAndFeel.initComponentDefaults(MetalLookAndFeel.java:440) at java.desktop/javax.swing.plaf.basic.BasicLookAndFeel.getDefaults(BasicLookAndFeel.java:150) at java.desktop/javax.swing.plaf.metal.MetalLookAndFeel.getDefaults(MetalLookAndFeel.java:1560) at java.desktop/javax.swing.UIManager.setLookAndFeel(UIManager.java:592) at java.desktop/javax.swing.UIManager.setLookAndFeel(UIManager.java:634) at java.desktop/javax.swing.UIManager.initializeDefaultLAF(UIManager.java:1409) at java.desktop/javax.swing.UIManager.initialize(UIManager.java:1522) at java.desktop/javax.swing.UIManager.maybeInitialize(UIManager.java:1488) at java.desktop/javax.swing.UIManager.getDefaults(UIManager.java:714) at java.desktop/javax.swing.UIManager.getFont(UIManager.java:727) at com.intellij.ui.scale.JBUIScale.lambda$static$0(JBUIScale.java:47) at com.intellij.openapi.util.AtomicNotNullLazyValue$1.compute(AtomicNotNullLazyValue.java:59) at com.intellij.openapi.util.AtomicNotNullLazyValue.getValue(AtomicNotNullLazyValue.java:37) at com.intellij.ui.scale.JBUIScale.lambda$static$1(JBUIScale.java:152) at com.intellij.util.LazyInitializer$MutableNotNullValue.initialize(LazyInitializer.java:113) at com.intellij.util.LazyInitializer$NullableValue.get(LazyInitializer.java:41) at com.intellij.util.LazyInitializer$MutableNotNullValue.get(LazyInitializer.java:102) at com.intellij.ui.scale.JBUIScale.lambda$static$2(JBUIScale.java:170) at com.intellij.util.LazyInitializer$MutableNotNullValue.initialize(LazyInitializer.java:113) at com.intellij.util.LazyInitializer$NullableValue.get(LazyInitializer.java:41) at com.intellij.util.LazyInitializer$MutableNotNullValue.get(LazyInitializer.java:102) at com.intellij.ui.scale.JBUIScale.scale(JBUIScale.java:294) at com.intellij.util.ui.JBInsets.create(JBInsets.java:41) at com.intellij.util.ui.UIUtil.<clinit>(UIUtil.java:457) at com.intellij.ide.a.c.a.a(a.java:182) at com.intellij.ide.a.d.n.a(n.java:544) at com.intellij.ide.a.d.n.c(n.java:222) at com.intellij.ide.a.d.n.a(n.java:117) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at com.intellij.idea.MainImpl.start(MainImpl.java:94) at com.intellij.idea.StartupUtil.lambda$startApp$5(StartupUtil.java:246) at com.intellij.util.ui.EdtInvocationManager.executeWithCustomManager(EdtInvocationManager.java:73) at com.intellij.idea.StartupUtil.startApp(StartupUtil.java:241) at com.intellij.idea.StartupUtil.prepareApp(StartupUtil.java:213) at com.intellij.ide.plugins.MainRunner.lambda$start$0(MainRunner.java:39) at java.base/java.lang.Thread.run(Thread.java:834) ----- JRE 11.0.5+10-b520.17 amd64 by JetBrains s.r.o /home/PhpStorm-193.5662.63/jbr Also, a UI exception occurred on an attempt to show the above message: java.lang.NoClassDefFoundError: Could not initialize class java.awt.GraphicsEnvironment$LocalGE at java.desktop/java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:129) at java.desktop/javax.swing.RepaintManager.<clinit>(RepaintManager.java:243) at java.desktop/javax.swing.JComponent.repaint(JComponent.java:4835) at java.desktop/java.awt.Component.repaint(Component.java:3412) at java.desktop/javax.swing.text.JTextComponent.setEditable(JTextComponent.java:1818) at java.desktop/javax.swing.text.JTextComponent.<init>(JTextComponent.java:323) at java.desktop/javax.swing.JEditorPane.<init>(JEditorPane.java:198) at java.desktop/javax.swing.JTextPane.<init>(JTextPane.java:87) at com.intellij.idea.Main.showMessage(Main.java:212) at com.intellij.idea.Main.showMessage(Main.java:188) at com.intellij.ide.plugins.StartupAbortedException.processException(StartupAbortedException.java:78) at com.intellij.ide.plugins.MainRunner.lambda$start$0(MainRunner.java:42) at java.base/java.lang.Thread.run(Thread.java:834)
delphi DLL数据及窗体调用
DLL工程文件代码: ``` library DLLUSERS; uses Windows, ADODB, Dialogs, Forms, SysUtils, Classes, U_DataModule in 'U_DataModule.pas' {DataModule1: TDataModule}, U_Users in 'U_Users.pas' {Frm_Users}, U_Initialize in 'U_Initialize.pas'; {$R *.res} function GetForm(ClassName: PChar; DM: TDataModule1): TFormClass; stdcall; begin DataModule1 := DM; Result:=TFormClass(FindClass(ClassName)); end; procedure InitDLL(DM: TDataModule1); stdcall; begin DataModule1:=DM; end; exports GetForm,InitDLL,SetUseName; begin end. ``` DLL公共单元代码: ``` unit U_Initialize; {DLL公共单元UNIT} interface function GetUseName: PChar; stdcall; procedure SetUseName(SName: PChar); stdcall; var StrName: PChar; implementation uses U_DataModule, ActiveX; function GetUseName: PChar; stdcall; begin Result:=StrName; end; procedure SetUseName(SName: PChar); stdcall; begin StrName:=SName; end; initialization CoInitialize(nil); DataModule1 := TDataModule1.Create(nil); finalization DataModule1.Free; CoUninitialize; end. ``` DLL数据模块代码: ``` unit U_DataModule; {数据模块} interface uses SysUtils, Classes, DB, ADODB; type TDataModule1 = class(TDataModule) ADOCNT: TADOConnection; private { Private declarations } public { Public declarations } end; var DataModule1: TDataModule1; implementation {$R *.dfm} end. ``` DLL内部窗体代码: ``` unit U_Users; {DLL内部窗体} interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DBGridEhGrouping, ComCtrls, GridsEh, DBGridEh, ExtCtrls, RzPanel, Menus, ADODB, DB, EhlibCDS, EhlibADO, Comobj, DBGridEhImpExp, U_DataModule; type TFrm_Users = class(TForm) MainMenu1: TMainMenu; mmAdd: TMenuItem; mmEdit: TMenuItem; mmDelete: TMenuItem; mmRight: TMenuItem; mmFind: TMenuItem; mmDataOut: TMenuItem; mmClose: TMenuItem; RzGroupBox1: TRzGroupBox; DBGridEhUsers: TDBGridEh; StatusBar1: TStatusBar; SaveDialog1: TSaveDialog; procedure FormCreate(Sender: TObject); procedure FormShow(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); private { Private declarations } public ADOUsers,ADODelete:TADOQuery; DSUsers: TDataSource; { Public declarations } end; var Frm_Users: TFrm_Users; implementation uses U_Initialize; {$R *.dfm} procedure TFrm_Users.FormCreate(Sender: TObject); begin Font.Name:='Arial'; ADOUsers:=TADOQuery.Create(nil); ADODelete:=TADOQuery.Create(nil); DSUsers:=TDataSource.Create(nil); ADOUsers.Connection:=DataModule1.ADOCNT; ADODelete.Connection:=DataModule1.ADOCNT; //设置文件类型列表和默认文件类型 SaveDialog1.Filter:='Text files (*.txt)|*.TXT|Comma separated values (*.csv)|*.CSV|HTML file (*.htm)|*.HTM|Rich Text Format (*.rtf)|*.RTF|Microsoft Excel Workbook (*.xls)|*.XLS'; SaveDialog1.FilterIndex:=0; end; procedure TFrm_Users.FormShow(Sender: TObject); begin StrName:=GetUseName; with ADOUsers do begin Close; SQL.Clear; if String(StrName)='alsaby' then SQL.Add('select a.*,b.Person_Name,c.Partment_Name from t_User a '+ 'left join t_Person b on a.User_PersonId=b.Person_Id '+ 'left join t_Partment c on a.User_PartmentId=c.Partment_Id '+ 'order by a.User_Name') else if String(StrName)='admin' then SQL.Add('select a.*,b.Person_Name,c.Partment_Name from t_User a '+ 'left join t_Person b on a.User_PersonId=b.Person_Id '+ 'left join t_Partment c on a.User_PartmentId=c.Partment_Id '+ 'where a.User_Name<>''alsaby'' order by a.User_Name') else SQL.Add('select a.*,b.Person_Name,c.Partment_Name from t_User a '+ 'left join t_Person b on a.User_PersonId=b.Person_Id '+ 'left join t_Partment c on a.User_PartmentId=c.Partment_Id '+ 'where a.User_Name<>''alsaby'' and a.User_Name<>''admin'' order by a.User_Name'); Open; end; DSUsers.DataSet:=ADOUsers; DBGridEhUsers.DataSource:=DSUsers; StatusBar1.Panels[1].Text:=IntToStr(ADOUsers.RecordCount) +' 条数据。'; end; procedure TFrm_Users.FormClose(Sender: TObject; var Action: TCloseAction); begin ADOUsers.Close; ADOUsers.Destroy; ADODelete.Close; ADODelete.Destroy; DSUsers.Destroy; Action:=caFree; end; initialization RegisterClass(TFrm_Users); finalization UnRegisterClass(TFrm_Users); end. ``` 主程序调用代码: ``` unit U_Main; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Menus, ImgList, ComCtrls, ADODB, DB, jpeg, ExtCtrls, RzPanel, RzSplit, RzTreeVw, U_DataModule; type TInitDLL = procedure(DM: TFrm_DataModule); stdcall; TSetUseName = procedure(SName: PChar); stdcall; TGetForm = function(ClassName: PChar; DM: TFrm_DataModule): TFormClass; stdcall; TFrm_Main = class(TForm) MainMenu1: TMainMenu; mmSysFlies: TMenuItem; mmUserChange: TMenuItem; N2: TMenuItem; mmExit: TMenuItem; N1: TMenuItem; mmBakRecover: TMenuItem; mmSysUser: TMenuItem; N5: TMenuItem; StatusBar1: TStatusBar; OpenDialog1: TOpenDialog; ImageList1: TImageList; procedure FormCreate(Sender: TObject); procedure mmSysUserClick(Sender: TObject); private { Private declarations } public UName: String; { Public declarations } end; var Frm_Main: TFrm_Main; implementation uses U_Public; {$R *.dfm} procedure TFrm_Main.FormCreate(Sender: TObject); begin Font.Name:='Arial'; UName:=Frm_DataModule.ADO_User.FieldByName('User_Name').AsString; end; procedure TFrm_Main.mmSysUserClick(Sender: TObject); var DLLName: String; DLLHandle: THandle; FarProc: TFarProc; Form: TForm; SetUseName: TSetUseName; GetForm: TGetForm; InitDLL: TInitDLL; begin GetDir(0,DLLName); DLLName := DLLName + '\DLLUSERS.dll'; DLLHandle:= SafeLoadLibrary(DLLName); if DLLHandle > 0 then Try FarProc := GetProcAddress(DLLHandle, 'InitDLL'); if FarProc<>nil then begin InitDLL := TInitDLL(FarProc); InitDLL(Frm_DataModule); end; FarProc := GetProcAddress(DLLHandle, 'SetUseName'); if FarProc<>nil then begin SetUseName := TSetUseName(FarProc); SetUseName(PChar(Trim(UName))); end; FarProc := GetProcAddress(DLLHandle, 'GetForm'); if FarProc<>nil then begin GetForm := TGetForm(FarProc); Form := GetForm('TFrm_Users', Frm_DataModule).Create(nil); Form.ShowModal; FreeAndNil(Form); end; Finally FreeLibrary(DLLHandle); End else ShowMessage(DLLName+'文件不存在!'); end; end. ``` 以上在运行程序时没有错误,数据也正常显示,但是关闭调用的DLL内部窗体后,再次通过主程序调用就出现了Read of Address 00000008错误,请高手指点这是咋回事?
Delphi DLL数据及窗体调用
DLL工程相关代码如下: library DLLUSERS; uses Windows, ADODB, Dialogs, Forms, SysUtils, Classes, U_DataModule in 'U_DataModule.pas' {DataModule1: TDataModule}, U_Users in 'U_Users.pas' {Frm_Users}, U_Initialize in 'U_Initialize.pas'; {$R *.res} function GetForm(ClassName: PChar; DM: TDataModule1): TFormClass; stdcall; begin DataModule1 := DM; Result:=TFormClass(FindClass(ClassName)); end; procedure InitDLL(DM: TDataModule1); stdcall; begin DataModule1:=DM; end; exports GetForm,InitDLL,SetUseName; begin end. DLL公共单元代码如下: unit U_Initialize; {DLL公共单元UNIT} interface function GetUseName: PChar; stdcall; procedure SetUseName(SName: PChar); stdcall; var StrName: PChar; implementation uses U_DataModule, ActiveX; function GetUseName: PChar; stdcall; begin Result:=StrName; end; procedure SetUseName(SName: PChar); stdcall; begin StrName:=SName; end; initialization CoInitialize(nil); DataModule1 := TDataModule1.Create(nil); finalization DataModule1.Free; CoUninitialize; end. DLL数据模块代码: unit U_DataModule; {数据模块} interface uses SysUtils, Classes, DB, ADODB; type TDataModule1 = class(TDataModule) ADOCNT: TADOConnection; private { Private declarations } public { Public declarations } end; var DataModule1: TDataModule1; implementation {$R *.dfm} end. DLL内部窗体代码: unit U_Users; {DLL内部窗体} interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DBGridEhGrouping, ComCtrls, GridsEh, DBGridEh, ExtCtrls, RzPanel, Menus, ADODB, DB, EhlibCDS, EhlibADO, Comobj, DBGridEhImpExp, U_DataModule; type TFrm_Users = class(TForm) MainMenu1: TMainMenu; mmAdd: TMenuItem; mmEdit: TMenuItem; mmDelete: TMenuItem; mmRight: TMenuItem; mmFind: TMenuItem; mmDataOut: TMenuItem; mmClose: TMenuItem; RzGroupBox1: TRzGroupBox; DBGridEhUsers: TDBGridEh; StatusBar1: TStatusBar; SaveDialog1: TSaveDialog; procedure FormCreate(Sender: TObject); procedure FormShow(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); private { Private declarations } public ADOUsers,ADODelete:TADOQuery; DSUsers: TDataSource; { Public declarations } end; var Frm_Users: TFrm_Users; implementation uses U_Initialize; {$R *.dfm} procedure TFrm_Users.FormCreate(Sender: TObject); begin Font.Name:='Arial'; ADOUsers:=TADOQuery.Create(nil); ADODelete:=TADOQuery.Create(nil); DSUsers:=TDataSource.Create(nil); ADOUsers.Connection:=DataModule1.ADOCNT; ADODelete.Connection:=DataModule1.ADOCNT; //设置文件类型列表和默认文件类型 SaveDialog1.Filter:='Text files (*.txt)|*.TXT|Comma separated values (*.csv)|*.CSV|HTML file (*.htm)|*.HTM|Rich Text Format (*.rtf)|*.RTF|Microsoft Excel Workbook (*.xls)|*.XLS'; SaveDialog1.FilterIndex:=0; end; procedure TFrm_Users.FormShow(Sender: TObject); begin StrName:=GetUseName; with ADOUsers do begin Close; SQL.Clear; if String(StrName)='alsaby' then SQL.Add('select a.*,b.Person_Name,c.Partment_Name from t_User a '+ 'left join t_Person b on a.User_PersonId=b.Person_Id '+ 'left join t_Partment c on a.User_PartmentId=c.Partment_Id '+ 'order by a.User_Name') else if String(StrName)='admin' then SQL.Add('select a.*,b.Person_Name,c.Partment_Name from t_User a '+ 'left join t_Person b on a.User_PersonId=b.Person_Id '+ 'left join t_Partment c on a.User_PartmentId=c.Partment_Id '+ 'where a.User_Name<>''alsaby'' order by a.User_Name') else SQL.Add('select a.*,b.Person_Name,c.Partment_Name from t_User a '+ 'left join t_Person b on a.User_PersonId=b.Person_Id '+ 'left join t_Partment c on a.User_PartmentId=c.Partment_Id '+ 'where a.User_Name<>''alsaby'' and a.User_Name<>''admin'' order by a.User_Name'); Open; end; DSUsers.DataSet:=ADOUsers; DBGridEhUsers.DataSource:=DSUsers; StatusBar1.Panels[1].Text:=IntToStr(ADOUsers.RecordCount) +' 条数据。'; end; procedure TFrm_Users.FormClose(Sender: TObject; var Action: TCloseAction); begin ADOUsers.Close; ADOUsers.Destroy; ADODelete.Close; ADODelete.Destroy; DSUsers.Destroy; Action:=caFree; end; initialization RegisterClass(TFrm_Users); finalization UnRegisterClass(TFrm_Users); end. 主程序调用DLL代码: unit U_Main; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Menus, ImgList, ComCtrls, ADODB, DB, jpeg, ExtCtrls, RzPanel, RzSplit, RzTreeVw, U_DataModule; type TInitDLL = procedure(DM: TFrm_DataModule); stdcall; TSetUseName = procedure(SName: PChar); stdcall; TGetForm = function(ClassName: PChar; DM: TFrm_DataModule): TFormClass; stdcall; TFrm_Main = class(TForm) MainMenu1: TMainMenu; mmSysFlies: TMenuItem; mmUserChange: TMenuItem; N2: TMenuItem; mmExit: TMenuItem; N1: TMenuItem; mmBakRecover: TMenuItem; mmSysUser: TMenuItem; N5: TMenuItem; StatusBar1: TStatusBar; OpenDialog1: TOpenDialog; ImageList1: TImageList; procedure FormCreate(Sender: TObject); procedure mmSysUserClick(Sender: TObject); private { Private declarations } public UName: String; { Public declarations } end; var Frm_Main: TFrm_Main; implementation uses U_Public; {$R *.dfm} procedure TFrm_Main.FormCreate(Sender: TObject); begin Font.Name:='Arial'; UName:=Frm_DataModule.ADO_User.FieldByName('User_Name').AsString; end; procedure TFrm_Main.mmSysUserClick(Sender: TObject); var DLLName: String; DLLHandle: THandle; FarProc: TFarProc; Form: TForm; SetUseName: TSetUseName; GetForm: TGetForm; InitDLL: TInitDLL; begin GetDir(0,DLLName); DLLName := DLLName + '\DLLUSERS.dll'; DLLHandle:= SafeLoadLibrary(DLLName); if DLLHandle > 0 then Try FarProc := GetProcAddress(DLLHandle, 'InitDLL'); if FarProc<>nil then begin InitDLL := TInitDLL(FarProc); InitDLL(Frm_DataModule); end; FarProc := GetProcAddress(DLLHandle, 'SetUseName'); if FarProc<>nil then begin SetUseName := TSetUseName(FarProc); SetUseName(PChar(Trim(UName))); end; FarProc := GetProcAddress(DLLHandle, 'GetForm'); if FarProc<>nil then begin GetForm := TGetForm(FarProc); Form := GetForm('TFrm_Users', Frm_DataModule).Create(nil); Form.ShowModal; FreeAndNil(Form); end; Finally FreeLibrary(DLLHandle); End else ShowMessage(DLLName+'文件不存在!'); end; end. ``` ``` 以上第一次运行数据都是可以正确显示的,可是关闭调用出来的DLL内部窗体后,再次调用就出现错误了,错误提示为Read of address 00000008,这是为什么呢?
PyQt5计时器QTimer的停止和重启
由于我有一个耗时的子程序,所以我想用QTimer()加上进度条的方法优化用户的等待时间, 但是,当我初始化计时器,并start()后,发现相关的超时槽函数并没有触发,这是为什么了? ```python """创建一个带提示的进度条""" from PyQt5.QtCore import * from PyQt5.QtWidgets import * from PyQt5.QtGui import * import sys import time class MyProgressBar(QWidget): def __init__(self,showMessage = "提示信息",parent = None): super(MyProgressBar, self).__init__(parent) self.message = showMessage self.setWindowTitle("加载数据") self.pbar = QProgressBar() # 构建一个进度条 self.label = QLabel() # 添加到布局 self.layout = QVBoxLayout() self.setLayout(self.layout) self.layout.addWidget(self.label) # 提示信息 self.layout.addWidget(self.pbar) # 进度条 self.label.setText(self.message) self.timer = QTimer(self) # 初始化一个时钟 self.step = 0 # 进度条的值 self.timer.start(50) self.timer.timeout.connect(self.update) self.show() #self.setWindowFlags(Qt.WindowStaysOnTopHint) def setMessage(self,message): """重新设置信息,并重启进度条""" print(self.timer.isActive()) self.message = message self.step = 0 if not self.timer.isActive(): self.timer.start(50) self.show() def callback(self, signal): print("调用回调函数",signal) if signal is False: return if self.timer.isActive(): # 当前正在运行 self.pbar.setValue(100) self.timer.stop() self.step = 0 # 重置 QMessageBox.information( self, "提示", "{},已经完成".format(self.message), QMessageBox.Yes | QMessageBox.No ) #self.setWindowModality(Qt.NonModal) self.hide() def update(self): print("调用的时钟事件") self.pbar.setValue(self.step) # 赋新值 if self.step >= 100: # 停止进度条 self.timer.stop() self.step = 0 # 卡在99%,等后台程序运行完成则到100% elif self.step < 99: self.step += 1 def worker(): time.sleep(5) if __name__ == '__main__': app = QApplication(sys.argv) myui = MyProgressBar(showMessage="第一次") worker() # 模拟耗时程序 myui.callback(True) # time.sleep(1) # myui.setMessage("第二次") # time.sleep(5) # myui.callback(True) sys.exit(app.exec_()) ``` 而且,发现删除耗时程序`worker()`和回调函数后,进度条能一直到99%并卡住?
delphi datasnap 连接异常捕获
try dtm.SQLConnection1.Params.Values['HostName']:='127.0.0.1'; dtm.SQLConnection1.Params.Values['Port']:=211; dtm.SQLConnection1.Connected:=True; Except showMessage('连接失败!'); End;
delphi HttpQueryInfo查询响应头信息,执行成功,但是返回的是空字符串
``` procedure Get(url: string;res: TStream); var hInt,hUrl:HINTERNET; buffer,hBuf:PChar; dwRead:cardinal; flag:Boolean; Len,index:Cardinal; stream:TStringStream; var value: DWORD; begin GetMem(buffer, 65536); GetMem(hBuf, 65536); hInt := InternetOpen('Delphi',INTERNET_OPEN_TYPE_PRECONFIG,nil,nil,0); dwRead:=0; hurl:=InternetOpenUrl(hInt,PChar(url),nil,0,INTERNET_FLAG_RELOAD,0); //查询响应头信息 flag:=HttpQueryInfo(hurl,HTTP_QUERY_RAW_HEADERS_CRLF,hBuf,len,index); stream:=TStringStream.Create(''); stream.Write(hBuf^,len); ShowMessage(stream.DataString); repeat InternetReadFile(hUrl,buffer,1000,dwRead); if dwRead<>0 then res.Write(buffer^, dwRead); until dwRead=0; InternetCloseHandle(hUrl); InternetCloseHandle(hInt); FreeMem(buffer); end; ``` rt delphi HttpQueryInfo查询响应头信息,执行成功,返回true,len也不为0,但是我从缓冲区读出来的字符串却是空的,不知道是我读取缓冲区的方式不对还是怎么的,有谁搞过,请多多指教!
使用delphi开发的问题
为什么form2,form3没有出现 procedure TForm1.Button1Click(Sender: TObject); var num,user,pass:string; begin user:=edit1.Text; pass:=edit2.Text; if radiobutton1.checked=true then begin ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('select * from 登陆表 where 用户名='''+user+'''and 密码='''+pass+'''') ; ADOQuery1.Open; num:=ADOQuery1.fieldbyname('权限').AsString; if num='' then showmessage('error'); if num='1' then form2.show; if num='0' then form3.show; end else begin showmessage('ederror'); end end;
delphi新手求大神解答,image.picture:=nil把图像清空后
procedure TForm1.N6Click(Sender: TObject); //裁剪上边 var rgn: Hrgn; Bmp: TBitmap; str: string; num: integer; begin str:=''; InputQuery('裁剪大小设定','输入数值',str); if str='' then begin ShowMessage('输入值不能为空请重新输入!'); end else begin num:=strtoint(str); Bmp:= TBitmap.Create; Bmp.Assign(image1.Picture.Bitmap); //创建剪切区域 rgn:= CreateRectRgn(0,num,Bmp.Width,Bmp.Height-num); //选中剪切区域 SelectClipRgn(image1.Canvas.Handle,rgn); //清空图像 image1.Picture := nil; //image1.Picture.Bitmap.FreeImage; BitBlt(image1.Canvas.Handle,0,num,Bmp.Width,Bmp.Height-num,Bmp.Canvas.Handle,0,num,SRCCOPY); //空白处还不知道怎么处理。。。 Bmp.Free; end; 把图片剪切,背景的白色如何能适应剪切后的图片大小
Python tkinter图形界面BUTTON事件控制和编辑框返回值出现异常
使用win7的Python3.73的IDLE界面编写图形界面程序,在编码过程中发现,如果定义一个主窗口后再定义一个局部窗口会导致后面的窗口的编辑框设置和取值异常。具体问题用一个测试程序来说明如下: ``` import tkinter as tk from tkinter import messagebox def newwin(title='test',geometry='300x300'): def ShowMessage(): tk.messagebox.showinfo(input.get()) window = tk.Tk() window.title(title) window.geometry(geometry) input = tk.StringVar() input.set('请输入任意内容!') tk.Label(window, text='请输入任意内容: ').place(x=10, y= 10) entry_new_name = tk.Entry(window, textvariable=input) entry_new_name.place(x=150, y=10) btn_show = tk.Button(window, text='显示输入', command=ShowMessage) btn_show.place(x=80, y=90) btn_newwin = tk.Button(window, text='新弹窗', command=newwin) btn_newwin.place(x=150, y=90) btn_exit = tk.Button(window, text='退出', command=exit) btn_exit.place(x=220, y=90) return window root = newwin() root.mainloop() ``` 上述代码执行后,显示一个窗口,内有:一个输入框,三个按钮,一个是显示输入框内容,一个是再次新建一个同样的窗口,一个是系统退出。执行后第一次打开窗口时相关功能正常,但当选择“新弹窗”弹出一个新的窗口后,编辑框的初始内容没有显示,且输入内容后,在新窗口显示编辑框的内容取得的值为变量初始化的值,没有取得新的输入。 关于以上代码,有如下几个问题: 1、为什么新弹窗中编辑框的显示和变化没有和变量关联起来? 2、上述代码中btn_newwin按钮定义如果改为:“btn_newwin = tk.Button(window, text='新弹窗', command=newwin)”中,如果newwin使用带实参格式,则会导致一启动就会不停新建窗口,导致递归调用过深异常出现才终止?这是为什么 ? 3、该代码存储到文件后,使用dos命令行方式执行文件无任何反应。是图形界面的程序无法在非图形界面解释器下执行吗?该怎么解决? 非常抱歉,本人没有C币,不知可有哪位大拿免费指教?谢谢!
请问题这段代码有什么错呢?
请问题这段代码有什么错呢? delphi xe8和xe10都报 Duplicate case label 错呢? procedure TForm1.FormCreate(Sender: TObject); var c: Char; begin case c of #130: ShowMessage(#130); #131: ShowMessage(#130); #132: ShowMessage(#130); #133: ShowMessage(#130); #134: ShowMessage(#130); #135: ShowMessage(#130); #136: ShowMessage(#130); end; end;
delphi 用控件打开pdf文件无法读取pdf里的表单信息
我用的delphi7 用的是破解版的foxit_ax_pro.ocx文件版本3.0.1.2506,用OpenFile打开一个包含表单的pdf文件,浏览正常,但用代码访问时出错(下面第二行,FNameMI存在): frm:=FoxitReaderSDK1.GetCurrentForm(); ShowMessage(frm.GetFieldByName('FNameMI').Value) ; 变成无法获取表单信息。另外单独打开该pdf文件可以提交表单数据到url但是用这个控件,同样的按钮,提交可以,但获取不到表单数据。 有哪位高手能解答下,不胜感谢!!
请问Delphi安卓下怎么连接虚拟主机数据库(mysql)?
![图片说明](https://img-ask.csdn.net/upload/201509/06/1441524757_721587.jpg) 这里提示成功了的!但不知道下面怎么写? ![图片说明](https://img-ask.csdn.net/upload/201509/06/1441524780_757725.jpg) 提示错误!unable to open databasse file SQLQuery1.SQL.Add('select count(*) from yljuser'); SQLQuery1.Open; ShowMessage(SQLQuery1.FieldByName('name').AsString);
IdUdpclient 向服务器发送消息后,服务器返回消息给客户端
 IdUdpclient 向服务器发送消息后,服务器返回消息给客户端,代码如下:  with IdUDPClient1 do   begin     Host := '192.168.0.18';     Port := 3000;     Send('GET_DATE_LIST');     s := ReceiveString();     ShowMessage(s);   end; 但是返回的不是服务器的数据字符串,本应该返回“Result line1,line2”,但是一直返回的确实TLclient,这个是什么问题,如何解决呢? 若如下代码:   with IdUDPClient1 do   begin     Host := '192.168.0.18';     Port := 3000;     Send('GET_DATE_LIST');      ReceiveBuffer(buf,-1);      ShowMessage(StringOf(buf));   end; 报错"Range check error"; 客户端应该如何发送数据后,接受服务器返回的消息呢?
delphi 自动发邮件器 automail 报错
procedure TForm1.Button1Click(Sender: TObject); var filename: string; begin //发送邮件主函数 try IdSSLIOHandlerSocket1.SSLOptions.Method:=sslvSSLv3; IdSMTP1.IOHandler:= IdSSLIOHandlerSocket1; IdSMTP1.AuthenticationType:=atLogin; IdSMTP1.Username:='eastern_2008@163.com'; IdSMTP1.Password:='cxtest'; IdSMTP1.Host:='smtp.exmail.163.com'; IdSMTP1.Port:=25; if not idsmtp1.Connected then begin IdSMTP1.Connect(2000); //此处报错 end; except Showmessage('连接失败,请重试!'); Exit; end; IdMessage1.ContentType:= 'text/html'; IdMessage1.Body.Clear; IdMessage1.Subject:='Delphi邮件发送测试'+datetimetostr(now); IdMessage1.Body.Text:=memo1.Text; IdMessage1.From.Address:= 'eastern_2008@163.com'; IdMessage1.From.Name := '大族监控系统'; IdMessage1.Recipients.EMailAddresses:= 'eastern_2008@163.com'; IdMessage1.Priority:=mpHighest; //邮件重要性 idSMTP1.Authenticate; idSMTP1.Send(IdMessage1); end;
网页的 BeforeUnload 消息在IE 内核的mfc下怎么截获
能在 COleControlSite 中的STDMETHOD(ShowMessage) 截获网页的alter 窗口, 但是 beforunload消息弹出框无法进入这个函数,有人知道怎么直接截获这个网页关闭 时候的这个消息吗?
Python tkinter图形界面BUTTON时间控制和编辑框返回值出现异常?
使用win7的Python3.73的IDLE界面编写图形界面程序,在编码过程中发现,如果定义一个主窗口后再定义一个局部窗口会导致后面的窗口的编辑框设置和取值异常。具体问题用一个测试程序来说明如下: ``` import tkinter as tk from tkinter import messagebox def newwin(title='test',geometry='300x300'): def ShowMessage(): tk.messagebox.showinfo(input.get()) window = tk.Tk() window.title(title) window.geometry(geometry) input = tk.StringVar() input.set('请输入任意内容!') tk.Label(window, text='请输入任意内容: ').place(x=10, y= 10) entry_new_name = tk.Entry(window, textvariable=input) entry_new_name.place(x=150, y=10) btn_show = tk.Button(window, text='显示输入', command=ShowMessage) btn_show.place(x=80, y=90) btn_newwin = tk.Button(window, text='新弹窗', command=newwin) btn_newwin.place(x=150, y=90) btn_exit = tk.Button(window, text='退出', command=exit) btn_exit.place(x=220, y=90) return window root = newwin() root.mainloop() ``` 上述代码执行后,显示一个窗口,内有:一个输入框,三个按钮,一个是显示输入框内容,一个是再次新建一个同样的窗口,一个是系统退出。执行后第一次打开窗口时相关功能正常,初始界面如下(编辑框有初始文字显示): ![图片说明](https://img-ask.csdn.net/upload/201906/03/1559522244_111043.jpg) 编辑框输入内容后点击显示输入按钮后的窗口: ![图片说明](https://img-ask.csdn.net/upload/201906/03/1559522335_568410.jpg) 但当选择“新弹窗”弹出一个新的窗口后,编辑框的初始内容没有显示: ![图片说明](https://img-ask.csdn.net/upload/201906/03/1559522415_427087.jpg) 且输入内容后,在新窗口显示编辑框的内容取得的值为变量初始化的值,没有取得新的输入。新弹窗编辑框输入内容后点击显示输入按钮后的窗口: ![图片说明](https://img-ask.csdn.net/upload/201906/03/1559522568_856.jpg) 关于以上代码,有如下几个问题: 1、为什么新弹窗中编辑框的显示和变化没有和变量关联起来? 2、上述代码中btn_newwin按钮定义如果改为:“btn_newwin = tk.Button(window, text='新弹窗', command=newwin)”中,如果newwin使用带实参格式,则会导致一启动就会不停新建窗口,导致递归调用过深异常出现才终止?这是为什么 ? 3、该代码存储到文件后,使用dos命令行方式执行文件无任何反应。是图形界面的程序无法在非图形界面解释器下执行吗?该怎么解决? 非常抱歉,本人没有C币,不知可有哪位大拿免费指教?谢谢!
delphi使用函数指针调用函数第一个参数不能获取。
完整代码如下所示,定义了一个函数指针类型TFunctiontest = function (const a:integer; const b:integer; const c:integer): integer; 然后定义了一个指针变量。再定义了一个函数function functiona(const a :integer; const b:integer;const c:integer):integer;并将该函数的地址赋值给函数指针,然后通过函数指针去调用,希望得到的结果是1,2,3,但是没有得到第一个参数,求解答? unit Unit1; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; TFunctiontest = function (const a:integer; const b:integer; const c:integer): integer; var Form1: TForm1; implementation {$R *.dfm} function functiona(const a :integer; const b:integer;const c:integer):integer; begin showmessage(inttostr(a)); showmessage(inttostr(b)); showmessage(inttostr(c)); end; procedure TForm1.Button1Click(Sender: TObject); var pf : TFunctiontest; const a:integer =1; const b:integer =2; const c:integer =3; begin pf := @functiona; pf(a,b,c); end; end.
delphi2007中使用SPcomm3.1关闭时出现问题
写一个程序从两台串口通讯机器中读取数据,读取完成后关闭两个串口时出现问题了,消息:Exception EAccessViolation in module ntdll.dll at 007c48A. Access violation at address 77D0C48A in module 'ntdll.dll'. Read of address C000011F. 这个问题有时出现,有时没有,如果脱离delphi运行,情况是程序死掉。 Spcomm3.1 的下载地址:http://dldx.csdn.net/fd.php?i=259265203397239&s=475d682705f35f6a39ac0366fe502f9e 部分程序代码:【两个串口的设置在开始时从ini文件中读取了】。 procedure TForm1.Button3Click(Sender: TObject); Var S:string; begin with COMPF9811 do begin try OnReceiveError := PFReceiveError; OnReceiveData := PFReceiveData; StopComm; StartComm; except on E: Exception do begin showmessage('PF9811'+E.Message) end; end; end; with COMMaynuo do begin try OnReceiveError := MNReceiveError; OnReceiveData := MNReceiveData; StopComm; StartComm; except on E: Exception do begin showmessage('Maynuo'+E.Message) end; end; end; if (COMMaynuo.Connected) then begin S:='01050500FF008CF6'; COMMaynuo.WriteCommData(@Hexstrtostr(S)[1],length(Hexstrtostr(S))); //PC1=1 sleep(20); S:='01050501FF00DD36'; COMMaynuo.WriteCommData(@Hexstrtostr(S)[1],length(Hexstrtostr(S))); //PC2=1 Delay(20); end; end; procedure TForm1.Button8Click(Sender: TObject); Var S:string; begin if ComPF9811.Connected then COMPF9811.StopComm; if COMMaynuo.Connected then begin S:=Hexstrtostr('010505000000CD06'); COMMaynuo.WriteCommData(@S[1],length(S)); //PC1=0 Delay(40); S:=Hexstrtostr('0105050100009CC6'); COMMaynuo.WriteCommData(@S[1],length(S)); //PC2=0 Delay(200); //commaynuo.free; COMMaynuo.StopComm; end; end;
ACCESS数据选择性丢失,delphi开发
我用DELPHI+ACCESS做了一个小应用,发生了一件怪事: 订单数据明明插入到数据库了,可以正常进行下一步操作,并且可以正常导出,但软件关闭后,今天操作的订单数据会丢失,以前的数据不会丢失。后续的操作数据也会留下来。 下面贴出我导入EXCEL订单的代码。 ``` procedure TfrmFPimport.btnOpenClick(Sender: TObject); var ExcelApp: Variant; sl,subsl:TStringList; i,j:integer; filename,strSql,sql_mx:string; fapiao,yearmonth:string; cmd: TadoCommand; e: exception; kprq,bz,rq1,rq2,bizhi: string; code,number,capital_hz:string; hl,yfbf,dj,zj,dj_rmb,zj_rmb,rmb_hz,usd_hz,usd_hz_rmb,chayi,hangshu:double; road:string; begin dlgOpen1.FileName:=''; dlgOpen1.Execute; filename:=dlgOpen1.FileName; if filename <>'' then begin try sl:=TStringList.Create; subsl:=TStringList.Create; btnOpen.Enabled :=false; ADOConnection_Excel.Connected:=False; ADOConnection_Excel.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Password="";Data Source="'+ filename+'";Extended Properties="Excel 8.0;IMEX=1";Persist Security Info=False'; ADOConnection_Excel.Connected:=True; ADOConnection_Excel.GetTableNames(sl); if (sl.Count>0) and (sl.IndexOf('sheet1$')<>-1) then begin road:=ExtractFileDir(Application.Exename); ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source='+road+'\database\wxfp.mdb;Mode=Share Deny None;Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password=nbeport2010;Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;'; ADOConnection1.Connected:=True; ADOConnection1.BeginTrans; cmd := TadoCommand.Create(application); cmd.Connection := dmdCustom.cnnCustom; // cmd.ParamCheck := false; ADOQuery_Excel.Close; ADOQuery_Excel.Sql.Text:='SELECT * FROM [sheet1$]'; ADOQuery_Excel.Open; ADOQuery_Excel.First; for i:=1 to ADOQuery_Excel.RecordCount do begin //判断是否要发票已经开过了 qry_RunSql.Close; qry_RunSql.SQL.text:='select bgd_no from wxInvoice where bgd_no=:HGBH and zfflag='''+'0'+''''; qry_RunSql.Parameters.ParamByName('HGBH').Value:= ADOQuery_Excel.fieldbyname('内部发票号').AsString; qry_RunSql.Open; if not qry_RunSql.Eof then begin showmessage('内部发票号:'+ADOQuery_Excel.fieldbyname('内部发票号').AsString+'已经开具!请在excel文件中删除'); ADOConnection_Excel.Connected:=False; exit; end; end; ADOQuery_Excel.Close; ADOQuery_Excel.Sql.Text:='SELECT * FROM [sheet1$]'; ADOQuery_Excel.Open; if ADOQuery_Excel.RecordCount>0 then begin ADOQuery_Excel.First; fapiao:= ''; advprgrsbr1.Min:=1; advprgrsbr1.Max:= ADOQuery_Excel.RecordCount-1; for i:=1 to ADOQuery_Excel.RecordCount do begin advprgrsbr1.Position:=i; Application.ProcessMessages; if ADOQuery_Excel.fieldbyname('内部发票号').AsString = fapiao then begin // 多行的情况下,判断行数 qry_excel2.Close; qry_excel2.SQL.text:='SELECT * FROM [sheet1$] where 内部发票号=:fp'; qry_excel2.Parameters.ParamByName('fp').Value:= fapiao; qry_excel2.Open; hangshu:= qry_excel2.RecordCount; //处理明细行 //匹配国税编码及名称 qry.Close; qry.SQL.Text:='select * from tblCmcode where code=:code'; qry.Parameters.ParamByName('code').value:=ADOQuery_Excel.fieldbyname('HS编码').AsString; qry.Open; //只考虑FOB情况 zj:= ADOQuery_Excel.fieldbyname('报关金额').AsFloat; usd_hz:=usd_hz +strtofloat(format('%0.2f', [zj])); zj_rmb:= hl * zj; zj_rmb:= strtofloat(format('%0.2f', [zj_rmb])); dj_rmb:= zj_rmb / ADOQuery_Excel.fieldbyname('报关数量').AsFloat; rmb_hz:= rmb_hz + zj_rmb; usd_hz_rmb:=strtofloat(format('%0.2f', [usd_hz* hl])); //汇总美元金额 直接 乘以 汇率 if j = hangshu then begin chayi:= usd_hz_rmb - rmb_hz; chayi:= strtofloat(format('%0.2f', [chayi])); end; sql_mx:= 'insert into wxInvoiceDetail(invCode,invNumber,hscode,goodsName,model,unit,price,quantity,amount,'+ 'gscode,gsname,depname,rmb_dj,jsAmount,XH) values(''' + code + ''',''' + number + ''',''' + ADOQuery_Excel.fieldbyname('HS编码').AsString + ''',''' + ADOQuery_Excel.fieldbyname('报关品名').AsString + ''',''' + ADOQuery_Excel.fieldbyname('规格型号').AsString + ''',''' + '个' + ''',' + ADOQuery_Excel.fieldbyname('报关单价').AsString + ',' + ADOQuery_Excel.fieldbyname('报关数量').AsString + ',' + format('%0.2f', [zj]) + ',''' + qry.fieldbyname('GScode').AsString + ''',''' + qry.fieldbyname('name').AsString + ''',''' + qry.fieldbyname('depname').AsString + ''',' + format('%0.6f', [dj_rmb]) + ',' + format('%0.2f', [zj_rmb+chayi]) + ',''' + inttostr(j) + ''')' ; j:=j+1; // sql_mx := StringReplace(sql_mx, '''','''''', [rfReplaceAll]); cmd.CommandText := sql_mx; cmd.Execute(); //处理人民币合计 更新到表头里 capital_hz:= MoneyConvert(usd_hz_rmb); sql_mx:='update wxInvoice set rmb=:renminbi,capital=:capital,amt=:amt where bgd_no=:bgd_no'; cmd.CommandText:= sql_mx; cmd.Parameters.ParamByName('renminbi').Value:= formatfloat('0.00',usd_hz_rmb); cmd.Parameters.ParamByName('capital').Value:= capital_hz; cmd.Parameters.ParamByName('amt').Value:= usd_hz; cmd.Parameters.ParamByName('bgd_no').Value:= ADOQuery_Excel.FieldValues['内部发票号']; cmd.Execute(); fapiao:= ADOQuery_Excel.FieldValues['内部发票号']; end else begin if trim(ADOQuery_Excel.fieldbyname('内部发票号').AsString)='' then break; //初始化需要累加的值 j:=1; rmb_hz :=0; usd_hz:=0; qry.Close; //获取发票号码 代码 strSql := 'select startNumber,pcs,remain,invCode,id from wxFpkc' + ' where remain >0 ' + ' order by id'; qry.SQL.Text := strSql; qry.Open; if qry.Eof then begin qry.Close; showmessage('无可用的发票库存信息,请导入发票!'); exit; end; Number := formatfloat('00000000',strtoint(qry.Fields[0].AsString) +qry.Fields[1].AsInteger - qry.Fields[2].AsInteger); code:= qry.Fields[3].AsString; //判断汇率有没有设置过 kprq:= ADOQuery_Excel.fieldbyname('开票日期').AsString; kprq:= StringReplace (kprq, '.', '-', [rfReplaceAll]); yearmonth:=FormatdateTime('yyyymm',strtodatetime(kprq)); qry_RunSql.Close; qry_RunSql.SQL.text:='select * from tblBicode where code=:code and VALIDMONTH=:VALIDMONTH'; qry_RunSql.Parameters.ParamByName('VALIDMONTH').Value:= yearmonth; qry_RunSql.Parameters.ParamByName('code').Value:= ADOQuery_Excel.fieldbyname('币别').AsString; qry_RunSql.Open; if qry_RunSql.Eof then begin showmessage(yearmonth+'汇率没有设置,请设置!'); exit; end else hl:= qry_RunSql.fieldbyname('hl').asfloat/100; //处理明细行 //匹配国税编码及名称 qry.Close; qry.SQL.Text:='select * from tblCmcode where code=:code'; qry.Parameters.ParamByName('code').value:=ADOQuery_Excel.fieldbyname('HS编码').AsString; qry.Open; //只考虑FOB情况 zj:= ADOQuery_Excel.fieldbyname('报关金额').AsFloat; usd_hz:=usd_hz +strtofloat(format('%0.2f', [zj])); zj_rmb:= hl * zj; zj_rmb:= strtofloat(format('%0.2f', [zj_rmb])); dj_rmb:= zj_rmb / ADOQuery_Excel.fieldbyname('报关数量').AsFloat; rmb_hz:= rmb_hz + zj_rmb; //处理汇总差异 usd_hz_rmb:=strtofloat(format('%0.2f', [usd_hz* hl])); //汇总美元金额 直接 乘以 汇率 if j = hangshu then begin chayi:= usd_hz_rmb - rmb_hz; chayi:= strtofloat(format('%0.2f', [chayi])); end; //处理人民币合计 capital_hz:= MoneyConvert(usd_hz_rmb); sql_mx:= 'insert into wxInvoiceDetail(invCode,invNumber,hscode,goodsName,model,unit,price,quantity,amount,'+ 'gscode,gsname,depname,rmb_dj,jsAmount,XH) values(''' + code + ''',''' + number + ''',''' + ADOQuery_Excel.fieldbyname('HS编码').AsString + ''',''' + ADOQuery_Excel.fieldbyname('报关品名').AsString + ''',''' + ADOQuery_Excel.fieldbyname('规格型号').AsString + ''',''' + '个' + ''',' + ADOQuery_Excel.fieldbyname('报关单价').AsString + ',' + ADOQuery_Excel.fieldbyname('报关数量').AsString + ',' + format('%0.2f', [zj]) + ',''' + qry.fieldbyname('GScode').AsString + ''',''' + qry.fieldbyname('name').AsString + ''',''' + qry.fieldbyname('depname').AsString + ''',' + format('%0.6f', [dj_rmb]) + ',' + format('%0.2f', [zj_rmb+chayi]) + ',''' + inttostr(j) + ''')' ; j:=j+1; cmd.CommandText := sql_mx; cmd.Execute(); //处理表头信息 qry1.Close; qry1.SQL.Text:='select top 1 * from tblCompany'; qry1.Open; strSql:= 'insert into wxInvoice(taxNumber,invType,invCode,invNumber,kpDate,bgd_no,clientCode,CustName,amt,operator,payee,fhr,remark,'+ 'crny,exchange,rmb,contractNo,jckrq,capital) values(''' + '91330201610258252F.1' + ''',''' + '27310' + ''',''' + code + ''',''' + Number + ''',''' + kprq + ''',''' + ADOQuery_Excel.fieldbyname('内部发票号').AsString + ''',''' + ADOQuery_Excel.fieldbyname('客户名称').AsString + ''',''' + ADOQuery_Excel.fieldbyname('客户名称').AsString + ''',' + formatfloat('0.00',usd_hz) + ',''' + qry1.fieldbyname('kpr').AsString + ''',''' + qry1.fieldbyname('skr').AsString + ''',''' + qry1.fieldbyname('fhr').AsString + ''',''' + ADOQuery_Excel.fieldbyname('备注').AsString + ''',''' + ADOQuery_Excel.fieldbyname('币别').AsString + ''',' + floattostr(hl*100) + ',''' + formatfloat('0.00',usd_hz_rmb) + ''',''' + ADOQuery_Excel.fieldbyname('合同号').AsString + ''',''' + kprq + ''',''' + capital_hz + ''')' ; //strSql := StringReplace(strSql, '''','''''', [rfReplaceAll]); cmd.CommandText := strSql; cmd.Execute(); //更新库存,并以此为基准更新国税库存 strSql := 'update wxFpkc set remain=remain-1'; cmd.CommandText := strSql; cmd.Execute(); strSql := 'update wxFpkc ' + ' set crtNumber= right( ''00000000'' +cstr( cdbl(endNumber )-remain +1) ,8) '; cmd.CommandText := strSql; cmd.Execute(); strSql := 'delete from wxFpkc where remain=0'; cmd.CommandText := strSql; cmd.Execute(); fapiao:= ADOQuery_Excel.FieldValues['内部发票号']; end; ADOQuery_Excel.Next; // 更新发票库存 end; ADOConnection1.CommitTrans; //*******//提交到后台数据库 end; end; except ADOConnection1.RollbackTrans; showmessage(e.Message); ADOConnection1.Connected:=false; ADOConnection_Excel.Connected:=False; end; ADOConnection_Excel.Connected:=False; // ADOConnection1.endtrans; ADOConnection1.Connected:=false; showmessage('导入成功!'); btnOpen.Enabled :=true; end; end; ```
相见恨晚的超实用网站
相见恨晚的超实用网站 持续更新中。。。
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
有哪些让程序员受益终生的建议
从业五年多,辗转两个大厂,出过书,创过业,从技术小白成长为基层管理,联合几个业内大牛回答下这个问题,希望能帮到大家,记得帮我点赞哦。 敲黑板!!!读了这篇文章,你将知道如何才能进大厂,如何实现财务自由,如何在工作中游刃有余,这篇文章很长,但绝对是精品,记得帮我点赞哦!!!! 一腔肺腑之言,能看进去多少,就看你自己了!!! 目录: 在校生篇: 为什么要尽量进大厂? 如何选择语言及方...
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 free -m 其中:m表示兆,也可以用g,注意都要小写 Men:表示物理内存统计 total:表示物理内存总数(total=used+free) use...
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入 假设现有4个人...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发...
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 演示地点演示 html代码如下` music 这个年纪 七月的风 音乐 ` 然后就是css`*{ margin: 0; padding: 0; text-decoration: none; list-...
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。
数据库优化 - SQL优化
以实际SQL入手,带你一步一步走上SQL优化之路!
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 cpp 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7 p...
通俗易懂地给女朋友讲:线程池的内部原理
餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
将代码部署服务器,每日早上定时获取到天气数据,并发送到邮箱。 也可以说是一个小型人工智障。 知识可以运用在不同地方,不一定非是天气预报。
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
英特尔不为人知的 B 面
从 PC 时代至今,众人只知在 CPU、GPU、XPU、制程、工艺等战场中,英特尔在与同行硬件芯片制造商们的竞争中杀出重围,且在不断的成长进化中,成为全球知名的半导体公司。殊不知,在「刚硬」的背后,英特尔「柔性」的软件早已经做到了全方位的支持与支撑,并持续发挥独特的生态价值,推动产业合作共赢。 而对于这一不知人知的 B 面,很多人将其称之为英特尔隐形的翅膀,虽低调,但是影响力却不容小觑。 那么,在...
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹...
面试官:你连RESTful都不知道我怎么敢要你?
干货,2019 RESTful最贱实践
刷了几千道算法题,这些我私藏的刷题网站都在这里了!
遥想当年,机缘巧合入了 ACM 的坑,周边巨擘林立,从此过上了"天天被虐似死狗"的生活… 然而我是谁,我可是死狗中的战斗鸡,智力不够那刷题来凑,开始了夜以继日哼哧哼哧刷题的日子,从此"读题与提交齐飞, AC 与 WA 一色 ",我惊喜的发现被题虐既刺激又有快感,那一刻我泪流满面。这么好的事儿作为一个正直的人绝不能自己独享,经过激烈的颅内斗争,我决定把我私藏的十几个 T 的,阿不,十几个刷题网...
SQL-小白最佳入门sql查询一
不要偷偷的查询我的个人资料,即使你再喜欢我,也不要这样,真的不好;
JavaScript 为什么能活到现在?
作者 | 司徒正美 责编 |郭芮 出品 | CSDN(ID:CSDNnews) JavaScript能发展到现在的程度已经经历不少的坎坷,早产带来的某些缺陷是永久性的,因此浏览器才有禁用JavaScript的选项。甚至在jQuery时代有人问出这样的问题,jQuery与JavaScript哪个快?在Babel.js出来之前,发明一门全新的语言代码代替JavaScript...
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
致 Python 初学者
欢迎来到“Python进阶”专栏!来到这里的每一位同学,应该大致上学习了很多 Python 的基础知识,正在努力成长的过程中。在此期间,一定遇到了很多的困惑,对未来的学习方向感到迷茫。我非常理解你们所面临的处境。我从2007年开始接触 python 这门编程语言,从2009年开始单一使用 python 应对所有的开发工作,直至今天。回顾自己的学习过程,也曾经遇到过无数的困难,也曾经迷茫过、困惑过。开办这个专栏,正是为了帮助像我当年一样困惑的 Python 初学者走出困境、快速成长。希望我的经验能真正帮到你
Python 编程开发 实用经验和技巧
Python是一门很灵活的语言,也有很多实用的方法,有时候实现一个功能可以用多种方法实现,我这里总结了一些常用的方法和技巧,包括小数保留指定位小数、判断变量的数据类型、类方法@classmethod、制表符中文对齐、遍历字典、datetime.timedelta的使用等,会持续更新......
吐血推荐珍藏的Visual Studio Code插件
作为一名Java工程师,由于工作需要,最近一个月一直在写NodeJS,这种经历可以说是一部辛酸史了。好在有神器Visual Studio Code陪伴,让我的这段经历没有更加困难。眼看这段经历要告一段落了,今天就来给大家分享一下我常用的一些VSC的插件。 VSC的插件安装方法很简单,只需要点击左侧最下方的插件栏选项,然后就可以搜索你想要的插件了。 下面我们进入正题 Material Theme ...
实战:如何通过python requests库写一个抓取小网站图片的小爬虫
有点爱好的你,偶尔应该会看点图片文字,最近小网站经常崩溃消失,不如想一个办法本地化吧,把小照片珍藏起来! 首先,准备一个珍藏的小网站,然后就可以开始啦! 第一步 我们先写一个获取网站的url的链接,因为url常常是由page或者,其他元素构成,我们就把他分离出来,我找到的网站主页下有图片区 图片区内有标题页,一个标题里有10张照片大概 所以步骤是: 第一步:进入图片区的标题页 def getH...
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
程序员:我终于知道post和get的区别
是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU...
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1...
相关热词 c#委托 逆变与协变 c#新建一个项目 c#获取dll文件路径 c#子窗体调用主窗体事件 c# 拷贝目录 c# 调用cef 网页填表c#源代码 c#部署端口监听项目、 c#接口中的属性使用方法 c# 昨天
立即提问