Форум: "Основная";
Текущий архив: 2003.11.24;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.01 c