Browse Source

* new bug

peter 22 years ago
parent
commit
a073d5f6b3
2 changed files with 93 additions and 0 deletions
  1. 32 0
      tests/webtbs/tw2492.pp
  2. 61 0
      tests/webtbs/tw2514.pp

+ 32 - 0
tests/webtbs/tw2492.pp

@@ -0,0 +1,32 @@
+{ Source provided for Free Pascal Bug Report 2492 }
+{ Submitted by "Mattias Gaertner" on  2003-05-15 }
+{ e-mail: [email protected] }
+program buggy;
+
+{$ifdef fpc}{$mode objfpc}{$H+}{$endif}
+
+uses
+  Classes, SysUtils, TypInfo;
+
+type
+  TMyClassA = class;
+
+  TMyClassB = class(TComponent)
+  private
+    FClassA: TMyClassA;
+  published
+    property ClassA: TMyClassA read FClassA write FClassA;
+  end;
+
+  TMyClassA = class(TComponent)
+  end;
+
+var
+  MyClassA: TMyClassA;
+begin
+  MyClassA:=TMyClassA.Create(nil);
+  writeln('PropertyCount=',
+    GetTypeData(MyClassA.ClassInfo)^.PropCount);
+  if GetTypeData(MyClassA.ClassInfo)^.PropCount<>2 then
+    halt(1);  
+end.

+ 61 - 0
tests/webtbs/tw2514.pp

@@ -0,0 +1,61 @@
+{ %opt=-Or }
+
+{ Source provided for Free Pascal Bug Report 2514 }
+{ Submitted by "Andreas Horst" on  2003-05-28 }
+{ e-mail: [email protected] }
+{$mode objfpc}
+type TRGB=record
+ TRGB2HSL: record
+ r,g,b : extended;
+ l,h,s : extended;
+ end;
+ end;
+
+ THSL=record end;
+
+function TRGB2HSL(rgb:TRGB):THSL;
+var maxcolor,mincolor:Extended;
+begin
+  with rgb,TRGB2HSL do begin
+    if r<0 then r:=0;
+    if r>1 then r:=1;
+    if g<0 then g:=0;
+    if g>1 then g:=1;
+    if b<0 then b:=0;
+    if b>1 then b:=1;
+    if r<g then begin
+      mincolor:=r;
+      maxcolor:=g;
+    end else begin
+      mincolor:=g;
+      maxcolor:=r;
+    end;
+    if b<mincolor then
+      mincolor:=b;
+    if b>maxcolor then
+      maxcolor:=b;
+    if maxcolor=mincolor then begin
+      l:=maxcolor;
+      s:=0;
+      h:=0;
+      Exit;
+    end;
+    l:=(maxcolor+mincolor)/2;
+    if l<0.5 then
+      s:=(maxcolor-mincolor)/(maxcolor+mincolor)
+    else
+      s:=(maxcolor-mincolor)/(2-maxcolor-mincolor);
+    if r=maxcolor then h:=(g-b)/(maxcolor-mincolor);
+    if g=maxcolor then h:=2+(b-r)/(maxcolor-mincolor);
+    if b=maxcolor then h:=4+(r-g)/(maxcolor-mincolor);
+  end
+end;
+
+var
+  rgb : TRGB;
+  i : longint;
+begin
+  fillchar(rgb,sizeof(rgb),0);
+  for i:=0 to 100 do
+    TRGB2HSL(rgb);
+end.