usesForms, Unit1 in'UNIT1.PAS' {Form1}, Unit2 in'UNIT2.PAS' {SplashScreen};
{$R *.RES}
varx: longint;
begin
SplashScreen:= TSplashScreen.Create(Application);
SplashScreen.Show;SplashScreen.Refresh;
forx:= 1 to10000000 do begin
x:=x;
x:=x;
end;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
{UNIT1.PAS}
unitUnit1;
interface
usesSysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls, Forms, Dialogs, unit2;
typeTForm1 = class(TForm)
procedureFormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
varForm1: TForm1;
implementation
{$R *.DFM}
procedureTForm1.FormShow(Sender: TObject);
begin
splashscreen.free;
end;
end.
{UNIT2.PAS}
unitUnit2;
interface
usesSysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls;
typeTSplashScreen = class(TForm)
Panel1: TPanel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Shape1: TShape;
Shape2: TShape;
Shape3: TShape;
private
{ Private declarations }
public
{ Public declarations }
end;
varSplashScreen: TSplashScreen;
implementation
{$R *.DFM}
end.
Как правильно закрыть и удалить форму? Почему моя MDI Child форма при закрывании просто минимизируется?
Своим опытом делится Nomadic:
A: Обрабатывайте событие OnClose для формы и выставляйте в нем параметр Action в caFree. Дело в том, что его значение по умолчанию для MDI Child форм caMinimize. Кстати, если сделать Action := caNone, то форму нельзя будет закрыть.
Как установить максимальный и минимальный размер формы
Если вы хотите контролировать изменение пользователем размера вашей формы, воспользуйтесь установкой значения MinMax. (Если для этих целей вы используете метод resize, это работает, но выглядит не так хорошо.)
Примечание: Чтобы совсем запретить пользователю изменять размеры формы, задайте одинаковые значения для ее минимального и максимального значения. Вот пример того, как можно объявить и использовать в вашем приложении обработку системного сообщения wm_GetMinMaxInfo:
unitMinMax;
interface
usesSysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls, Forms, Dialogs;
typeTForm1 = class(TForm)
private
{ Private declarations }
procedureWMGetMinMaxInfo( varMSG: Tmessage); messageWM_GetMinMaxInfo;
public
{ Public declarations }
end;
varForm1: TForm1;
implementation
{$R *.DFM}
procedureTForm1.WMGetMinMaxInfo( varMSG: Tmessage);
Begin
inherited;
withPMinMaxInfo(MSG.lparam)^ do begin
withptMinTrackSize do begin
X := 300;
Y := 150;
end;
withptMaxTrackSize do begin
X := 350;
Y := 250;
end;
end;
end;
end.
Кто-нибудь имел какие-нибудь проблемы при использовании модуля TIniFile? Я думаю здесь какая-то детская проблема с кэшированием!!!
Вот что я делал:
(* c:\test.ini уже существует *)
myIni := TIniFile.Create('c:\test.ini');
WithmyIni do begin
…. (добавляем новую секцию в test.ini
end;
myIni.Free;
RenameFile('c:\test.ini', 'c:\test1.ini');
Что я получил:
1. test1.ini НЕ ИМЕЕТ добавленной мною секции;
2. всякий раз при создании или открытии нового файла в том же самом каталоге с помощью File Manager, 'c:\test.ini' появляется вновь, и у него СУЩЕСТВУЕТ секция, которую я добавлял.
Я решил эту проблему добавлением следующей строки перед IniFile.Free:
WritePrivateProfileString( nil, nil, nil, PChar(IniFileName));
Для получения дополнительной информации обратитесь к электронной справке к разделу 'WritePrivateProfileString'.
– Tony Chang
Как создать Ini-файл в директории программы?
По умолчанию ini-файл создается в Windows-директории (например: TIniFile.Create('MFile.ini')), что приводит к «захламлению» оной. Более (эко-)логично (за исключением случаев, когда программа делается для CD-ROM) если ini-файл создается в той же директории что и главная программа. Вот пример чтения и записи ini файла из директории программы:
Читать дальше