Форум: "Основная";
Текущий архив: 2002.11.14;
Скачать: [xml.tar.bz2];
Вниз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 вся ветка
Форум: "Основная";
Текущий архив: 2002.11.14;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.007 c