OSDN Git Service

TEditor、TTaskTrayの配布先変更に追従
[winbottle/winbottle.git] / bottleclient / SendConfirm.pas
index e9d8825..7848756 100755 (executable)
@@ -4,33 +4,100 @@ interface
 
 uses
   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
-  StdCtrls, ExtCtrls;
+  StdCtrls, ExtCtrls, BottleDef, SppList;
 
 type
   TfrmConfirmSend = class(TForm)
-    Button1: TButton;
-    Button2: TButton;
-    Label1: TLabel;
+    btnOk: TButton;
+    btnCancel: TButton;
     cbxDontAlertAnyMore: TCheckBox;
-    Image1: TImage;
-    procedure FormShow(Sender: TObject);
+    memPrompt: TMemo;
+    memInfo: TMemo;
+    pnlPreview: TPanel;
+    Image: TImage;
+    procedure FormCreate(Sender: TObject);
+    procedure FormDestroy(Sender: TObject);
   private
     { Private \90é\8c¾ }
+    FDefaultImage: TBitmap; // \83v\83\8c\83r\83\85\81[\97p\83T\81[\83t\83B\83X\82ª\82È\82¢\8fê\8d\87\82Ì\83{\83g\83\8b\89æ\91\9c
   public
     { Public \90é\8c¾ }
+    function Execute(const Channel, Ghost: String): boolean;
   end;
 
 var
   frmConfirmSend: TfrmConfirmSend;
 
+function SendConfirmDialog(const Channel, Ghost: String): boolean;
+
 implementation
 
 {$R *.DFM}
 
-procedure TfrmConfirmSend.FormShow(Sender: TObject);
+function SendConfirmDialog(const Channel, Ghost: String): boolean;
+var MyfrmConfirmSend: TfrmConfirmSend;
+begin
+  Application.CreateForm(TfrmConfirmSend, MyfrmConfirmSend);
+  with MyfrmConfirmSend do begin
+    try
+      cbxDontAlertAnyMore.Checked := Pref.NoConfirm;
+      Result := Execute(Channel, Ghost);
+      Pref.NoConfirm := cbxDontAlertAnyMore.Checked;
+    finally
+      Release;
+    end;
+  end;
+end;
+
+function TfrmConfirmSend.Execute(const Channel, Ghost: String): boolean;
+var Mes: String;
+    Bmp: TBitmap;
+    SurfaceImageExists: boolean;
+begin
+  Bmp := TBitmap.Create;
+  try
+    if Ghost = ChannelDefault then
+      SurfaceImageExists := false
+    else
+      SurfaceImageExists := Spps.TryGetImage(Ghost, 0, Bmp);
+    if SurfaceImageExists then
+      with Image do
+      begin
+        Picture.Bitmap := Bmp;
+        if (Width < Bmp.Width) or (Height < Bmp.Height) then
+        begin
+          Stretch := true;
+        end else
+          Stretch := false;
+        begin
+        end;
+      end
+    else
+      with Image do
+      begin
+        Picture.Bitmap := FDefaultImage;
+        Stretch := false;
+      end
+  finally
+    Bmp.Free;
+  end;
+
+  Mes := memInfo.Lines.Text;
+  Mes := StringReplace(Mes, '%channel', Channel, [rfReplaceAll]);
+  Mes := StringReplace(Mes, '%ghost', Ghost, [rfReplaceAll]);
+  memInfo.Lines.Text := Mes;
+  Result := ShowModal = mrOk;
+end;
+
+procedure TfrmConfirmSend.FormCreate(Sender: TObject);
+begin
+  FDefaultImage := TBitmap.Create;
+  FDefaultImage.Assign(Image.Picture.Bitmap);
+end;
+
+procedure TfrmConfirmSend.FormDestroy(Sender: TObject);
 begin
-  Beep;
-  cbxDontAlertAnyMore.Checked := false;
+  FDefaultImage.Free;
 end;
 
 end.