Текущий архив: 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.53 MB
Время: 0.122 c