Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.09.2017, 07:01   #1
SLAUR
Пользователь
 
Регистрация: 16.10.2014
Сообщений: 51
По умолчанию Ошибка при запуске программы

При компиляции и запуска программы происходит ошибка:

Project myrun.exe Raised exception class ElnvalidGridOperator with message 'Grid index out out of range'.Process stopped

Если скомпилированный файл запустить без DELPHI то выводится ошибка:
Grid index out of range,после чего программа работает.
Если в файле проекта (dpr) поставить halt перед созданием формы1:
Код:
 Application.Initialize;
  SetThreadLocale(1049);
halt;
  Application.CreateForm(TForm1, Form1);
 Application.CreateForm(TForm2, Form2);
то ошибка не возникает а если halt поставить так
Код:
Application.Initialize;
  SetThreadLocale(1049);
  Application.CreateForm(TForm1, Form1);
halt;
 Application.CreateForm(TForm2, Form2);
то возникает ошибка.
Если в FormCreate первой строкой написать halt то ошибка тоже возникает т.е. ошибка возникает еще до создания формы



Вот шапка моего кода:
Код:
unit Unit1;
{AllStartup }
interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, StdCtrls, Buttons, CheckLst, TabNotBk,mysys,mystr,registry,mynt,myproc,
  Mask, ExtCtrls, Menus,myfunc,ShellApi,mylnk,FWSysTrayInfo,
  Grids,myproc2,pathproc,myproc3, ValEdit, WinSvc,ClipBrd, jpeg, tlhelp32,pinger,winsock,mac,
  OleCtrls, SHDocVw ;
type
  TForm1 = class(TForm)
        .... ВЫРЕЗАНО
    procedure FormCreate(Sender: TObject);
    procedure CheckListBox1Click(Sender: TObject);
    procedure CheckListBox2Click(Sender: TObject);
    procedure CheckListBox1DblClick(Sender: TObject);
    procedure ListBox2DblClick(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure Edit1Change(Sender: TObject);
    procedure CheckListBox2DblClick(Sender: TObject);
    procedure SpeedButton5Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure ComboBox2Change(Sender: TObject);
    procedure CheckListBox1ClickCheck(Sender: TObject);
    procedure CheckListBox2ClickCheck(Sender: TObject);
    procedure N4Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure N5Click(Sender: TObject);
    procedure Timer3Timer(Sender: TObject);
    procedure WINDOWS1Click(Sender: TObject);
    procedure TreeView2Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure N9Click(Sender: TObject);
    procedure N10Click(Sender: TObject);
    procedure TimerAutoRefreshTimer(Sender: TObject);
    procedure btnEnumClick(Sender: TObject);
    procedure cbAutoRefreshClick(Sender: TObject);
    procedure EnumAllServices (const Server : string);
    procedure sg1Click(Sender: TObject);
    procedure btnStopClick(Sender: TObject);
    procedure btnStartClick(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure N1Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure StringGrid1Click(Sender: TObject);
    procedure RadioButton2Click(Sender: TObject);
    procedure RadioButton1Click(Sender: TObject);
    procedure RadioButton3Click(Sender: TObject);
    procedure RadioButton4Click(Sender: TObject);
    procedure CheckBox1Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure N3Click(Sender: TObject);
    procedure N6Click(Sender: TObject);
    procedure Button8Click(Sender: TObject);
    procedure Button9Click(Sender: TObject);
    procedure ListBox3Click(Sender: TObject);
    procedure N8Click(Sender: TObject);
    procedure N11Click(Sender: TObject);
    procedure N12Click(Sender: TObject);
    procedure N13Click(Sender: TObject);
    procedure Button10Click(Sender: TObject);
    procedure Button11Click(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
    procedure ListBox5Click(Sender: TObject);
    procedure ListBox4Click(Sender: TObject);
    procedure Button12Click(Sender: TObject);
    procedure Button13Click(Sender: TObject);
    procedure Button14Click(Sender: TObject);
    procedure Button15Click(Sender: TObject);
    procedure Button16Click(Sender: TObject);
    procedure Button17Click(Sender: TObject);
    procedure Button18Click(Sender: TObject);
    procedure Button19Click(Sender: TObject);
    procedure Button20Click(Sender: TObject);
    procedure Button21Click(Sender: TObject);
    procedure StringGrid2Click(Sender: TObject);
    procedure Button22Click(Sender: TObject);
    procedure Button23Click(Sender: TObject);
    procedure Button24Click(Sender: TObject);
    procedure Button26Click(Sender: TObject);
    procedure Button27Click(Sender: TObject);
    procedure Button25Click(Sender: TObject);
    procedure StringGridRowSelect(var Grid: TStringGrid; const SelectRow: Integer);
    procedure Button28Click(Sender: TObject);
    procedure Timer2Timer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
type USER_INFO_1 = record usri1_name: LPWSTR;
     usri1_password: LPWSTR; usri1_password_age: DWORD;
     usri1_priv: DWORD; usri1_home_dir: LPWSTR;
     usri1_comment: LPWSTR; usri1_flags: DWORD;
     usri1_script_path: LPWSTR;
 end;
lpUSER_INFO_1 = ^USER_INFO_1;
const probel='                                                                  '+
             '                                                                  '+
             '                                                                  ';
var Adm:boolean;
SysTray: TFWSysTrayInfo;
backuppunkt:string='';
backuppunktuser:string='';
child : TTreeNode;
Listtree1,ListExt,ListSortExt:tstringlist;
Zapusk:boolean=False;

function NetUserEnum(ServerName: PWideChar; Level, Filter: DWORD;var Buffer: Pointer; PrefMaxLen: DWORD;var EntriesRead, TotalEntries, ResumeHandle: DWORD): Longword; stdcall;
external 'netapi32.dll';
function NetApiBufferFree(pBuffer: PByte): Longint; stdcall;
external 'netapi32.dll'

Function Sid2Text(Sid: PSID; var StringSid:STRING {Pchar}):boolean;
procedure Click1(Str1:string);
Procedure ExtractPath(var path:string;var param:string;var files:string);

var
  Form1: TForm1;
  ListE,ListRun,ListAllRun,ListA,ListProc2 :Tstringlist;
  Users,USid:string;
  Myhendl:integer;
  interval:integer=300;
  Shag:integer;
  fileschm:string='';
  FilesY:String='';
  StaticText140:string;
  StaticText110:string;
  ShagTimer:integer=0;
  yesShowWin:Boolean=False;
  SelIndExt:integer;
  SelExtStr:string;
  CopyExtBufer:string;
s1:TSearchRec;
ListWin1,ListWin1Back,ListSortWin:tstringList;
Procedure LoadLNK;
Procedure scanAllRun;
Procedure search;
Procedure scanExt;
Procedure SortExt;
type
 TModuleArray = array of TModuleEntry32;
// Возвращает список описаний (TModuleEntry32) модулей по идентификатору процесса
function GetModulesListByProcessId(ProcessId : Cardinal) : TModuleArray;



implementation
uses unit2,unit3,unit4, Unit5,unit6, Unit8,unit10,uMain,unit11,unit12,unit13,unit14,UNIT15;
{$R *.dfm}
{$R Resourse\MYRES.RES} //Подключаем файл с ресурсами
{$R vista.res}//Адм права в viste
SLAUR вне форума Ответить с цитированием
Старый 08.09.2017, 08:18   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Ну переведите же текст ошибки. Естественно, если вы прервете прогу до выполнения основного кода, то и ошибки не будет.
p51x вне форума Ответить с цитированием
Старый 08.09.2017, 08:29   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Цитата:
Если в FormCreate первой строкой написать halt то ошибка тоже возникает т.е. ошибка возникает еще до создания формы
Не правда, в этот момент форма уже создана, мало того созданы все компоненты содержащиеся на на ней, если только не взведен OldCreateOrder. Смотри в событиях грида где нахимичил, часто из-за собственной прорисовки выскакивают за пределы строк или колонок грида. А имена Button25 это сильно )) Сам то в коде с такими именами ориентируешься хоть?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 08.09.2017, 09:09   #4
SLAUR
Пользователь
 
Регистрация: 16.10.2014
Сообщений: 51
По умолчанию

Проверил на windows XP ошибки не возникает.
Цитата:
А имена Button25 это сильно )) Сам то в коде с такими именами ориентируешься хоть?
А зачем мне переделывать название кнопок (по смыслу действия)
Кликнул пару раз по кнопке и открылась процедура этой кнопки
SLAUR вне форума Ответить с цитированием
Старый 08.09.2017, 09:20   #5
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

А если понадобится скрыть/отключить кнопку? (например во время какой-то операции)
Да и тут не только у кнопок такие имена, с пятью листбоксами вы тоже ничего не делаете в коде?

Ну и код же сложнее читать (через неделю, месяц, ...), все время придется переключаться на форму.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 08.09.2017, 09:40   #6
SLAUR
Пользователь
 
Регистрация: 16.10.2014
Сообщений: 51
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
А если понадобится скрыть/отключить кнопку? (например во время какой-то операции)
Да и тут не только у кнопок такие имена, с пятью листбоксами вы тоже ничего не делаете в коде?

Ну и код же сложнее читать (через неделю, месяц, ...), все время придется переключаться на форму.
Вобще-то вы правы буду перестраиваться.
Насчет сабжа раньше этого не было,все нормально запускалось (windows 8)
Было один раз,перезагрузился и все стало нормально запускаться.
А сейчас постоянно эта ошибка вылетает.
SLAUR вне форума Ответить с цитированием
Старый 08.09.2017, 11:15   #7
SLAUR
Пользователь
 
Регистрация: 16.10.2014
Сообщений: 51
По умолчанию

Разобрался - ошибка была в TForm1.FormCreate.
Но почему я ставил halt в начале FormCreate и программа пропускала эту команду (продолжала выполнятся)
SLAUR вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка при запуске программы lisica198808 Помощь студентам 5 08.12.2013 23:45
Ошибка при запуске программы (C++) Nonamelol Помощь студентам 2 28.09.2013 14:01
ошибка при запуске программы с++ IVT27 Помощь студентам 4 11.11.2012 18:09
Ошибка при запуске программы stakam Visual C++ 1 18.12.2010 18:19
Ошибка при запуске программы MAcK Общие вопросы .NET 5 14.08.2008 15:12