Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 04.10.2010, 10:15
BaRoN9186 BaRoN9186 вне форума
Прохожий
 
Регистрация: 04.10.2010
Сообщения: 3
Репутация: 10
Восклицание автоматическое закрытие

нужна помощь!! есть текст программы в DFM от Delphi.
Код:
object Form1: TForm1
  Left = 271
  Top = 112
  HorzScrollBar.Visible = False
  VertScrollBar.Visible = False
  AutoScroll = False
  BorderIcons = [biSystemMenu]
  Caption = 'DXSoft Switcher 2.10'
  ClientHeight = 25
  ClientWidth = 192
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'MS Sans Serif'
  Font.Style = []
  OldCreateOrder = True
  Scaled = False
  OnActivate = FormActivate
  OnCreate = FormCreate
  OnDestroy = FormDestroy
  OnResize = FormResize
  PixelsPerInch = 96
  TextHeight = 13
  Form1 = Application.Terminate
  object Sw1Button: TSpeedButton
    AllowAllUp = true
    GroupIndex = 1
    Caption = '1'
    ParentFont = true
    OnClick = Sw1ButtonClick
  end
  object Sw2Button: TSpeedButton
    AllowAllUp = False
    GroupIndex = 2
    Caption = '2'
    ParentFont = False
    OnClick = Sw2ButtonClick
  end
  object Sw3Button: TSpeedButton
    AllowAllUp = False
    GroupIndex = 3
    Caption = '3'
    ParentFont = False
    OnClick = Sw3ButtonClick
  end
  object Sw4Button: TSpeedButton
    AllowAllUp = False
    GroupIndex = 4
    Caption = '4'
    ParentFont = False
    OnClick = Sw4ButtonClick
  end
  object Sw5Button: TSpeedButton
    AllowAllUp = False
    GroupIndex = 5
    Caption = '5'
    ParentFont = False
    OnClick = Sw5ButtonClick
  end
  object Sw6Button: TSpeedButton
    AllowAllUp = False
    GroupIndex = 6
    Caption = '6'
    ParentFont = False
    OnClick = Sw6ButtonClick
  end
  object Sw7Button: TSpeedButton
    AllowAllUp = False
    GroupIndex = 7
    Caption = '7'
    ParentFont = False
    OnClick = Sw7ButtonClick
  end
  object Sw8Button: TSpeedButton
    AllowAllUp = False
    GroupIndex = 8
    Caption = '8'
    ParentFont = False
    OnClick = Sw8ButtonClick
  end
  object VicPort1: TVicPort
    LPTNumber = 0
    Left = 41
    Top = 123
  end
end

Application.Terminate вроде как срабатывает закрывает форму, но файл всеже остается в списке процессов, и перед закрытием появляется сообщение об ошибке:
Цитата:
Access violation at address 00401696 in module '1.exe'. Read of addres 00000109.

Подскажите как сделать чтобы прога закрылась полностью и без сообщений об ошибке, и только один из объектов SwButton был True? а остальные 7 false???
Ответить с цитированием
  #2  
Старый 04.10.2010, 12:34
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Подобное сообщение появляется обычно в случае неверного освобождения памяти по завершении программы. Копайте код, где-то вы что-то накрутили.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #3  
Старый 04.10.2010, 15:30
Asinkrit Asinkrit вне форума
Местный
 
Регистрация: 29.10.2009
Сообщения: 446
Репутация: 271
По умолчанию

Цитата:
Сообщение от BaRoN9186
Form1 = Application.Terminate
Повашему это должно работать?
Честно говоря впервые слышу, что бы код вставляли в файл формы. И даже если учесть, что такое возможно и операторы будут отрабатываться. То что вы хотели от данной строчки получить?,Как я понимаю, вы хотите вырубить программу до того, как создана форма. Или я чего-то не понимаю...
Ответить с цитированием
  #4  
Старый 04.10.2010, 16:19
BaRoN9186 BaRoN9186 вне форума
Прохожий
 
Регистрация: 04.10.2010
Сообщения: 3
Репутация: 10
По умолчанию

я просто в delphi далеко не на ТЫ, и хотел что бы программа закрылась сама по завершению......что практически удалось (если не учитывать 2 момента: это сообщения об ошибке, и наличие ее в списке процессов)
Ответить с цитированием
  #5  
Старый 04.10.2010, 16:28
Аватар для v1s2222
v1s2222 v1s2222 вне форума
Продвинутый
 
Регистрация: 07.09.2010
Сообщения: 726
Репутация: 26711
По умолчанию

У вас ошибка в коде, как написали выше... но если вы НЕ хотите не чего исправлять, то допустим в FormClose пропишите halt;
тогда ваша программа закроется и ошибки выдаваться не будут, но лучше найдите, т.к. из-за не освобождения памяти компьютер будет хуже работать...
__________________
Помогаю за Спасибо
Ответить с цитированием
  #6  
Старый 04.10.2010, 18:21
BaRoN9186 BaRoN9186 вне форума
Прохожий
 
Регистрация: 04.10.2010
Сообщения: 3
Репутация: 10
По умолчанию

изначальный код не имел строку
Код HTML:
Form1 = Application.Terminate
и работал без ошибок..........но закрывалась прога при этом только на "Х"
Ответить с цитированием
  #7  
Старый 04.10.2010, 18:25
Аватар для v1s2222
v1s2222 v1s2222 вне форума
Продвинутый
 
Регистрация: 07.09.2010
Сообщения: 726
Репутация: 26711
По умолчанию

Сказал же, уберите строку "Form1 = Application.Terminate", и если при закрытии процесс остается, значит есть ошибка в коде, но повторюсь, если НЕ хотите ее отлавливать (искать), то напишите:
Код:
tform1Close(...)
begin
  Halt();
end;
__________________
Помогаю за Спасибо
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 11:00.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter