代码是用 Delphi XE 编写的。在代码中-当软件关闭时-发出通常的请求(窗口)-退出(y / n)?当重新启动 PC \ Srv 时,它开始询问 - 没有完成的应用程序,只是参考它 - 例如请求窗口(但已经在重新启动过程中,窗口本身没有显示)。
如何以及在何处将 Form OnClose\Destroy 中的代码插入到项目中,以便软件知道不是用户关闭它,而是被反驳?因此,没有任何问题被问到并结束。
代码是用 Delphi XE 编写的。在代码中-当软件关闭时-发出通常的请求(窗口)-退出(y / n)?当重新启动 PC \ Srv 时,它开始询问 - 没有完成的应用程序,只是参考它 - 例如请求窗口(但已经在重新启动过程中,窗口本身没有显示)。
如何以及在何处将 Form OnClose\Destroy 中的代码插入到项目中,以便软件知道不是用户关闭它,而是被反驳?因此,没有任何问题被问到并结束。
在 Dos 时代,有这样一个程序 balon.exe,它可以创建指定大小的文件(尽管那里仍然写入随机字节)。很明显,在 Delphi 中重复这一点并不难。问题:是否可以在 D 上创建一个文件,之前为它分配了一个卷(不写入数据)?如果“是”,那么我会很高兴看到一个例子。
类型(条件)
CreateFile(f,'d:\My.txt');
SetFileSize(f,1024); // 1kb
CloseFile(f);
如果没有,这样的方法是否存在?例如 - 就像在 Hyper-V \ VMware 中创建虚拟磁盘时一样 - 选项之一是立即分配空间(文件立即创建),或者例如,对于 torrent 客户端 - 选项是在下载时分配空间对于文件(我不确定这里)。
++我们正在谈论 Win 10 Ltsc
这个问题是理论上的,我无法测试它。
有一个程序 Delphi (10.3),模块连接在里面
uses m1 {там type tm000=string}, m2 {там type tm000=integer};
type tm000=byte; {local}
var v:tm000;
begin
// тут узнать тип переменной v
end;
end.
Delphi xx 10. 表格。就可以了 - 即组件和按钮。
我们开始,一切正常。
问题。
如何在点击按钮时激活 IE 中的搜索框。
添加。如果我们启动表单,(重要 - 我们将光标转移到 IE 窗口)我们在那里按 ctrl + f - 我们得到 std。IE 中的搜索框(好吧,按窗口搜索)。
那些。您需要在其中调用搜索而不将焦点放在 IE 窗口(嗯,即标准搜索窗口)上。
添加。- 提前或改变。搜索,即 不开窗。
++ 好吧,比如“超级”——使用第二个按钮来查找您要查找的内容(例如,带有“代码”的 e.2 按钮来查找“文本”,当按下时,它与当搜索 - 文本在窗口中移动,“文本”被突出显示。
D 10.1 启动器。标准应用。选项包括皮肤。问题:如何以编程方式查明当前是否应用了某种设计方案或标准设计风格?
如果应用了方案,那么在项目文件中我们会看到(例如):
...
TStyleManager.TrySetStyle('Amethyst Kamri'); *
...
如果在项目选项中选择了方案,但默认设计设置为“Windows”,则项目中没有类似的 (*)
你需要这样的功能
Function IsAppThemed:boolean;
begin
Result := <..?..>
end;
{固定 03.05,请参阅“!!!” 用于更正} D 10. 这是课程
TMy=class
{public\publicher}
a:integer;
sl:TStringlist;
end;
TMyF=class
{public\publicher} // тут читаю - http://www.delphibasics.ru/Public.php - в1: объясните разницу?
i:integer;
s:string;
My:TMy;
end;
var MyF:TMyF;
!!!{my:TMy;} {вот это не надо, исправления от 03.05.17}
利用
..begin
MyF:=TMyF.create;
!!!{my:=MyF.tMy.create;} {это не правильно, исправление от 03.05.17}
MyF.My:=MyF.tMy.create; // Правильно ли создаю и надо ли если основной клаcс уже есть? т.е. без этой строки могу ли уже обращаться к MyF.My.. подклассам A,SL?}
...
MyF.free; // В2. Если я тут класс уничтожаю, в котором TMy родился - память и он сам уничтожится? (или перед этим надо myf.my.free делать?)
end;
想必很多人已经知道,Delphi 10.2 Tokyo 的新版本已经发布,其主要亮点就是这样一个期待已久的 Linux 编译器(万岁,万岁!)。
https://community.embarcadero.com/blogs/entry/rad-studio-10-2-tokyo
和
https://www.embarcadero.com/products/rad-studio/whats-new-in-10-2-tokyo
撤退:
在这里,完全(到目前为止)免费,您可以下载 Starter 版本,订阅并访问网站的内部资源 https://www.embarcadero.com/ru/products/delphi/starter/promotional-下载 (类似于http://habrahabr.net/thread/372)注册,通过邮件接收密钥并下载安装程序。在启动时(开火) - 它会拖得更多,通过你将进行注册的密钥。阅读网站上版本之间的差异(创新不全!)。但!我想每个人都应该有一个注册的免费 版本:)
当然,您总是有一个免费的 Lazarus ( https://ru.wikipedia.org/wiki/Lazarus ),顺便说一句,非常感谢它的开发人员,但在这里......
问题:
10.1u2(berlin) 以同样的方式安装。下载和安装新版本时,它看不到旧版本,而是放在它旁边。如何将旧版本升级到新版本?在完整版本中,他们建议最近拆除所有内容。在这里免费-也没有可能吗?
关于树和节点的问题。
我正在尝试学习 TreeView。另外,我认为这将是初学者学习时的一个很好的指南,因为。信息非常稀缺。
现在有这样一段代码(这是我对组件的最大了解(源代码本身,我也可以把它扔到我需要的地方,以免手动输入。环境D10,启动器)):
阅读了什么以及下面的例子是从哪里编译的
{开始}
http://www.delphisources.ru/forum/showthread.php?t=23601
http://www.cyberforum.ru/delphi-firemonkey/thread1111428.html
http://www.programmersforum.ru/showthread.php?t=192541
加:在某处对电视本身的描述,我记得像“您可以向其中添加物品和对象,但是,在销毁物品之后,对象本身不会被销毁”
{结束}
图片。
编码。
unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, System.ImageList, Vcl.ImgList,
Vcl.StdCtrls, Vcl.ComCtrls;
type
TForm1 = class(TForm)
tv1: TTreeView;
Button1: TButton;
Button2: TButton;
Button3: TButton;
ImageList1: TImageList;
Button4: TButton;
Edit1: TEdit;
Button5: TButton;
Button6: TButton;
procedure Button1Click(Sender: TObject);
procedure tv1Change(Sender: TObject; Node: TTreeNode);
procedure Button4Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
Type
TMyNode=record
nom:integer;
comm:string[100];
end;
TMyNode2 = class
public
nom: Integer;
comm: String;
end;
var
Form1: TForm1;
MyNode:TMyNode;
MyNode2:TMyNode2;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject); // add node
var x: TTreeNode;
begin
x:=tv1.Items.Add(tv1.Selected,edit1.Text+' '+inttostr(round(random(100))));
x.ImageIndex:=1;x.SelectedIndex:=x.ImageIndex;x.StateIndex:=x.ImageIndex;
end;
procedure TForm1.Button4Click(Sender: TObject); // add child node
var x: TTreeNode;
begin
x:=tv1.Items.AddChild(tv1.Selected,'Child '+edit1.Text+' '+inttostr(round(random(100))));
x.ImageIndex:=2;x.SelectedIndex:=x.ImageIndex;x.StateIndex:=x.ImageIndex;
tv1.Selected.Expand(true);x.Selected:=true;x.Expand(true);
end;
procedure TForm1.Button2Click(Sender: TObject); // del node (if not 1st)
var x,y: TTreeNode;
begin
y:=tv1.Items[0];x:=tv1.Selected;
if x<>y then x.Delete else showmessage('Do not del 1st node!');
end;
procedure TForm1.Button3Click(Sender: TObject); // add node (v.2 as object)
var x: TTreeNode;
begin
{ **** // !!!!!!!!!!!!!
MyNode.nom:=1;
MyNode.comm:='mytest comment';
}
MyNode2:=TMyNode2.Create;
MyNode2.nom:=round(random(1000));
MyNode2.comm:=inttostr(MyNode2.nom)+' comment '+inttostr(MyNode2.nom);
x:=tv1.Items.AddObject(tv1.Selected,edit1.Text+' '+inttostr(round(random(1000))),pointer(MyNode2{MyNode})); // **** // !!!!!!!!!!!!!
x.ImageIndex:=3;x.SelectedIndex:=x.ImageIndex;x.StateIndex:=x.ImageIndex;
tv1.Selected.Expand(true);x.Selected:=true;x.Expand(true);
end;
procedure TForm1.Button5Click(Sender: TObject); // add child node (v.2 as object)
var x: TTreeNode;
begin
MyNode2:=TMyNode2.Create;
MyNode2.nom:=round(random(1000));
MyNode2.comm:=inttostr(MyNode2.nom)+' child comment '+inttostr(MyNode2.nom);
x:=tv1.Items.AddChildObject(tv1.Selected,edit1.Text+' '+inttostr(round(random(1000))),pointer(MyNode2));
x.ImageIndex:=4;x.SelectedIndex:=x.ImageIndex;x.StateIndex:=x.ImageIndex;
tv1.Selected.Expand(true);x.Selected:=true;x.Expand(true);
end;
procedure TForm1.Button6Click(Sender: TObject); // del node (if not 1st) and "as" object
var x,y: TTreeNode;
begin
y:=tv1.Items[0];x:=tv1.Selected;
if x<>y then begin
//class(x.tMyNode2(node.Data)).Free; // **** // !!!!!!!!!!!!!!!
x.Delete;
end else showmessage('Do not del 1st node!');
end;
procedure TForm1.FormCreate(Sender: TObject); // on create - add data 2 1st node
var x: TTreeNode;
begin
MyNode2:=TMyNode2.Create;
MyNode2.nom:=100001;
MyNode2.comm:='1st node comment';
x:=tv1.Items[0];
x.Data:=pointer(MyNode2);
end;
procedure TForm1.tv1Change(Sender: TObject; Node: TTreeNode); // look node prop.
begin
if Node=nil then Caption:='Not select' else
if Node.Data=nil then Caption:=Format('Nom: %d, Im.Ind: %d',[Integer(Node.Index),Integer(Node.ImageIndex)])
else
Caption:=Format('Nom: %d, Im.Ind: %d, MyNode.Nom: %d, Comm: %s',[Integer(Node.Index),Integer(Node.ImageIndex),integer(TMyNode2(node.Data).nom), string(TMyNode2(node.Data).comm)]);
end;
end.
在代码中 - 用于添加/删除项目的 2 个选项,正常和对象。 第一个选项没有问题。但是随着第二个的移除 - 是的。
问题:
在 button3.click 中(标有 // **** // !!!!!!!!!!!!!!) - 为什么不能插入到条目的链接,而只能插入到类?描述说“你可以使用对任何对象的引用”
最重要的是,删除对象的问题令人担忧 - 百分比。Button6Click - 它嵌入在那里。插头在哪里。展示如何正确地删除带有一个对象(或仅一个对象)的节点,如果您从树中删除一个项目,该对象是否会保留?
一切都正确吗?我所知道的关于电视的一切都在这里。也许某处有问题?
单独的奖金。
谢谢你。