Develop and Download Open Source Software

Browse Subversion Repository

Diff of /UserSessionUnit.pas

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 5 by yamat0jp, Tue Dec 29 08:41:54 2015 UTC revision 16 by yamat0jp, Sat Aug 6 08:27:34 2016 UTC
# Line 1  Line 1 
1  unit UserSessionUnit;  unit UserSessionUnit;
2    
3  {  {
4    This is a DataModule where you can add components or declare fields that are specific to    This is a DataModule where you can add components or declare fields that are specific to
5    ONE user. Instead of creating global variables, it is better to use this datamodule. You can then    ONE user. Instead of creating global variables, it is better to use this datamodule. You can then
6    access the it using UserSession.    access the it using UserSession.
7  }  }
8  interface  interface
9    
10  uses  uses
11    IWUserSessionBase, SysUtils, Classes, Unit3;    IWUserSessionBase, SysUtils, Classes, Unit3, graphics, Data.DB, jpeg;
12    
13  type  type
   TPage = (Main,Info);  
   
14    TIWUserSession = class(TIWUserSessionBase)    TIWUserSession = class(TIWUserSessionBase)
15      procedure IWUserSessionBaseDestroy(Sender: TObject);      procedure IWUserSessionBaseDestroy(Sender: TObject);
16      procedure IWUserSessionBaseCreate(Sender: TObject);      procedure IWUserSessionBaseCreate(Sender: TObject);
# Line 22  type Line 20  type
20      { Private declarations }      { Private declarations }
21    public    public
22      { Public declarations }      { Public declarations }
23      FPage: TPage;      FPage: Boolean;
24      user_number: integer;      user_number: integer;
25      Thumbnail: Boolean;      FThumbnail: Boolean;
26      Serial: integer;      Serial: integer;
27        function hash(const pass: string): string;
28        procedure ImgToField(img: TPicture; field: TField);
29        procedure FieldToImg(img: TPicture; field: TField);
30      property DM: TDataModule3 read GetDM;      property DM: TDataModule3 read GetDM;
31    end;    end;
32    
33  implementation  implementation
34    
35  {$R *.dfm}  {$R *.dfm}
   
36  { TIWUserSession }  { TIWUserSession }
37    
38    procedure TIWUserSession.FieldToImg(img: TPicture; field: TField);
39    var
40      s: TStream;
41      jpg: TJpegImage;
42    begin
43      if field.IsNull = false then
44      begin
45        s := field.DataSet.CreateBlobStream(field, bmRead);
46        jpg := TJpegImage.Create;
47        try
48          jpg.LoadFromStream(s);
49          img.Assign(jpg);
50        finally
51          s.Free;
52          jpg.Free;
53        end;
54      end
55      else
56        img.Assign(nil);
57    end;
58    
59  function TIWUserSession.GetDM: TDataModule3;  function TIWUserSession.GetDM: TDataModule3;
60  begin  begin
61    if Assigned(FDM) = false then    if Assigned(FDM) = false then
62      FDM:=TDataModule3.Create(nil);      FDM := TDataModule3.Create(nil);
63    result:=FDM;    result := FDM;
64    end;
65    
66    function TIWUserSession.hash(const pass: string): string;
67    var
68      i: integer;
69      k: integer;
70    begin
71      result := '';
72      for i := Length(pass) downto 1 do
73      begin
74        k := Ord(pass[i]) * i;
75        result := result + k.ToString;
76      end;
77    end;
78    
79    procedure TIWUserSession.ImgToField(img: TPicture; field: TField);
80    var
81      s: TStream;
82      jpg: TJpegImage;
83      bmp: TBitmap;
84    begin
85      s := field.DataSet.CreateBlobStream(field, bmWrite);
86      jpg := TJpegImage.Create;
87      bmp:=TBitmap.Create;
88      try
89        bmp.Assign(img.Graphic);
90        jpg.Assign(bmp);
91        jpg.SaveToStream(s);
92      finally
93        s.Free;
94        bmp.Free;
95        jpg.Free;
96      end;
97  end;  end;
98    
99  procedure TIWUserSession.IWUserSessionBaseCreate(Sender: TObject);  procedure TIWUserSession.IWUserSessionBaseCreate(Sender: TObject);
100    var
101      s: string;
102  begin  begin
103    FPage:=Main;    FThumbnail := true;
104      s := WebApplication.Request.CookieFields.Values['user_cookie'];
105      if (s <> '') and (DM.FDTable1.Locate('NUMBER', s, []) = true) then
106      begin
107        user_number := s.ToInteger;
108        if DM.FDTable1.FieldByName('EMAIL').AsString = '' then
109          FPage := true
110        else
111          FPage := false;
112      end
113      else
114        FPage := true;
115  end;  end;
116    
117  procedure TIWUserSession.IWUserSessionBaseDestroy(Sender: TObject);  procedure TIWUserSession.IWUserSessionBaseDestroy(Sender: TObject);
# Line 53  begin Line 120  begin
120  end;  end;
121    
122  end.  end.
   
   

Legend:
Removed from v.5  
changed lines
  Added in v.16

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26