Форум: "Начинающим";
Текущий архив: 2010.08.29;
Скачать: [xml.tar.bz2];
ВнизAV при Close у TForm Найти похожие ветки
← →
12 © (2010-06-07 12:46) [0]Все нормально в варианте
TForm, TMainMenu, TMenuItem
procedure TfrmMain.miQuitClick(Sender: TObject);
var
i, j : integer;
begin
Close;
end;
и ошибка приTForm, TToolBar, TButton
procedure TfrmMain.btnQuitClick(Sender: TObject);
begin
close;
//если miQuit.Click; - тоже самое AV
← →
pest © (2010-06-07 13:24) [1]мало информации. тот код, который вы написали сам по себе работает и никакой ошибки нет.
unit Unit6;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, ToolWin, Menus;
type
TForm6 = class(TForm)
ToolBar1: TToolBar;
ToolButton1: TToolButton;
MainMenu1: TMainMenu;
miclose1: TMenuItem;
procedure ToolButton1Click(Sender: TObject);
procedure miclose1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form6: TForm6;
implementation
{$R *.dfm}
procedure TForm6.miclose1Click(Sender: TObject);
begin
close
end;
procedure TForm6.ToolButton1Click(Sender: TObject);
begin
close
end;
end.
← →
12 © (2010-06-07 13:56) [2]не, именно
TToolBar, TButton
object tbMain: TToolBar
Left = 0
Top = 0
Width = 1269
Height = 83
ButtonHeight = 79
Caption = "tbMain"
TabOrder = 1
object btnQuit: TButton
Left = 1145
Top = 2
Width = 75
Height = 79
Caption = "Выход"
TabOrder = 6
OnClick = btnQuitClick
end
end
хотя, наверное, надо ttoolbutton тут
← →
Palladin © (2010-06-07 14:02) [3]космические лучи... смени место жительства
← →
12 © (2010-06-07 14:49) [4]не, наверное TButton как-то не так сидит на TToolPanel
надо исходники посмотреть
Д7, XP
procedure TfrmMain.miQuitClick(Sender: TObject);
var
i, j : integer;
begin
for i := 0 to Screen.FormCount-1 do
begin
for j := 0 to Screen.Forms[i].ComponentCount - 1 do
if (Screen.Forms[i].Components[j] is tAdoQuery) then tAdoQuery(Screen.Forms[i].Components[j]).Close;
for j := 0 to Screen.Forms[i].ComponentCount - 1 do
if (Screen.Forms[i].Components[j] is tAdoConnection) then
begin
tAdoConnection(Screen.Forms[i].Components[j]).RollbackTrans;
tAdoConnection(Screen.Forms[i].Components[j]).Close;
end;
end;
Close;
end;
так нет ошибки
procedure TfrmMain.btnQuitClick(Sender: TObject);
begin
//close; - AV
// miQuit.Click; - AV
application.Terminate;
end;
← →
turbouser © (2010-06-07 15:42) [5]
> 12 © (07.06.10 14:49) [4]
> application.Terminate;
Halt(0); - тоже здоровский метод. и никаких AV. да.
> for i := 0 to Screen.FormCount-1 do
Зачем этот цикл? О_о
При дисконнекте и так все связанные датасеты закрываются и делается ролбэк. см в ADODB.pas
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2010.08.29;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.002 c