Jump to content

Luciano França

uniGUI Subscriber
  • Posts

    268
  • Joined

  • Last visited

  • Days Won

    4

Luciano França last won the day on January 26

Luciano França had the most liked content!

Profile Information

  • Gender
    Male
  • Location
    Astorga PR. Brasil

Contact Methods

  • Yahoo
    luapfr@yahoo.com.br

Recent Profile Visitors

1169 profile views

Luciano França's Achievements

Advanced Member

Advanced Member (4/4)

32

Reputation

  1. I made a modification in a situation where accessviolation procedure TMainForm.htmlGetFileAjaxEvent(Sender: TComponent; EventName: string; Params: TUniStrings); var aFileName : String; aJSONData : String; aJsonObj: TJSONObject; aFileStream :TFileStream; aMemoryStream : TMemoryStream; afileType : String; aOutputFile : String; function getJsonString(wObj: TJSONObject; aItem: String): String; var aObjItem : TJSONString; begin aObjItem := wObj.Get(aItem).JsonValue as TJSONString; Result := aObjItem.Value; end; function getJsonStream(wObj: TJSONObject; aItem: String): TMemoryStream; var aObjItem : TJSONString; aBytes : TBytes; aString : String; i : Integer; begin aObjItem := wObj.Get(aItem).JsonValue as TJSONString; aString := aObjItem.Value; i := Pos('base64,', aString); if i > 0 then aString := Copy(aString, i+7, Length(aString)); aBytes := TNetEncoding.Base64.DecodeStringToBytes(aString); Result := TMemoryStream.Create; Result.WriteBuffer(aBytes, Length(aBytes)); end; begin UniImage1.Picture.Bitmap := nil; UniMemo1.Clear; if (EventName = 'selected_file') then begin aJSONData := Params.Values['file_info']; aJsonObj := TJSONObject.ParseJSONValue(aJSONData) as TJSONObject; try If (Not Assigned(aJsonObj)) Or (Not Assigned(aJsonObj.Get('filename'))) Or (Trim(aJsonObj.Get('filename').ToJSON) = Emptystr) Then Begin ShowMessage('No file was selected'); Exit; End; aFileName := getJsonString(aJsonObj, 'filename'); if aFileName > '' then begin aOutputFile := UniServerModule.StartPath+'UploadFolder\'+ aFileName; aFileType := getJsonString(aJsonObj, 'filetype'); aMemoryStream := getJsonStream(aJsonObj, 'filedata'); try aMemoryStream.SaveToFile(aOutputFile); finally aMemoryStream.free; end; if Pos('text', aFileType) > 0 then begin with TStringList.Create do try LoadFromFile(aOutputFile); UniMemo1.Text := Text; finally free; end end else if Pos('image', aFileType) > 0 then begin aFileStream := TFileStream.Create(aOutputFile, fmOpenRead); try UniImage1.LoadFromStream(aFileStream); finally aFileStream.Free; end; end else if Pos('pdf', aFileType) > 0 then ShowMessage('File is PDF') else ShowMessage('Filetype is unknown') end else ShowMessage('No file was selected'); finally aJsonObj.Free; end; end; end; Completing the Topic how to open Simulate automatic Click.
  2. Wow, I was looking for a way to invoke Frame Click and my colleague did it in a much simpler way. Much obliged.
  3. I believe the colleague is wrong and there is no solution for this I did a search just with the term "TUniHTMLFrame" and opened all the topics related to it and didn't find any solution.
  4. I'm sorry I already did that How to do this search right on the forum I tried by terms "simulate Click UniHTMLFrame" ? "Click UniHTMLFrame" ? "Simulate Click" ?
  5. I looked for it and couldn't find it on the forum, I think it's a simple thing. based on this topic: http://forums.unigui.com/index.php?/topic/24462-detect-cancel-opendialog-in-tunifileuploadbutton/ and I will use a "UniHTMLFrame" instead of "unifileuploadbutton" How do I need to simulate Click? UniHTMLFrame1.JSInterface.JSCall('fileInputEl.dom.click', []); // Error UniHTMLFrame1.JSInterface.JSCall('dom.click', []); // Error UniHTMLFrame1.JSInterface.JSCall('click', []); // Error UniHTMLFrame1.JSInterface.JSCall(UniHTMLFrame1.jsName + 'dom.click', []); // Error
  6. My friend amazing work I and the entire Unigui community are very grateful
  7. what is wrong in this code See attached. Procedure TMainForm.htmlGetFileAjaxEvent(Sender: TComponent; EventName: String; Params: TUniStrings); Var aFileName, aXMLData: String; aJSONData: String; aJsonObj: TJSONObject; aFileStream: TFileStream; Function getJsonString(wObj: TJSONObject; aItem: String): String; Var aObjItem: TJSONString; Begin aObjItem := wObj.Get(aItem).JsonValue As TJSONString; Result := aObjItem.Value; End; Begin If (EventName = 'selected_file') Then Begin aJSONData := Params.Values['file_info']; aJsonObj := TJSONObject.ParseJSONValue(aJSONData) As TJSONObject; Try aFileName := getJsonString(aJsonObj, 'filename'); If aFileName > '' Then Begin aXMLData := getJsonString(aJsonObj, 'filedata'); aFileStream := TFileStream.Create(aXMLData, fmCreate or fmOpenReadWrite or fmShareDenyWrite); Try aFileStream.Position := 0; UniImage1.Picture.LoadFromStream(aFileStream); Finally aFileStream.Free; End; ShowMessage('Selected file is: ' + aFileName); End Else ShowMessage('No file was selected') Finally aJsonObj.Free; End; End; End; FileDownloadDemo.7z
  8. I'm here banging my head to make it generic for any type of file saving in "AStream: TFileStream"
  9. So I liked your solution so much that I'm wanting to ditch "TUniFileUploadButton" and use your approach for everything, including images
  10. Fantastic I would never know how to do something like that If I also want to adapt to use this idea and save the content in a TFileStream and capture any file, not just XML, how could I do it ? htmlGetFile.Html -> el.accept = "*.*"; procedure TMainForm.htmlGetFileAjaxEvent(Sender: TComponent; EventName: string; Params: TUniStrings); var aFileName, aXMLData : String; aJSONData : String; aJsonObj: TJSONObject; AStream: TFileStream; // How to use it function getJsonString(wObj: TJSONObject; aItem: String): String; var aObjItem : TJSONString; begin aObjItem := wObj.Get(aItem).JsonValue as TJSONString; Result := aObjItem.Value; end; begin if (EventName = 'selected_file') then begin aJSONData := Params.Values['file_info']; aJsonObj := TJSONObject.ParseJSONValue(aJSONData) as TJSONObject; aFileName := getJsonString(aJsonObj, 'filename'); UniMemo1.Clear; if aFileName > '' then begin Showmessage(aFileName); aXMLData := getJsonString(aJsonObj, 'filedata'); UniMemo1.Text := aXMLData; ShowMessage('Selected file is: ' + aFileName); end else ShowMessage('No file was selected') end; end;
  11. If you could share the source code so I can compile it I would greatly appreciate it.
×
×
  • Create New...