Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.028 c
14-79162
Linda
2003-10-30 13:52
2003.11.24
Хочу!!!


1-79007
Balkon
2003-11-14 11:08
2003.11.24
Как отключить


14-79174
Сатир
2003-10-30 12:30
2003.11.24
Консультанты, крепитесь!


6-79097
boband
2003-09-30 11:36
2003.11.24
Продвинутая работа с web страницами


1-78945
tovSuhov
2003-11-12 10:41
2003.11.24
TMask - подскажите...




   Наверх