Jump to content

masterdeveloper

uniGUI Subscriber
  • Posts

    46
  • Joined

  • Last visited

Everything posted by masterdeveloper

  1. hello everyone, I am checking for an error that is happening when closing a form (TUniForm). Our forms are located inside a TuniFrame, aligned to alClient. When I close the form, I receive an access violation. It seems to happen only when I have a dataset on the form. I haven't been able to solve it yet. Attached is a print that better demonstrates the situation. Any tips? Thank you very much in advance,
  2. I updated the unigui for the version uni-1.50.0.1480. After that the component TUniCalendarPanel didn´t work anymore. When I open a form that had it, show a message.
  3. Good afternoon, we updated to the latest version uni-1.50.0.1479 and the problem persists. I believe the problem is in the procedure: procedure TUniCustomDBGrid.H_OnDataLoaded (This: TJSObject; EventName: string; Params: TUniStrings); var DoRst: Boolean; dts: TDataSet; begin ClearGridDirtyState (True); FLoadDataStarted: = False; FGridDirty: = False; <<< ------------- ... This event is not called on my grid a few times. Apparently it is falling into this procedure "TUniCustomDBGrid.SetCellValue" before falling into this procedure "TUniCustomDBGrid.H_OnDataLoaded". That way the FGridDirty variable is not updated in time. In the event: procedure TUniCustomDBGrid.LoadDataX is set to the variable value: procedure TUniCustomDBGrid.LoadDataX; begin if FGridLoadRec.Dirty then begin FGridLoadRec.Dirty := False; FGridDirty := True; ... but this variable does not get "False" BEFORE entering the procedure "TUniCustomDBGrid.SetCellValue", this procedure is called AFTER passing the procedure "TUniCustomDBGrid.SetCellValue". Summarizing the problem that happens on my grid: 1- When selecting a record in the grid, the procedure TUniCustomDBGrid.LoadDataX; is called 2- This procedure points to the value of the variable FGridDirty: = True; 3- The procedure TUniCustomDBGrid.H_OnDataLoaded should now be called, but it is not 4- The value of the FGridDirty variable is false 5- The procedure procedure TUniCustomDBGrid.SetCellValue is called 6- Validation happens and aborts processing: if FGridDirty then raise Exception.Create ('Grid is in dirty state. No more updates can be applied.'); 7- After the error appears, the procedure "TUniCustomDBGrid.H_OnDataLoaded" is called, it seems to me that it has a delay. Note: The field I select on the grid is of type "CheckboxField". I believe that: When the field is of type "Checkboxfield", when opening the grid and marking this field first (without selecting the line), the procedure "TUniCustomDBGrid.H_OnDataLoaded" is not called. If you select the line, then mark the checkbox, the procedure is called correctly. I could not simulate this situation in a test case, it only occurs in my application. Any tips? Thank you.
  4. Good morning, everyone, just to collaborate with the UNIGUI forum. Recently I went through the same problem, installing UNIGUI components in delphi 10.2 Tokyo received an "Access violation in bds.exe" error message. To solve the problem, I had to reinstall delphi 10.2 and in the configuration I unselected some components that delphi installs by default: - Interbase (all) - Thryrty components (all) - FastReport If you are using only 1 version of delphi, this should solve the problem. If you are using 2 versions of delphi, as is my case (10.1 and 10.2), you should also change the environment variable "path". To do this, you need to go to tools> options> Enverioment variables> System Variables> Path. Change this variable to the corresponding delphi version, because during delphi installation, it overwrites this path, ie: If you have delphi 10.1 installed, you will have a path like: With only delphi 10.1 installed path = C: \ Program Files (x86) \ Embarcadero \ Studio \ 18.0 \ bin; C: \ Users \ Public \ Documents \ Embarcadero \ Studio \ 18.0 .... After installing delphi 10.2, the path variable of delphi 10.1 was: path = C: \ Program Files (x86) \ Embarcadero \ Studio \ 19.0 \ bin; C: \ Users \ Public \ Documents \ Embarcadero \ Studio \ 19.0 .... When you install delphi 10.2, it overwrites this variable from "..18.0" to "..19.0" of delphi 10.1, which should not. So you need to change this path variable manually in each delphi by configuring the delphi version accordingly. I hope it's useful.
  5. Okay, I'll update later to see if it solves the problem. Thanks in advance for the Delphi Developer attention.
  6. Good afternoon everyone I'm using a grid problem, where when I select a record, it returns the following error message: "Grid is in dirty state. No more updates can be applied." The grid is simple, and has no special behavior. The error happens the moment the checkbox is clicked to select the record in the grid.
  7. I am developing a chat in an application using the SGCWebSocket library, I was able to do the exchange of messages and the list of my users when connecting and disconnecting in the system, however I am encountering some problems when accessing objects in the client application when I try to access the objects in an event of the SGC protocols, generating an access violation. below has the source code that I use in the onEvent of the message protocol, the commented line is where error occur, when trying to display a notification on the screen(groChat.Show;): procedure TfrChat.WSProtClientEvent(Connection: TsgcWSConnection; const Channel, Text: string); var groChat : TIDSiGrowl; begin groChat := TIDSiGrowl.Create(nil); groChat.Text := Text; groChat.Title := Channel; // groChat.Show; end;
  8. the error in the treeview was resolved by changing the code as follows: procedure TfrChat.WSProtClientEvent(Connection: TsgcWSConnection; const Channel, Text: string); var oJSONMsg: TsgcJSON; tndItem : TUniTreeNode; begin oJSONMsg := TsgcJSON.Create(nil); try oJSONMsg.Read(Text); with cdtConversa do begin if Locate('OPECONVERSA',oJSONMsg.item[0].JSONObject.Item[0].JSONObject.Node['CODIGO'].Value, []) then begin Edit; FieldByName('TXTCONVERSA').AsString := FieldByName('TXTCONVERSA').AsString + #13 + oJSONMsg.item[0].JSONObject.Item[0].JSONObject.Node['MENSAGEM'].Value; Post; tndItem := tvwMenu.Items.FindNodeByCaption( FieldByName('NOMEOPE').AsString); if tndItem.Selected then imeConversa.Lines.Text := FieldByName('TXTCONVERSA').AsString; groChat := TIDSiGrowl.Create(nil); groChat.Text := Text; groChat.Title := FieldByName('NOMEOPE').AsString; // groChat.Show; end; end; finally FreeAndNil(oJSONMsg); end; end; but I'm still having trouble displaying the notification by TIDSiGrowl
  9. below has the source code that I use in the onEvent of the message protocol, the commented lines is where error occurs, that is when trying to select an item from the treeview and when trying to display a notification on the screen: procedure TfrChat.WSProtClientEvent(Connection: TsgcWSConnection; const Channel, Text: string); var oJSONMsg: TsgcJSON; groChat : TIDSiGrowl; begin oJSONMsg := TsgcJSON.Create(nil); try oJSONMsg.Read(Text); with cdtConversa do begin if Locate('ID',oJSONMsg.item[0].JSONObject.Item[0].JSONObject.Node['ID'].Value, []) then begin Edit; FieldByName('TEXT').AsString := FieldByName('TEXT').AsString + #13 + oJSONMsg.item[0].JSONObject.Item[0].JSONObject.Node['MESSAGE'].Value; Post; // if tvwMenu.Selected.Text = FieldByName('NAME').AsString then // imeConversa.Lines.Text := FieldByName('TEXT').AsString; groChat := TIDSiGrowl.Create(nil); groChat.Text := Text; groChat.Title := FieldByName('NAME').AsString; // groChat.Show; end; end; finally FreeAndNil(oJSONMsg); end; end;
  10. the posted source code runs on onEvent and exactly does occur when trying to add a javaScript myself, I think that's what I meant, if you have any examples with something like that working with SGCWebSocket it would help a lot. thank you
  11. We have an application that uses the mainModule theme "uni_mac_yosemite", I am developing a form where I need to change the images of the items of a UNITreeView, but using this theme it was not possible to set the imageindex, since using the default theme works normally, however I can not change the theme because the whole application already uses this format. Has anyone had this problem and could it help me, whether it has change directly in the source with some property or configuration or if just adding the treatment via JS?
  12. I am developing a chat in an application using the SGCWebSocket library, I was able to do the exchange of messages and the list of my users when connecting and disconnecting in the system, however I am encountering some problems when accessing objects in the client application when I try to access the objects in an event of the SGC protocols, generating an access violation, for example: groChat: = TIDSiGrowl.Create (null); groChat.Text: = text; groChat.Title: = FieldByName ('NAME'). As rope; groChat.Show; using the above code in the onEvent of the protocol, it explodes the error in the show when it goes addJS. Another example would be when trying to access a selected item from treeView: if treeView.Selected.Text = FieldByName ('NAME') AsString then imelog.Lines.Text: = FieldByName ('TEXT') AsString; I can only solve by running the above codes on events and methods that are not from the SGC components, however I have the need to display notifications and load the message on screen at the moment I receive and without using a timer Someone who used this library and can help me solve these problems?
  13. Bom dia, Temos uma aplicação que utiliza na propriedade theme do MainModule o tema "uni_mac_yosemite", estou desenvolvendo um formulário onde preciso alterar as imagens dos itens de uma UNITreeView, porém utilizando esse tema não foi possível setando o imageindex, visto que ao utilizar o tema default funciona normalmente, no entanto não posso mudar o tema pois toda a aplicação já utiliza esse formato. Alguém já passou por esse problema e poderia me ajudar, se tem como alterar diretamente no fonte com alguma propriedade ou configuração ou se apenas adicionando o tratamento via JS?
  14. <br class="Apple-interchange-newline"><div id="inner-editor"></div> 274/5000 Hello, do you have the demo component "UniTinyMCE"?I need to convert HTML to RTF, you mentioned in this topic that I could do it.http://forums.unigui.com/index.php?/topic/7447-richedit/ Does this component come together in this 50U $$ package? I am interested in buying. Thank you.
  15. Very good Congratulations! Mohammad, I have 3 doubts: 1- How to return the selected values? For example: I selected "Madrid" and "Dubai", how can I go through this list and check which items have been selected? 2- How to insert items dynamically in the list? Let's say I need to go into the database, make a query and return the result of that query to mount the checkbox options? 3- When I click Edit, if the list with the options is not open, it opens. If I click Edit, and the list is open, it closes and returns to its original size. Can you make the list return to its original size by clicking outside the edit within the panel? Thank you very much.
  16. Hello RobYost, thank you very much for the response. I'll try FastMM4, I'll give you some feedback soon. att Lucas.
  17. Good afternoon to everyone in the community, I'm writing from Brazil. My Unigui version is "uni-1.0.0.1410". I need to scan my system, I need to find all the places where there is a memory leak. To do this, I thought about using EurekaLog. I ran the test using the UNIGUI demo, located at: ..uniGUI \ Utils \ EurekaLog \ Demos \ Standalone \ test.dproj To configure EurekaLog, I used the recommended settings at: "..uniGUI \ Utils \ EurekaLog \ uniGUI.eof" My doubt is: - Is EurekaLog able to find 'MemoryLeak' in an application made in UNIGUI? So far the conclusion I got was: EurekaLog is able to write 'Acess Violation' log, but not 'MemoryLeak'. Has anyone used EurekaLog + UNIGUI to detect "MemoryLeak"? I got in touch with EurekaLog support, and got the following response: "Is EurekaLog capable of capturing 'MemoryLeak' in systems made in Framework Unigui? Isn't that a Web Services framework like IntraWeb? In such an application it is difficult to measure leaks. This is because web service applications are never shut down. This makes it difficult to tell if a memory allocation is legitimate or if it is an unfreed leak. In a normal EXE we store information about each heap allocation in a database located in RAM. As blocks of heap memory are freed, they are removed from the database. At shutdown we simply make a list of each un-freed memory allocations and the stack trace that produced each one. You will not see a leaks report if there were no actual leaks or the leaks were known ones in the RTL or other places." I thank the attention. att Lucas
×
×
  • Create New...