Вниз
Скачать: CL | DM;

help please   Найти похожие ветки 

 
nika_ufc ©   (2002-11-05 02:50) [0]

Я читаю и пишу программу из статьи:Изучение простейших приемов работы с файлами и потоками на примере программы «Монитор каталогов», но есть проблеми,вот и они:
Яприиеду отривок из статьи:


В меню Delphi File выберем New


 
nika_ufc ©   (2002-11-05 03:20) [1]

ufMain:

unit ufMain;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, ComCtrls, StdCtrls, Menus;

type
TfMonDirMain = class(TForm)
mm: TMainMenu;
lbLog: TListBox;
sbMain: TStatusBar;
tmDate: TTimer;
Monitor1: TMenuItem;
mmExit: TMenuItem;
mmStart: TMenuItem;
mmStop: TMenuItem;
procedure tmDateTimer(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure mmExitClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
fMonDirMain: TfMonDirMain;

implementation

{$R *.dfm}


procedure TfMonDirMain.tmDateTimer(Sender: TObject);
begin
sbMain.Panels[0].Text:=FormatDateTime("dd.mm.yyyy hh:nn:ss",Now)
end;

procedure TfMonDirMain.FormCreate(Sender: TObject);
begin
tmDateTimer(Self);
sbMain.Panels[1].Text:="disconnected";
Application.Title:="Directory monitor"
end;


procedure TfMonDirMain.mmExitClick(Sender: TObject);
begin
Close
end;

end.

uMonThread:


unit ufMain;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, ComCtrls, StdCtrls, Menus;

type
TfMonDirMain = class(TForm)
mm: TMainMenu;
lbLog: TListBox;
sbMain: TStatusBar;
tmDate: TTimer;
Monitor1: TMenuItem;
mmExit: TMenuItem;
mmStart: TMenuItem;
mmStop: TMenuItem;
procedure tmDateTimer(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure mmExitClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
fMonDirMain: TfMonDirMain;

implementation

{$R *.dfm}


procedure TfMonDirMain.tmDateTimer(Sender: TObject);
begin
sbMain.Panels[0].Text:=FormatDateTime("dd.mm.yyyy hh:nn:ss",Now)
end;

procedure TfMonDirMain.FormCreate(Sender: TObject);
begin
tmDateTimer(Self);
sbMain.Panels[1].Text:="disconnected";
Application.Title:="Directory monitor"
end;


procedure TfMonDirMain.mmExitClick(Sender: TObject);
begin
Close
end;

end.



 
nika_ufc ©   (2002-11-05 03:34) [2]

uMonThread:

unit uMonThread;

interface

uses
Classes;

type
TMonDirThread = class(TThread)
public
constructor TMonDirThread.Create(aPath: String);
destructor Destroy; override;
private
{ Private declarations }
protected
procedure Execute; override;
end;

implementation

{ Important: Methods and properties of objects in VCL or CLX can only be used
in a method called using Synchronize, for example,

Synchronize(UpdateCaption);

and UpdateCaption could look like,

procedure TMonDirThread.UpdateCaption;
begin
Form1.Caption := "Updated in a thread";
end; }

{ TMonDirThread }

procedure TMonDirThread.Execute;
begin
{ Place thread code here }
end;
constructor TMonDirThread.Create(aPath: String);
begin
inherited Create(True);
FreeOnTerminate:=True;
FPath:=aPath;
Self.Priority:=tpHighest;
Resume;
end;


end.



 
Dr_Mike ©   (2002-11-05 03:41) [3]

Строка 11:
Нельзя писать в объявлении класса так, как пишешь ты
constructor TMonDirThread.Create(aPath: String);
сам класс указывать не нужно!!!
напиши просто constructor Create(aPath: String);
и сразу решатся все проблемы.


 
Dr_Mike ©   (2002-11-05 03:45) [4]

Должно быть так:

TMonDirThread = class(TThread)
public
constructor Create(aPath: String);
destructor Destroy; override;
protected
procedure Execute; override;
end;


 
Dr_Mike ©   (2002-11-05 03:48) [5]

И зачем только пытаться определять деструктор потока ???
Убираем еще одну лишнюю строку:

TMonDirThread = class(TThread)
public
constructor Create(aPath: String);
protected
procedure Execute; override;
end;



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.012 c
3-45756
FireWorks
2002-10-25 11:14
2002.11.14
ADO.Parameters


3-45749
kalan
2002-10-25 04:37
2002.11.14
Работа с клиентским набором данных


3-45700
Duke2
2002-10-23 20:45
2002.11.14
Как осуществить поиск в индексе, построенном по двум полям в DBF


14-46150
Nico1a
2002-10-28 17:44
2002.11.14
DLL


1-45838
Z_man7777
2002-11-01 12:49
2002.11.14
Помогите найти!!!




   Наверх