Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation on 09/17/19 in Posts

  1. Alexander Sviridenkov

    HTML Library 4.0 released

    What's new New editor features video: https://www.youtube.com/watch?v=3bzLyFwmdM4 HCL/Core Much faster drawing, style calculation and text selection, especially for very large documents New THtDocument.FormattedHTML method. Improved CSS animations support. Improved lines/borders rendering on HDPI screens and scaled documents. Improved text rendering on GDI+ canvas. Added SourceURL to HTML clipboard header Added THtDocument.SavetoStreamANSIEncoded. Workaround for Windows/OSX bug with double quote symbol in Times/italic fonts. Infinite support for CSS animations All image lists now changed to TCustomImageList to support VirtualImageList. New THtDocument.ConvertAttributestoStyle method for converting HTML attributes into inline CSS style. Added CSS text-decoration-style property Added CSS cursor: help Added SVG stroke-linejoin and stroke-linecap support. Incorrect font size values are now ignored Added column width parameter to InsertCol Improved quirks/normal mode support Editor Much faster text selection, caret positioning and text input New customizable selection toolbar (popup) for both VCL and FMX Improved RTF import Improved print preview window scrolling and zoom Added Active=false mode for fast editing of very large documents (1000+ pages) Better support for pasting HTML from clipboard in non-unicode Delphi Added RTF pasting from clipboard when HTML is not available. Added OnPrepareImage param to DocXtoHTML and RTFStringtoHTML Added support for WMF-JPEG conversion on RTF/DOCX import for Delphi 7-2009 New OnURLDetected event - fired when URL is detected in document. New eoEnterSoftBreak option for swapping Enter and Shift+Enter behavior. Improved Outlook compatibility. New eoHighlightCurrentBlock and eoShowSelectionToolbar options. Reports Added startangle parameter for pie charts Added direction="cw/ccw" parameter for pie charts Reports: added x-order attribute for arranging x-values in stacked charts. Email Email library now available for all platforms. Added SelectFolder method for selecting IMAP folders. Scripter Added FreeandNil procedure Calling Free() for object variable will clear variable. Script: added record helpers from IOUtils unit: TDirectory, TFile, TPath. SQL SELECT INTO support. New TSQLInsertQuery, TSQLUpdateQuery classes. DECODE column now returns correct data type based on values. WITH .. AS support for Oracle dialect. Support for PIVOT operator Added HasFetchLimit and FetchLimit functions. Support for ElevateDB SQL dialect New ConvertWheretoJoins method https://delphihtmlcomponents.com
  2. Timers are for GUIs. MsgWaitForMultipleObjects is one sound way to implement a message pump on a thread that needs to do tasks periodically.
  3. Dalija Prasnikar

    Cant' deploy Android app after renaming the project

    You need at least 24 Nobody is detecting anything. Delphi IDE adds that automatically because you need to target at least API 26 (now 28) and Delphi does not support resizeableActivity (AFAIK) so it must explicitly set it to False. Default value if it is not explicitly set is True. Why it adds it after you save project and not before, that is another story.
  4. Dalija Prasnikar

    Cant' deploy Android app after renaming the project

    That value 26.1.1 seems to be hard coded somewhere and is basically meaningless. What you need to do is go to SDK Manager, and under SDK choose appropriate platform folder: SDK API level location C:\.....\sdk\platforms\android-28
  5. Anders Melander

    Drag and Drop Component Suite + Drop to Outlook not working

    Explorer (e.g. the desktop) supports FileContents/FileGroupDescriptor and many other application does as well. If your files are mostly virtual (i.e. they are generated from a database or the like) and are only saved to disk in order to be able to drag them, then FileContents/FileGroupDescriptor is actually the right choice. In that case make FileContents/FileGroupDescriptor your primary format and only write the data to disk if the drop target requests CF_HDROP/Filename.
  6. Dalija Prasnikar

    Cant' deploy Android app after renaming the project

    Well, then Android doc got it wrong 😉 https://developer.android.com/guide/topics/manifest/activity-element.html#resizeableActivity
  7. This really should be fixed! Debugging this code structure will be more common as soon as 10.4 will fix inline declaration or when LSP will be released. procedure TTest.Test; begin if SomeCondition then begin var Qry := 'select * from sometable'; Check(Qry); // Breakpoint: S shows 'A' - Output in check = 'A' end; {..} if SomeOtherCondition then begin var Qry := 'select * from sometable where condition'; Check(Qry); // Breakpoint: S shows 'A' - should have been 'C' - Output in check = 'C' end; {..} while SomeCondition do begin var Qry := SomeFunction( SomeParameter ); Check(Qry); end; end; I'm not saying this construction is good or not, but if the new feature allows it, should work as advertised! Don't have much hair left to pull out.
  8. aehimself

    Passing back a string from an external program

    I always used this code, which works fine. The only issue is if the other application is expecting an input (even a keypress to finish) because ReadFile will wait endlessly as far as I recall. It is easy to finetune it though. function GetDosOutput(CommandLine: string; var ReturnString: String; var ReturnCode: Cardinal): Boolean; const LOGON_WITH_PROFILE = $00000001; var SA: TSecurityAttributes; SI: TStartupInfo; PI: TProcessInformation; StdOutPipeRead, StdOutPipeWrite: THandle; WasOK: Boolean; Buffer: array[0..255] of AnsiChar; BytesRead: Cardinal; WorkDir: string; Handle: Boolean; begin Handle := False; ReturnCode := 255; Result := False; ReturnString := ''; SA.nLength := SizeOf(SA); SA.bInheritHandle := True; SA.lpSecurityDescriptor := nil; CreatePipe(StdOutPipeRead, StdOutPipeWrite, @SA, 0); Try With SI Do Begin FillChar(SI, SizeOf(SI), 0); cb := SizeOf(SI); dwFlags := STARTF_USESHOWWINDOW or STARTF_USESTDHANDLES; wShowWindow := SW_HIDE; //wShowWindow := SW_MINIMIZE; hStdInput := GetStdHandle(STD_INPUT_HANDLE); // don't redirect stdin hStdOutput := StdOutPipeWrite; hStdError := StdOutPipeWrite; End; WorkDir := '.'; Handle := CreateProcess(nil, PChar(CommandLine), nil, nil, True, CREATE_NEW_PROCESS_GROUP or CREATE_NEW_CONSOLE, nil, PChar(WorkDir), SI, PI); CloseHandle(StdOutPipeWrite); If Handle Then Try Repeat WasOK := ReadFile(StdOutPipeRead, Buffer, 255, BytesRead, nil); If BytesRead > 0 Then Begin Buffer[BytesRead] := #0; ReturnString := ReturnString + Buffer; End; Until Not WasOK Or (BytesRead = 0); WaitForSingleObject(PI.hProcess, INFINITE); GetExitCodeProcess(PI.hProcess, ReturnCode); While (Length(ReturnString)<>0) And ((ReturnString[Length(ReturnString)]=#10) Or (ReturnString[Length(ReturnString)]=#13)) Do Delete(ReturnString,Length(ReturnString),1); Result := True; Finally CloseHandle(PI.hThread); CloseHandle(PI.hProcess); End; Finally CloseHandle(StdOutPipeRead); End; end;
×