Jump to content

limelect

Members
  • Content Count

    819
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by limelect

  1. One more thing. I tried Gexpert demo project docking form example It has the same problem Is it an IDE problem or am I missing something?
  2. @Daniel I hope this is better This is an IDE expert problem
  3. limelect

    Variation of FormatDateTime(

    I do not know if it will help But Rxlib has has RxDateUtil.pas check it
  4. limelect

    Best way to prevent multiple instances? Mutex not working

    IsFirstInstance in OgFirst in tponguard librery for free does what you need. the above is old. The new onguard dose it differently but you can find here too Look for first instance https://documentation.help/TurboPack-OnGuard-FMX/documentation.pdf Put this function in the DPR
  5. limelect

    On IDE cannot get TABS

    Further to my small project and on D10.2.3 I am NOT using tool Pallet I am using ToolBar>Component as on d7. I want to detect the tabs and open one of them I am using also Winspector. FDelphiForm :=Application.MainForm; x:=TComponent(FDelphiForm.FindComponent('ComponentToolbarFrame')); x:=TComponent(x.FindComponent('TabControl'));<<< hear i tried also TTabControl instead of TComponent x IS NOT NIL. TTabControl(x).TabIndex:=3; <<<<< dose not work label1.caption:= TTabControl(x).Tabs[0] ; <<< Access violation Label2.Caption:=TComponent(x).name; ===TabControl Any thing with tabs give an error. I have tried many variations. As far as I recall @dummzeuch comented that multiline is not possible above D7 I tried it does not work. Maybe it is not possible to access the ToolBar ?
  6. limelect

    On IDE cannot get TABS

    Found one drawback sx := TStringList(GetObjectProp(x, PropInfo)); // all the tabs this instruction cannot be made ONShow only On form create. It makes on second-time error. It has to execute only once. Which mean installing a new component will not update unless I restart Delphi.
  7. limelect

    On IDE cannot get TABS

    Ok my software is OK Now for Embarcadero to give some Answers. I have 2 components bar. 1. D7 like. 2. Tool pallet. They differ in what the show position wise!!!!! For example, the Tool bar does not have BDE or ActivX in the same position !!!! What is going on?
  8. limelect

    On IDE cannot get TABS

    @dummzeuch without your lead I could not have done it I was thrown away by thinking that it was TabControl Thanks Checking that it works got the list of my tabs sx=tstringlist PropInfo:= GetPropInfo(x.ClassInfo, 'Items'); sx:= TStringList(GetObjectProp(x,PropInfo)); Label2.Caption:=inttostr(Sx.Count); Memo1.Clear; for I := 0 to Sx.Count-1 do Memo1.Lines.Add(sx) ; Great why cannot write bracket i bracket ???????????
  9. limelect

    On IDE cannot get TABS

    http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/delphivclwin32/TypInfo.html Investigating
  10. limelect

    On IDE cannot get TABS

    As of my last request reading an item like integer is no problem like PropInfo:= GetPropInfo(x.ClassInfo, 'LastShownIndex'); i:= GetOrdProp( x,PropInfo); Label2.Caption:=inttostr(i); But items=stringlist how?
  11. limelect

    On IDE cannot get TABS

    @dummzeuch With the help of this link and IDE explorer IIIIII DDDDIDDDD IT. From here I got https://stackoverflow.com/questions/2071247/dynamically-access-a-property-in-a-delphi-component/2071398 var PropInfo: PPropInfo; x:=TComponent(x.FindComponent('TabControl')); PropInfo:= GetPropInfo(x.ClassInfo, 'TabIndex').; SetOrdProp(x, PropInfo, 3); it press tab 4. Thanks every body and see you on my next NOT EASY problem. P.S may some know how to get a list of items from PropInfo:= GetPropInfo(x.ClassInfo, 'Items') into StrinList?
  12. limelect

    On IDE cannot get TABS

    The joke is on me. They did not implement it only the d7. Back to the search
  13. limelect

    On IDE cannot get TABS

    I will look further with your advice that it is TGradientTabSet and not TabControl But if I use IDE explorer (sorry not yours) I see all the properties and I do not see TABS but Items so you might be correct On CnWizard there is something to associate the toolbar search for TGradientTabSet. I will investigate
  14. limelect

    On IDE cannot get TABS

    Yes, I used your GREP already and I still, unfortunately, did not understand how to use it. Any idea? It will not work. For example, it has FTabList :TList; FTabList :TStringList; Is it allowed? Something fishy.
  15. limelect

    On IDE cannot get TABS

    @dummzeuch I will try P.s i saw it before It is not implemented. No idea how to use it.
  16. limelect

    On IDE cannot get TABS

    @dummzeuch Yes ClassName and more. Every thing checked. It is a TTabControl and I even did a hide that hides all the tabs. with IDE Explorer (Not yours) I can see all propeties. ComponentToolbarFrame>TabControl=TTabControl My only problem now is that TABS is not nil but using it give an error.
  17. limelect

    On IDE cannot get TABS

    P.S TTabControl(x).Visible:=false; make all the tabs disapear. So I have control of the tabs but not on TTabControl(x).Tabs
  18. limelect

    On IDE cannot get TABS

    @dummzeuch Thanks I used it. However, I sent you a personal mail with comments and changes to your software for you to add and publish. As for my problem, it seems I cannot reach the component tabs. Although TTabControl(x).Tabs in not nil it cannot be accessed.
  19. limelect

    On IDE cannot get TABS

    I cannot find IDE Explorer. I use 1.3.11.64 experimental quit old I gess.
  20. limelect

    On IDE cannot get TABS

    @dummzeuch I will try. However, what I did on each FindComponent I made sure it is not nil and save all components to file with ComponentCount Components.Name this how I found all the names.
  21. Using D10.2.3 function TForm1.GxOtaGetCurrentModule: IOTAModule; var ModuleServices: IOTAModuleServices; begin ModuleServices := BorlandIDEServices as IOTAModuleServices; Assert(Assigned(ModuleServices)); Result := ModuleServices.CurrentModule; end; function TForm1.GxOtaGetFormEditorFromModule(const Module: IOTAModule): IOTAFormEditor; var i: Integer; Editor: IOTAEditor; FormEditor: IOTAFormEditor; begin Result := nil; if not Assigned(Module) then Exit; for i := 0 to Module.GetModuleFileCount - 1 do begin Editor := GxOtaGetFileEditorForModule(Module, i); if Supports(Editor, IOTAFormEditor, FormEditor) then begin Assert(not Assigned(Result)); Result := FormEditor; // In order to assert our assumptions that only one form // is ever associated with a module, do not call Break; here. end; end; end; function TForm1.GxOtaGetFileEditorForModule(Module: IOTAModule; Index: Integer): IOTAEditor; begin Assert(Assigned(Module)); Result := Module.GetModuleFileEditor(Index); end; procedure TForm1.Button2Click(Sender: TObject); var CurrentModule: IOTAModule; CurrentForm: IOTAFormEditor; lComponent: IOTAComponent; begin CurrentModule := GxOtaGetCurrentModule; Assert(Assigned(CurrentModule)); CurrentForm := GxOtaGetFormEditorFromModule(CurrentModule); if CurrentForm.GetSelCount > 0 then lComponent := CurrentForm.GetSelComponent(0) else lComponent := CurrentForm.GetRootComponent; if not lComponent.IsTControl then begin ShowMessage('The Component of Selected is not Container Control!'); exit; end; //CurrentForm.GetSelComponent(0).GetComponentType; Label2.Caption:=lComponent.GetComponentType; <<<<< Tpanel or Tform Label3.Caption:= CurrentForm.FileName; <<< file.dfm // CurrentForm.CreateComponent(lComponent, 'TADOtable', 0, 0, 50, 50); <<<< This is OK ///THIS IS WHERE THE ERROR IS CurrentForm.CreateComponent({CurrentForm.GetSelComponent(0)}lComponent, 'TLabel', 0, 0, 50, 50);<<<< This is an ERROR end; ERROR = Class TLabel is not applicable to this module Any help?
  22. @David Hoyle I modified your software for FMX too and it works as it should be. Thanks again. P.S BPL is easier to work with you do not need to close Delphi and restart or have a second Delphi open. .
  23. @David Hoyle Thanks. As I said you are the EXPERT. I will modify for fmx too. Hopffuly I will succeed .
  24. @Jud My Getit does not work on D10.2.3 it shows error. Is what you showed will work here in my case ? What exactly the above mean?
×