Jump to content

alasoft

Members
  • Posts

    90
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by alasoft

  1. I'm working hard with UniGui, everyday (see if you like online demo, http://alasoft.com.ar/bibliotecas.dll .. user:password = alasoft:demo) I'm showing this kind of small applications to potential customers and almost invariably they said 'uau !!! .. that's very nice ! .. I'm impressed' (not for my application of course, but for UniGUI !) Now I really want to know this, to feel more confident to go on in 'real' applications and engage customers Has somone stressed UniGui under heavy concurrent conditions ? (say 50-100 users connected and transactioning) Has UniGui some SSL feature ? .. this is crucial. Depending on circumstances, I simply can't say a customer: 'Everybody can reach your url, even without credentials' UniGui seeems great for 'web applications' .. it's possible with UniGUI make 'traditional page style' applications ? Thanks all Robert
  2. Thanks .. everyday I'm adding new functionality. After searching and searching I found a 'small' place wich host Isapis in a shared environment (very rare) and very cheap (for here Argentina) .. I can't afford a VPS right now. The surprise come when I realize the 'service' was very good. They answer diligently my questions and also attend my requests in a good fashion. The place is: http://www.argentina-hosting.com.ar/ Regards Rober
  3. Application type: Library managment Url: http://alasoft.com.ar/bibliotecas.dll User: alasoft Password: demo Running: IIS shared hosting - minimal condition of space and resources - Thanks Farjad
  4. alasoft

    Demo

    Excelente !!! ... Mis felicitaciones .. y de paso, no puedo dejar de pensar que es una prueba mas que UniGUI (+Delphi) es una maravilla. Saludos Roberto
  5. The application actually runs here www.alasoft.com.ar/bibliotecas.dll Thanks Rober
  6. I have an application in www.alasoft.com.ar/bibliotecas.dll running under IIS + MySql In the 'main' form (once press the 'first' button) the right panel shows some images. As you can see the first image render is not showing well (some strange color efect). The image is stored in MySql database IF, I run this application locally (Apache) BUT connecting with the same database, then the image renders perfect. Why is that ? Thanks everybody ! Rober
  7. Thanks ! .. I'll guive a try.
  8. Is there some event in TUniDbGrid .. AFTER columns are created automatically from dataset ? (I mean, not persistent columns, but those auto-created) ? Thanks !
  9. Great !! .. Now, will you recommend me some localization tool for Delphi (appart from ExtJS strings) ? Thanks Farjad, your product works fantastic.
  10. Hi everybody .. The more I use and try UniGUI, the more I like it. So far, there was nothing I really can't do with this fantastic tool. Now, I want/need to internationalize (english/spanish application) Please, can anibody give sime advice ? Thanks ! Rober
  11. If .. In a TUniToolBar descendent, in runtime oToolButon.Visible:=False; // works fine oToolBar.Controls[0].Visible:=False // oToolBar.Controls[0]=oTooButton but doesn't work But .. TUniToolButton(oToolBar.Controls[0]).Visible:=False // It works ! .. :-) Thanks Rober
  12. Can I safely inherit from some UniGUI component, JUST adding simply new methods ? Say .. TMyUniGrid = class(TUniDbGrid) public procedure AutoCreateColumns; end; . . TMyUniGrid.AutoCreateColumns; var nI: Integer; begin if (DataSource<>nil) and (DataSource.DataSet<>nil) then with DataSource.DataSet do for nI:=0 to FieldCount-1 do Columns.Add.FieldName:=Fields[nI]; end; . . RegisterComponents('Custom',TMyUniGrid) Will it work well, once registered ? Thanks ! Rober
  13. The scenario is a Form with a Frame embeded into it. If during 'OnShow' setting Grid.WebOptions.Paged:=True .. works fine. But during 'OnActivate', no. Why ? Thanks ! Rober
  14. alasoft

    Save image

    I used 'TCargaImagenEnDataSet' to save into a TDataSet then contents of a TUniImage component. And to render into a TUniImage from a TDataSet.FieldByName(..) In general works perfectly well for 'almost' any kind of Image (BitMap,JPG,PNG) .. sometimes, very rare, not :-) Greetings PD: I can't upload the files so .. here they are. For rendering from TDataSet into TUniImage ------------------------------------------ unit cCargaImagenDeDataSet; interface uses Classes, Db, Graphics, ExtCtrls, axCtrls, uniImage; type TCargaImagenDeDataSet = class private oDataSet: TDataSet; cNombreDeCampo: String; oImagen: TUniImage; oGrafico: TOleGraphic; oOrigen: TImage; oBitMap: TBitMap; oMemoria: TStream; function Grafico: TOleGraphic; function Origen: TImage; function BitMap: TBitMap; function Memoria: TStream; procedure SeteaGrafico; procedure SeteaOrigen; procedure SeteaBitmap; procedure SeteaImagen; function ImagenNoNula: Boolean; procedure Ejecuta; procedure Inicio; procedure Proceso; procedure Fin; public constructor Create(const oDataSetPar: TDataSet; const cNombreDeCampoPar: String; const oImagenPar: TUniImage); procedure Carga; overload; class procedure Carga(const oDataSetPar: TDataSet; const cNombreDeCampoPar: String; const oImagenPar: TUniImage); overload; end; implementation { TCargaImagenDeDataSet } procedure TCargaImagenDeDataSet.Carga; begin if ImagenNoNula then Ejecuta; end; function TCargaImagenDeDataSet.BitMap: TBitMap; begin if oBitMap=nil then oBitMap:=TBitMap.Create; Result:=oBitMap; end; class procedure TCargaImagenDeDataSet.Carga(const oDataSetPar: TDataSet; const cNombreDeCampoPar: String; const oImagenPar: TUniImage); begin with TCargaImagenDeDataSet.Create(oDataSetPar,cNombreDeCampoPar,oImagenPar) do try Carga; finally Free; end; end; constructor TCargaImagenDeDataSet.Create(const oDataSetPar: TDataSet; const cNombreDeCampoPar: String; const oImagenPar: TUniImage); begin inherited Create; oDataSet:=oDataSetPar; cNombreDeCampo:=cNombreDeCampoPar; oImagen:=oImagenPar; end; procedure TCargaImagenDeDataSet.Ejecuta; begin Inicio; try Proceso; finally Fin; end; end; procedure TCargaImagenDeDataSet.Fin; begin if oMemoria<>nil then oMemoria.Free; if oGrafico<>nil then oGrafico.Free; if oOrigen<>nil then oOrigen.Free; if oBitMap<>nil then oBitMap.Free; end; function TCargaImagenDeDataSet.ImagenNoNula: Boolean; begin Result:=(0<Memoria.Size); end; procedure TCargaImagenDeDataSet.Inicio; begin with oDataSet do if not (State in [dsInsert,dsEdit]) then Edit; end; procedure TCargaImagenDeDataSet.Proceso; begin SeteaGrafico; SeteaOrigen; SeteaBitmap; SeteaImagen; end; procedure TCargaImagenDeDataSet.SeteaGrafico; begin Grafico.LoadFromStream(Memoria); end; function TCargaImagenDeDataSet.Memoria: TStream; begin if oMemoria=nil then with oDataSet do oMemoria:=CreateBlobStream(FieldByName(cNombreDeCampo),bmRead); Result:=oMemoria; end; function TCargaImagenDeDataSet.Grafico: TOleGraphic; begin if oGrafico=nil then oGrafico:=TOleGraphic.Create; Result:=oGrafico; end; procedure TCargaImagenDeDataSet.SeteaOrigen; begin Origen.Picture.Assign(Grafico); end; function TCargaImagenDeDataSet.Origen: TImage; begin if oOrigen=nil then oOrigen:=TImage.Create(nil); Result:=oOrigen; end; procedure TCargaImagenDeDataSet.SeteaBitmap; begin with BitMap do begin Width:=Origen.Picture.Width; Height:=Origen.Picture.Height; Canvas.Draw(0,0,Origen.Picture.Graphic); end; end; procedure TCargaImagenDeDataSet.SeteaImagen; begin oImagen.Picture.Bitmap:=BitMap; end; end. For saving TUniImage in TDataSet.TField --------------------------------------- unit cCargaImagenEnDataSet; interface uses Classes, Db, Graphics, ExtCtrls, axCtrls, uniImage; type TCargaImagenEnDataSet = class private oDataSet: TDataSet; cNombreDeCampo: String; oImagen: TUniImage; oArchivo: TFileStream; oMemoria: TStream; procedure Inicio; procedure Proceso; procedure Fin; procedure SeteaImagen; procedure SeteaMemoria; function Memoria: TStream; public constructor Create(const oDataSetPar: TDataSet; const cNombreDeCampoPar: String; const oArchivoPar: TFileStream; const oImagenPar: TUniImage); procedure Carga; overload; class procedure Carga(const oDataSetPar: TDataSet; const cNombreDeCampoPar: String; const oArchivoPar: TFileStream; const oImagenPar: TUniImage); overload; end; implementation { TCargaImagenEnDataSet } procedure TCargaImagenEnDataSet.Carga; begin Inicio; try Proceso; finally Fin; end; end; class procedure TCargaImagenEnDataSet.Carga(const oDataSetPar: TDataSet; const cNombreDeCampoPar: String; const oArchivoPar: TFileStream; const oImagenPar: TUniImage); begin with TCargaImagenEnDataSet.Create(oDataSetPar,cNombreDeCampoPar,oArchivoPar,oImagenPar) do try Carga; finally Free; end; end; constructor TCargaImagenEnDataSet.Create(const oDataSetPar: TDataSet; const cNombreDeCampoPar: String; const oArchivoPar: TFileStream; const oImagenPar: TUniImage); begin inherited Create; oDataSet:=oDataSetPar; cNombreDeCampo:=cNombreDeCampoPar; oArchivo:=oArchivoPar; oImagen:=oImagenPar; end; procedure TCargaImagenEnDataSet.Fin; begin if oMemoria<>nil then oMemoria.Free; end; procedure TCargaImagenEnDataSet.Inicio; begin with oDataSet do if not (State in [dsInsert,dsEdit]) then Edit; end; function TCargaImagenEnDataSet.Memoria: TStream; begin if oMemoria=nil then with oDataSet do oMemoria:=CreateBlobStream(FieldByName(cNombreDeCampo),bmWrite); Result:=oMemoria; end; procedure TCargaImagenEnDataSet.Proceso; begin SeteaImagen; SeteaMemoria; end; procedure TCargaImagenEnDataSet.SeteaImagen; begin oImagen.Picture.LoadFromFile(oArchivo.FileName); end; procedure TCargaImagenEnDataSet.SeteaMemoria; begin oImagen.Picture.Graphic.SaveToStream(Memoria); end; end.
  15. Hi all .. this is my first application made ​​using UniGUI. In fact it's my CV (Curriculum Vitae) presented as an application on the Web. I'm just out of work and thought this is a good way to let me know. After thinking and thinking UniGUI finally was chosen to develop this small application. The application is in spanish but surely you can appreciate the general idea (I'm asking, among other things, as effectively internationalize an application of this type) Still have to polish details and error, thanks for understanding! Runs on: www.alasoft.com.ar/cv.dll I'm really impressed .. the reality is that the essential part of this application I did in two or three days .. UniGUI is fantastic. I can not really mention what I think .. namely 1. UniGUI looks like a job .. enormous, titanic would say .. obviously do not know, but it's at least how I feel when using this product. 2. Delphi is a Ferrari. The king of RAD, period. The application's I did this: 1. Locally running under Apache 2. Externally published as ISAPI under IIS running on a shared host, without any kind of problems 3. If data, the MySQL connection via UniDAC is transparent (I have very tested and without any kind of problems) 4. Use the full power of Delphi XE to set the 'model' and the control logic. The problems I had were: 1. UniGUI think is the same as a graphical application. It's not, but not so different .. actually very little. Gotta watch the programming of the call-backs 2. By uploading the application to host .. initially could not find the resources ('loading' blue screen), but once set correctly, particularly ExtRoot = ext-xyz \ .. everything went perfectly well. 3. There are minor issues that really have no relevance in my opinion. Particularly in the last minute stop using TClientDataSet as table in memory, and calling midas.dll My only fear with UniGUI today is: 1. Scalability .. This put me a little nervous, but I understand that actually supports up to 100 concurrent users without major poblem. Nothing else seems to be critical .. ExtJS 4 .. debugging .. more functionality .. maybe .. HTTPS and management credentials, if you think this is very important. Finally, as I'm sure all of us here .. I mean simply: THANK YOU MR.FARJAD Robert
  16. Aditionally .. when ShowToolBar=True .. then it shows up well. But, I don't want to show the ToolBar :-) Thanks !
  17. When rendering the component TUniHTMLMemo, in a 'derived' TUniFrame (a descendent Frame) .. it doesn't show up well, whether I laod the memo in design o in run time, aligning alNone o alClient. Specifically, it deviates the scroll bars from it's 'rigth position' .. and also, doesn't paint well the html, showing 'lines' .. 'shadows' .. etc Thanks Farjad ! Rober
  18. Farjad .. as always, thanks !! The 'solution' was simply add PageControl:=oPages; // Assigning the PageControl to the Page TabSheet And it's done PD: I still used to think that this is 'delphi usual programming' .. but it's not. It's 'very like' .. but not exactly. This is the source of many mistakes or misunderstandings.
  19. Hi .. I'm building a standard user interface, multipage view type. That is many pages (TUniTabSheet) inside a Pages control (TUniPageControl) .. each one containting differente things, usually a Frame (TUniFrame) with a connected Grid inside (TUniDbGrid), to make some standard CRUD's So .. to make it somewhat 'general' I need to create pages dinamically at run-time. Also I think this 'best practice', because the pages are created when needed and then destroyed (and recreated again) .. Now .. 1. When creating the page (TUniTabSheet) .. it doesn't get focus. I must 'manually' make click on it (over the tab) procedure TMainForm.UniToolButton1Click(Sender: TObject); begin if oPage=nil then begin oPage:=TUniTabSheet.Create(Self); // The Owner is a Form = TMainForm with oPage do begin Name:='oPage'; Parent:=oPages; // Parent = oPages (TUniPageControl) Caption:='Hi'; Closable:=True; Visible:=True; TabVisible:=True; OnClose:=PageOnClose; // This is because 'Closable' .. closing, frees the page, so I must clean the reference. PageIndex:=0; end; if oFrame=nil then begin oFrame:=TFrameCrud.Create(Self); // Owner is TMainForm with oFrame do begin Parent:=oPage; // Parent = oPage oGrid.WebOptions.LoadMask:=False; // If I don't put this, I get some strange error message // oGrilla.WebOptions.LoadMaskMsg:='Loading .. '; end; end; end; oPages.ActivePage:=oPage; // Is this enough ??? .. oPages.SetFocus, oPage.SetFocus, oPages.ActivePageIndex .. // I have tried all, doesnt' work 2. If .. oGrid.WebOptions.LoadMask:=True, it happens .. 'Cannot call method mask of null' O214=new Object({id:"zero",hidden:true,resizable:false,renderer:function(){return " ";}}); O215=new Ext.grid.Column({id:"0",dataIndex:"0",renderer:_rndcll_,rdonly:true,header:"Nombre",width:1400,attr:"{}",editable:false,editor:O16E}); O212=new Ext.grid.ColumnModel({defaults: { menuDisabled: true },columns:[O214,O215]});O212.nm="O212";O214.nm="O214";O215.nm="O215";O15C.reconfigure(O17A,O212);O17A.load({params:{start:0, limit:25, options:2}}); Please help ! Thanks !!! Rober
  20. In my local Apache the application (ISAPI) seems well .. now in remote IIS .. 1. TUniTreeView doesn't show the 'lines' and 'plus sign' between nodes. 2. TUniPageControl and TUniTabSheet doesn't show well .. the color is white, while actually the right color is blue. Also the 'tabs' doesnt' seems well (without borders) Additionally, it appears suddenly this message 'error loading Midas.dll' .. why not before ? Thanks ! Rober
  21. Thanks Farjad .. solved moving ISAPI.dll to 'IIS application pool'
  22. Well, after asking to my Host provider, they found a 'solution' (to random 'session time out' problem) Simply move the ISAPI.dll to 'Isapi application pool' under IIS .. and voila ! never more the 'session time out' problem. What is this 'application pool' ? .. is something that in some way 'isolates' the application from others. But frankly I don't care :-) It just works. Anyway thanks Farjad for magnificiente job ! Robert
  23. Sorry for this, but I really need help concerning the following This is the scenario in which I am running my application: 1. IIS + Isapi.dll 2. Simple application doing 'nothing' but .. showing one form + button + when you press the button show another form displayin a grid with some records The problem is: Randomly ending the application with 'Invalid session or session Timeout.' (usualy at start) Please I need help here .. I don't know if the problem is in IIS configuration .. my aplication or what. Locally (Apache + Isapi.dll) I run this without any problem involving 20 forms + transactions under MySql. Thanks !! Robert
×
×
  • Create New...