mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-25 16:19:16 +02:00
+ Added (custom) cursors example from Paul Ishenin
git-svn-id: trunk@10666 -
This commit is contained in:
parent
e8a85989c6
commit
1b0b818700
6
.gitattributes
vendored
6
.gitattributes
vendored
@ -1080,6 +1080,12 @@ examples/componentstreaming/componentstreaming.lpr svneol=native#text/plain
|
||||
examples/componentstreaming/mainunit.lfm svneol=native#text/plain
|
||||
examples/componentstreaming/mainunit.lrs svneol=native#text/plain
|
||||
examples/componentstreaming/mainunit.pas svneol=native#text/plain
|
||||
examples/cursors/car.cur -text svneol=unset#image/x-cursor
|
||||
examples/cursors/car.lrs svneol=native#text/pascal
|
||||
examples/cursors/project1.lpi svneol=native#text/plain
|
||||
examples/cursors/project1.lpr svneol=native#text/pascal
|
||||
examples/cursors/unit1.lrs -text svneol=unset#text/pascal
|
||||
examples/cursors/unit1.pas svneol=native#text/pascal
|
||||
examples/designerbaseclass/README.txt svneol=native#text/plain
|
||||
examples/designerbaseclass/customcomponentclass.pas svneol=native#text/plain
|
||||
examples/designerbaseclass/designbaseclassdemopkg.lpk svneol=native#text/plain
|
||||
|
BIN
examples/cursors/car.cur
Normal file
BIN
examples/cursors/car.cur
Normal file
Binary file not shown.
After Width: | Height: | Size: 766 B |
28
examples/cursors/car.lrs
Normal file
28
examples/cursors/car.lrs
Normal file
@ -0,0 +1,28 @@
|
||||
LazarusResources.Add('car','CUR',[
|
||||
#0#0#2#0#1#0' '#0#0#16#0#16#0#232#2#0#0#22#0#0#0'('#0#0#0' '#0#0#0'@'#0#0#0#1
|
||||
+#0#4#0#0#0#0#0#0#2#0#0#0#0#0#0#0#0#0#0#16#0#0#0#0#0#0#0#0#0#0#0#0#0#128#0#0
|
||||
+#128#0#0#0#128#128#0#128#0#0#0#128#0#128#0#128#128#0#0#128#128#128#0#192#192
|
||||
+#192#0#0#0#255#0#0#255#0#0#0#255#255#0#255#0#0#0#255#0#255#0#255#255#0#0#255
|
||||
+#255#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
|
||||
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
|
||||
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
|
||||
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
|
||||
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
|
||||
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#128#0#0#0#0#0#0#0#0#0#0#0#0#0#0#8#8#0#0#0
|
||||
+#0#0#0#9#153#144#153#153#144#153#0#0#128#0#0#0#0#0#0#9#153#153#152#153#137
|
||||
+#153#144#0#0#0#0#0#0#0#0#0#153#153#152#153#137#153#144#0#0#0#0#0#0#0#0#0#0
|
||||
+#156#204#140#200#204#144#0#0#0#0#0#0#0#0#0#0#9#204#140#200#201#0#0#0#0#0#0#0
|
||||
+#0#0#0#0#0#153#153#153#144#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
|
||||
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#176#0#0#0#0#0#0#0#0#0#0#0#0
|
||||
+#0#11#0#11#0#11#0#0#0#0#0#0#0#0#0#0#0#0#176#0#11#0#0#0#0#0#0#0#0#0#0#0#0#176
|
||||
+#0#187#0#0#0#0#0#0#0#0#0#0#0#0#0#11#11#187#176#176#176#0#0#0#0#0#0#0#0#0#0#0
|
||||
+#11#187#176#0#0#0#0#0#0#0#0#0#0#0#11#176#0#187#0#176#0#0#0#0#0#0#0#0#0#0#0#0
|
||||
+#176#0#0#11#0#0#0#0#0#0#0#0#0#0#0#11#0#176#176#0#0#0#0#0#0#0#0#0#0#0#0#0#0
|
||||
+#176#11#0#0#0#0#0#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
|
||||
+#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255#255
|
||||
+#255#255#255#255#255#255#255#255#255#255#255#255#255#255#254#251#247#255#252
|
||||
+'q+'#255#224#0'w'#255#224#0''#255#240#0''#255#252#0''#255#254#0#255#255
|
||||
+#255#1#255#255#255#255#255#255#255#255#255#255#255#255#223#255#255#254#238
|
||||
+#255#255#255'{'#255#255#253#207#255#255#254#133''#255#255#135#255#255#249
|
||||
+#205#255#255#255'~'#255#255#254#215#255#255#255#219#255
|
||||
]);
|
105
examples/cursors/project1.lpi
Normal file
105
examples/cursors/project1.lpi
Normal file
@ -0,0 +1,105 @@
|
||||
<?xml version="1.0"?>
|
||||
<CONFIG>
|
||||
<ProjectOptions>
|
||||
<PathDelim Value="\"/>
|
||||
<Version Value="5"/>
|
||||
<General>
|
||||
<MainUnit Value="0"/>
|
||||
<IconPath Value=".\"/>
|
||||
<TargetFileExt Value=".exe"/>
|
||||
<Title Value="Test cursors"/>
|
||||
<ActiveEditorIndexAtStart Value="1"/>
|
||||
</General>
|
||||
<VersionInfo>
|
||||
<ProjectVersion Value=""/>
|
||||
</VersionInfo>
|
||||
<PublishOptions>
|
||||
<Version Value="2"/>
|
||||
<DestinationDirectory Value="$(TestDir)\publishedproject\"/>
|
||||
<IgnoreBinaries Value="False"/>
|
||||
<IncludeFileFilter Value="*.(pas|pp|inc|lfm|lpr|lrs|lpi|lpk|sh|xml)"/>
|
||||
<ExcludeFileFilter Value="*.(bak|ppu|ppw|o|so);*~;backup"/>
|
||||
</PublishOptions>
|
||||
<RunParams>
|
||||
<local>
|
||||
<FormatVersion Value="1"/>
|
||||
<LaunchingApplication PathPlusParams="\usr\X11R6\bin\xterm -T 'Lazarus Run Output' -e $(LazarusDir)\tools\runwait.sh $(TargetCmdLine)"/>
|
||||
</local>
|
||||
</RunParams>
|
||||
<RequiredPackages Count="1">
|
||||
<Item1>
|
||||
<PackageName Value="LCL"/>
|
||||
</Item1>
|
||||
</RequiredPackages>
|
||||
<Units Count="2">
|
||||
<Unit0>
|
||||
<Filename Value="project1.lpr"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="project1"/>
|
||||
<CursorPos X="3" Y="6"/>
|
||||
<TopLine Value="1"/>
|
||||
<EditorIndex Value="1"/>
|
||||
<UsageCount Value="95"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit0>
|
||||
<Unit1>
|
||||
<Filename Value="unit1.pas"/>
|
||||
<ComponentName Value="Form1"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<ResourceFilename Value="unit1.lrs"/>
|
||||
<UnitName Value="Unit1"/>
|
||||
<CursorPos X="13" Y="45"/>
|
||||
<TopLine Value="39"/>
|
||||
<EditorIndex Value="0"/>
|
||||
<UsageCount Value="95"/>
|
||||
<Loaded Value="True"/>
|
||||
</Unit1>
|
||||
</Units>
|
||||
<JumpHistory Count="1" HistoryIndex="0">
|
||||
<Position1>
|
||||
<Filename Value="project1.lpr"/>
|
||||
<Caret Line="15" Column="15" TopLine="1"/>
|
||||
</Position1>
|
||||
</JumpHistory>
|
||||
</ProjectOptions>
|
||||
<CompilerOptions>
|
||||
<Version Value="5"/>
|
||||
<PathDelim Value="\"/>
|
||||
<SearchPaths>
|
||||
<SrcPath Value="$(LazarusDir)\lcl\;$(LazarusDir)\lcl\interfaces\$(LCLWidgetType)\"/>
|
||||
</SearchPaths>
|
||||
<CodeGeneration>
|
||||
<Generate Value="Faster"/>
|
||||
</CodeGeneration>
|
||||
<Linking>
|
||||
<Debugging>
|
||||
<GenerateDebugInfo Value="True"/>
|
||||
<UseLineInfoUnit Value="False"/>
|
||||
</Debugging>
|
||||
<Options>
|
||||
<Win32>
|
||||
<GraphicApplication Value="True"/>
|
||||
</Win32>
|
||||
</Options>
|
||||
</Linking>
|
||||
<Other>
|
||||
<CompilerPath Value="$(CompPath)"/>
|
||||
</Other>
|
||||
</CompilerOptions>
|
||||
<Debugging>
|
||||
<Watches Count="1">
|
||||
<Item1>
|
||||
<Expression Value="LineBuf"/>
|
||||
<Enabled Value="False"/>
|
||||
</Item1>
|
||||
</Watches>
|
||||
<Exceptions Count="2">
|
||||
<Item1>
|
||||
<Name Value="ECodetoolError"/>
|
||||
</Item1>
|
||||
<Item2>
|
||||
<Name Value="EFOpenError"/>
|
||||
</Item2>
|
||||
</Exceptions>
|
||||
</Debugging>
|
||||
</CONFIG>
|
15
examples/cursors/project1.lpr
Normal file
15
examples/cursors/project1.lpr
Normal file
@ -0,0 +1,15 @@
|
||||
program project1;
|
||||
|
||||
{$mode objfpc}{$H+}
|
||||
|
||||
uses
|
||||
Interfaces, // this includes the LCL widgetset
|
||||
Forms, Unit1;
|
||||
|
||||
begin
|
||||
Application.Title:='Test cursors';
|
||||
Application.Initialize;
|
||||
Application.CreateForm(TForm1, Form1);
|
||||
Application.Run;
|
||||
end.
|
||||
|
118
examples/cursors/unit1.lfm
Normal file
118
examples/cursors/unit1.lfm
Normal file
@ -0,0 +1,118 @@
|
||||
object Form1: TForm1
|
||||
Left = 412
|
||||
Height = 255
|
||||
Top = 299
|
||||
Width = 297
|
||||
HorzScrollBar.Page = 296
|
||||
VertScrollBar.Page = 254
|
||||
ActiveControl = Button1
|
||||
BorderIcons = [biSystemMenu, biMinimize]
|
||||
BorderStyle = bsToolWindow
|
||||
Caption = 'Cursor test'
|
||||
OnCreate = FormCreate
|
||||
object Label1: TLabel
|
||||
Cursor = crHelp
|
||||
Left = 16
|
||||
Height = 13
|
||||
Top = 7
|
||||
Width = 157
|
||||
Caption = 'Move mouse at this buttons:'
|
||||
Color = clNone
|
||||
ParentColor = False
|
||||
end
|
||||
object Bevel1: TBevel
|
||||
Left = 8
|
||||
Height = 3
|
||||
Top = 136
|
||||
Width = 279
|
||||
end
|
||||
object Label2: TLabel
|
||||
Cursor = crHelp
|
||||
Left = 16
|
||||
Height = 13
|
||||
Top = 144
|
||||
Width = 209
|
||||
Caption = 'Drag cursor test: drag buttons into list'
|
||||
Color = clNone
|
||||
ParentColor = False
|
||||
end
|
||||
object Button1: TButton
|
||||
Cursor = crNoDrop
|
||||
Left = 16
|
||||
Height = 25
|
||||
Top = 32
|
||||
Width = 75
|
||||
BorderSpacing.InnerBorder = 4
|
||||
Caption = 'crNoDrop'
|
||||
TabOrder = 0
|
||||
end
|
||||
object Button2: TButton
|
||||
Cursor = crDrag
|
||||
Left = 16
|
||||
Height = 25
|
||||
Top = 64
|
||||
Width = 75
|
||||
BorderSpacing.InnerBorder = 4
|
||||
Caption = 'crDrag'
|
||||
TabOrder = 1
|
||||
end
|
||||
object Button3: TButton
|
||||
Cursor = crSQLWait
|
||||
Left = 16
|
||||
Height = 25
|
||||
Top = 96
|
||||
Width = 75
|
||||
BorderSpacing.InnerBorder = 4
|
||||
Caption = 'crSQLWait'
|
||||
TabOrder = 2
|
||||
end
|
||||
object Panel1: TPanel
|
||||
Left = 167
|
||||
Height = 72
|
||||
Top = 168
|
||||
Width = 122
|
||||
Caption = 'Drag here'
|
||||
Color = clWhite
|
||||
ParentColor = False
|
||||
TabOrder = 3
|
||||
OnDragDrop = Panel1DragDrop
|
||||
OnDragOver = Panel1DragOver
|
||||
end
|
||||
object Panel2: TPanel
|
||||
Left = 9
|
||||
Height = 21
|
||||
Top = 184
|
||||
Width = 145
|
||||
Caption = 'Can be accepted'
|
||||
DragMode = dmAutomatic
|
||||
TabOrder = 4
|
||||
end
|
||||
object Panel3: TPanel
|
||||
Left = 9
|
||||
Height = 21
|
||||
Top = 213
|
||||
Width = 145
|
||||
Caption = 'Can not be accepted'
|
||||
DragMode = dmAutomatic
|
||||
TabOrder = 5
|
||||
end
|
||||
object Button4: TButton
|
||||
Left = 155
|
||||
Height = 25
|
||||
Top = 96
|
||||
Width = 132
|
||||
BorderSpacing.InnerBorder = 4
|
||||
Caption = 'Set Screen.Cursor'
|
||||
OnClick = Button4Click
|
||||
TabOrder = 6
|
||||
end
|
||||
object Button5: TButton
|
||||
Left = 155
|
||||
Height = 25
|
||||
Top = 32
|
||||
Width = 132
|
||||
BorderSpacing.InnerBorder = 4
|
||||
Caption = 'Custom cursor'
|
||||
TabOrder = 7
|
||||
end
|
||||
end
|
34
examples/cursors/unit1.lrs
Normal file
34
examples/cursors/unit1.lrs
Normal file
@ -0,0 +1,34 @@
|
||||
{ Ýòî - ôàéë ðåñóðñîâ, àâòîìàòè÷åñêè ñîçäàííûé lazarus }
|
||||
|
||||
LazarusResources.Add('TForm1','FORMDATA',[
|
||||
'TPF0'#6'TForm1'#5'Form1'#4'Left'#3#156#1#6'Height'#3#255#0#3'Top'#3'+'#1#5'W'
|
||||
+'idth'#3')'#1#18'HorzScrollBar.Page'#3'('#1#18'VertScrollBar.Page'#3#254#0#13
|
||||
+'ActiveControl'#7#7'Button1'#11'BorderIcons'#11#12'biSystemMenu'#10'biMinimi'
|
||||
+'ze'#0#11'BorderStyle'#7#12'bsToolWindow'#7'Caption'#6#11'Cursor test'#8'OnC'
|
||||
+'reate'#7#10'FormCreate'#0#6'TLabel'#6'Label1'#6'Cursor'#7#6'crHelp'#4'Left'
|
||||
+#2#16#6'Height'#2#13#3'Top'#2#7#5'Width'#3#157#0#7'Caption'#6#27'Move mouse '
|
||||
+'at this buttons:'#5'Color'#7#6'clNone'#11'ParentColor'#8#0#0#6'TBevel'#6'Be'
|
||||
+'vel1'#4'Left'#2#8#6'Height'#2#3#3'Top'#3#136#0#5'Width'#3#23#1#0#0#6'TLabel'
|
||||
+#6'Label2'#6'Cursor'#7#6'crHelp'#4'Left'#2#16#6'Height'#2#13#3'Top'#3#144#0#5
|
||||
+'Width'#3#209#0#7'Caption'#6'(Drag cursor test: drag buttons into list'#5'Co'
|
||||
+'lor'#7#6'clNone'#11'ParentColor'#8#0#0#7'TButton'#7'Button1'#6'Cursor'#7#8
|
||||
+'crNoDrop'#4'Left'#2#16#6'Height'#2#25#3'Top'#2' '#5'Width'#2'K'#25'BorderSp'
|
||||
+'acing.InnerBorder'#2#4#7'Caption'#6#8'crNoDrop'#8'TabOrder'#2#0#0#0#7'TButt'
|
||||
+'on'#7'Button2'#6'Cursor'#7#6'crDrag'#4'Left'#2#16#6'Height'#2#25#3'Top'#2'@'
|
||||
+#5'Width'#2'K'#25'BorderSpacing.InnerBorder'#2#4#7'Caption'#6#6'crDrag'#8'Ta'
|
||||
+'bOrder'#2#1#0#0#7'TButton'#7'Button3'#6'Cursor'#7#9'crSQLWait'#4'Left'#2#16
|
||||
+#6'Height'#2#25#3'Top'#2'`'#5'Width'#2'K'#25'BorderSpacing.InnerBorder'#2#4#7
|
||||
+'Caption'#6#9'crSQLWait'#8'TabOrder'#2#2#0#0#6'TPanel'#6'Panel1'#4'Left'#3
|
||||
+#167#0#6'Height'#2'H'#3'Top'#3#168#0#5'Width'#2'z'#7'Caption'#6#9'Drag here'
|
||||
+#5'Color'#7#7'clWhite'#11'ParentColor'#8#8'TabOrder'#2#3#10'OnDragDrop'#7#14
|
||||
+'Panel1DragDrop'#10'OnDragOver'#7#14'Panel1DragOver'#0#0#6'TPanel'#6'Panel2'
|
||||
+#4'Left'#2#9#6'Height'#2#21#3'Top'#3#184#0#5'Width'#3#145#0#7'Caption'#6#15
|
||||
+'Can be accepted'#8'DragMode'#7#11'dmAutomatic'#8'TabOrder'#2#4#0#0#6'TPanel'
|
||||
+#6'Panel3'#4'Left'#2#9#6'Height'#2#21#3'Top'#3#213#0#5'Width'#3#145#0#7'Capt'
|
||||
+'ion'#6#19'Can not be accepted'#8'DragMode'#7#11'dmAutomatic'#8'TabOrder'#2#5
|
||||
+#0#0#7'TButton'#7'Button4'#4'Left'#3#155#0#6'Height'#2#25#3'Top'#2'`'#5'Widt'
|
||||
+'h'#3#132#0#25'BorderSpacing.InnerBorder'#2#4#7'Caption'#6#17'Set Screen.Cur'
|
||||
+'sor'#7'OnClick'#7#12'Button4Click'#8'TabOrder'#2#6#0#0#7'TButton'#7'Button5'
|
||||
+#4'Left'#3#155#0#6'Height'#2#25#3'Top'#2' '#5'Width'#3#132#0#25'BorderSpacin'
|
||||
+'g.InnerBorder'#2#4#7'Caption'#6#13'Custom cursor'#8'TabOrder'#2#7#0#0#0
|
||||
]);
|
83
examples/cursors/unit1.pas
Normal file
83
examples/cursors/unit1.pas
Normal file
@ -0,0 +1,83 @@
|
||||
unit Unit1;
|
||||
|
||||
{$mode objfpc}{$H+}
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, Buttons,
|
||||
StdCtrls, ExtCtrls;
|
||||
|
||||
type
|
||||
|
||||
{ TForm1 }
|
||||
|
||||
TForm1 = class(TForm)
|
||||
Bevel1: TBevel;
|
||||
Button1: TButton;
|
||||
Button2: TButton;
|
||||
Button3: TButton;
|
||||
Button4: TButton;
|
||||
Button5: TButton;
|
||||
Label1: TLabel;
|
||||
Label2: TLabel;
|
||||
Panel1: TPanel;
|
||||
Panel2: TPanel;
|
||||
Panel3: TPanel;
|
||||
procedure Button4Click(Sender: TObject);
|
||||
procedure FormCreate(Sender: TObject);
|
||||
procedure Panel1DragDrop(Sender, Source: TObject; X, Y: Integer);
|
||||
procedure Panel1DragOver(Sender, Source: TObject; X, Y: Integer;
|
||||
State: TDragState; var Accept: Boolean);
|
||||
private
|
||||
public
|
||||
end;
|
||||
|
||||
var
|
||||
Form1: TForm1;
|
||||
|
||||
implementation
|
||||
|
||||
{ TForm1 }
|
||||
|
||||
procedure TForm1.Panel1DragOver(Sender, Source: TObject; X, Y: Integer;
|
||||
State: TDragState; var Accept: Boolean);
|
||||
var
|
||||
Control: TControl;
|
||||
begin
|
||||
if Source is TDragControlObject then
|
||||
Control := TDragControlObject(Source).Control else
|
||||
Control := TControl(Source);
|
||||
Accept := Control = Panel2;
|
||||
end;
|
||||
|
||||
procedure TForm1.FormCreate(Sender: TObject);
|
||||
begin
|
||||
Screen.Cursors[1] := LoadCursorFromLazarusResource('car');
|
||||
Button5.Cursor := 1;
|
||||
end;
|
||||
|
||||
procedure TForm1.Panel1DragDrop(Sender, Source: TObject; X, Y: Integer);
|
||||
begin
|
||||
ShowMessage('drag accepted');
|
||||
end;
|
||||
|
||||
procedure TForm1.Button4Click(Sender: TObject);
|
||||
begin
|
||||
if Screen.Cursor = crHourGlass then
|
||||
begin
|
||||
Screen.Cursor := crDefault;
|
||||
Button4.Caption := 'Set Screen.Cursor';
|
||||
end else
|
||||
begin
|
||||
Screen.Cursor := crHourGlass;
|
||||
Button4.Caption := 'Unset Screen.Cursor';
|
||||
end;
|
||||
end;
|
||||
|
||||
initialization
|
||||
{$I unit1.lrs}
|
||||
{$I car.lrs}
|
||||
|
||||
end.
|
||||
|
Loading…
Reference in New Issue
Block a user