Jump to content

masterdeveloper

uniGUI Subscriber
  • Posts

    46
  • Joined

  • Last visited

Profile Information

  • Gender
    Male

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

masterdeveloper's Achievements

Newbie

Newbie (1/4)

0

Reputation

  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?
×
×
  • Create New...