Develop and Download Open Source Software

Browse Subversion Repository

Annotation of /Unit1.pas

Parent Directory Parent Directory | Revision Log Revision Log


Revision 11 - (hide annotations) (download) (as text)
Fri Jul 22 23:40:03 2016 UTC (7 years, 8 months ago) by yamat0jp
File MIME type: text/x-pascal
File size: 14989 byte(s)
パスワードをハッシュ値に置き換えました
クッキーに対応
1 yamat0jp 1 unit Unit1;
2    
3     interface
4    
5     uses
6 yamat0jp 2 Classes, SysUtils, IWAppForm, IWApplication, IWColor, IWTypes, IWVCLComponent,
7     IWBaseLayoutComponent, IWBaseContainerLayout, IWContainerLayout,
8     IWTemplateProcessorHTML, Vcl.Controls, Vcl.Forms, Unit2, IWVCLBaseContainer,
9     IWContainer, IWHTMLContainer, IWHTML40Container, IWRegion, IWDBStdCtrls,
10 yamat0jp 1 IWVCLBaseControl, IWBaseControl, IWBaseHTMLControl, IWControl, IWCompLabel,
11 yamat0jp 2 IWCompGrids, IWCompText, IWCompTabControl, IWCompButton, IWCompEdit,
12 yamat0jp 8 IWHTMLControls, IWCompExtCtrls, PngImage, Data.DB,
13 yamat0jp 3 IWCompListbox, IWBaseComponent, IWBaseHTMLComponent, IWBaseHTML40Component,
14 yamat0jp 8 IWCompMenu, Vcl.Menus, System.Variants, Vcl.Dialogs, System.UITypes, Unit8;
15 yamat0jp 1
16     type
17 yamat0jp 2 TIWForm1 = class(TIWAppForm)
18     IWTemplateProcessorHTML1: TIWTemplateProcessorHTML;
19     IWLabel1: TIWLabel;
20     IWDBLabel1: TIWDBLabel;
21 yamat0jp 1 IWRegion1: TIWRegion;
22 yamat0jp 2 IWRegion2: TIWRegion;
23     IWText1: TIWText;
24     IWGrid1: TIWGrid;
25     IWRegion3: TIWRegion;
26     IWRegion4: TIWRegion;
27 yamat0jp 1 IWLink1: TIWLink;
28     IWLabel2: TIWLabel;
29 yamat0jp 2 IWList1: TIWList;
30 yamat0jp 1 IWLabel3: TIWLabel;
31     IWEdit1: TIWEdit;
32     IWButton1: TIWButton;
33 yamat0jp 2 IWEdit2: TIWEdit;
34     IWEdit3: TIWEdit;
35     IWLink2: TIWLink;
36     IWRegion5: TIWRegion;
37     IWLabel7: TIWLabel;
38     IWRegion6: TIWRegion;
39     IWLabel8: TIWLabel;
40     IWList2: TIWList;
41     IWLabel4: TIWLabel;
42 yamat0jp 1 IWRegion7: TIWRegion;
43 yamat0jp 2 IWLabel5: TIWLabel;
44     IWLabel6: TIWLabel;
45 yamat0jp 1 IWList3: TIWList;
46 yamat0jp 5 IWImage1: TIWImage;
47     IWFrame8: TIWFrame8;
48 yamat0jp 7 IWLink4: TIWLink;
49 yamat0jp 5 IWLink3: TIWLink;
50 yamat0jp 8 IWLink5: TIWLink;
51     IWFrame1: TIWFrame1;
52 yamat0jp 10 IWLink6: TIWLink;
53 yamat0jp 1 procedure IWAppFormRender(Sender: TObject);
54 yamat0jp 2 procedure IWLink2Click(Sender: TObject);
55 yamat0jp 1 procedure IWAppFormCreate(Sender: TObject);
56     procedure IWButton1Click(Sender: TObject);
57 yamat0jp 2 procedure IWLink1Click(Sender: TObject);
58 yamat0jp 5 procedure IWGrid1CellClick(ASender: TObject; const ARow, AColumn: Integer);
59     procedure IWFrame8IWButton1Click(Sender: TObject);
60     procedure IWFrame8IWLink1Click(Sender: TObject);
61 yamat0jp 7 procedure IWLink4Click(Sender: TObject);
62 yamat0jp 5 procedure IWLink3Click(Sender: TObject);
63 yamat0jp 8 procedure IWLink5Click(Sender: TObject);
64 yamat0jp 10 procedure IWLink6Click(Sender: TObject);
65 yamat0jp 1 private
66 yamat0jp 5 Filter: Boolean;
67 yamat0jp 7 function GetPage: Boolean;
68     procedure SetPage(const Value: Boolean);
69 yamat0jp 1 procedure LoadImage;
70     procedure ClearImage;
71 yamat0jp 8 function GetThumbnail: Boolean;
72 yamat0jp 9 procedure CallBack(EventParams: TStringList);
73 yamat0jp 8 procedure SetThumbnail(const Value: Boolean);
74 yamat0jp 1 public
75 yamat0jp 7 property Page: Boolean read GetPage write SetPage;
76 yamat0jp 10 property Thumbnail: Boolean read GetThumbnail write SetThumbnail;
77 yamat0jp 1 end;
78    
79 yamat0jp 8 var
80     IWForm1: TIWForm1;
81    
82 yamat0jp 1 implementation
83    
84     {$R *.dfm}
85    
86 yamat0jp 10 uses Unit3, ServerController, Unit6, Unit4, Unit9, Unit10, Unit5;
87 yamat0jp 1
88 yamat0jp 9 procedure TIWForm1.CallBack(EventParams: TStringList);
89     begin
90     if SameText(EventParams.Values['RetValue'], 'true') = true then
91     TCartForm.Create(WebApplication).Show;
92 yamat0jp 11 IWFrame8.IWEdit1.Text := '0';
93 yamat0jp 9 end;
94    
95 yamat0jp 2 procedure TIWForm1.ClearImage;
96 yamat0jp 1 var
97 yamat0jp 2 i: Integer;
98     j: Integer;
99 yamat0jp 1 begin
100 yamat0jp 2 for i := 0 to IWGrid1.RowCount - 1 do
101     for j := 0 to IWGrid1.ColumnCount - 1 do
102     IWGrid1.Cell[i, j].Control.Free;
103 yamat0jp 5 IWGrid1.RowCount := 0;
104 yamat0jp 1 end;
105    
106 yamat0jp 7 function TIWForm1.GetPage: Boolean;
107 yamat0jp 1 begin
108     result := UserSession.FPage;
109     end;
110    
111 yamat0jp 8 function TIWForm1.GetThumbnail: Boolean;
112     begin
113     result := UserSession.FThumbnail;
114     end;
115    
116 yamat0jp 2 procedure TIWForm1.IWAppFormCreate(Sender: TObject);
117 yamat0jp 3 const
118     i = 120;
119     var
120     s: Integer;
121 yamat0jp 1 begin
122 yamat0jp 8 IWForm1 := Self;
123 yamat0jp 1 Page := UserSession.FPage;
124 yamat0jp 8 Thumbnail := UserSession.FThumbnail;
125 yamat0jp 3 s := DM.FDTable3.FieldByName('BGCOLOR').AsInteger;
126     IWLabel2.BGColor := s;
127     IWLabel3.BGColor := s;
128     IWLabel5.BGColor := s;
129 yamat0jp 4 IWLabel7.BGColor := s;
130     IWLabel8.BGColor := s;
131 yamat0jp 3 IWRegion1.Width := i;
132     IWRegion2.Width := i;
133     IWRegion4.Width := i;
134     IWRegion5.Width := i;
135     IWRegion6.Width := i;
136     IWRegion7.Width := i;
137 yamat0jp 9 WebApplication.RegisterCallBack('callback', CallBack);
138 yamat0jp 1 end;
139    
140 yamat0jp 2 procedure TIWForm1.IWAppFormRender(Sender: TObject);
141 yamat0jp 1 var
142     s: string;
143 yamat0jp 2 i, j: Integer;
144 yamat0jp 1 begin
145     IWList1.Items.Clear;
146     with DM.FDTable2 do
147 yamat0jp 2 begin
148 yamat0jp 3 if Filtered = true then
149 yamat0jp 1 begin
150 yamat0jp 3 FindFirst;
151     while Found = true do
152 yamat0jp 1 begin
153 yamat0jp 3 s := FieldByName('CATEGORY').AsString;
154     if s = '' then
155     begin
156     FindNext;
157     continue;
158     end;
159 yamat0jp 2 i := IWList1.Items.IndexOfName(s);
160     if i = -1 then
161     IWList1.Items.Add(s + '=1')
162 yamat0jp 1 else
163     begin
164 yamat0jp 2 j := IWList1.Items.ValueFromIndex[i].ToInteger + 1;
165     IWList1.Items[i] := s + '=' + j.ToString;
166 yamat0jp 1 end;
167 yamat0jp 3 FindNext;
168     end;
169     end
170     else
171     begin
172     First;
173     while Eof = false do
174 yamat0jp 2 begin
175 yamat0jp 3 s := FieldByName('CATEGORY').AsString;
176     if s = '' then
177     begin
178     Next;
179     continue;
180     end;
181 yamat0jp 2 i := IWList1.Items.IndexOf(s);
182     if i = -1 then
183     IWList1.Items.Add(s);
184 yamat0jp 3 Next;
185 yamat0jp 1 end;
186     end;
187 yamat0jp 2 end;
188 yamat0jp 1 if DM.FDTable2.Filtered = true then
189     for i := 0 to IWList1.Items.Count - 1 do
190     begin
191     s := IWList1.Items.ValueFromIndex[i];
192     if s = '1' then
193     IWList1.Items[i] := IWList1.Items.Names[i]
194     else
195     IWList1.Items[i] := IWList1.Items.Names[i] + '(' + s + ')';
196     end;
197 yamat0jp 2 IWList2.Items.Clear;
198 yamat0jp 11 with DM.FDQuery1 do
199 yamat0jp 1 begin
200 yamat0jp 11 SQL.Clear;
201     SQL.Add('select volume,name,price from cart_data join item_data');
202     SQL.Add(' on (cart_data.serial = item_data.serial)');
203     SQL.Add(' where number = :num;');
204     Params.ParamByName('num').AsInteger := UserSession.user_number;
205     Open;
206     First;
207     i := 0;
208     while Eof = false do
209 yamat0jp 1 begin
210 yamat0jp 11 s := Fields.Fields[0].AsString + 'x' + Fields.Fields[1].AsString;
211     i := i + Fields.Fields[0].AsInteger * Fields.Fields[2].AsInteger;
212     IWList2.Items.Add(s);
213     Next;
214 yamat0jp 1 end;
215 yamat0jp 11 IWList2.Items.Add(i.ToString + '�~');
216     Close;
217     IWList3.Items.Clear;
218     SQL.Clear;
219     SQL.Add('select name from recent_data join item_data');
220     SQL.Add(' on (recent_data.serial = item_data.serial)');
221     SQL.Add(' where number = :num;');
222     Params.ParamByName('num').AsInteger := UserSession.user_number;
223     Open;
224     First;
225     while Eof = false do
226     begin
227     IWList3.Items.Add(Fields.Fields[0].AsString);
228     Next;
229     end;
230     Close;
231 yamat0jp 1 end;
232 yamat0jp 6 LoadImage;
233 yamat0jp 5 if IWGrid1.Visible = true then
234     IWLabel6.Visible := Filter;
235 yamat0jp 1 end;
236    
237 yamat0jp 2 procedure TIWForm1.IWButton1Click(Sender: TObject);
238 yamat0jp 5 var
239     i: Integer;
240 yamat0jp 1 begin
241 yamat0jp 5 IWFrame8IWLink1Click(Sender);
242 yamat0jp 3 if IWEdit1.Text <> '' then
243 yamat0jp 1 begin
244 yamat0jp 4 DM.FDTable2.Filter := 'NAME like ' + QuotedStr('%' + IWEdit1.Text + '%');
245 yamat0jp 1 DM.FDTable2.Filtered := true;
246 yamat0jp 5 i := DM.FDTable2.RecordCount;
247     IWLabel6.Caption := Format(IWEdit1.Text + '����������������:%d��', [i]);
248     if i = 0 then
249     DM.FDTable2.Filtered := false;
250     Filter := true;
251     end
252     else
253     begin
254     DM.FDTable2.Filtered := false;
255     Filter := false;
256 yamat0jp 1 end;
257     end;
258    
259 yamat0jp 5 procedure TIWForm1.IWFrame8IWButton1Click(Sender: TObject);
260     var
261 yamat0jp 11 i, j: Integer;
262     s: string;
263 yamat0jp 5 begin
264     if TryStrToInt(IWFrame8.IWEdit1.Text, i) = false then
265     begin
266     WebApplication.ShowMessage('�������s������');
267     Exit;
268     end;
269     if i = 0 then
270     begin
271     WebApplication.ShowMessage('�P�����������������K�v����');
272     Exit;
273     end;
274 yamat0jp 11 s := WebApplication.Request.CookieFields.Values['user_cookie'];
275     if s = '' then
276     begin
277     DM.FDTable1.Last;
278     j := DM.FDTable1.FieldByName('NUMBER').AsInteger + 1;
279     while DM.FDTable1.Lookup('NUMBER', j, 'NUMBER') = j do
280     inc(j);
281     UserSession.user_number := j;
282     DM.FDTable1.AppendRecord([nil, nil, nil, nil, nil,
283     UserSession.user_number, Date]);
284     WebApplication.Response.Cookies.AddCookie('user_cookie',
285     UserSession.user_number.ToString, '/', Date + 10);
286     end;
287 yamat0jp 5 with DM.FDQuery1 do
288     begin
289     SQL.Clear;
290     SQL.Add('select * from cart_data;');
291     Open;
292     if Locate('NUMBER;SERIAL', VarArrayOf([UserSession.user_number,
293     UserSession.Serial]), []) = true then
294     begin
295     Edit;
296     FieldByName('VOLUME').AsInteger := FieldByName('VOLUME').AsInteger + i;
297     Post;
298     end
299     else
300     AppendRecord([nil, i, UserSession.user_number, UserSession.Serial]);
301     end;
302 yamat0jp 9 WebApplication.ShowConfirm('�J�[�g��������������', 'callback', '����', '����', '������');
303 yamat0jp 5 end;
304    
305     procedure TIWForm1.IWFrame8IWLink1Click(Sender: TObject);
306     begin
307 yamat0jp 8 Thumbnail := true;
308 yamat0jp 5 end;
309    
310     procedure TIWForm1.IWGrid1CellClick(ASender: TObject;
311     const ARow, AColumn: Integer);
312     begin
313 yamat0jp 8 Thumbnail := false;
314 yamat0jp 5 IWFrame8.IWEdit1.Text := '1';
315     UserSession.Serial := Integer(IWGrid1.Cell[ARow, AColumn].Tag);
316     end;
317    
318 yamat0jp 2 procedure TIWForm1.IWLink1Click(Sender: TObject);
319     begin
320 yamat0jp 8 TUserForm.Create(WebApplication).Show;
321 yamat0jp 2 end;
322    
323     procedure TIWForm1.IWLink2Click(Sender: TObject);
324 yamat0jp 11 var
325     i: Integer;
326 yamat0jp 1 begin
327 yamat0jp 7 if Page = true then
328 yamat0jp 8 begin
329 yamat0jp 11 i := UserSession.user_number;
330     if (DM.FDTable1.Locate('EMAIL;PASSWORD',
331     VarArrayOf([IWEdit2.Text, UserSession.hash(IWEdit3.Text)]),
332     [loCaseInsensitive]) = true) and
333     (DM.FDTable1.FieldByName('EMAIL').AsString <> '') then
334 yamat0jp 8 begin
335 yamat0jp 11 IWEdit2.Text := '';
336     UserSession.user_number := DM.FDTable1.FieldByName('NUMBER').AsInteger;
337     if i <> 0 then
338     begin
339     with DM.FDQuery1 do
340     begin
341     SQL.Clear;
342     SQL.Add('select * from user_data where number = :num');
343     Params.ParamByName('num').AsInteger := i;
344     Open;
345     Delete;
346     SQL.Clear;
347     SQL.Add('select number from cart_data where number = :num;');
348     Params.ParamByName('num').AsInteger := i;
349     Open;
350     First;
351     while Eof = false do
352     begin
353     Edit;
354     FieldByName('number').AsInteger := UserSession.user_number;
355     Next;
356     end;
357     end;
358     end;
359 yamat0jp 8 Page := false;
360     end;
361     IWEdit3.Text := '';
362     end
363     else
364     Page := true;
365 yamat0jp 1 end;
366    
367 yamat0jp 5 procedure TIWForm1.IWLink3Click(Sender: TObject);
368     begin
369 yamat0jp 7 with TMyPage.Create(WebApplication) do
370     begin
371     Form := Self;
372     Show;
373     end;
374 yamat0jp 5 end;
375    
376     procedure TIWForm1.IWLink4Click(Sender: TObject);
377     begin
378     TCartForm.Create(WebApplication).Show;
379     end;
380    
381 yamat0jp 8 procedure TIWForm1.IWLink5Click(Sender: TObject);
382     begin
383     TIWForm10.Create(WebApplication).Show;
384     end;
385    
386 yamat0jp 10 procedure TIWForm1.IWLink6Click(Sender: TObject);
387     begin
388 yamat0jp 11 Page := true;
389 yamat0jp 10 TIWForm3.Create(WebApplication).Show;
390     end;
391    
392 yamat0jp 2 procedure TIWForm1.LoadImage;
393 yamat0jp 1 var
394 yamat0jp 2 s: TStream;
395 yamat0jp 1 png: TPngImage;
396 yamat0jp 5 pic: TIWImage;
397 yamat0jp 2 i: Integer;
398     j: Integer;
399 yamat0jp 5 x: Boolean;
400     t: string;
401 yamat0jp 3 label label1;
402 yamat0jp 1 begin
403     ClearImage;
404 yamat0jp 4 png := TPngImage.Create;
405 yamat0jp 2 try
406 yamat0jp 8 if Thumbnail = true then
407 yamat0jp 6 begin
408     i := DM.FDTable2.RecordCount div IWGrid1.ColumnCount;
409     if DM.FDTable2.RecordCount mod IWGrid1.ColumnCount > 0 then
410     inc(i);
411     IWGrid1.RowCount := i;
412     if DM.FDTable2.Filtered = false then
413     DM.FDTable2.Last
414     else
415     DM.FDTable2.FindLast;
416     for i := 0 to IWGrid1.RowCount - 1 do
417     for j := 0 to IWGrid1.ColumnCount - 1 do
418 yamat0jp 5 begin
419 yamat0jp 6 if DM.FDTable2.Filtered = false then
420     begin
421     if DM.FDTable2.Bof = true then
422     goto label1;
423     end
424     else if DM.FDTable2.Found = false then
425 yamat0jp 5 goto label1;
426 yamat0jp 6 if DM.FDTable2.FieldByName('THUMBNAIL').AsBytes <> nil then
427     begin
428     s := DM.FDTable2.CreateBlobStream
429     (DM.FDTable2.FieldByName('THUMBNAIL'), bmRead);
430     try
431     png.LoadFromStream(s);
432     finally
433     s.Free;
434     end;
435     pic := TIWImage.Create(IWGrid1);
436     pic.Picture.Assign(png);
437     IWGrid1.Cell[i, j].Control := pic;
438 yamat0jp 5 end;
439 yamat0jp 6 t := DM.FDTable2.FieldByName('NAME').AsString;
440     if Length(t) > 10 then
441     t := Copy(t, 1, 8) + '..';
442     IWGrid1.Cell[i, j].Tag :=
443     Pointer(DM.FDTable2.FieldByName('SERIAL').AsInteger);
444     IWGrid1.Cell[i, j].Text := t;
445     IWGrid1.Cell[i, j].Alignment := taCenter;
446     IWGrid1.Cell[i, j].Clickable := true;
447     if DM.FDTable2.Filtered = false then
448     DM.FDTable2.Prior
449     else
450     DM.FDTable2.FindPrior;
451 yamat0jp 1 end;
452 yamat0jp 6 label1:
453     end
454     else if (DM.FDTable2.Locate('SERIAL', UserSession.Serial, []) = true) and
455     (DM.FDTable2.FieldByName('THUMBNAIL').AsBytes <> nil) then
456     begin
457     s := DM.FDTable2.CreateBlobStream
458     (DM.FDTable2.FieldByName('THUMBNAIL'), bmRead);
459     try
460     png.LoadFromStream(s);
461     IWFrame8.IWImage1.Picture.Assign(png);
462     finally
463     s.Free;
464 yamat0jp 1 end;
465 yamat0jp 6 end
466     else
467     IWFrame8.IWImage1.Picture.Assign(nil);
468 yamat0jp 1 finally
469     png.Free;
470     end;
471 yamat0jp 3 png := nil;
472     s := nil;
473     Randomize;
474 yamat0jp 5 if DM.FDTable2.Filtered = true then
475     begin
476     x := true;
477     DM.FDTable2.Filtered := false;
478     end
479     else
480     x := false;
481 yamat0jp 3 DM.FDTable2.Last;
482 yamat0jp 5 if DM.FDTable2.Bof = true then
483     Exit;
484 yamat0jp 3 DM.FDTable2.MoveBy(-Random(DM.FDTable2.RecordCount div 5));
485 yamat0jp 5 if DM.FDTable2.FieldByName('THUMBNAIL').AsBytes <> nil then
486 yamat0jp 4 begin
487     s := DM.FDTable2.CreateBlobStream
488     (DM.FDTable2.FieldByName('THUMBNAIL'), bmRead);
489     png := TPngImage.Create;
490     try
491     png.LoadFromStream(s);
492 yamat0jp 5 IWImage1.Picture.Assign(png);
493 yamat0jp 4 finally
494     png.Free;
495     s.Free;
496     end;
497 yamat0jp 3 end;
498 yamat0jp 5 if x = true then
499     DM.FDTable2.Filtered := true;
500 yamat0jp 3 IWLabel4.Caption := DM.FDTable2.FieldByName('NAME').AsString;
501 yamat0jp 1 end;
502    
503 yamat0jp 7 procedure TIWForm1.SetPage(const Value: Boolean);
504 yamat0jp 1 begin
505     UserSession.FPage := Value;
506 yamat0jp 7 IWRegion7.Visible := not Value;
507     IWDBLabel1.Visible := not Value;
508     IWLink3.Visible := not Value;
509     IWLink1.Visible := Value;
510     IWText1.Visible := Value;
511     if Value = false then
512 yamat0jp 2 begin
513     IWLabel1.Caption := '��������';
514     IWLink2.Caption := '���O�A�E�g';
515 yamat0jp 11 WebApplication.Response.Cookies.AddCookie('user_cookie',
516     UserSession.user_number.ToString, '/', Date + 10);
517 yamat0jp 2 end
518     else
519     begin
520     IWLabel1.Caption := '���������Q�X�g�l';
521     IWLink2.Caption := '���O�C��';
522 yamat0jp 8 Thumbnail := true;
523     IWText1.Text := '';
524     DM.FDTable2.Filtered := false;
525     Filter := false;
526 yamat0jp 11 if DM.FDTable1.FieldByName('EMAIL').AsString <> '' then
527     begin
528     WebApplication.Response.Cookies.AddCookie('user_cookie',
529     UserSession.user_number.ToString, '/', Date - 1);
530     UserSession.user_number := 0;
531     end;
532 yamat0jp 1 end;
533     end;
534    
535 yamat0jp 8 procedure TIWForm1.SetThumbnail(const Value: Boolean);
536     begin
537     UserSession.FThumbnail := Value;
538     IWGrid1.Visible := Value;
539     IWFrame8.Visible := not Value;
540     end;
541    
542 yamat0jp 1 initialization
543    
544 yamat0jp 2 TIWForm1.SetAsMainForm;
545 yamat0jp 1
546     end.

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