Jump to content

eelias

Members
  • Posts

    117
  • Joined

  • Last visited

  • Days Won

    7

Everything posted by eelias

  1. Hi there, I am doing a study on a project that have 2 parts, one that measure access to websites by links and simples form pages, and the front-end that is complex system. The first part could have 20,000 simultaneos access. The front-end 100´s only. I am not concerned with the front-end that I see uniGui can handle easily. However I would like to hear from the experienced programmers on the forum, if the uniGUi could handle traffic high as 20,000 simultaneos access, considering simple form, like a regular registration form with no more than 20 fields like address, zip etc. And post all that in a SQL server and done. Something simple like that could be done in any language, however in delphi it could be easier for me, since is my native language. 1) which should be the server for this? 2) which are the model to be used: ISAPI server? Standalone server? which is safe? it must be rock solid. even if some users get in trouble the vast majority needs to work, but I could not expend zillions in servers. Thank you Eduardo
  2. Delphi Developer, Where should I open this dialog? I have placed on my form the TUniChart component and it does not show any ClientEvents property. I have found it on the TUniForm, but there is nothing like you mentioned. I am using Delphi XE2 with unigui .93 Thank you!!! Eduardo
  3. I have found the compiling problem, I have added "VCLTee. " in front of the chart and other units that are related to TeeChart and it compiled. However ht char shows up as a blank page only; and I could not find the ClientEvents on the property panel like you presented. Eduardo
  4. Hi DDeveloper! Very nice your anwser, it will be very helpful for me! But I could not find this: 3. Add UniChart1 - > ClientEvents -> UniEvents add chart.beforeInit(sender) I have placed the UniChart on my form and there is no ClientEvent option on the property panel. It also gives an compilation error: unit UniChart; {$I RTTI.inc} interface uses Classes, SysUtils, Chart, TeEngine, TeeProcs, UniPanel, uniGUIRTTI, uniGUIConst, UniGUIClasses, ExtPascal, Ext, ExtChart, ExtData, UniGUIApplication, Series, UniExtUtils, Controls, UniGUITypes, UniGUIFont, Windows; That "Chart" unit is not found. However if I open the Chart DEMO it compiles and works. I am using Delphi XE2 Thank you ! Eduardo
  5. Hi There! Is there a way to make my custom info panel for the standalone server?, the panel that is accessible by right click on the icon on the task bar. or at least a way to have another option on the right click menu in the icon bar to access another dialog, with my own information. I want to give information about options, setup, list of current users, etc that are more easily done by the windows console than accessing thru browser on my application. Thank you.
  6. Hi there, I have a TDataModule, created as Application DataModule by wizard. It works fine, there are many tables there. However I dont see it getting destroyed. Everytime the application needs it I use the function created automatically: function DMMainG: TDMMainG; begin Result := TDMMainG(UniMainModule.GetModuleInstance(TDMMainG)); end; And I see it reuses the same instance first created. That is ok. However if the session is terminated I dont see it getting destroyed. I have put a breakpoint on the destructor and even messages and it remain there. I am trying to find memory leaks on my application, because it is using each time more memory. I have tried to use Free Datamodule, but it just crashes the application. I am used to deal with it for many years on normal Delphi apps. I cannot use on the MainModule because I have a different set of tables, and according with the setup of the application I will use one or another DataModule. Please, I wonder if someone had any experience with it and could give me a direction. Thank you !
  7. Hi there! I am having a strange behavior, I have created a new component that is similar to UNIDBNAVIGATOR. I used the concept of compound components, then I have a TUniFrame as the base and created TUniImages as the buttons. I wanted to have Flat Images, so the TUniImage works for that, and responds to the OnClick event. Everything fine here, I have placed those TUniImage on my TUniFrame and assigneded the OnClick: uiCancel.OnClick := OnDBCommandClick; uiRefresh.OnClick := OnDBCommandClick; uiPost.OnClick := OnDBCommandClick; uiDelete.OnClick := OnDBCommandClick; uiInsert.OnClick := OnDBCommandClick; uiNext.OnClick := OnDBCommandClick; uiPrevious.OnClick := OnDBCommandClick; Based on that I receive the command and change my DataSource just fine. However I dont want to have those "buttons" enabled always, for that: procedure TNaharWebDBNavigator.UpdateButtonsState; begin if Not Assigned(FDataSource) then exit; if not Assigned(FDataSource.DataSet) then exit; case FDataSource.DataSet.State of dsInactive : begin uiPrevious.Visible := false; uiNext.Visible := false; uiInsert.Visible := false; uiDelete.Visible := false; uiPost.Visible := false; uiRefresh.Visible := false; uiCancel.Visible := false; end; dsBrowse : begin uiPrevious.Visible := true; uiNext.Visible := true; uiInsert.Visible := true; uiDelete.Visible := true; uiPost.Visible := false; uiRefresh.Visible := true; uiCancel.Visible := false; end; dsInsert, dsEdit : begin uiPrevious.Visible := false; uiNext.Visible := false; uiInsert.Visible := false; uiDelete.Visible := false; uiPost.Visible := true; uiRefresh.Visible := false; uiCancel.Visible := true; end; else begin uiPrevious.Visible := false; uiNext.Visible := false; uiInsert.Visible := false; uiDelete.Visible := false; uiPost.Visible := false; uiRefresh.Visible := false; uiCancel.Visible := false; end; end; end; Testing it, it does now works correctly, the buttons (TUniImage) do not get hide or visible correctly. My component keep all of them visible for the first time, and in Loaded update the status. I see it changing the visible on the first time correctly. But after that there is not way to work correctly. The visible property is changed on the program but it is not reflected on the extjs side. Is there a way to force an update of the properties from the delphi side to extjs? Or, what is wrong? Eduardo
  8. Hi there! I am not sure if I am doing right with datamodules. I am following the demos and implemented the folloging in my code: function DMMainG: TDMMainG; begin Result := TDMMainG(UniMainModule.GetModuleInstance(TDMMainG)); end; So, I add my unit with the datamodule and then i use the above function to get the valid instance of the it. However I am lost, WHAT IS THE REASON of doing this way? On the destructor of my Form I am not not doing FREE on the datamodule. Because if I do so, the next time it is instantiated it do not works correctly: I use DBISAM and the Database and Session components does not get created and the datamodule fails. Then I am writing the application always never doing FREE on the datamodule, and always calling that GetModuleInstace. I would like to know what is this way, is that is correct, because I am getting some instabilities on the application and I am not sure if this is the reason. Thank you !!! Eduardo
  9. alf, take a look here: http://delphihaters.blogspot.com.br/search/label/IntraWeb%20Series There are many article that show you how bad and ugly is Intraweb and you should keep far from it... I made a big applicatioin with UniGUI recently, it works. Take a fraction of the time than learning Intraweb. And the interface is much more controlable. HOWEVER, there is not documentation at all. You have to take a look on the DEMOS and see if everthing you need is there. There is no big surprises, the current version that I am using, .93 just works. There are few people on the forum that try to help, and I am gratefully for that, however it is a loney hunt. I really expect that the developers of UniGUI understand that the documentation is so important than coding it..... One thing that is hurting the image of UniGUI out there is the lack of documentation. Give I try on UniGUI, I believe you going to like. Sincerily, Eduardo
  10. It worked very well! thank you again for your help, you are really making a difference. Thank you!
  11. I cannot resolve this issue, there is something on the Picture.Assign that is going wrong with UniGUI. I am looking for help, this is related to something internally. Anyone with experience on this?
  12. I had this problem with frames. I have put on the UniFrameCreate: align := alClient; I believe you could try the same thing on form, I have am also intercepting the OnResize on the main form and going thru all the frames (in your case forms) and forcing them to align := alNone and then align := alClient Not sure this is the best, but with the lack of documentation I have tried this and worked for me I have created a standard Frame that all the frames inherit from. You could do the same for your MDIChild and in the base form you create a public resize procedure that will be called by your main MDI form, going thru all the current opened MDI Childs and calling this resize, where you do what said before. Eduardo
  13. I am still getting this problem; I dont know what else can be done to fix it. Farshad can you give a help on this? Eduardo
  14. Worked perfectly! Thank you again !
  15. I Have found that there is something that could help on that: http://docs-devel.sencha.com/extjs/4.1.1/#!/api/Ext.layout.container.Container-cfg-reserveScrollbar there is a reserveScrollBar when set to true, it reserve space for the scrollbars from the begining. That is not perfect, but much better than I have now. How can it be used? it seems to be on the moment of the creation of the TUniScrollBox. But I am not sure. Can you help me? Thanks Eduardo
  16. That worked! Thank you duser, I appreciate your help! Another question if possible: I have a problem with the ScrollBox i am placing TUniPanels on the TUniScrollBox One below the other. And all aligned to the top. Then they will be using all the inside area of the TUniScrollBox. That is fine and works. However if during runtime i keep creating more panels inside it, it will show up the Scrollbar. but it is doing wrong, since the Scrollbar is not making the panels to realing considering the space used by the Scrollbar itself. Due this error, it shows up the horizontal scrollbar that makes possible to see the entire panels (left to right) What I want is to add one panel after below each other, and when the vertical scroll bar shows up (because the panels are going more than the visible area) it realign the panels in a way that the horizontal scrollbar does not need to show up. I am sorry if it is confusing. otherwise I need to turn off the AutoSize and put a down and up button for the user scroll thru the scrollbox. But if the scroll list is big that is not going to be nice for the user. Do you have any idea how to do that? Eduardo
  17. I am looking for a professional way to learn more about UniGUI. I am interested on stick with this platform, since it is getting proved to be stable and capable of doing RAD the delphi way. However guessing to make things is not a professional way of working. Is there any documentation that I could use to know what the base class are? what they do? and their properties? I feel like dealing with a black magic box that does some stuff well, but when trying to make it better is just like dealing with magic. Seems that the only one that knows is always busy, so how can a comunity and a strong ties can be created along with this platform? Documentation is a priority for a comunity. Specially when the source code is not available and is hard to get good answers on the forum. my 2 cents of frustration.... Eduardo
  18. Hi Duser! Nice to have you around, I see you are always willing to help! Please, I want to use TUniScrollBox and do not have the scrollbars... I have changed AutoScroll to false. That is great, I dont need those ugly scroll bars. However I could not find a way to control the TUniScollBox and make it scroll down or up. But I would like to not use HTMLFrame. Is there another alternative? I have made a Delphi component, where I have a TUniFrame as base and a TuniScrollBox on top of it. Thank you for any help!
  19. It seems that when setting the image on TPicture UniGUI saves it as a file and pass that to the Image on the ExtJS framework. However for some reason, it is creating that cached image file, with extension .nnn but is having a bad time on attibuting it. Farshad, you are the only one that I believe could give me an idea why setting the TPicture it is not getting changed and I get this error. I have used the same PNG files for other things, I have TUniImage all over the place when I can set at runtime the image just fine. This is the only place with problem, is there any context problem? I am trying to define a PNG image, is it going to use the settings of servermodule for that? I have no other idea on correct this problem. Please!
  20. Hi there. I am doing some components on delphi Xe2 descendant from UniGui ones. I have created a compound one that is inherited from TUniPanel and it has one TUniImage and TUniLabel that is created and have the TUniPanel as owner and parent. I am trying with it to create a windows 8 button (that round images with a label below) My component have 2 Picture properties, of type TPicture, one for the white image of the button and other for the black one. I have an attribute that permit switch between the 2 images, that I use the following code: if HCColor = clWhite then FImage.Picture.Assign(PictureWhite); if HCColor = clBlack then FImage.Picture.Assign(PictureBlack); Where the FImage is the TUniImage that was created when this component gets created. There are 2 problems: 1 - On design time I can change the property from white to black and vice versa and it does change the image correctly as expected. However the first time the image never shows up. I have made all kind of change and debug and simply the first time never works. 2 - When using on webmode the Image does appear corretly at first time, but if I try to change it it give me the message: EInvalidGraphic "Unknown picture file extension (.nnn)" I am assigning correctly, and the image is there. It is the same that worked on design mode. I see that the Picture is created as a file on the cache, but for some reason it is not getting loaded. I am using PNG image and the server application is set to use PNG image. I have made many components derived from the UniGUI ones, and all working correctly. THe only problem is this change of image. This is the complete component, there are some specific stuff that my classes, but it is the same that is working from other components the only difference on this one is that I am assigning an Image that INSIDE the component, the images are already there: unit NaharWebFlatButton; interface uses Nahar.Theme, NaharWebFrame, NaharWebThemeController, Vcl.ExtCtrls, Vcl.StdCtrls, System.SysUtils, System.Classes, Vcl.Controls, uniGUIBaseClasses, PngFunctions, uniGUIClasses, uniImage, UniPanel, Vcl.Graphics, UniGuiTypes, uniLabel; type TNaharWebFlatButton = class(TUniPanel) private FThemeColor : TNaharPalleteColor; FCaption: string; FPictureBlack: TPicture; FPictureWhite: TPicture; FShowCaption: boolean; FOnClick: TNotifyEvent; procedure OnObserver(Sender: TObject; AParam, AValue: Variant); procedure UpdateColor; procedure SetThemeColor(const Value: TNaharPalleteColor); function GetThemeManager: TNaharThemeManager; procedure SetCaption(const Value: string); procedure SetShowCaption(const Value: boolean); procedure OnPictureClick(Sender: TObject); procedure SetOnClick(const Value: TNotifyEvent); procedure SetPictureBlack(const Value: TPicture); procedure SetPictureWhite(const Value: TPicture); protected FThemeController: TNaharThemeController; FImage: TUniImage; FLabel: TUnilabel; public constructor Create(AOwner: TComponent); override; destructor Destroy; override; property ThemeManager: TNaharThemeManager read GetThemeManager; published property ThemeColor: TNaharPalleteColor read FThemeColor write SetThemeColor default npcMainColor; property PictureWhite: TPicture read FPictureWhite write SetPictureWhite; property PictureBlack: TPicture read FPictureBlack write SetPictureBlack; property Caption: string read FCaption write SetCaption; property ShowCaption: boolean read FShowCaption write SetShowCaption; property Width default 25; property Height default 25; property OnClick: TNotifyEvent read FOnClick write SetOnClick; end; procedure Register; implementation procedure Register; begin RegisterComponents('NaharWeb Standard', [TNaharWebFlatButton]); end; { TNaharWebFlatButton } constructor TNaharWebFlatButton.Create(AOwner: TComponent); begin inherited; FPictureBlack := TPicture.Create; FPictureWhite := TPicture.Create; Width := 25; Height := 25; BorderStyle := ubsNone; FImage := TUniImage.Create(self); FImage.Parent := self; FImage.Align := alClient; FImage.Center := true; FImage.Proportional := true; FImage.Transparent := true; FImage.Stretch := true; FImage.OnClick := OnPictureClick; FLabel := TUniLabel.Create(Self); FLabel.Parent := Self; FLabel.Align := alBottom; FLabel.Alignment := taCenter; FLabel.Visible := false; FLabel.Text := ''; Caption := ''; FThemeColor := npcMainColor; FThemeController := LocateThemeController(AOwner); ThemeManager.AddObserver(OnObserver); UpdateColor; end; destructor TNaharWebFlatButton.Destroy; begin ThemeManager.RemoveObserver(OnObserver); FPictureBlack.Free; FPictureWhite.Free; FImage.Free; FLabel.Free; inherited; end; function TNaharWebFlatButton.GetThemeManager: TNaharThemeManager; begin if Assigned(FThemeController) then result := FThemeController.ThemeManager else result := NaharThemeManager; end; procedure TNaharWebFlatButton.OnObserver(Sender: TObject; AParam, AValue: Variant); begin if AParam = 'currentpalletechanged' then UpdateColor; end; procedure TNaharWebFlatButton.OnPictureClick(Sender: TObject); begin if Assigned(FOnClick) then FOnClick(Self); end; procedure TNaharWebFlatButton.SetCaption(const Value: string); begin FCaption := Value; UpdateColor; end; procedure TNaharWebFlatButton.SetOnClick(const Value: TNotifyEvent); begin FOnClick := Value; end; procedure TNaharWebFlatButton.SetPictureBlack(const Value: TPicture); begin if Assigned(Value) then FPictureBlack.Assign(Value); UpdateColor; end; procedure TNaharWebFlatButton.SetPictureWhite(const Value: TPicture); begin if Assigned(Value) then FPictureWhite.Assign(Value); UpdateColor; end; procedure TNaharWebFlatButton.SetShowCaption(const Value: boolean); begin FShowCaption := Value; UpdateColor; end; procedure TNaharWebFlatButton.SetThemeColor(const Value: TNaharPalleteColor); begin FThemeColor := Value; UpdateColor; end; procedure TNaharWebFlatButton.UpdateColor; var HCColor : TColor; begin if ShowCaption then begin FLabel.Visible := true; FLabel.Align := alBottom; FLabel.Text := FCaption; FLabel.Alignment := taCenter; FLabel.Font.Size := Self.Font.Size; FLabel.Font.Name := Self.Font.Name; FLabel.Font.Style := Self.Font.Style; FLabel.Font.Color := Self.Font.Color; end else begin FLabel.Visible := false; FLabel.Text := ''; FLabel.Align := alNone; FImage.Align := alClient; end; if (FThemeColor = npcNone) or (FThemeColor = npcUnknown) then HCColor := ThemeManager.CurrentPallete.HighContrastColor(Color) else HCColor := ThemeManager.CurrentPallete.HighContrast(FThemeColor); if HCColor = clWhite then FImage.Picture.Assign(PictureWhite); if HCColor = clBlack then FImage.Picture.Assign(PictureBlack); if (FThemeColor = npcNone) or (FThemeColor = npcUnknown) then exit; Color := ThemeManager.CurrentPallete.Color[FThemeColor]; Font.Color := ThemeManager.CurrentPallete.HighContrast(FThemeColor); Font.Name := ThemeManager.CurrentPallete.BodyFont; if ShowCaption then begin FLabel.Font.Name := Self.Font.Name; FLabel.Font.Color := Self.Font.Color; end; end; end. Any Clue? Thank you
  21. Farshad, I have found one obscure and almost forgotten unit that was including the MainForm, where uniGuiVars is declared. I have corrected that, removing the reference to the Main Form and I could generate a package with the Frame, DataModule, etc incluiding the inheritance. I will be moving now to dynamically open it and load the frames. However I have removed the TDMMainG(UniMainModule.GetModuleInstance(TDMMainG)) To create the datamodule I am going to test creating it directly. However I believe that the above code is related to get an instance. But is it getting always the same instance of the object? or is it created a new one? What is the problem of calling TDMMainG.Create directly? Eduardo
  22. I am trying to understand what is happening. I have made a minimal package, I have found the FreeForm, never saw it before. THen I have created a Free Form, changed to Frame and it compiled and generated the package fine. I have just placed a UniDBGuid and compiled fine also. So, it seems the problem is the classes that I am using and that I want to convert to this new model. My project is pretty complex, and I have to tell you that UniGui is fantastic. I am doing pretty complex software with it. And it is stable. Now I want to use my main code and menu system as a kind of platform where I can install frames. However I have no Idea which units is allowed to that. Right now based on this post is says that UniGuiVars should not be added. Looking further on my code I see that the DataModule was created with the following code: uses UniGUIVars, uniGUIMainModule, MainModule; function DMMainG: TDMMainG; begin Result := TDMMainG(UniMainModule.GetModuleInstance(TDMMainG)); end; Since it register the DataModule on the Initialization part. I wonder if I could remove this dependancy? Since it is a regular Delphi TDataModule, what is the problem creating it directly? Each time a frame is created it asks for the DMMainG, to get the DataModule to work. Right now I have DBISAM components on it and few others that are not UniGUI related. So, reviewing what I said, I am trying to convert the current project, based on UniGUI to a package based, on a way that I can intall and load dynamically the packages. Seems that TFrame is not a problem, created the Form Free Way. Not Sure if I can use datamodules with no need of the code above. (RegisterModuleClass is defined on UniGuiVars) I can load dynamicall the BPL and then using my functions register each class imported from the package. Because in this moment I will be in a context that UniGuiVars are allowed. What you can tell me of all that? Thank you
  23. Hi There, I made a project using UniGui based on frames. I have only one Form, that is my main form, where I create my frames. All my frames are inherited from one base frame. Now I want to create packages to keep this frames, so I can update the packages and it be loaded dinamically by the main program. The problem is that I got stuck on this DENYPACKAGEUNIT The answer above is not completelly clear to me, I have no idea what is a Free Form on UniGui. Anyways, I need it to be a TFrame, and preferably an inherited frame. There is also a need to add a TDataModule. can I have any direction on this? Thank YOU!
  24. Hi All! I am using a ServerModule.Title that is the name of my application. That is fine. However my application is customizable and then I need to change that according the customer need. The application start with the fixed title, and then need to change that. I have tried to: Application.Title := AValue; UniServerModule.Title := AValue; From the MainModule And it is not changing. What should be done? Thank you !!!
  25. I wonder if you could help me on that. (or someone else...) I am having difficulties to start on that, I am new with JS code and with unigui. I am already using the animation by Unisession.AddJS and it is working very well. I too a look on the demos and I am lost about the event creation I know there is a callback on Extjs after the animate finish, I need that to reach the delphi source code. I need to know when the animate finish because the delphi TUniPanel that I am animating do not get with its properties updated. I am using this to make screen transtions, to swap between frames of the application. The efect is very nice. However I dont know when finished so I can continue doing other stuff after that. Please, I wonder if someone give me a hand and point me the places wher I have to write code to get the end of animation event and the updated panel position. Many Thanks!
×
×
  • Create New...