[ FranjoZG @ 21.05.2019. 17:02 ] @
Delphi XE 10.1 Napravio sam klasu i interface za rad za excelom. Moram učitati čeliju koju korisnik odabere (dblclick), kasnije export. Radi ok, osim jedne stvari: napravio sam OnDblCLick za excel - korisnikov dblclik na čeliju u excel tablici. Ako otvorim 2 excel-a (različiti za različite podatke), svaki ima svoju proceduru za DblClik, DblClik na jednom izvršava obje procedure u Delphi-u ali na aktivno Excelu. Valjda sam objasnio problem... KOristim excel2010 i kreiram klasi: [code] constructor tExcelClass.Create(FileName: string; Show: boolean); begin inherited Create; LCID := GetUserDefaultLCID; LCID := LOCALE_USER_DEFAULT; fCanClose := true; fExcelApp := TExcelApplication.Create(nil); fExcelApp.Connect; fExcelApp.Visible[LCID] := Show; fFileName := FileName; if FileName <> '' then fExcelApp.Workbooks.Open(FileName, EmptyParam , EmptyParam , EmptyParam , EmptyParam , EmptyParam , EmptyParam , EmptyParam , EmptyParam , EmptyParam , EmptyParam , EmptyParam , EmptyParam , EmptyParam , EmptyParam , lcid); // za xls2000 if FileName <> '' then fExcelApp.Workbooks.Open(FileName, EmptyParam , EmptyParam , EmptyParam , EmptyParam , EmptyParam , EmptyParam , EmptyParam , EmptyParam , EmptyParam , EmptyParam , EmptyParam , EmptyParam , lcid ); fExcelApp.OnSheetBeforeDoubleClick := self.DblClick; fExcelApp.OnWorkbookBeforeClose := WorkbookBeforeClose; fExcelApp.DisplayAlerts[LCID] := false; fAktCell := tNewCel.Create(self); fTimer := TTimer.Create(nil); fTimer.Enabled := false; fTimer.Interval := 1000; fTimer.OnTimer := self.Timer1Timer; fFirstSheetName := (fExcelApp.ActiveWorkbook.ActiveSheet as _WorkSheet).Name; end; ... procedure tExcelClass.DblClick(Sender: TObject; const Sh: IDispatch; const Target: ExcelRange; var Cancel: WordBool); var s: string; begin if Assigned(Self.fProcCtrlEnter) then fProcCtrlEnter(self); Cancel := True; end; [/Code] Probao sam sa dodjelom fExcelApp.Tag, koja je u proceduri tExcelClass.DblCLick parametar Sender, ali mi se proc. starta za oba excel file-a. Ima li tko ideju kako znati u kojem excelu je okinut DblClick? |