Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.09.09;
Скачать: [xml.tar.bz2];

Вниз

закрытие 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.54 MB
Время: 0.042 c
2-1187473015
foreverDelphi
2007-08-19 01:36
2007.09.09
завершения конекта TServerSocket - stThreadBlocking


15-1187008383
Empleado
2007-08-13 16:33
2007.09.09
Предлагаю акцию


15-1186851551
Sagot
2007-08-11 20:59
2007.09.09
Не обрабатываются события TWebBrowser в ie7


2-1187078452
Merry
2007-08-14 12:00
2007.09.09
Формат даты отличный от системного


2-1187296490
new_imat
2007-08-17 00:34
2007.09.09
проблема с алгоритмом





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский