Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.11.24;
Скачать: CL | DM;

Вниз

Invalid Pointer Operation   Найти похожие ветки 

 
qwe   (2003-11-13 17:21) [0]

procedure TfMain.FormCreate(Sender: TObject);
var
S: string;
i,j,k : integer;
NewItems : array[1..10] of TMenuItem;
begin
k:=0;
ApplicationID := Integer(@Application);
i:=POS(".",ExtractFileName(Application.ExeName));
S:=Copy(ExtractFileName(Application.ExeName),0,i-1);
dsQuery.Params.ParamByName("P_APP").Value:=S;
dsQuery.Active:=true;
dsQuery.First;
while not dsQuery.EOF do
begin
NewItems[k]:=TMenuItem.Create(fMain);
NewItems[k].Tag:=dsQueryID.AsInteger;
NewItems[k].Caption := dsQueryMENU_ITEM_NAME.AsString;
NewItems[k].OnClick :=ItemClick;
for j:=0 to MainMenu1.Items.Count-1 do
begin
if MainMenu1.Items[j].Name=dsQueryPLUGIN_TYPE.Value then
MainMenu1.Items[j].Add(NewItems[k]);
end;
k:=k+1;
dsQuery.Next;
end;
Exchange(dmConnection.cMain.Params.Values["DataBase"],dmConnection.cMain.Params.Values["Prog_user"],dmConnection.cMain.P arams.Values["Password"]);
sbMain.Panels[0].Text:=UserName;
sbMain.Panels[1].Text:=Period;
sbMain.Panels[2].Text:=ConnectionInfo;
DskName:=ExtractFilePath(Application.ExeName)+"desktop.dsk";
Application.OnException:=ExceptionCatcher;
end;

procedure TFMain.ItemClick(Sender : TObject);
var
a: TForm;
begin
dsQuery.Close;
dsQuery.Params.ParamByName("P_ID").Value:=(Sender as TMenuItem).Tag;
dsQuery.Open;
PluginModule:=LoadPackage("C:\plugins\" + dsQueryPLUGIN_NAME.AsString);
if PluginModule>0 then begin
a:=TFormClass(FormManager[0]).Create(Application);
a.Show;
end;
end;

В строчке выделенной жирным шрифтом, почему?


 
Skier ©   (2003-11-13 17:22) [1]

begin
k:=1;
ApplicationID := Integer(@Application);
i:=POS(".",ExtractFileName(Application.ExeName));
S:=Copy(ExtractFileName(Application.ExeName),0,i-1);
dsQuery.Params.ParamByName("P_APP").Value:=S;
dsQuery.Active:=true;
dsQuery.First;


 
qwe   (2003-11-13 17:27) [2]

Почему


 
Skier ©   (2003-11-13 17:28) [3]

что "почему" ?


 
mOOx_ ©   (2003-11-13 17:29) [4]

Потому-что ...[1..10]. Или можешь сделать ...[0..9]


 
han_malign ©   (2003-11-13 17:49) [5]

> ApplicationID := Integer(@Application);
к слову - для всех запущенных копий приложения, ApplicationID будет одинаковый, т.к переменная Application всегда будет размещаться по одному и тому же адресу процесса... Да и адрес экземпляра (Integer(Application)), по идее, будет одинаковый.


 
qwe   (2003-11-13 17:58) [6]

mOOx_ © (13.11.03 17:29) [4]

понял



Страницы: 1 вся ветка

Текущий архив: 2003.11.24;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.023 c
3-78838
Виталя
2003-11-04 10:02
2003.11.24
Перегрузка данных из Access в Interbase


1-78882
dimm
2003-11-13 11:48
2003.11.24
Уважаемые, как забить в поле ввода определённой формы


1-79021
ChecheNeC
2003-11-14 22:41
2003.11.24
RxRichEdit


7-79193
Sever
2003-09-13 21:19
2003.11.24
Поиск по всему PC


1-78885
Виталя
2003-11-12 16:25
2003.11.24
Прочитать из Word при помощи OLE