Develop and Download Open Source Software

Browse Subversion Repository

Contents of /Unit1.pas

Parent Directory Parent Directory | Revision Log Revision Log


Revision 11 - (show 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 unit Unit1;
2
3 interface
4
5 uses
6 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 IWVCLBaseControl, IWBaseControl, IWBaseHTMLControl, IWControl, IWCompLabel,
11 IWCompGrids, IWCompText, IWCompTabControl, IWCompButton, IWCompEdit,
12 IWHTMLControls, IWCompExtCtrls, PngImage, Data.DB,
13 IWCompListbox, IWBaseComponent, IWBaseHTMLComponent, IWBaseHTML40Component,
14 IWCompMenu, Vcl.Menus, System.Variants, Vcl.Dialogs, System.UITypes, Unit8;
15
16 type
17 TIWForm1 = class(TIWAppForm)
18 IWTemplateProcessorHTML1: TIWTemplateProcessorHTML;
19 IWLabel1: TIWLabel;
20 IWDBLabel1: TIWDBLabel;
21 IWRegion1: TIWRegion;
22 IWRegion2: TIWRegion;
23 IWText1: TIWText;
24 IWGrid1: TIWGrid;
25 IWRegion3: TIWRegion;
26 IWRegion4: TIWRegion;
27 IWLink1: TIWLink;
28 IWLabel2: TIWLabel;
29 IWList1: TIWList;
30 IWLabel3: TIWLabel;
31 IWEdit1: TIWEdit;
32 IWButton1: TIWButton;
33 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 IWRegion7: TIWRegion;
43 IWLabel5: TIWLabel;
44 IWLabel6: TIWLabel;
45 IWList3: TIWList;
46 IWImage1: TIWImage;
47 IWFrame8: TIWFrame8;
48 IWLink4: TIWLink;
49 IWLink3: TIWLink;
50 IWLink5: TIWLink;
51 IWFrame1: TIWFrame1;
52 IWLink6: TIWLink;
53 procedure IWAppFormRender(Sender: TObject);
54 procedure IWLink2Click(Sender: TObject);
55 procedure IWAppFormCreate(Sender: TObject);
56 procedure IWButton1Click(Sender: TObject);
57 procedure IWLink1Click(Sender: TObject);
58 procedure IWGrid1CellClick(ASender: TObject; const ARow, AColumn: Integer);
59 procedure IWFrame8IWButton1Click(Sender: TObject);
60 procedure IWFrame8IWLink1Click(Sender: TObject);
61 procedure IWLink4Click(Sender: TObject);
62 procedure IWLink3Click(Sender: TObject);
63 procedure IWLink5Click(Sender: TObject);
64 procedure IWLink6Click(Sender: TObject);
65 private
66 Filter: Boolean;
67 function GetPage: Boolean;
68 procedure SetPage(const Value: Boolean);
69 procedure LoadImage;
70 procedure ClearImage;
71 function GetThumbnail: Boolean;
72 procedure CallBack(EventParams: TStringList);
73 procedure SetThumbnail(const Value: Boolean);
74 public
75 property Page: Boolean read GetPage write SetPage;
76 property Thumbnail: Boolean read GetThumbnail write SetThumbnail;
77 end;
78
79 var
80 IWForm1: TIWForm1;
81
82 implementation
83
84 {$R *.dfm}
85
86 uses Unit3, ServerController, Unit6, Unit4, Unit9, Unit10, Unit5;
87
88 procedure TIWForm1.CallBack(EventParams: TStringList);
89 begin
90 if SameText(EventParams.Values['RetValue'], 'true') = true then
91 TCartForm.Create(WebApplication).Show;
92 IWFrame8.IWEdit1.Text := '0';
93 end;
94
95 procedure TIWForm1.ClearImage;
96 var
97 i: Integer;
98 j: Integer;
99 begin
100 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 IWGrid1.RowCount := 0;
104 end;
105
106 function TIWForm1.GetPage: Boolean;
107 begin
108 result := UserSession.FPage;
109 end;
110
111 function TIWForm1.GetThumbnail: Boolean;
112 begin
113 result := UserSession.FThumbnail;
114 end;
115
116 procedure TIWForm1.IWAppFormCreate(Sender: TObject);
117 const
118 i = 120;
119 var
120 s: Integer;
121 begin
122 IWForm1 := Self;
123 Page := UserSession.FPage;
124 Thumbnail := UserSession.FThumbnail;
125 s := DM.FDTable3.FieldByName('BGCOLOR').AsInteger;
126 IWLabel2.BGColor := s;
127 IWLabel3.BGColor := s;
128 IWLabel5.BGColor := s;
129 IWLabel7.BGColor := s;
130 IWLabel8.BGColor := s;
131 IWRegion1.Width := i;
132 IWRegion2.Width := i;
133 IWRegion4.Width := i;
134 IWRegion5.Width := i;
135 IWRegion6.Width := i;
136 IWRegion7.Width := i;
137 WebApplication.RegisterCallBack('callback', CallBack);
138 end;
139
140 procedure TIWForm1.IWAppFormRender(Sender: TObject);
141 var
142 s: string;
143 i, j: Integer;
144 begin
145 IWList1.Items.Clear;
146 with DM.FDTable2 do
147 begin
148 if Filtered = true then
149 begin
150 FindFirst;
151 while Found = true do
152 begin
153 s := FieldByName('CATEGORY').AsString;
154 if s = '' then
155 begin
156 FindNext;
157 continue;
158 end;
159 i := IWList1.Items.IndexOfName(s);
160 if i = -1 then
161 IWList1.Items.Add(s + '=1')
162 else
163 begin
164 j := IWList1.Items.ValueFromIndex[i].ToInteger + 1;
165 IWList1.Items[i] := s + '=' + j.ToString;
166 end;
167 FindNext;
168 end;
169 end
170 else
171 begin
172 First;
173 while Eof = false do
174 begin
175 s := FieldByName('CATEGORY').AsString;
176 if s = '' then
177 begin
178 Next;
179 continue;
180 end;
181 i := IWList1.Items.IndexOf(s);
182 if i = -1 then
183 IWList1.Items.Add(s);
184 Next;
185 end;
186 end;
187 end;
188 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 IWList2.Items.Clear;
198 with DM.FDQuery1 do
199 begin
200 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 begin
210 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 end;
215 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 end;
232 LoadImage;
233 if IWGrid1.Visible = true then
234 IWLabel6.Visible := Filter;
235 end;
236
237 procedure TIWForm1.IWButton1Click(Sender: TObject);
238 var
239 i: Integer;
240 begin
241 IWFrame8IWLink1Click(Sender);
242 if IWEdit1.Text <> '' then
243 begin
244 DM.FDTable2.Filter := 'NAME like ' + QuotedStr('%' + IWEdit1.Text + '%');
245 DM.FDTable2.Filtered := true;
246 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 end;
257 end;
258
259 procedure TIWForm1.IWFrame8IWButton1Click(Sender: TObject);
260 var
261 i, j: Integer;
262 s: string;
263 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 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 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 WebApplication.ShowConfirm('�J�[�g��������������', 'callback', '����', '����', '������');
303 end;
304
305 procedure TIWForm1.IWFrame8IWLink1Click(Sender: TObject);
306 begin
307 Thumbnail := true;
308 end;
309
310 procedure TIWForm1.IWGrid1CellClick(ASender: TObject;
311 const ARow, AColumn: Integer);
312 begin
313 Thumbnail := false;
314 IWFrame8.IWEdit1.Text := '1';
315 UserSession.Serial := Integer(IWGrid1.Cell[ARow, AColumn].Tag);
316 end;
317
318 procedure TIWForm1.IWLink1Click(Sender: TObject);
319 begin
320 TUserForm.Create(WebApplication).Show;
321 end;
322
323 procedure TIWForm1.IWLink2Click(Sender: TObject);
324 var
325 i: Integer;
326 begin
327 if Page = true then
328 begin
329 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 begin
335 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 Page := false;
360 end;
361 IWEdit3.Text := '';
362 end
363 else
364 Page := true;
365 end;
366
367 procedure TIWForm1.IWLink3Click(Sender: TObject);
368 begin
369 with TMyPage.Create(WebApplication) do
370 begin
371 Form := Self;
372 Show;
373 end;
374 end;
375
376 procedure TIWForm1.IWLink4Click(Sender: TObject);
377 begin
378 TCartForm.Create(WebApplication).Show;
379 end;
380
381 procedure TIWForm1.IWLink5Click(Sender: TObject);
382 begin
383 TIWForm10.Create(WebApplication).Show;
384 end;
385
386 procedure TIWForm1.IWLink6Click(Sender: TObject);
387 begin
388 Page := true;
389 TIWForm3.Create(WebApplication).Show;
390 end;
391
392 procedure TIWForm1.LoadImage;
393 var
394 s: TStream;
395 png: TPngImage;
396 pic: TIWImage;
397 i: Integer;
398 j: Integer;
399 x: Boolean;
400 t: string;
401 label label1;
402 begin
403 ClearImage;
404 png := TPngImage.Create;
405 try
406 if Thumbnail = true then
407 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 begin
419 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 goto label1;
426 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 end;
439 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 end;
452 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 end;
465 end
466 else
467 IWFrame8.IWImage1.Picture.Assign(nil);
468 finally
469 png.Free;
470 end;
471 png := nil;
472 s := nil;
473 Randomize;
474 if DM.FDTable2.Filtered = true then
475 begin
476 x := true;
477 DM.FDTable2.Filtered := false;
478 end
479 else
480 x := false;
481 DM.FDTable2.Last;
482 if DM.FDTable2.Bof = true then
483 Exit;
484 DM.FDTable2.MoveBy(-Random(DM.FDTable2.RecordCount div 5));
485 if DM.FDTable2.FieldByName('THUMBNAIL').AsBytes <> nil then
486 begin
487 s := DM.FDTable2.CreateBlobStream
488 (DM.FDTable2.FieldByName('THUMBNAIL'), bmRead);
489 png := TPngImage.Create;
490 try
491 png.LoadFromStream(s);
492 IWImage1.Picture.Assign(png);
493 finally
494 png.Free;
495 s.Free;
496 end;
497 end;
498 if x = true then
499 DM.FDTable2.Filtered := true;
500 IWLabel4.Caption := DM.FDTable2.FieldByName('NAME').AsString;
501 end;
502
503 procedure TIWForm1.SetPage(const Value: Boolean);
504 begin
505 UserSession.FPage := Value;
506 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 begin
513 IWLabel1.Caption := '��������';
514 IWLink2.Caption := '���O�A�E�g';
515 WebApplication.Response.Cookies.AddCookie('user_cookie',
516 UserSession.user_number.ToString, '/', Date + 10);
517 end
518 else
519 begin
520 IWLabel1.Caption := '���������Q�X�g�l';
521 IWLink2.Caption := '���O�C��';
522 Thumbnail := true;
523 IWText1.Text := '';
524 DM.FDTable2.Filtered := false;
525 Filter := false;
526 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 end;
533 end;
534
535 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 initialization
543
544 TIWForm1.SetAsMainForm;
545
546 end.

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