Jump to content

alogrep

Members
  • Content Count

    130
  • Joined

  • Last visited

Community Reputation

0 Neutral

Recent Profile Visitors

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

  1. Fr0sT.Brutal, hi. Is there an easy way to use addresses instead of coordinates in your OSMMap library? Thanks
  2. alogrep

    New mystery of freezing IDE.

    Brian Evans It produced a report that is in erro_list,txt that I re-send now. I just kept answering the prompts taht came up from embarcadero. I had assumed the report was gonna be sent automatically. error_list.txt
  3. alogrep

    New mystery of freezing IDE.

    Problem somewhat solved; Perhaps this was the culprit: I had 320 Units listed in the uses section of the Project. I removed abut 1/2 of then and added the relatives paths to the Search path. When I saved the project something from Embarcadero came up, I filled in all the fields anc I sent it. I hope the errors shown in error_list.txt got to them, so they can fix the bug error_list.txt
  4. alogrep

    New mystery of freezing IDE.

    The steps are simple. Only one project is affected. I laucnh this project, in the Project source page I clik a few keys (whatever they are, DEL, Back space or letters) and the IDE freezes. There is no network mapppong, at list Net Use shows none.
  5. Hi. Delphi 11.3. Open an existing project, press DEL Key twice (to delete 2 letters) and the IDE goes fishing: keystrokes or mouse totally disabled. Need taskbar to end it. Anybody experienced this? Funny thing: I put IDE in the serach of this newsgroup and get zero results.
  6. alogrep

    Richedit printing code gets stuck in 11.3.

    Thanks Peter. I copied from the TcustonRicheit.Print() founcion to modify my code (now includes printing multiple pages) as shown in the code section below. It works just fine. var ...... MaxLen: Integer; TextLen: TGetTextLengthEx; ........ try Printer.BeginDoc; TextLen.Flags := GTL_NUMCHARS; TextLen.CodePage := 1200; // Unicode MaxLen := SendMessage(richedit1a.Handle, EM_GETTEXTLENGTHEX, LPARAM(@TextLen), 0); try With Printer.Canvas Do Begin printresX := GetDeviceCaps( Printer.Canvas.handle, LOGPIXELSX ); printresY := GetDeviceCaps( Printer.Canvas.handle, LOGPIXELSY ); if reptype= 13 then printarea:=Rect(1,printResY div 2, Printer.PageWidth-1,Printer.PageHeight - (printresY-2)) else printarea:= Rect( printresX div 2, // 0.5 inch left margin printresY div 2, // 0.5 inch top margin Printer.PageWidth - (printresX div printresX), // 0.5 inch right margin Printer.PageHeight - (printresY-2) // 1 inch bottom ); richedit_outputarea := Rect( (printarea.left) * 1440 div printresX, (printarea.top * 1440 div printresY), (printarea.right) * 1440 div printresX, (printarea.bottom)* 1440 div printresY ); fmtRange.hDC := Printer.Canvas.Handle; // printer handle fmtRange.hdcTarget := Printer.Canvas.Handle; // ditto fmtRange.rc := richedit_outputarea; fmtRange.rcPage := Rect( 0, 0, Printer.PageWidth * 1440 div printresX, Printer.PageHeight * 1440 div printresY ); fmtRange.chrg.cpMin := 0; fmtRange.chrg.cpMax := richedit1a.GetTextLen; pageof:=0; //total number of pages Repeat // only count pages here. // Render the text nextChar := SendStructMessage(richedit1a.Handle, EM_FORMATRANGE, 0,fmtRange); Inc(pageof); If nextchar < MaxLen Then Begin // more text to print fmtRange.chrg.cpMin := nextChar; End; { If } Until nextchar >= Maxlen; // Free cached information richedit1a.Perform( EM_FORMATRANGE, 0, 0); fmtRange.hDC := Printer.Canvas.Handle; // printer handle fmtRange.hdcTarget := Printer.Canvas.Handle; // ditto fmtRange.rc := richedit_outputarea; fmtRange.rcPage := Rect( 0, 0, Printer.PageWidth * 1440 div printresX, Printer.PageHeight * 1440 div printresY ); fmtRange.chrg.cpMin := 0; fmtRange.chrg.cpMax := richedit1a.GetTextLen; page := 1; Repeat // now actually print // Render the text nextChar := SendStructMessage(richedit1a.Handle, EM_FORMATRANGE, 1,fmtRange); if not (reptype in [9,10,12]) then with dm1.systable do begin if reptype <> 13 then Textout(printarea.left{+printresx},printarea.bottom+ (printresy div 2),FieldByName('Name').AsString+' '+LG('Report Printed')+' '+FormatDateTime('dd-mmm-yyyy hh:mm:ss',Now)); TextOut(printarea.right-printresx,printarea.bottom+ (printresy div 2), 'Page: '+inttostr(page)+ ' ' +lg('of') +' '+IntToStr(pageof)); end; Inc(page); If nextchar < MaxLen Then Begin // more text to print printer.newPage; fmtRange.chrg.cpMin := nextChar; End; { If } Until nextchar >= MaxLen; // Free cached information richedit1a.Perform( EM_FORMATRANGE, 0, 0); end; printed:=true; if cap1<> '' then begin richedit1a.lines.delete(richedit1a.lines.count-1); richedit1a.lines.delete(richedit1a.lines.count-1); end; finally Printer.EndDoc; end; The relevnt part seems to be this way of ca,culatin the texzt length: TextLen.Flags := GTL_NUMCHARS; TextLen.CodePage := 1200; // Unicode MaxLen := SendMessage(richedit1a.Handle, EM_GETTEXTLENGTHEX, LPARAM(@TextLen), 0);
  7. alogrep

    Richedit printing code gets stuck in 11.3.

    I g=found this code here: https://stackoverflow.com/questions/22234371/how-to-print-the-contents-of-a-richedit. It seems to work pretty well. However, I like to print a small logo (saved as abitmap separately) at the sart of the printing, followed by the richedit content, all on the same page.. Is that possible? procedure PrintRichEdit(RichEdit: TRichEdit; const Caption: string; const PrinterMargin: Integer); //the units of TRichEdit.PageRect are pixels, units of PrinterMargin are mm var PrinterHeight, PrinterWidth: Integer; LogPixels, PrinterTopLeft: TPoint; PageRect: TRect; Handle: HDC; begin Handle := Printer.Handle; LogPixels := Point(GetDeviceCaps(Handle, LOGPIXELSX), GetDeviceCaps(Handle, LOGPIXELSY)); PrinterTopLeft := Point(GetDeviceCaps(Handle, PHYSICALOFFSETX), GetDeviceCaps(Handle, PHYSICALOFFSETY)); PrinterWidth := Printer.PageWidth; PrinterHeight := Printer.PageHeight; PageRect.Left := Max(0, Round(PrinterMargin*LogPixels.X/25.4) - PrinterTopLeft.X); PageRect.Top := Max(0, Round(PrinterMargin*LogPixels.Y/25.4) - PrinterTopLeft.Y); PageRect.Right := PrinterWidth-PageRect.Left; PageRect.Bottom := PrinterHeight-PageRect.Top; if (PageRect.Left>=PageRect.Right) or (PageRect.Top>=PageRect.Bottom) then //the margins are too big PageRect := Rect(0, 0, 0, 0); RichEdit.PageRect := PageRect; RichEdit.Print(Caption); end;
  8. alogrep

    Richedit printing code gets stuck in 11.3.

    Thanks Peter. I applied your suggestions (I did not have the Newpage, because this richedit text will never exceed 1 page). However, checking if nextchar <=fmtRange.chrg.cpMin allows me to abort printing but it does not tell me what is the error, why that happens.
  9. Hi. I used the code below to print Richedit in pre-XE Delphi for many years. Now it get stuck in the repeat loop: In my test, the first nextchar gives 571, in the next and all subsequent cals gives 570. Gence the loop hangs. Does Anybody have any ideas as to what has changed or what am I doing wrong? Printer.BeginDoc; try With Printer.Canvas Do Begin printresX := GetDeviceCaps( handle, LOGPIXELSX ); printresY := GetDeviceCaps( handle, LOGPIXELSY ); printarea:= Rect( printresX div 2, // 0.5 inch left margin printresY div 2, // 0.5 inch top margin Printer.PageWidth - (printresX div printresX), // 0.5 inch right margin Printer.PageHeight - (printresY-2) // 1 inch bottom ); richedit_outputarea := Rect( (printarea.left) * 1440 div printresX, ((printarea.top) * 1440 div printresY), (printarea.right) * 1440 div printresX, (printarea.bottom)* 1440 div printresY ); fmtRange.hDC := Handle; // printer handle fmtRange.hdcTarget := Handle; // ditto fmtRange.rc := richedit_outputarea; fmtRange.rcPage := Rect( 0, 0, Printer.PageWidth * 1440 div printresX, Printer.PageHeight * 1440 div printresY ); fmtRange.chrg.cpMin := 0; fmtRange.chrg.cpMax := richedit1a.GetTextLen; // remove characters that need not be printed from end of selection. // failing to do so screws up the repeat loop below. S:= richedit1a.Text; While (fmtRange.chrg.cpMax > 0) and (S[fmtRange.chrg.cpMax] <= ' ') Do Dec(fmtRange.chrg.cpMax); pageof:=0; //total number of pages Repeat // only count pages here. // Render the text nextChar := richedit1a.Perform( EM_FORMATRANGE, 0, Longint(@fmtRange)); fmtRange.rc := richedit_outputarea; Inc(pageof); If nextchar < fmtRange.chrg.cpMax Then Begin // more text to print fmtRange.chrg.cpMin := nextChar; End; { If } Until nextchar >= fmtRange.chrg.cpMax;
  10. alogrep

    Upgrading from 11.2 to 11.3

    Uwe that "the vast majority had no problems with this update" is of no sonsolation to me. Now it has become completely unworkable. It freezes all the time, with no apparent pattern.
  11. alogrep

    Upgrading from 11.2 to 11.3

    QED.. I had no Getit packages. But after installing 11.3, no the IDE freezes like crazy. Once if I clic File, another if I click Search, at times if i am just moving the cursor around. Does anybody have an idea on hoiw to get rid of this annoyance?
  12. alogrep

    Upgrading from 11.2 to 11.3

    Hi I have had extremely bad experiences upgrading from one minor version to another. I have these questions, if anyone is willing to help. 1. if I upgrade from, in this case, 11.2 to 11.3, after upgrading do I need to re-install all 3rd party products and my own packages? 2. Do I need to UNINSTALL the old version, or is it better to NOT uninstall it? From the windows for the installation I get contradictory suggestions: it first says "you need to uninstall", but then the NO radio button is checked by default
  13. alogrep

    E-Payment processing software for Delphi

    Thank you very much, FPiette. I have two questions, if you will 1. The customer (the restaurant) to use this type of API requires https on the PC (server) in the restaurant? 2. Aside from entering the credit card data manually in the POS App, are there ways to scan/read these data and send them to the API?
  14. alogrep

    E-Payment processing software for Delphi

    David. 1. As for the country, I did write "The client that asked me, in Mexico,...." 2. I think there is a fundamental misunderstanding caused by the word POS. I never meant POS terminals. I mean a POS application: where the waiter enters the order. At the end, when the customer pays the cashier scans the credit card with the bank provided terminal, and then has to duplicate the data entering in the database of the app (e.g "payd by visa"). He would like to enter or read the credit card data (in some ways, maybe even with some type of scanner) directly in the application (that would send the data to a real payment-processing site on the web), so to avoid duplication. If something like this is not possible, I will tell my client "sorry, that is beyond my reach".
  15. alogrep

    E-Payment processing software for Delphi

    Embarcadero istself claims a "Rapidly Deploy Blazing Fast Payment Solutions On Windows", https://blogs.embarcadero.com/rapidly-deploy-blazing-fast-payment-solutions-on-windows/ but when you try to access the site it returns a 404 error. https://getitnow.embarcadero.com/InPay-20.0.7582/
×