LazReport, fix aggregate functions for groups

git-svn-id: trunk@14722 -
This commit is contained in:
jesus 2008-04-02 01:43:04 +00:00
parent 6e59681184
commit d2b0a4c27d
4 changed files with 256 additions and 111 deletions

View File

@ -8314,6 +8314,7 @@ procedure TfrStdFunctionLibrary.DoFunction(FNo: Integer; p1, p2, p3: Variant;
var
DataSet: TfrTDataSet;
Field: TfrTField;
Obj: TFrObject;
s1, s2, VarName: String;
min, max, avg, sum, count, d, v: Double;
dk: (dkNone, dkSum, dkMin, dkMax, dkAvg, dkCount);
@ -8376,20 +8377,28 @@ begin
21: val := '''' + AnsiUpperCase(frParser.Calc(p1)) + ''''; //Add('UPPERCASE'); {21}
22: val := YearOf(frParser.Calc(p1)); //Add('YEAROF'); {22}
end;
if dk <> dkNone then
begin
if dk = dkCount then
DataSet := frGetDataSet(lrGetUnBrackedStr(p1))
else
frGetDataSetAndField(lrGetUnBrackedStr(p1), DataSet, Field);
begin
// if bandname is provided if yes, don't try to use dataset/field
Obj := curPage.FindObject(trim(P2));
if (obj is TfrBandView) and
(TfrBandView(Obj).BandType in [btMasterData,btDetailData,
btSubDetailData,btCrossData])
then
DataSet := nil
else
frGetDataSetAndField(lrGetUnBrackedStr(p1), DataSet, Field);
end;
if (DataSet <> nil) and AggrBand.Visible then
begin
// NOTE: this will probably work only when iterating detail records
// for non master-detail relationships like simple grouping on
// single datasets it will iterate over all records and not only
// over group records.
min := 1e200; max := -1e200; sum := 0; count := 0; avg := 0;
BM:=DataSet.GetBookMark;
DataSet.DisableControls;

View File

@ -10,8 +10,8 @@ object LR_FunctEditor1Form: TLR_FunctEditor1Form
Caption = 'LR_FunctEditor1Form'
ClientHeight = 300
ClientWidth = 412
PixelsPerInch = 96
Position = poDesktopCenter
LCLVersion = '0.9.25'
object Panel1: TPanel
Height = 64
Width = 412
@ -41,6 +41,7 @@ object LR_FunctEditor1Form: TLR_FunctEditor1Form
Color = clInfoBk
ParentColor = False
Transparent = False
WordWrap = True
end
end
object Panel2: TPanel
@ -95,7 +96,6 @@ object LR_FunctEditor1Form: TLR_FunctEditor1Form
Top = 14
Width = 55
Caption = 'Argument 1'
Color = clNone
ParentColor = False
end
object Label4: TLabel
@ -104,7 +104,6 @@ object LR_FunctEditor1Form: TLR_FunctEditor1Form
Top = 49
Width = 55
Caption = 'Argument 2'
Color = clNone
ParentColor = False
end
object Label5: TLabel
@ -113,7 +112,6 @@ object LR_FunctEditor1Form: TLR_FunctEditor1Form
Top = 81
Width = 55
Caption = 'Argument 3'
Color = clNone
ParentColor = False
end
object BitBtn3: TBitBtn
@ -125,19 +123,40 @@ object LR_FunctEditor1Form: TLR_FunctEditor1Form
Anchors = [akTop, akRight]
BorderSpacing.InnerBorder = 2
Glyph.Data = {
9C0100002F2A2058504D202A2F0A7374617469632063686172202A6772617068
69635B5D203D207B0A22313620313620332031222C0A222E2063204E6F6E6522
2C0A222C20632023303030303030222C0A222D20632023413141314131222C0A
222E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E222C0A222E2E2E2E2E2E2E2E2E2E2E
2E2E2E2E2E222C0A222E2E2E2E2E2E2E2C2C2C2E2E2E2E2E2E222C0A222E2E2E
2E2E2E2C2C2E2D2C2E2E2E2E2E222C0A222E2E2E2E2E2E2C2D2E2E2E2E2E2E2E
2E222C0A222E2E2E2E2C2C2C2C2C2E2E2E2E2E2E2E222C0A222E2E2E2E2E2D2C
2E2E2E2E2E2E2E2E2E222C0A222E2E2E2E2E2C2D2E2C2C2E2D2C2E2E2E222C0A
222E2E2E2E2D2C2D2E2E2C2C2C2E2E2E2E222C0A222E2E2E2E2D2C2E2E2D2C2C
2E2E2E2E2E222C0A222E2E2E2E2C2D2E2C2C2E2C2C2E2E2E2E222C0A222E2E2E
2E2C2E2E2E2E2E2E2E2E2E2E2E222C0A222E2E2E2C2E2E2E2E2E2E2E2E2E2E2E
2E222C0A222E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E222C0A222E2E2E2E2E2E2E
2E2E2E2E2E2E2E2E2E222C0A222E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E227D0A
36040000424D3604000000000000360000002800000010000000100000000100
2000000000000004000064000000640000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000FF00000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000FF000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000FFA1A1A1FF00000000000000FF000000FF0000
0000000000FF000000FF00000000000000000000000000000000000000000000
00000000000000000000A1A1A1FF000000FF0000000000000000A1A1A1FF0000
00FF000000FF0000000000000000000000000000000000000000000000000000
00000000000000000000A1A1A1FF000000FFA1A1A1FF00000000000000000000
00FF000000FF000000FF00000000000000000000000000000000000000000000
0000000000000000000000000000000000FFA1A1A1FF00000000000000FF0000
00FF00000000A1A1A1FF000000FF000000000000000000000000000000000000
0000000000000000000000000000A1A1A1FF000000FF00000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000FF000000FF000000FF000000FF000000FF0000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000FFA1A1A1FF000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000FF000000FF00000000A1A1
A1FF000000FF0000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000FF000000FF0000
00FF000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000
}
Layout = blGlyphBottom
NumGlyphs = 0
@ -169,19 +188,40 @@ object LR_FunctEditor1Form: TLR_FunctEditor1Form
Anchors = [akTop, akRight]
BorderSpacing.InnerBorder = 2
Glyph.Data = {
9C0100002F2A2058504D202A2F0A7374617469632063686172202A6772617068
69635B5D203D207B0A22313620313620332031222C0A222E2063204E6F6E6522
2C0A222C20632023303030303030222C0A222D20632023413141314131222C0A
222E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E222C0A222E2E2E2E2E2E2E2E2E2E2E
2E2E2E2E2E222C0A222E2E2E2E2E2E2E2C2C2C2E2E2E2E2E2E222C0A222E2E2E
2E2E2E2C2C2E2D2C2E2E2E2E2E222C0A222E2E2E2E2E2E2C2D2E2E2E2E2E2E2E
2E222C0A222E2E2E2E2C2C2C2C2C2E2E2E2E2E2E2E222C0A222E2E2E2E2E2D2C
2E2E2E2E2E2E2E2E2E222C0A222E2E2E2E2E2C2D2E2C2C2E2D2C2E2E2E222C0A
222E2E2E2E2D2C2D2E2E2C2C2C2E2E2E2E222C0A222E2E2E2E2D2C2E2E2D2C2C
2E2E2E2E2E222C0A222E2E2E2E2C2D2E2C2C2E2C2C2E2E2E2E222C0A222E2E2E
2E2C2E2E2E2E2E2E2E2E2E2E2E222C0A222E2E2E2C2E2E2E2E2E2E2E2E2E2E2E
2E222C0A222E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E222C0A222E2E2E2E2E2E2E
2E2E2E2E2E2E2E2E2E222C0A222E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E227D0A
36040000424D3604000000000000360000002800000010000000100000000100
2000000000000004000064000000640000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000FF00000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000FF000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000FFA1A1A1FF00000000000000FF000000FF0000
0000000000FF000000FF00000000000000000000000000000000000000000000
00000000000000000000A1A1A1FF000000FF0000000000000000A1A1A1FF0000
00FF000000FF0000000000000000000000000000000000000000000000000000
00000000000000000000A1A1A1FF000000FFA1A1A1FF00000000000000000000
00FF000000FF000000FF00000000000000000000000000000000000000000000
0000000000000000000000000000000000FFA1A1A1FF00000000000000FF0000
00FF00000000A1A1A1FF000000FF000000000000000000000000000000000000
0000000000000000000000000000A1A1A1FF000000FF00000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000FF000000FF000000FF000000FF000000FF0000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000FFA1A1A1FF000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000FF000000FF00000000A1A1
A1FF000000FF0000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000FF000000FF0000
00FF000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000
}
Layout = blGlyphBottom
NumGlyphs = 0
@ -205,19 +245,40 @@ object LR_FunctEditor1Form: TLR_FunctEditor1Form
Anchors = [akTop, akRight]
BorderSpacing.InnerBorder = 2
Glyph.Data = {
9C0100002F2A2058504D202A2F0A7374617469632063686172202A6772617068
69635B5D203D207B0A22313620313620332031222C0A222E2063204E6F6E6522
2C0A222C20632023303030303030222C0A222D20632023413141314131222C0A
222E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E222C0A222E2E2E2E2E2E2E2E2E2E2E
2E2E2E2E2E222C0A222E2E2E2E2E2E2E2C2C2C2E2E2E2E2E2E222C0A222E2E2E
2E2E2E2C2C2E2D2C2E2E2E2E2E222C0A222E2E2E2E2E2E2C2D2E2E2E2E2E2E2E
2E222C0A222E2E2E2E2C2C2C2C2C2E2E2E2E2E2E2E222C0A222E2E2E2E2E2D2C
2E2E2E2E2E2E2E2E2E222C0A222E2E2E2E2E2C2D2E2C2C2E2D2C2E2E2E222C0A
222E2E2E2E2D2C2D2E2E2C2C2C2E2E2E2E222C0A222E2E2E2E2D2C2E2E2D2C2C
2E2E2E2E2E222C0A222E2E2E2E2C2D2E2C2C2E2C2C2E2E2E2E222C0A222E2E2E
2E2C2E2E2E2E2E2E2E2E2E2E2E222C0A222E2E2E2C2E2E2E2E2E2E2E2E2E2E2E
2E222C0A222E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E222C0A222E2E2E2E2E2E2E
2E2E2E2E2E2E2E2E2E222C0A222E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E227D0A
36040000424D3604000000000000360000002800000010000000100000000100
2000000000000004000064000000640000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000FF00000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000FF000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000FFA1A1A1FF00000000000000FF000000FF0000
0000000000FF000000FF00000000000000000000000000000000000000000000
00000000000000000000A1A1A1FF000000FF0000000000000000A1A1A1FF0000
00FF000000FF0000000000000000000000000000000000000000000000000000
00000000000000000000A1A1A1FF000000FFA1A1A1FF00000000000000000000
00FF000000FF000000FF00000000000000000000000000000000000000000000
0000000000000000000000000000000000FFA1A1A1FF00000000000000FF0000
00FF00000000A1A1A1FF000000FF000000000000000000000000000000000000
0000000000000000000000000000A1A1A1FF000000FF00000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000FF000000FF000000FF000000FF000000FF0000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000FFA1A1A1FF000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000FF000000FF00000000A1A1
A1FF000000FF0000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000FF000000FF0000
00FF000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000
}
Layout = blGlyphBottom
NumGlyphs = 0

View File

@ -5,67 +5,138 @@ LazarusResources.Add('TLR_FunctEditor1Form','FORMDATA',[
+'ght'#3','#1#3'Top'#3#161#0#5'Width'#3#156#1#18'HorzScrollBar.Page'#3#155#1
+#18'VertScrollBar.Page'#3'+'#1#13'ActiveControl'#7#7'BitBtn1'#11'BorderIcons'
+#11#12'biSystemMenu'#6'biHelp'#0#7'Caption'#6#19'LR_FunctEditor1Form'#12'Cli'
+'entHeight'#3','#1#11'ClientWidth'#3#156#1#13'PixelsPerInch'#2'`'#8'Position'
+#7#15'poDesktopCenter'#0#6'TPanel'#6'Panel1'#6'Height'#2'@'#5'Width'#3#156#1
+#5'Align'#7#5'alTop'#10'BevelOuter'#7#9'bvLowered'#12'ClientHeight'#2'@'#11
+'ClientWidth'#3#156#1#8'TabOrder'#2#0#0#6'TLabel'#6'Label1'#4'Left'#2#1#6'He'
+'ight'#2#14#3'Top'#2#1#5'Width'#3#154#1#5'Align'#7#5'alTop'#7'Caption'#6#6'L'
+'abel1'#5'Color'#7#7'clWhite'#11'ParentColor'#8#11'Transparent'#8#0#0#6'TLab'
+'el'#6'Label2'#4'Left'#2#1#6'Height'#2'0'#3'Top'#2#15#5'Width'#3#154#1#5'Ali'
+'gn'#7#8'alClient'#7'Caption'#6#6'Label2'#5'Color'#7#8'clInfoBk'#11'ParentCo'
+'lor'#8#11'Transparent'#8#0#0#0#6'TPanel'#6'Panel2'#6'Height'#2'('#3'Top'#3#4
+#1#5'Width'#3#156#1#5'Align'#7#8'alBottom'#10'BevelOuter'#7#6'bvNone'#12'Cli'
+'entHeight'#2'('#11'ClientWidth'#3#156#1#8'TabOrder'#2#1#0#7'TBitBtn'#7'BitB'
+'tn1'#4'Left'#3#252#0#6'Height'#2#30#3'Top'#2#6#5'Width'#2'K'#7'Anchors'#11#5
+'akTop'#7'akRight'#0#25'BorderSpacing.InnerBorder'#2#2#7'Caption'#6#3'&Ok'#7
+'Default'#9#4'Kind'#7#4'bkOK'#11'ModalResult'#2#1#9'NumGlyphs'#2#0#8'TabOrde'
+'r'#2#0#0#0#7'TBitBtn'#7'BitBtn2'#4'Left'#3'L'#1#6'Height'#2#30#3'Top'#2#6#5
+'Width'#2'K'#7'Anchors'#11#5'akTop'#7'akRight'#0#25'BorderSpacing.InnerBorde'
+'r'#2#2#7'Caption'#6#6'Cancel'#4'Kind'#7#8'bkCancel'#11'ModalResult'#2#2#9'N'
+'umGlyphs'#2#0#8'TabOrder'#2#1#0#0#0#9'TGroupBox'#9'GroupBox1'#6'Height'#3
+#196#0#3'Top'#2'@'#5'Width'#3#156#1#5'Align'#7#8'alClient'#7'Caption'#6#9'Ar'
+'guments'#12'ClientHeight'#3#178#0#11'ClientWidth'#3#152#1#8'TabOrder'#2#2#0
+#6'TLabel'#6'Label3'#4'Left'#2#6#6'Height'#2#14#3'Top'#2#14#5'Width'#2'7'#7
+'Caption'#6#10'Argument 1'#5'Color'#7#6'clNone'#11'ParentColor'#8#0#0#6'TLab'
+'el'#6'Label4'#4'Left'#2#6#6'Height'#2#14#3'Top'#2'1'#5'Width'#2'7'#7'Captio'
+'n'#6#10'Argument 2'#5'Color'#7#6'clNone'#11'ParentColor'#8#0#0#6'TLabel'#6
+'Label5'#4'Left'#2#6#6'Height'#2#14#3'Top'#2'Q'#5'Width'#2'7'#7'Caption'#6#10
+'Argument 3'#5'Color'#7#6'clNone'#11'ParentColor'#8#0#0#7'TBitBtn'#7'BitBtn3'
+#3'Tag'#2#1#4'Left'#3'v'#1#6'Height'#2#23#3'Top'#2#5#5'Width'#2#27#7'Anchors'
+#11#5'akTop'#7'akRight'#0#25'BorderSpacing.InnerBorder'#2#2#10'Glyph.Data'#10
+#160#1#0#0#156#1#0#0'/* XPM */'#10'static char *graphic[] = {'#10'"16 16 3 1'
+'",'#10'". c None",'#10'", c #000000",'#10'"- c #A1A1A1",'#10'".............'
+'...",'#10'"................",'#10'".......,,,......",'#10'"......,,.-,.....'
+'",'#10'"......,-........",'#10'"....,,,,,.......",'#10'".....-,.........",'
+#10'".....,-.,,.-,...",'#10'"....-,-..,,,....",'#10'"....-,..-,,.....",'#10
+'"....,-.,,.,,....",'#10'"....,...........",'#10'"...,............",'#10'"..'
+'..............",'#10'"................",'#10'"................"}'#10#6'Layo'
+'ut'#7#13'blGlyphBottom'#9'NumGlyphs'#2#0#7'OnClick'#7#12'BitBtn5Click'#8'Ta'
+'bOrder'#2#0#0#0#5'TEdit'#5'Edit1'#4'Left'#2'N'#6'Height'#2#23#3'Top'#2#5#5
+'Width'#3'('#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#8'TabOrder'#2#1
+#0#0#5'TEdit'#5'Edit2'#4'Left'#2'N'#6'Height'#2#23#3'Top'#2'('#5'Width'#3'('
+#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#8'TabOrder'#2#2#0#0#7'TBitB'
+'tn'#7'BitBtn4'#3'Tag'#2#2#4'Left'#3'v'#1#6'Height'#2#23#3'Top'#2'('#5'Width'
+#2#27#7'Anchors'#11#5'akTop'#7'akRight'#0#25'BorderSpacing.InnerBorder'#2#2
+#10'Glyph.Data'#10#160#1#0#0#156#1#0#0'/* XPM */'#10'static char *graphic[] '
+'= {'#10'"16 16 3 1",'#10'". c None",'#10'", c #000000",'#10'"- c #A1A1A1",'
+#10'"................",'#10'"................",'#10'".......,,,......",'#10
+'"......,,.-,.....",'#10'"......,-........",'#10'"....,,,,,.......",'#10'"..'
+'...-,.........",'#10'".....,-.,,.-,...",'#10'"....-,-..,,,....",'#10'"....-'
+',..-,,.....",'#10'"....,-.,,.,,....",'#10'"....,...........",'#10'"...,....'
+'........",'#10'"................",'#10'"................",'#10'"...........'
+'....."}'#10#6'Layout'#7#13'blGlyphBottom'#9'NumGlyphs'#2#0#7'OnClick'#7#12
+'BitBtn5Click'#8'TabOrder'#2#3#0#0#5'TEdit'#5'Edit3'#4'Left'#2'N'#6'Height'#2
+#23#3'Top'#2'H'#5'Width'#3'('#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0
+#8'TabOrder'#2#4#0#0#7'TBitBtn'#7'BitBtn5'#3'Tag'#2#3#4'Left'#3'v'#1#6'Heigh'
+'t'#2#23#3'Top'#2'H'#5'Width'#2#27#7'Anchors'#11#5'akTop'#7'akRight'#0#25'Bo'
+'rderSpacing.InnerBorder'#2#2#10'Glyph.Data'#10#160#1#0#0#156#1#0#0'/* XPM *'
+'/'#10'static char *graphic[] = {'#10'"16 16 3 1",'#10'". c None",'#10'", c '
+'#000000",'#10'"- c #A1A1A1",'#10'"................",'#10'"................"'
+','#10'".......,,,......",'#10'"......,,.-,.....",'#10'"......,-........",'
+#10'"....,,,,,.......",'#10'".....-,.........",'#10'".....,-.,,.-,...",'#10
+'"....-,-..,,,....",'#10'"....-,..-,,.....",'#10'"....,-.,,.,,....",'#10'"..'
,'..,...........",'#10'"...,............",'#10'"................",'#10'".....'
+'...........",'#10'"................"}'#10#6'Layout'#7#13'blGlyphBottom'#9'N'
+'umGlyphs'#2#0#7'OnClick'#7#12'BitBtn5Click'#8'TabOrder'#2#5#0#0#0#0
+'entHeight'#3','#1#11'ClientWidth'#3#156#1#8'Position'#7#15'poDesktopCenter'
+#10'LCLVersion'#6#6'0.9.25'#0#6'TPanel'#6'Panel1'#6'Height'#2'@'#5'Width'#3
+#156#1#5'Align'#7#5'alTop'#10'BevelOuter'#7#9'bvLowered'#12'ClientHeight'#2
+'@'#11'ClientWidth'#3#156#1#8'TabOrder'#2#0#0#6'TLabel'#6'Label1'#4'Left'#2#1
+#6'Height'#2#14#3'Top'#2#1#5'Width'#3#154#1#5'Align'#7#5'alTop'#7'Caption'#6
+#6'Label1'#5'Color'#7#7'clWhite'#11'ParentColor'#8#11'Transparent'#8#0#0#6'T'
+'Label'#6'Label2'#4'Left'#2#1#6'Height'#2'0'#3'Top'#2#15#5'Width'#3#154#1#5
+'Align'#7#8'alClient'#7'Caption'#6#6'Label2'#5'Color'#7#8'clInfoBk'#11'Paren'
+'tColor'#8#11'Transparent'#8#8'WordWrap'#9#0#0#0#6'TPanel'#6'Panel2'#6'Heigh'
+'t'#2'('#3'Top'#3#4#1#5'Width'#3#156#1#5'Align'#7#8'alBottom'#10'BevelOuter'
+#7#6'bvNone'#12'ClientHeight'#2'('#11'ClientWidth'#3#156#1#8'TabOrder'#2#1#0
+#7'TBitBtn'#7'BitBtn1'#4'Left'#3#252#0#6'Height'#2#30#3'Top'#2#6#5'Width'#2
+'K'#7'Anchors'#11#5'akTop'#7'akRight'#0#25'BorderSpacing.InnerBorder'#2#2#7
+'Caption'#6#3'&Ok'#7'Default'#9#4'Kind'#7#4'bkOK'#11'ModalResult'#2#1#9'NumG'
+'lyphs'#2#0#8'TabOrder'#2#0#0#0#7'TBitBtn'#7'BitBtn2'#4'Left'#3'L'#1#6'Heigh'
+'t'#2#30#3'Top'#2#6#5'Width'#2'K'#7'Anchors'#11#5'akTop'#7'akRight'#0#25'Bor'
+'derSpacing.InnerBorder'#2#2#7'Caption'#6#6'Cancel'#4'Kind'#7#8'bkCancel'#11
+'ModalResult'#2#2#9'NumGlyphs'#2#0#8'TabOrder'#2#1#0#0#0#9'TGroupBox'#9'Grou'
+'pBox1'#6'Height'#3#196#0#3'Top'#2'@'#5'Width'#3#156#1#5'Align'#7#8'alClient'
+#7'Caption'#6#9'Arguments'#12'ClientHeight'#3#178#0#11'ClientWidth'#3#152#1#8
+'TabOrder'#2#2#0#6'TLabel'#6'Label3'#4'Left'#2#6#6'Height'#2#14#3'Top'#2#14#5
+'Width'#2'7'#7'Caption'#6#10'Argument 1'#11'ParentColor'#8#0#0#6'TLabel'#6'L'
+'abel4'#4'Left'#2#6#6'Height'#2#14#3'Top'#2'1'#5'Width'#2'7'#7'Caption'#6#10
+'Argument 2'#11'ParentColor'#8#0#0#6'TLabel'#6'Label5'#4'Left'#2#6#6'Height'
+#2#14#3'Top'#2'Q'#5'Width'#2'7'#7'Caption'#6#10'Argument 3'#11'ParentColor'#8
+#0#0#7'TBitBtn'#7'BitBtn3'#3'Tag'#2#1#4'Left'#3'v'#1#6'Height'#2#23#3'Top'#2
+#5#5'Width'#2#27#7'Anchors'#11#5'akTop'#7'akRight'#0#25'BorderSpacing.InnerB'
+'order'#2#2#10'Glyph.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0
+'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#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#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#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#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#255#161#161#161#255#0#0#0#0#0#0#0#255#0#0#0#255#0#0#0#0#0#0#0#255#0
+#0#0#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#161
+#161#161#255#0#0#0#255#0#0#0#0#0#0#0#0#161#161#161#255#0#0#0#255#0#0#0#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#161
+#161#161#255#0#0#0#255#161#161#161#255#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0#255#0
+#0#0#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#255#161#161#161#255#0#0#0#0#0#0#0#255#0#0#0#255#0#0#0#0#161#161
+#161#255#0#0#0#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#161#161#161#255#0#0#0#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#255#0#0#0
+#255#0#0#0#255#0#0#0#255#0#0#0#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#255#161
+#161#161#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#255#0#0#0#255#0#0#0#0
+#161#161#161#255#0#0#0#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#255#0#0#0#255#0#0#0#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
+#6'Layout'#7#13'blGlyphBottom'#9'NumGlyphs'#2#0#7'OnClick'#7#12'BitBtn5Click'
+#8'TabOrder'#2#0#0#0#5'TEdit'#5'Edit1'#4'Left'#2'N'#6'Height'#2#23#3'Top'#2#5
,#5'Width'#3'('#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#8'TabOrder'#2
+#1#0#0#5'TEdit'#5'Edit2'#4'Left'#2'N'#6'Height'#2#23#3'Top'#2'('#5'Width'#3
+'('#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#8'TabOrder'#2#2#0#0#7'TB'
+'itBtn'#7'BitBtn4'#3'Tag'#2#2#4'Left'#3'v'#1#6'Height'#2#23#3'Top'#2'('#5'Wi'
+'dth'#2#27#7'Anchors'#11#5'akTop'#7'akRight'#0#25'BorderSpacing.InnerBorder'
+#2#2#10'Glyph.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0
+#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#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#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#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#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
+#255#161#161#161#255#0#0#0#0#0#0#0#255#0#0#0#255#0#0#0#0#0#0#0#255#0#0#0#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#161#161#161
+#255#0#0#0#255#0#0#0#0#0#0#0#0#161#161#161#255#0#0#0#255#0#0#0#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#161#161#161
+#255#0#0#0#255#161#161#161#255#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0#255#0#0#0#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#255#161#161#161#255#0#0#0#0#0#0#0#255#0#0#0#255#0#0#0#0#161#161#161#255#0
+#0#0#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#161
+#161#161#255#0#0#0#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#255#0#0#0#255#0#0#0
+#255#0#0#0#255#0#0#0#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#255#161#161#161
+#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#255#0#0#0#255#0#0#0#0#161#161
+#161#255#0#0#0#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#255#0#0#0#255#0#0#0#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#6'Layou'
+'t'#7#13'blGlyphBottom'#9'NumGlyphs'#2#0#7'OnClick'#7#12'BitBtn5Click'#8'Tab'
+'Order'#2#3#0#0#5'TEdit'#5'Edit3'#4'Left'#2'N'#6'Height'#2#23#3'Top'#2'H'#5
+'Width'#3'('#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#8'TabOrder'#2#4
+#0#0#7'TBitBtn'#7'BitBtn5'#3'Tag'#2#3#4'Left'#3'v'#1#6'Height'#2#23#3'Top'#2
+'H'#5'Width'#2#27#7'Anchors'#11#5'akTop'#7'akRight'#0#25'BorderSpacing.Inner'
+'Border'#2#2#10'Glyph.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0
+'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#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#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#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#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#255#161#161#161#255#0#0#0#0#0#0#0#255#0#0#0#255#0#0#0#0#0#0#0#255#0
+#0#0#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#161
+#161#161#255#0#0#0#255#0#0#0#0#0#0#0#0#161#161#161#255#0#0#0#255#0#0#0#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#161
+#161#161#255#0#0#0#255#161#161#161#255#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0#255#0
+#0#0#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#255#161#161#161#255#0#0#0#0#0#0#0#255#0#0#0#255#0#0#0#0#161#161
+#161#255#0#0#0#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#161#161#161#255#0#0#0#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#255#0#0#0
+#255#0#0#0#255#0#0#0#255#0#0#0#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#255#161
,#161#161#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#255#0#0#0#255#0#0#0#0
+#161#161#161#255#0#0#0#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#255#0#0#0#255#0#0#0#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
+#6'Layout'#7#13'blGlyphBottom'#9'NumGlyphs'#2#0#7'OnClick'#7#12'BitBtn5Click'
+#8'TabOrder'#2#5#0#0#0#0
]);

View File

@ -68,6 +68,10 @@ var
S, S1:string;
i:integer;
begin
// TODO: context sensitive inpunts, for example for
// bandname use the list of available bands.
FD:=AFD;
S:=FD.funDescription;
S1:=Copy(S, 1, Pos('/', S)-1);