mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-11-10 07:30:16 +01:00
added new package lazthread from Carlos German Tejero
git-svn-id: trunk@12345 -
This commit is contained in:
parent
f20081a879
commit
dc9ea5da5c
7
.gitattributes
vendored
7
.gitattributes
vendored
@ -502,6 +502,12 @@ components/lazreport/source/lr_view.lrs svneol=native#text/plain
|
|||||||
components/lazreport/source/lr_view.pas svneol=native#text/pascal
|
components/lazreport/source/lr_view.pas svneol=native#text/pascal
|
||||||
components/lazreport/source/sysutilsadds.pas svneol=native#text/pascal
|
components/lazreport/source/sysutilsadds.pas svneol=native#text/pascal
|
||||||
components/lazreport/tools/localize.sh svneol=native#text/plain
|
components/lazreport/tools/localize.sh svneol=native#text/plain
|
||||||
|
components/lazthread/lazthread.lpk svneol=native#text/plain
|
||||||
|
components/lazthread/lazthread.pas svneol=native#text/plain
|
||||||
|
components/lazthread/reglazthread.pas svneol=native#text/plain
|
||||||
|
components/lazthread/threadoptionsdialog.lfm svneol=native#text/plain
|
||||||
|
components/lazthread/threadoptionsdialog.lrs svneol=native#text/plain
|
||||||
|
components/lazthread/threadoptionsdialog.pas svneol=native#text/plain
|
||||||
components/macfiles/Makefile svneol=native#text/plain
|
components/macfiles/Makefile svneol=native#text/plain
|
||||||
components/macfiles/Makefile.fpc svneol=native#text/plain
|
components/macfiles/Makefile.fpc svneol=native#text/plain
|
||||||
components/macfiles/examples/Readme.txt svneol=native#text/plain
|
components/macfiles/examples/Readme.txt svneol=native#text/plain
|
||||||
@ -3150,6 +3156,7 @@ packager/globallinks/lazcustomform-0.lpl svneol=native#text/plain
|
|||||||
packager/globallinks/lazdaemon-0.lpl svneol=native#text/plain
|
packager/globallinks/lazdaemon-0.lpl svneol=native#text/plain
|
||||||
packager/globallinks/lazopenglcontext-0.lpl svneol=native#text/plain
|
packager/globallinks/lazopenglcontext-0.lpl svneol=native#text/plain
|
||||||
packager/globallinks/lazreport-0.9.5.lpl svneol=native#text/plain
|
packager/globallinks/lazreport-0.9.5.lpl svneol=native#text/plain
|
||||||
|
packager/globallinks/lazthread-0.lpl svneol=native#text/plain
|
||||||
packager/globallinks/macosfiles-0.lpl svneol=native#text/plain
|
packager/globallinks/macosfiles-0.lpl svneol=native#text/plain
|
||||||
packager/globallinks/popupnotifierlaz-0.lpl svneol=native#text/plain
|
packager/globallinks/popupnotifierlaz-0.lpl svneol=native#text/plain
|
||||||
packager/globallinks/prettyformat-0.lpl svneol=native#text/plain
|
packager/globallinks/prettyformat-0.lpl svneol=native#text/plain
|
||||||
|
|||||||
54
components/lazthread/lazthread.lpk
Normal file
54
components/lazthread/lazthread.lpk
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<CONFIG>
|
||||||
|
<Package Version="3">
|
||||||
|
<Name Value="lazthread"/>
|
||||||
|
<Author Value="Carlos German Tejero"/>
|
||||||
|
<CompilerOptions>
|
||||||
|
<Version Value="5"/>
|
||||||
|
<SearchPaths>
|
||||||
|
<UnitOutputDirectory Value="lib/$(TargetCPU)-$(TargetOS)"/>
|
||||||
|
</SearchPaths>
|
||||||
|
<CodeGeneration>
|
||||||
|
<Generate Value="Faster"/>
|
||||||
|
</CodeGeneration>
|
||||||
|
<Other>
|
||||||
|
<CompilerPath Value="$(CompPath)"/>
|
||||||
|
</Other>
|
||||||
|
</CompilerOptions>
|
||||||
|
<Description Value="Extends IDE with a new unit type.
|
||||||
|
"/>
|
||||||
|
<License Value="modified LGPL. See the file COPYING.modifiedLGPL for details.
|
||||||
|
"/>
|
||||||
|
<Files Count="2">
|
||||||
|
<Item1>
|
||||||
|
<Filename Value="reglazthread.pas"/>
|
||||||
|
<HasRegisterProc Value="True"/>
|
||||||
|
<UnitName Value="RegLazThread"/>
|
||||||
|
</Item1>
|
||||||
|
<Item2>
|
||||||
|
<Filename Value="threadoptionsdialog.pas"/>
|
||||||
|
<UnitName Value="ThreadOptionsDialog"/>
|
||||||
|
</Item2>
|
||||||
|
</Files>
|
||||||
|
<Type Value="RunAndDesignTime"/>
|
||||||
|
<RequiredPkgs Count="3">
|
||||||
|
<Item1>
|
||||||
|
<PackageName Value="IDEIntf"/>
|
||||||
|
</Item1>
|
||||||
|
<Item2>
|
||||||
|
<PackageName Value="FCL"/>
|
||||||
|
<MinVersion Major="1" Valid="True"/>
|
||||||
|
</Item2>
|
||||||
|
<Item3>
|
||||||
|
<PackageName Value="LCL"/>
|
||||||
|
</Item3>
|
||||||
|
</RequiredPkgs>
|
||||||
|
<UsageOptions>
|
||||||
|
<UnitPath Value="$(PkgOutDir)/"/>
|
||||||
|
</UsageOptions>
|
||||||
|
<PublishOptions>
|
||||||
|
<Version Value="2"/>
|
||||||
|
<IgnoreBinaries Value="False"/>
|
||||||
|
</PublishOptions>
|
||||||
|
</Package>
|
||||||
|
</CONFIG>
|
||||||
21
components/lazthread/lazthread.pas
Normal file
21
components/lazthread/lazthread.pas
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
{ This file was automatically created by Lazarus. Do not edit!
|
||||||
|
This source is only used to compile and install the package.
|
||||||
|
}
|
||||||
|
|
||||||
|
unit lazthread;
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
uses
|
||||||
|
RegLazThread, ThreadOptionsDialog, LazarusPackageIntf;
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
procedure Register;
|
||||||
|
begin
|
||||||
|
RegisterUnit('RegLazThread', @RegLazThread.Register);
|
||||||
|
end;
|
||||||
|
|
||||||
|
initialization
|
||||||
|
RegisterPackage('lazthread', @Register);
|
||||||
|
end.
|
||||||
146
components/lazthread/reglazthread.pas
Normal file
146
components/lazthread/reglazthread.pas
Normal file
@ -0,0 +1,146 @@
|
|||||||
|
{
|
||||||
|
*****************************************************************************
|
||||||
|
* *
|
||||||
|
* See the file COPYING.modifiedLGPL, included in this distribution, *
|
||||||
|
* for details about the copyright. *
|
||||||
|
* *
|
||||||
|
* This program is distributed in the hope that it will be useful, *
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
|
||||||
|
* *
|
||||||
|
*****************************************************************************
|
||||||
|
}
|
||||||
|
|
||||||
|
unit RegLazThread;
|
||||||
|
|
||||||
|
{$mode objfpc}{$H+}
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
uses
|
||||||
|
Classes, SysUtils, ProjectIntf, LazIdeIntf;
|
||||||
|
|
||||||
|
type
|
||||||
|
{ TThreadFileDescriptor }
|
||||||
|
TThreadFileDescriptor = class(TFileDescPascalUnit)
|
||||||
|
private
|
||||||
|
FThreadCount:integer;
|
||||||
|
FThreadName :string;
|
||||||
|
function GetNextThreadName:string;
|
||||||
|
function GetCurrentThreadName:string;
|
||||||
|
public
|
||||||
|
constructor Create; override;
|
||||||
|
function GetLocalizedName : string; override;
|
||||||
|
function GetLocalizedDescription : string; override;
|
||||||
|
function GetInterfaceSource(const Filename, SourceName, ResourceName: string): string; override;
|
||||||
|
function GetImplementationSource(const Filename, SourceName, ResourceName: string): string; override;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure register;
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
uses
|
||||||
|
Controls, ThreadOptionsDialog;
|
||||||
|
|
||||||
|
resourcestring
|
||||||
|
SThreadName = 'Thread Object';
|
||||||
|
SThreadDescription = 'A Pascal unit with a subclass of TThread class';
|
||||||
|
|
||||||
|
//---------------//
|
||||||
|
procedure register;
|
||||||
|
begin
|
||||||
|
RegisterProjectFileDescriptor(TThreadFileDescriptor.Create, FileDescGroupName);
|
||||||
|
end;
|
||||||
|
|
||||||
|
{ TThreadFileDescriptor }
|
||||||
|
|
||||||
|
//-------------------------------------//
|
||||||
|
constructor TThreadFileDescriptor.Create;
|
||||||
|
begin
|
||||||
|
inherited Create;
|
||||||
|
Name := SThreadName;
|
||||||
|
FThreadCount := 1;
|
||||||
|
FThreadName := TThread.ClassName;
|
||||||
|
end;
|
||||||
|
|
||||||
|
//-----------------------------------------------------//
|
||||||
|
function TThreadFileDescriptor.GetNextThreadName: string;
|
||||||
|
var
|
||||||
|
ThreadOptionsDialog:TThreadOptionsDialog;
|
||||||
|
begin
|
||||||
|
//Create Default Thread Class Name
|
||||||
|
FThreadName := TThread.ClassName + IntToStr(FThreadCount);
|
||||||
|
FThreadCount := (FThreadCount mod MaxInt) + 1;
|
||||||
|
|
||||||
|
//Show Thread Options Dialog
|
||||||
|
with(TThreadOptionsDialog.Create(nil))do
|
||||||
|
begin
|
||||||
|
ThreadNameEdit.Text := FThreadName;
|
||||||
|
if((ShowModal = mrOK)and(ThreadNameEdit.Text <> ''))then
|
||||||
|
begin
|
||||||
|
FThreadName := ThreadNameEdit.Text;
|
||||||
|
end;
|
||||||
|
Free;
|
||||||
|
end;
|
||||||
|
|
||||||
|
//Return Thread Class Name
|
||||||
|
Result := FThreadName;
|
||||||
|
end;
|
||||||
|
|
||||||
|
//--------------------------------------------------------//
|
||||||
|
function TThreadFileDescriptor.GetCurrentThreadName: string;
|
||||||
|
begin
|
||||||
|
Result := FThreadName;
|
||||||
|
end;
|
||||||
|
|
||||||
|
//----------------------------------------------------//
|
||||||
|
function TThreadFileDescriptor.GetLocalizedName: string;
|
||||||
|
begin
|
||||||
|
Result := SThreadName;
|
||||||
|
end;
|
||||||
|
|
||||||
|
//-----------------------------------------------------------//
|
||||||
|
function TThreadFileDescriptor.GetLocalizedDescription: string;
|
||||||
|
begin
|
||||||
|
Result := SThreadDescription;
|
||||||
|
end;
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------------//
|
||||||
|
function TThreadFileDescriptor.GetInterfaceSource(const Filename, SourceName, ResourceName: string): string;
|
||||||
|
begin
|
||||||
|
with(TStringList.Create)do
|
||||||
|
begin
|
||||||
|
Add('type');
|
||||||
|
Add(' ' + GetNextThreadName + ' = class(TThread)');
|
||||||
|
Add(' private');
|
||||||
|
Add(' { Private declarations }');
|
||||||
|
Add(' protected');
|
||||||
|
Add(' { Protected declarations }');
|
||||||
|
Add(' procedure Execute; override;');
|
||||||
|
Add(' end;');
|
||||||
|
Add('');
|
||||||
|
Result := Text;
|
||||||
|
Free;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------------------------------------------//
|
||||||
|
function TThreadFileDescriptor.GetImplementationSource(const Filename, SourceName, ResourceName: string): string;
|
||||||
|
begin
|
||||||
|
with(TStringList.Create)do
|
||||||
|
begin
|
||||||
|
Add('{ ' + GetCurrentThreadName + ' }');
|
||||||
|
Add('');
|
||||||
|
Add('procedure ' + GetCurrentThreadName + '.Execute;');
|
||||||
|
Add('begin');
|
||||||
|
Add(' { Write your thread code here }');
|
||||||
|
Add('end;');
|
||||||
|
Add('');
|
||||||
|
Result := Text;
|
||||||
|
Free;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
end.
|
||||||
|
|
||||||
48
components/lazthread/threadoptionsdialog.lfm
Normal file
48
components/lazthread/threadoptionsdialog.lfm
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
object ThreadOptionsDialog: TThreadOptionsDialog
|
||||||
|
Left = 282
|
||||||
|
Height = 106
|
||||||
|
Top = 183
|
||||||
|
Width = 283
|
||||||
|
HorzScrollBar.Page = 282
|
||||||
|
VertScrollBar.Page = 105
|
||||||
|
ActiveControl = ThreadNameEdit
|
||||||
|
BorderIcons = []
|
||||||
|
Caption = 'ThreadOptionsDialog'
|
||||||
|
ClientHeight = 106
|
||||||
|
ClientWidth = 283
|
||||||
|
Position = poDesktopCenter
|
||||||
|
object OptionsGroupBox: TGroupBox
|
||||||
|
Height = 65
|
||||||
|
Width = 283
|
||||||
|
Align = alTop
|
||||||
|
ClientHeight = 47
|
||||||
|
ClientWidth = 279
|
||||||
|
TabOrder = 1
|
||||||
|
object ThreadNameLabel: TLabel
|
||||||
|
Left = 22
|
||||||
|
Height = 17
|
||||||
|
Top = 2
|
||||||
|
Width = 90
|
||||||
|
ParentColor = False
|
||||||
|
end
|
||||||
|
object ThreadNameEdit: TEdit
|
||||||
|
Left = 22
|
||||||
|
Height = 22
|
||||||
|
Top = 16
|
||||||
|
Width = 232
|
||||||
|
Anchors = [akTop, akLeft, akRight]
|
||||||
|
TabOrder = 0
|
||||||
|
end
|
||||||
|
end
|
||||||
|
object CreateUnitButton: TButton
|
||||||
|
Left = 40
|
||||||
|
Height = 25
|
||||||
|
Top = 73
|
||||||
|
Width = 200
|
||||||
|
Anchors = [akLeft, akRight, akBottom]
|
||||||
|
BorderSpacing.InnerBorder = 4
|
||||||
|
Default = True
|
||||||
|
ModalResult = 1
|
||||||
|
TabOrder = 0
|
||||||
|
end
|
||||||
|
end
|
||||||
17
components/lazthread/threadoptionsdialog.lrs
Normal file
17
components/lazthread/threadoptionsdialog.lrs
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
{ Este es un archivo de recurso de Lazarus generado automáticamente }
|
||||||
|
|
||||||
|
LazarusResources.Add('TThreadOptionsDialog','FORMDATA',[
|
||||||
|
'TPF0'#20'TThreadOptionsDialog'#19'ThreadOptionsDialog'#4'Left'#3#26#1#6'Heig'
|
||||||
|
+'ht'#2'j'#3'Top'#3#183#0#5'Width'#3#27#1#18'HorzScrollBar.Page'#3#26#1#18'Ve'
|
||||||
|
+'rtScrollBar.Page'#2'i'#13'ActiveControl'#7#14'ThreadNameEdit'#11'BorderIcon'
|
||||||
|
+'s'#11#0#7'Caption'#6#19'ThreadOptionsDialog'#12'ClientHeight'#2'j'#11'Clien'
|
||||||
|
+'tWidth'#3#27#1#8'Position'#7#15'poDesktopCenter'#0#9'TGroupBox'#15'OptionsG'
|
||||||
|
+'roupBox'#6'Height'#2'A'#5'Width'#3#27#1#5'Align'#7#5'alTop'#12'ClientHeight'
|
||||||
|
+#2'/'#11'ClientWidth'#3#23#1#8'TabOrder'#2#1#0#6'TLabel'#15'ThreadNameLabel'
|
||||||
|
+#4'Left'#2#22#6'Height'#2#17#3'Top'#2#2#5'Width'#2'Z'#11'ParentColor'#8#0#0#5
|
||||||
|
+'TEdit'#14'ThreadNameEdit'#4'Left'#2#22#6'Height'#2#22#3'Top'#2#16#5'Width'#3
|
||||||
|
+#232#0#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#8'TabOrder'#2#0#0#0#0#7
|
||||||
|
+'TButton'#16'CreateUnitButton'#4'Left'#2'('#6'Height'#2#25#3'Top'#2'I'#5'Wid'
|
||||||
|
+'th'#3#200#0#7'Anchors'#11#6'akLeft'#7'akRight'#8'akBottom'#0#25'BorderSpaci'
|
||||||
|
+'ng.InnerBorder'#2#4#7'Default'#9#11'ModalResult'#2#1#8'TabOrder'#2#0#0#0#0
|
||||||
|
]);
|
||||||
63
components/lazthread/threadoptionsdialog.pas
Normal file
63
components/lazthread/threadoptionsdialog.pas
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
{
|
||||||
|
*****************************************************************************
|
||||||
|
* *
|
||||||
|
* See the file COPYING.modifiedLGPL, included in this distribution, *
|
||||||
|
* for details about the copyright. *
|
||||||
|
* *
|
||||||
|
* This program is distributed in the hope that it will be useful, *
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
|
||||||
|
* *
|
||||||
|
*****************************************************************************
|
||||||
|
}
|
||||||
|
|
||||||
|
unit ThreadOptionsDialog;
|
||||||
|
|
||||||
|
{$mode objfpc}{$H+}
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
uses
|
||||||
|
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls;
|
||||||
|
|
||||||
|
type
|
||||||
|
|
||||||
|
{ TThreadOptionsDialog }
|
||||||
|
|
||||||
|
TThreadOptionsDialog = class(TForm)
|
||||||
|
CreateUnitButton: TButton;
|
||||||
|
ThreadNameLabel: TLabel;
|
||||||
|
ThreadNameEdit: TEdit;
|
||||||
|
OptionsGroupBox: TGroupBox;
|
||||||
|
private
|
||||||
|
{ private declarations }
|
||||||
|
public
|
||||||
|
{ public declarations }
|
||||||
|
constructor Create(AOwner: TComponent);override;
|
||||||
|
end;
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
resourcestring
|
||||||
|
SThreadDialogTitle = 'Thread Class Options';
|
||||||
|
SOptionsGroupBoxCaption = 'Options';
|
||||||
|
SThreadNameLabelCaption = 'Thread Class Name';
|
||||||
|
SCreateUnitButtonCaption = 'Create Unit';
|
||||||
|
|
||||||
|
{ TThreadOptionsDialog }
|
||||||
|
|
||||||
|
//--------------------------------------------------------//
|
||||||
|
constructor TThreadOptionsDialog.Create(AOwner: TComponent);
|
||||||
|
begin
|
||||||
|
inherited Create(AOwner);
|
||||||
|
Caption := SThreadDialogTitle;
|
||||||
|
OptionsGroupBox.Caption := SOptionsGroupBoxCaption;
|
||||||
|
ThreadNameLabel.Caption := SThreadNameLabelCaption;
|
||||||
|
CreateUnitButton.Caption := SCreateUnitButtonCaption;
|
||||||
|
end;
|
||||||
|
|
||||||
|
initialization
|
||||||
|
{$I threadoptionsdialog.lrs}
|
||||||
|
|
||||||
|
end.
|
||||||
|
|
||||||
1
packager/globallinks/lazthread-0.lpl
Normal file
1
packager/globallinks/lazthread-0.lpl
Normal file
@ -0,0 +1 @@
|
|||||||
|
$(LazarusDir)/components/lazthread/lazthread.lpk
|
||||||
Loading…
Reference in New Issue
Block a user