Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.09.09;
Скачать: CL | DM;

Вниз

закрытие fsMDIChild формы   Найти похожие ветки 

 
gentos   (2007-08-16 15:31) [0]

ув. мастера создаю и вызываю ее следующим образом

TScanDocForm.Create(self).Show;

хочу закрыть ее при нажатиии на кнопку, пишу следующее :

procedure TScanDocForm.BtnEndClick(Sender: TObject);
begin
 ScanDocForm.Free;  -- ?
end;

выледает еррор апликатион, вообщем абракадабра типа аксес виолатион и т.д.


 
gentos   (2007-08-16 15:32) [1]

да , забыл написать что должно быть между

procedure TScanDocForm.BtnEndClick(Sender: TObject);
begin
 ______________________
end;



 
Сергей М. ©   (2007-08-16 15:38) [2]


> хочу закрыть ее


Ну так и закрывай ее !

На то у формы есть соотв.метод Close (Закрыть)

Какого ж лешего ты для "закрытия" используешь метод Free("освободить") ?


 
gentos   (2007-08-16 15:41) [3]


procedure TScanDocForm.FormClose(Sender: TObject;
 var Action: TCloseAction);
begin
   Action := caFree;
end;

тут все ок , но мне на кнопку надо !!!


 
gentos   (2007-08-16 15:43) [4]


ScanDocForm.Close;

тоже еррор !


 
Сергей М. ©   (2007-08-16 15:44) [5]


> мне на кнопку надо


Ну надо так надо)

И ?

Что, в кнопкином обработчике написать строчку

Close;

вместо

Free;

выше твоего понимания ?)


 
Сергей М. ©   (2007-08-16 15:45) [6]

Удалено модератором


 
gentos   (2007-08-16 15:47) [7]

Удалено модератором


 
Сергей М. ©   (2007-08-16 15:49) [8]

Удалено модератором


 
gentos   (2007-08-16 15:51) [9]

Удалено модератором


 
gentos   (2007-08-16 15:51) [10]


unit PravadostupaScanDoc;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, ExtCtrls, StdCtrls, jpeg, ImgList, ComCtrls, ToolWin, PravadostupaImageForm, Oracle, PTreeview;

type
 TScanDocForm = class(TForm)
   PnlBtn: TPanel;
   btnSelectScan: TButton;
   btnGoScan: TButton;
   BtnNextDoc: TButton;
   BtnEnd: TButton;
   ScanImage: TImage;
   ToolBar1: TToolBar;
   tbView: TToolButton;
   ImageList1: TImageList;
   PnlScan: TPanel;
   PnlLeftSide: TPanel;
   SplitterLeft: TSplitter;
   PnlRightSide: TPanel;
   SplitterRight: TSplitter;
   btnSavePageOfDoc: TButton;
   PanelImage: TPanel;
   img: TImage;
   Delete_Temporary: TOracleQuery;
   Create_Temporary: TOracleQuery;
   ToolButton1: TToolButton;
   SvDlg: TSaveDialog;
   PnlTop: TPanel;
   SplitterTop: TSplitter;
   PnlBottom: TPanel;
   SplitterBottom: TSplitter;
   tmr: TTimer;
   procedure btnSelectScanClick(Sender: TObject);
   procedure btnGoScanClick(Sender: TObject);
   procedure FormCreate(Sender: TObject);
   procedure FormDestroy(Sender: TObject);
   procedure BtnShowClick(Sender: TObject);
   procedure tbViewClick(Sender: TObject);
   procedure BtnNextDocClick(Sender: TObject);
   procedure FormClose(Sender: TObject; var Action: TCloseAction);
   procedure btnSavePageOfDocClick(Sender: TObject);
   procedure FormShow(Sender: TObject);
   procedure BtnEndClick(Sender: TObject);
   procedure ToolButton1Click(Sender: TObject);
   procedure tmrTimer(Sender: TObject);
 private
   { Private declarations }
   procedure LobCreateTemporary(var LOB: TLobLocator);
   procedure LobFreeTemporary(var LOB: TLobLocator);
   procedure BtnEnabled(bool1:boolean; bool2:boolean; bool3:boolean; bool4:boolean; bool5:boolean);
 public
   { Public declarations }
   PTreeview: TPTreeview;
   procedure MyMsg(var Msg: TMsg; var Handled: Boolean);
   procedure GetIdDocumentBody(id : integer);

 end;

var
 ScanDocForm: TScanDocForm;
 frm : TfrmImage;
 idDocumentBody : integer;
 lvlDocumentBody : integer;

implementation

uses PravadostupaLoadfiles, pravadostupaDM, Scanners, Twain  ;

{$R *.dfm}

procedure TScanDocForm.LobCreateTemporary(var LOB: TLobLocator);
begin
    LOB := TLOBLocator.Create(DM.DB,otBLOB);
    Create_Temporary.SetComplexVariable("VARBLOB", LOB);
    Create_Temporary.Execute;
end;

procedure TScanDocForm.LobFreeTemporary(var LOB: TLobLocator);
begin
 Delete_Temporary.SetComplexVariable("VARBLOB", LOB);
 Delete_Temporary.Execute;
end;

procedure TScanDocForm.btnSelectScanClick(Sender: TObject);
begin
  TWSelectDS;
  BtnEnabled(false,true,false,false,false);
end;

procedure TScanDocForm.MyMsg(var Msg: TMsg; var Handled: Boolean);
begin
 Handled := ProcessSourceMessage(Msg);
end;

procedure TScanDocForm.btnGoScanClick(Sender: TObject);
begin
  TWAcquire(Application.Handle, ScanImage.Picture.Bitmap, True);
  BtnEnabled(false,false,false,false,false);
end;

procedure TScanDocForm.FormCreate(Sender: TObject);
begin
  Application.OnMessage := MyMsg;
  TWOpenDSM(Application.Handle);
  lvlDocumentBody := 0;
end;

procedure TScanDocForm.FormDestroy(Sender: TObject);
begin
  if TWIsDSEnabled then
    TWDisableDS;
  if TWIsDSOpen then
    TWCloseDS;
  if TWIsDSMOpen then
    TWCloseDSM;
end;

procedure TScanDocForm.BtnShowClick(Sender: TObject);
var
  Bit : TBitmap;
  MStream: TMemoryStream;
begin
    MStream:=TMemoryStream.Create;
    Bit := TBitmap.Create;
    ScanImage.Picture.Bitmap.SaveToStream(MStream);
    MStream.Position:=0;
    Bit.LoadFromStream(MStream);
    img.Picture.Assign(Bit);
    MStream.Free;
    Bit.Free;
end;

procedure TScanDocForm.tbViewClick(Sender: TObject);
var
  MStream: TMemoryStream;
begin
    frm := TfrmImage.Create(Self);
    MStream:=TMemoryStream.Create;
    ScanImage.Picture.Bitmap.SaveToStream(MStream);
    MStream.Position:=0;
    frm.drawstream(MStream);
    MStream.Free;
    frm.ShowModal;
end;

procedure TScanDocForm.BtnNextDocClick(Sender: TObject);
begin
BtnEnabled(false,false,true,true,true);
ScanImage.Picture.Bitmap := nil;
img.Picture.Bitmap := nil;
tmr.Interval := 4000;
TWAcquire(Application.Handle, ScanImage.Picture.Bitmap, True);
end;

procedure TScanDocForm.FormClose(Sender: TObject;
 var Action: TCloseAction);
begin
   Action := caFree;
end;

procedure TScanDocForm.btnSavePageOfDocClick(Sender: TObject);
var
 LOB: TLobLocator;
 Mstream: TMemoryStream;
 lvl : integer;
 Jpg: TJPEGImage;
begin
    BtnEnabled(false,false,true,false,true);
    Inc(lvlDocumentBody);
    LobCreateTemporary(LOB);           // cr temp
    Jpg:=TJPEGImage.Create;
    Mstream:=TMemoryStream.Create;
    Jpg.Assign(ScanImage.Picture.Bitmap);
    jpg.SaveToStream(Mstream);
    Mstream.Position :=0;
    LOB.CopyFrom(Mstream,Mstream.Size);
    lvl := PTreeview.SelLvlFromWdsdocumentsbody;
    if lvlDocumentBody=1 then
    PTreeview.INSINTOWDSDocumentsBody(idDocumentBody,lvlDocumentBody,LOB)
    else
    PTreeview.INSINTOWDSDocumentsBody(idDocumentBody,lvl,LOB);
    LobFreeTemporary(LOB);
    Mstream.Free;
    jpg.Free;
end;

procedure TScanDocForm.GetIdDocumentBody(id : integer);
begin
   idDocumentBody := id;
end;

procedure TScanDocForm.FormShow(Sender: TObject);
begin
 BtnEnabled(true,false,false,false,true);
 PTreeview := TPTreeview.Create(Self);
 PTreeview.Session := DM.DB;
 PTreeview.Cursor := crSQLWait;
end;

procedure TScanDocForm.BtnEndClick(Sender: TObject);
begin
 PTreeview.Free;
 ScanDocForm.Close;
end;

procedure TScanDocForm.ToolButton1Click(Sender: TObject);
var
 Jpg: TJPEGImage;
begin
 if SvDlg.Execute then begin
    Jpg:=TJPEGImage.Create;
    Jpg.Assign(ScanImage.Picture.Bitmap);
    jpg.SaveToFile(SvDlg.FileName);
    jpg.Free;
 end;
end;
procedure TScanDocForm.tmrTimer(Sender: TObject);
var
Mstream: TMemoryStream;
Bit : TBitmap;
begin
  Mstream:=TMemoryStream.Create;
  ScanImage.Picture.Bitmap.SaveToStream(Mstream);
  if Mstream.Size > 100 then begin
     BtnEnabled(false,false,true,true,true);
     Bit := TBitmap.Create;
     MStream.Position:=0;
     Bit.LoadFromStream(MStream);
     img.Picture.Assign(Bit);
     MStream.Free;
     Bit.Free;
     tmr.Interval := 0;
  end else
  MStream.Free;
end;

procedure TScanDocForm.BtnEnabled(bool1:boolean; bool2:boolean; bool3:boolean; bool4:boolean; bool5:boolean);
begin
   btnSelectScan.Enabled := bool1;
   btnGoScan.Enabled := bool2;
   BtnNextDoc.Enabled := bool3;
   btnSavePageOfDoc.Enabled := bool4;
   BtnEnd.Enabled := bool5;
end;

end.


 
gentos   (2007-08-16 15:52) [11]


> Сергей М. ©   (16.08.07 15:49) [8]

вот наплодил , помоему норм код все работает не хватает всего лишь кнопочки !


 
Сергей М. ©   (2007-08-16 16:06) [12]

Удалено модератором


 
gentos   (2007-08-16 16:09) [13]

:) вообщем, можете написать код , который можна будет вставить вот сюда, чтобы не вылетал еррор

procedure TScanDocForm.BtnEndClick(Sender: TObject);
begin
  вот сюда )
end;


 
gentos   (2007-08-16 16:10) [14]

да, и + к [13]  и чтобы при  этом форма-то закрывалась ...


 
Reindeer Moss Eater ©   (2007-08-16 16:12) [15]

Удали из модуля все упоминания о переменной ScanDocForm и жить сразу станет легче.


 
gentos   (2007-08-16 16:16) [16]


> Reindeer Moss Eater ©   (16.08.07 16:12) [15]


удалить из [10] ?, если да, то что именно, можна пальцем показать ?)


 
Reindeer Moss Eater ©   (2007-08-16 16:17) [17]

Читать умеешь?
не из [10], а из модуля


 
gentos   (2007-08-16 16:24) [18]


> Reindeer Moss Eater ©   (16.08.07 16:17) [17]


умею, а какой модуль Вы имеете ввиду ?

program Pravadostupa;

uses
 Forms,
 pravadostupaDM in "units\pravadostupaDM.pas" {DM: TDataModule},
 pravadostupaLook in "units\pravadostupaLook.pas" {Lookfrm},
 pravadostupaMain in "units\pravadostupaMain.pas" {MainForm},
 PravadostupaUtils in "units\PravadostupaUtils.pas",
 PravadostupaReport in "units\PravadostupaReport.pas" {Reportfrm},
 PravadostupaAbout in "units\PravadostupaAbout.pas" {Aboutfrm},
 PravadostupaUsersReport in "units\PravadostupaUsersReport.pas" {UserReportForm},
 PravadostupaOracle in "units\PravadostupaOracle.pas" {Oraclefrm},
 PravadostupaOracleReport in "units\PravadostupaOracleReport.pas" {frmOracleReport},
 PravadostupaUsersOracleReport in "units\PravadostupaUsersOracleReport.pas" {UserOracleReportForm},
 PravadostupaTypeDocs in "units\PravadostupaTypeDocs.pas" {TypeDocsForm},
 PravadostupaLoadfiles in "units\PravadostupaLoadfiles.pas" {Loadfilefrm},
 PravadostupaUsersWebSiteParChoicefrm in "units\PravadostupaUsersWebSiteParChoicefrm.pas" {UsersWebSiteParChoicefrm},
 PravadostupaScanDoc in "units\PravadostupaScanDoc.pas" {ScanDocForm},
 Twain in "units\Twain.pas",
 Scanners in "units\scanners.pas",
 PravadostupaImageForm in "units\PravadostupaImageForm.pas" {frmImage},
 PTreeview in "packages\PTreeview.pas",
 pravadostupaLookDoc in "units\pravadostupaLookDoc.pas" {LookDocForm},
 PravadostupaShowPicture in "units\PravadostupaShowPicture.pas" {ShowPictureForm};

{$R *.res}

begin
 Application.Initialize;
 Application.CreateForm(TDM, DM);
 Application.CreateForm(TMainForm, MainForm);
 Application.Run;
end.


вот этот ?)


 
Сергей М. ©   (2007-08-16 16:28) [19]

Удалено модератором


 
gentos   (2007-08-16 16:28) [20]

что происходит ? :), где я ?), а я думал здесь delphimaster, а здесь ... )
напишите плиз, все-таки хочется , чтобы не выскакивал еррор :), это называется следующим образом: "балакалы , балакалы, силы та й заплакалы" )


 
gentos   (2007-08-16 16:30) [21]


> Сергей М. ©   (16.08.07 16:28) [19]

так что сделать вот так вот
>//PravadostupaScanDoc in "units\PravadostupaScanDoc.pas" {ScanDocForm},</B

?


 
Игорь Шевченко ©   (2007-08-16 16:31) [22]


> procedure TScanDocForm.BtnEndClick(Sender: TObject);
> begin
>  PTreeview.Free;
>  ScanDocForm.Close;
> end;


procedure TScanDocForm.BtnEndClick(Sender: TObject);
begin
PTreeview.Free;
Close;
end;


 
gentos   (2007-08-16 16:32) [23]

если делаю, что написал в [19] , то вылетает фатал еррор Файл нот фаунд PravadostupaScanDoc.дцу , что этА ?)


 
Сергей М. ©   (2007-08-16 16:34) [24]

Удалено модератором


 
gentos   (2007-08-16 16:35) [25]


> Игорь Шевченко ©   (16.08.07 16:31) [22]


большое Вам спасибо Игорь, наконец-то хоть кто-то написал, то, что мне надо было


 
Сергей М. ©   (2007-08-16 16:37) [26]

Удалено модератором


 
gentos   (2007-08-16 16:38) [27]


> Сергей М. ©   (16.08.07 16:34) [24]



> А здесь тебе предложили вызвать метод Close текущей формы

а я-то думал Scandocform.Close , вообщем проехали,
тема закрыта, всем кто участвовал - сенкс !!


 
gentos   (2007-08-16 16:39) [28]

Удалено модератором


 
Сергей М. ©   (2007-08-16 16:39) [29]

Удалено модератором


 
gentos   (2007-08-16 16:40) [30]

Удалено модератором


 
Сергей М. ©   (2007-08-16 16:42) [31]

Удалено модератором



Страницы: 1 вся ветка

Текущий архив: 2007.09.09;
Скачать: CL | DM;

Наверх




Память: 0.55 MB
Время: 0.028 c
15-1186779156
Petr V. Abramov
2007-08-11 00:52
2007.09.09
я в шоке от таких запросов


15-1187077601
White Barsik
2007-08-14 11:46
2007.09.09
Немного глупых вопросов


2-1187255588
vitv
2007-08-16 13:13
2007.09.09
RxSysTray-проблема


2-1187235579
Андрей Л.
2007-08-16 07:39
2007.09.09
Эмуляция нажатие кнопки


15-1186754480
Александр Иванов
2007-08-10 18:01
2007.09.09
Не пройдет и полгода, и я появлюсь