Category: Firemonkey

Delphi FMX TIdHTTP onWork, onWorkBegin, onWorkEnd not working

  

I’ve been fighting with TIdHTTP and Delphi FMX for a while and I don’t get good results, so, I don’t really know what to do.
So, the thing that I want to do is to show a ProgressBar while GETTING and POSTING with TIdHTTP. I’ve seen some codes online, that I’ve adapted, but nothing works.
But the problem is not only that the ProgressBar doesn’t work. The problem goes much further:
I tried to make an easier functionality, that only makes Visible:= true and Visible:= false when the IdHTTP is working.
So, I thought: If I make a get or a post, the TIdHTTP events OnWorkBegin, OnWork and OnWorkEnd should capture the action and make it visible/invisible.
So, the code I put was that:
procedure TF_FTP.IdFTP1WorkBegin(ASender: TObject; AWorkMode: TWorkMode; AWorkCountMax: Int64);
begin
ProgressBar1.Visible := true;
end;

procedure TF_FTP.IdFTP1Work(ASender: TObject; AWorkMode: TWorkMode;
AWorkCount: Int64);
begin
ProgressBar1.Visible := true;
end;

and
procedure TF_FTP.IdFTP1WorkEnd(ASender: TObject; AWorkMode: TWorkMode);
begin
ProgressBar1.Visible := false;
end;

What happened is, at the first get, the ProgressBar was visible because in the Form Design it is set as Visible. When it finishes, the ProgressBar gets invisible. Ok, well. But when I try to make another get or post, the ProgressBar never appears again.
If I make the ProgressBar invisible at the Form design, it never shows up.
I tried putting the Visible/Invisible on other IdHTTP events, as onConnected-onDisconnected, onBeforeGet-onAfterGet, … nothing seems to work. In addition, when I’m downloading the files, the Form freezes.
I don’t know what is happening, I’m running on Android64.
Thank you in advance.

Read More

how i can show data from database in delphi10.4.2 android?

  

I have problem with show data from data base in wwlayoutgrid in android version of my app. in windows version i dont have problem but in android i cannot show data.
i think database have not access in android version.
procedure TFrmSelectCustomer.BtnDetailsClick(Sender: TObject);
begin
CustomerInfo.Parent := Self;
CustomerInfo.Show();
CustomerInfo.Frame.LoadData(0);
end;

procedure TFrmSelectCustomer.BtnSortClick(Sender: TObject);
var
LstStr: TStringList;
OrderID: Integer;
begin
LstStr := TStringList.Create;
LstStr.Add(‘Customer Name’);
LstStr.Add(‘Number’);
LstStr.Add(‘Birth Date’);
if FOrder = ‘CustomerName’ then
OrderID := 0
else if FOrder = ‘Number’ then
OrderID := 1
else if FOrder = ‘BirthDate’ then
OrderID := 2;
TDialogBuilder.Create(Self).SetTitle(‘Sort By’).SetSingleChoiceItems
([LstStr.Strings[0], LstStr.Strings[1], LstStr.Strings[2]], OrderID)
.SetPositiveButton(‘NO’).SetNegativeButton(‘YES’,
procedure(Dialog: IDialog; Which: Integer)
begin
case Dialog.Builder.CheckedItem of
0:
FOrder := ‘CustomerName’;
1:
FOrder := ‘Number’;
2:
FOrder := ‘BirthDate’;
end;
ShowAllByFilterQuery(FormMain.QryCustomerList, EdtSearch.Text, FOrder);
end).Show;
LstStr.Free;
end;

thanks.

Read More

How to add task widget to lock screen on Android Phone?

  

How can I add task app to the lock screen (not the home screen) on Android:
I have tried all suggestions on the internet nothing works
https://github.com/ssaurel/LockScreenDevice
https://stackoverflow.com/questions/32526078/how-to-show-widgets-custom-layouts-on-lockscreen-or-on-homescreen-in-android-5
https://github.com/commonsguy/cw-omnibus/tree/master/AppWidget/TwoOrThreeDice

If it is possible to do it with flutter or with Delphi 10.4 please show me a code to do this so I can add it to my app.

Read More

Get Top and Left position of an FMX Control, based on screen bounds

  

I’m trying to place an outside program right into an FMX TPanel using SetWindowPOS from WinAPI.
In order to do that I need the exact Top and Left values of the TPanel to pass it to SetWindowPOS. However, this value is always according to its parent, so i.e. if the Tpanel’s parent is a TLayout and no margins are set, then the value of Top will be 0.
I need the Top value according to the screen.
I tried searching for that quite a bit but I can’t figure it out.
Any help with that would be greatly appreciated.

Read More

How can I create a fake integer property?

  

I’m trying to create a fake or pseudo property for child controls, and have tried to follow this article: https://edn.embarcadero.com/article/33448
However, that was written some years ago, so I don’t know how much Delphi might have changed since then in a way that could matter here.
Unlike the goal of that article, I’m trying to have a number property that is essentially the index of the control in its parent. This is for when a particular custom control (OrderLayoutObj) is the parent (although it might have applicability in other cases where I want to change the order of a control in its parent’s Children list without having to manually reorder the controls in the .fmx.)
In place of the article’s TAddPropertyFilter, this is my declaration and implementation. It matches the article’s one pretty closely, and I don’t think there is a problem with it. (Sorry for my umm, unconventional, naming and formatting.)
AddOrderProperty = class(TSelectionEditor, ISelectionPropertyFilter)
procedure FilterProperties(const ASelection: IDesignerSelections; const ASelectionProperties:IInterfaceList);
end;

procedure AddOrderProperty.FilterProperties(const ASelection:IDesignerSelections; const ASelectionProperties:IInterfaceList);
var OrderProperty: ControlOrderPropertyObj;
begin
if ASelection.Count<>1 then Exit;

if ASelection[0] is TControl then begin
if not (TControl(ASelection[0]).Parent is OrderLayoutObj) then Exit;

OrderProperty:=ControlOrderPropertyObj.Create(inherited Designer,1);
OrderProperty.Control:=TControl(ASelection[0]);
ASelectionProperties.Add(OrderProperty as IProperty);
end;
end;

I also don’t think that there’s a problem with my Register procedure:
procedure Register;
begin
DesignIntf.RegisterSelectionEditor(TControl,AddOrderProperty);
end;

I think the real problem is in my equivalent of the article’s TBaseComponentPropertyEditor and its descendant TControlParentProperty which were designed to allow a control to be selected. Instead of using that I’ve based it on TIntegerProperty, given that my additional property is an integer, and not knowing if the article’s author used what he did because he didn’t have a better descendant available at the time of the article.
(I did try try basing it on TBasePropertyEditor, but that didn’t work either, although the property did appear in the Object Inspector, and then produced an error. I don’t recall the exact details, though.)
ControlOrderPropertyObj = class(TIntegerProperty)
private
OrderControl: OrderLayoutObj;
ControlF: TControl;
procedure Control_Set(C:TControl);
protected
function GetEditValue(out Value:string):Boolean;
public
function GetName:string; override;
function GetValue:string; override;
procedure SetValue(const Value:string); override;
property Control:TControl read ControlF write Control_Set;
end; {AddControlFilter}

procedure ControlOrderPropertyObj.Control_Set(C:TControl);
begin
ControlF:=C;
OrderControl:=C.Parent as OrderLayoutObj;
end;

function ControlOrderPropertyObj.GetEditValue(out Value:string):Boolean; //This is a copy of the method from the article.
begin
Value:=GetValue;
Result:=True;
end;

function ControlOrderPropertyObj.GetName:string;
begin
Result:=’ControlIndex’;
end;

function ControlOrderPropertyObj.GetValue:string;
begin
GetValue:=OrderControl.PositionOf(Control).ToString;
end;

procedure ControlOrderPropertyObj.SetValue(const Value:string);
begin
OrderControl.ChangePosition(Control,Value.ToInteger);
end;

I think the problem is with another IProperty or other method that I haven’t overridden, but the only clue as to which one is that it’s producing an access violation (when clicking on the child component in the form editor) in line 752 of DesignEditors.pas. That’s on the Result:= line of this method:
function TPropertyEditor.GetPropType: PTypeInfo;
begin
Result := FPropList^[0].PropInfo^.PropType^;
end;

Although I’ve done it years ago, I’ve been unable to debug the design-time .bpl by setting Run>Parameters>Host name to Delphi itself.

Read More

Notify when there is a missing photo

  

In an android app that I made with Delphi I want to show photos from the database. When there is are 10 photos and let’s say 2 are missing I want to show a message which photos are missing and continue to show the 8 photos that are available.
So the filename is in the database but the real photo cant be found in the file.
This is the code on the client side
procedure TfmMain.Button42Click(Sender: TObject);
VAR
i : Integer;
FN : String;
begin
GetObjectFoto(Dm.mtObject.FieldByName(‘follownr’).value);
TV1.Items.Clear;
if dm.mtObjectphoto.RecordCount>0 then
begin
DM.mtObjectphoto.First;

for I := 0 to DM.mtObjectphoto.RecordCount-1 do
Begin
FN := ffotopath+DM.mtObjectphoto.FieldByName(‘filename’).Value;
If not (system.SysUtils.fileexists(FN)) then
try
DownloadFile(DM.mtObjectphoto.FieldByName(‘filename’).Value);
TV1.Items.Add;
TV1.Items.Items[i].Bitmap.LoadFromFile(fn);
TV1.Items.Items[i].Caption := ‘photo’;

end;

DM.mtObjectphoto.Next;
End;
end;

With ‘getobjectfoto’ i call the database for gathering the photos that belong to the object
this is the ‘downloadfile’ on the server-side
Begin
if fileexists(fphotomap+FilenameAtServer) then

Begin
Result := TMemoryStream.Create;
try
TMemoryStream(Result).LoadFromFile(fphotomap+FilenameAtServer);
FileSize := Result.Size;
Result.Position := 0;
except
FileSize := -1;

end;
End;

end;

fphotomap is just a directory on the server lets say C:\test
filenameatserver is the photoname that is saved in the database
Again the photo is not in the map but the data is in the database.
If i missed important data please let me know i correct it asap.

Read More

TWebBrowser local web pages have stopped working in Delphi 11 ( Alexandria )

  

Local file URLs have stopped working for the TwebBrowser component under Android32 bit applications when going from Delphi 10.4 to Delphi 11. I use TWebBrowser to deliver embedded help pages in my mobile app. The same code worked with with previous versions of Delphi.
Specifically urls that start with the file://data/user
The URLs are being parsed incorrectly so the path part throws away the /data bit.

Read More

Software – Application Stock Sprout Social Inc (SPT) should be in your portfolio on Thursday?

  


Hill 55 InvestorsObserver gives Sprout Social Inc (SPT) stock puts it near the top of the software – applications industry. In addition to scoring more than 94% of stocks in the software and applications industry, SPT’s overall rating of 55 means the stock scores better than 55% of all stocks.

SPT has an overall score of 55. Find out what this means for you and get the rest of the ranking on SPT!

What do these notes mean?
Finding the best stocks can be tricky. It is not easy to compare companies from one sector to another. Even companies that have relatively similar activities can sometimes be difficult to compare. InvestorsObserverThe tools allow for a top-down approach that lets you pick a metric, find the best sector and industry, and then find the best stocks in that sector. Our proprietary rating system captures technical factors, fundamental analysis and the opinions of Wall Street analysts. This makes
InvestorsObserver
The overall rating of is a great place to start, regardless of your investing style. Scores ranked in percentiles are also easy to understand. A score of 100 is high and a 0 is low. There’s no need to try to remember what’s “good” for a bunch of complicated ratios, just pay attention to the higher numbers.
What’s going on with Sprout Social Inc Stock today?
Sprout Social Inc (SPT) stock is trading at $62.22 as of 10:50 a.m. on Thursday, February 3, a loss of -$4.80, or -7.17% from the previous closing price of 67.02 $. The stock has traded between $61.41 and $66.34 so far today. Today the volume is low. So far, 151,130 shares have been traded with an average volume of 645,215 shares. Click here for the full Sprout Social Inc. stock report.

Read More

Software Development Services Market by Key Player – , CEPTES, LinkedIn, Concur Technologies, Workday, IBM, Oracle, NetSuite, Medidata Solutions, ServiceNow, Microsoft, Google, Zuora

  

Global Software Development Services Market research is an intelligence report with meticulous efforts undertaken to study the correct and valuable information. The data that has been reviewed takes into account both existing top players and upcoming competitors. The business strategies of key players and new industries entering the market are studied in detail. A well-explained SWOT analysis, revenue share and contact information are shared in this report analysis. It also provides market information in terms of development and its capabilities.
Global Software Development Services Market Research Report 2022-2028 is a factual overview and in-depth study on the current and future market of the Mobility Healthcare Solutions industry. Software Development Services Market report provides supreme data, such as development strategy, competitive landscape, environment, opportunities, risks, challenges and barriers, value chain optimization , contact and income information, technological advancements, product offerings of key players and dynamics. market structuring. The Software Development Services Market report provides the growth rate, recent trends, and an absolute study of key players at regular intervals in the market based on the lightness of their product description, business outline, and their business tactics.
Download Free PDF Sample Report with Full TOC, Figures and Charts (with covid 19 impact analysis): https://www.maccuracyreports.com/report-sample/224680
Summary
According to XYZResearch study, over the next 5 years the Software Development Services market will register a xx% CAGR in terms of revenue, the global market size will reach USD xx Million by 2026, from USD xx Million in 2020. In particular, it should be noted that the impact of the epidemic has accelerated the trend of localization, regionalization and decentralization of the global industrial chain and supply chain, so it is inevitable to rebuild the global industrial chain. Faced with the global industrial change of the post-epidemic era, enterprises in different countries need to take precautions. This report presents the revenue, market share and growth rate for each key company. In this analysis report, we will find the details below:
1. Comprehensive in-depth analysis of the market structure along with the forecast from 2021 to 2027 of the various segments of the global software development services market.
2. Who is the leading company in the software development services market, competitive analysis of key companies, mergers and acquisitions, market dynamics.
3. Which region has emerged as the largest growth area in the software development services market?
4. The most potential segment of each regional market.
5. Overview of factors affecting market growth, including the impact of COVID -19.
6. Global software development services market based on value chain analysis and SWOT analysis.
7. Regional Market Analysis for current revenue (Million USD) and future prospects.
Key Players Operating in the Software Development Services Market- Competitive Analysis:
CEPTES
LinkedIn
Concur Technologies
Working day
IBM
Oracle
NetSuite
Medidata Solutions
ServiceNow
Microsoft
google
Zuora
Regional Segmentation (Value; Revenue, USD Million, 2016 – 2027) of the Software Development Services Market by XYZResearch includes:
China
EU
United States
Japan
India
South East Asia
South America
Outlook Type (Value; Revenue, USD Million, 2016-2027):
Software
Services
Application Outlook (Value; Revenue, USD Million, Market Share, 2016 to 2027):
Commercial
Residential
Manufacturing and industrial facilities
Others
For any other requirements, do not hesitate to contact us and we will provide you with a personalized report.
Get an exclusive discount on this report @: https://www.maccuracyreports.com/check-discount/224680
Impact of COVID-19
The report covers the impact of the COVID-19 coronavirus: Since the outbreak of the COVID-19 virus in December 2019, the disease has spread to almost every country in the world, as declared by the World Health Organization public health emergency. The global impacts of the coronavirus disease 2019 (COVID-19) are already starting to be felt and will significantly affect the software development services market in 2022.
The COVID-19 outbreak has affected many aspects, such as flight cancellations; travel bans and quarantines; restaurants closed; all restricted indoor/outdoor events; more than forty countries declare a state of emergency; massive supply chain slowdown; stock market volatility; declining business confidence, growing panic among the population and uncertainty about the future.
Software Development Services Market Report Coverage Highlights:
– A comprehensive background analysis, which includes an assessment of the global software development services market.– Significant changes in the market dynamics of the software development services market– Software development services market segmentation up to second and third level regional bifurcation– Historical, current, and projected market size of the Software Development Services market in terms of value (revenue) and volume (production and consumption)– Report and assessment of recent developments in the software development services market– Software Development Services Market Share and Key Players Strategies– Emerging Niche Software Development Services Market Segments and Regional Markets– An objective assessment of the trajectory of the Software Development Services market– Recommendations for the companies to strengthen their presence in the software development services market
Additionally, the export and import policies that can have an immediate impact on the global software development services market. This study contains EXIM* related chapter on Global Software Development Services Market and all its associated companies with their profiles, which provides valuable data on their outlook in terms of financials, product portfolios, investment plans and marketing and sales strategies.
Comprehensive report on the Software Development Services Market report spread over 200+ pages, list of tables and figures, profiling 10+ companies. Select license version and purchase this updated research report directly @ https://www.maccuracyreports.com/checkout/224680
Answers to key questions in the report:
• What is the growth potential of the Software Development Services market?• Which product segment will take the lion’s share?• Which regional market will impose itself as a pioneer in the years to come?• Which application segment will experience strong growth?• What growth opportunities might arise in the mobility healthcare solutions industry in the coming years?• What are the most important challenges that the software development services market may face in the future?• Who are the major companies in the software development services market?• What are the main trends that are positively impacting market growth?• What growth strategies are the players considering to stay in the Software Development Services market?
If you have any special requirements, please let us know and we will offer the report as you wish.
About Us:
MR Accuracy Reports’ well-researched contributions that encompass areas ranging from IT to healthcare enable our valued clients to capitalize on key growth opportunities and protect against credible threats prevailing in the market in the scenario current and those expected in the near future. Our research reports provide our clients with macro-level insights in various key regions of the world that provide them with a broader perspective to align their strategies to take advantage of lucrative growth opportunities in the market.
Contact us:MR Accuracy Reports,USA: +1 804 500 1224UK: +44 741841 3666ASIA: +91 747888728100E-mail: [email protected] Website: https://www.maccuracyreports.com

Read More

PDF generation with complex graphics in Delphi



Intro

TMS FNC Core is the core foundation of FNC. It offers a solid structure for the other FNC component sets such as TMS FNC UI Pack and TMS FNC Maps. In the past, we have demonstrated the capabilities of TMS FNC Core in various ways. Below are a couple of links to blog posts about functionality available in TMS FNC Core.

A browser, JSON persistence, printing, SVG support and many more. Today I want to focus on another “hidden gem”: PDF generation and in particular focusing on drawing complex graphics.

Basic drawing 

Before going to complex drawing statements, we need to take a look at the basics. Generating a PDF starts by specifying a file name, adding the first page, and then the PDF context is ready to be accessed via the Graphics property. In the sample below, we draw a simple rectangle by setting the properties of the fill & stroke and by calling p.Graphics.DrawRectangle.

uses
  FMX.TMSFNCPDFLib, FMX.TMSFNCGraphicsTypes;

procedure TPDFGenerationForm.GeneratePDF;
var
  p: TTMSFNCPDFLib;
begin
  p := TTMSFNCPDFLib.Create;
  try
    p.BeginDocument('MyPDF.pdf');
    p.NewPage;

    p.Graphics.Fill.Color := gcYellowgreen;
    p.Graphics.Stroke.Color := gcGreen;
    p.Graphics.Stroke.Width := 4;
    p.Graphics.DrawRectangle(RectF(100, 100, 300, 300));

    p.EndDocument(True);
  finally
    p.Free;
  end;
end;

This generates the following PDF

The basic ITMSFNCCustomPDFGraphicsLib interface (p.Graphics property) exposes a lot of basic drawing calls to draw shapes constructed out of simple primitives or more complex paths. On top of that, it’s possible to export images as well. Using these calls gives you the flexibility to enhance your PDF with vector sharp graphics. The way this needs to be done is by calling each draw statement in a specific order. See this sample below to draw a bezier curve.

uses
  FMX.TMSFNCPDFLib, FMX.TMSFNCGraphicsTypes, FMX.TMSFNCPDFCoreLibBase;

procedure TPDFGenerationForm.GeneratePDF;
var
  p: TTMSFNCPDFLib;
begin
  p := TTMSFNCPDFLib.Create;
  try
    p.BeginDocument('MyPDF.pdf');
    p.NewPage;

    p.Graphics.Stroke.Color := gcDarkseagreen;
    p.Graphics.Stroke.Width := 3;
    p.Graphics.Stroke.Kind := gskSolid;
    p.Graphics.DrawPathBegin;
    p.Graphics.DrawPathMoveToPoint(PointF(350, 40));
    p.Graphics.DrawPathAddCurveToPoint(PointF(310, 130), PointF(445, 50), PointF(398, 115));
    p.Graphics.DrawPathEnd(dmPathStroke);

    p.Graphics.Stroke.Width := 0.5;
    p.Graphics.Stroke.Color := gcBlack;
    p.Graphics.Fill.Color := gcNull;
    p.Graphics.Fill.Kind := gfkSolid;
    p.Graphics.DrawLine(PointF(350, 40), PointF(310, 130));
    p.Graphics.DrawLine(PointF(445, 50), PointF(398, 115));

    p.Graphics.DrawRectangle(RectF(442.5, 47.5, 447.5, 52.5));
    p.Graphics.DrawRectangle(RectF(395.5, 50 + 62.5, 400.5, 50 + 67.5));
    p.Graphics.DrawRectangle(RectF(347.5, 50 - 12.5, 352.5, 50 - 7.5));
    p.Graphics.DrawRectangle(RectF(307.5, 127.5, 312.5, 132.5));

    p.EndDocument(True);
  finally
    p.Free;
  end;
end;

The result of the above code is a bezier curve with lines and handles mimicking interaction.

Mapping FNC Core graphics onto PDF graphics

After the initial release, we had some requests on exporting FNC components to PDF. The PDF graphics layer was too limited to export components to PDF, therefore we have created the TTMSFNCGraphicsPDFEngine class, which decends from TTMSFNCGraphics, the core class for all FNC cross-platform drawing. On top of the default PDF graphics, the TTMSFNCGraphicsPDFEngine gives you complex paths, matrix transforms as well as various flexible image drawing options. Together with SVG support we can then load the SVG as a resource and draw the information as vector graphics inside the PDF. Internally, the SVG is parsed, elements are transformed to FNC graphics paths and with that information the PDF graphics engine draws renders the SVG onto the PDF canvas, via the earlier mentioned drawing calls. All in a couple of lines.

uses
  FMX.TMSFNCPDFLib, FMX.TMSFNCGraphicsTypes,
  FMX.TMSFNCGraphicsPDFEngine, FMX.TMSFNCTypes;

procedure TPDFGenerationForm.GeneratePDF;
var
  p: TTMSFNCPDFLib;
  g: TTMSFNCGraphicsPDFEngine;
  bmp: TTMSFNCBitmap;
begin
  p := TTMSFNCPDFLib.Create;
  g := TTMSFNCGraphicsPDFEngine.Create(p);
  bmp := TTMSFNCBitmap.CreateFromFile('tiger.svg');
  try
    p.BeginDocument('MyPDF.pdf');
    p.NewPage;

    g.DrawBitmap(RectF(50, 50, 400, 600), bmp);

    p.EndDocument(True);
  finally
    bmp.Free;
    g.Free;
    p.Free;
  end;
end;

Export FNC Components

Adding complex vector graphics to your PDF through the TTMSFNCGraphicsPDFEngine class also brings a way to export FNC components. In the base TTMSFNCCustomControl class we have added the ITMSFNCGraphicsExport interface, which is capable of exporting the component to another graphics instance, in this case the PDF graphics engine. In this sample, we chose to export TTMSFNCChart, which is a component that is capable of displaying statistical & mathemical data in various representation types  such as a line chart, bar chart or an area chart. The code looks like this and is for this sample based on the TMS FNC Chart desktop demo, included in the distribution.

procedure TPDFGenerationForm.GeneratePDF;
var
  p: TTMSFNCPDFLib;
  g: TTMSFNCGraphicsPDFEngine;
  e: ITMSFNCGraphicsExport;
begin
  p := TTMSFNCPDFLib.Create;
  g := TTMSFNCGraphicsPDFEngine.Create(p);
  try
    p.BeginDocument('MyPDF.pdf');
    p.NewPage;

    if Supports(TMSFNCChart1, ITMSFNCGraphicsExport, e) then
      e.Export(g, RectF(50, 50, 500, 350));

    p.EndDocument(True);
  finally
    g.Free;
    p.Free;
  end;
end;

Explore

Download TMS FNC Core today and start exploring TTMSFNCPDFLib, TTMSFNCGraphicsPDFEngine and its capabilities! If you are an active registered user of any FNC product, TMS FNC Core is included in your subscription!

Read More

Read More

Delphi Firemonkey Grid component scrolling

  

I am using firemonkey Delphi.
I have a Grid component and several edit boxes within a Listbox, each component occupying their own listboxitem within the listbox. My question is, when I scoll the listbox and my mouse moves over the grid component, the grid component captures my mousewheel scroll rather than the listbox. What I want to achieve is for the scroll function to remain with the listbox and only scroll the Grid when it/cell is clicked. If I set grid hittest to false it works fine but how do I go about detecting when my mouse is over the grid component to capture any mousedown events to reactivate the Grid for scrolling?
Here is the form I am using
object Form1: TForm1
Left = 0
Top = 0
Caption = ‘Form1’
ClientHeight = 736
ClientWidth = 636
FormFactor.Width = 320
FormFactor.Height = 480
FormFactor.Devices = [Desktop]
DesignerMasterStyle = 0
object ListBox1: TListBox
Align = Client
Size.Width = 636.000000000000000000
Size.Height = 736.000000000000000000
Size.PlatformDefault = False
TabOrder = 1
DisableFocusEffect = True
DefaultItemStyles.ItemStyle = ”
DefaultItemStyles.GroupHeaderStyle = ”
DefaultItemStyles.GroupFooterStyle = ”
Viewport.Width = 616.000000000000000000
Viewport.Height = 732.000000000000000000
object ListBoxItem1: TListBoxItem
Size.Width = 616.000000000000000000
Size.Height = 65.000000000000000000
Size.PlatformDefault = False
TabOrder = 0
end
object ListBoxItem2: TListBoxItem
Position.Y = 65.000000000000000000
Size.Width = 616.000000000000000000
Size.Height = 65.000000000000000000
Size.PlatformDefault = False
TabOrder = 1
end
object ListBoxItem3: TListBoxItem
Position.Y = 130.000000000000000000
Size.Width = 616.000000000000000000
Size.Height = 65.000000000000000000
Size.PlatformDefault = False
TabOrder = 2
end
object ListBoxItem4: TListBoxItem
Position.Y = 195.000000000000000000
Size.Width = 616.000000000000000000
Size.Height = 65.000000000000000000
Size.PlatformDefault = False
TabOrder = 3
end
object ListBoxItem5: TListBoxItem
Position.Y = 260.000000000000000000
Size.Width = 616.000000000000000000
Size.Height = 500.000000000000000000
Size.PlatformDefault = False
TabOrder = 4
object Grid1: TGrid
Align = Client
CanFocus = True
ClipChildren = True
Size.Width = 616.000000000000000000
Size.Height = 500.000000000000000000
Size.PlatformDefault = False
TabOrder = 40
Viewport.Width = 596.000000000000000000
Viewport.Height = 475.000000000000000000
object Column1: TColumn
end
object Column2: TColumn
end
end
end
object ListBoxItem6: TListBoxItem
Position.Y = 760.000000000000000000
Size.Width = 616.000000000000000000
Size.Height = 65.000000000000000000
Size.PlatformDefault = False
TabOrder = 5
end
object ListBoxItem7: TListBoxItem
Position.Y = 825.000000000000000000
Size.Width = 616.000000000000000000
Size.Height = 65.000000000000000000
Size.PlatformDefault = False
TabOrder = 6
end
object ListBoxItem8: TListBoxItem
Position.Y = 890.000000000000000000
Size.Width = 616.000000000000000000
Size.Height = 65.000000000000000000
Size.PlatformDefault = False
TabOrder = 7
end
object ListBoxItem9: TListBoxItem
Position.Y = 955.000000000000000000
Size.Width = 616.000000000000000000
Size.Height = 65.000000000000000000
Size.PlatformDefault = False
TabOrder = 8
end
object ListBoxItem10: TListBoxItem
Position.Y = 1020.000000000000000000
Size.Width = 616.000000000000000000
Size.Height = 65.000000000000000000
Size.PlatformDefault = False
TabOrder = 9
end
object ListBoxItem11: TListBoxItem
Position.Y = 1085.000000000000000000
Size.Width = 616.000000000000000000
Size.Height = 65.000000000000000000
Size.PlatformDefault = False
TabOrder = 10
end
object ListBoxItem12: TListBoxItem
Position.Y = 1150.000000000000000000
Size.Width = 616.000000000000000000
Size.Height = 65.000000000000000000
Size.PlatformDefault = False
TabOrder = 11
end
end
end

Read More

"E2597 SysInit.o: error adding symbols: File in wrong format" when compiling a 32-bit Android app

  

I get this error when trying to compile a 32-bit Android application:

[DCC Error] E2597 c:\program files (x86)\embarcadero\studio\21.0\lib\Android\debug\SysInit.o: error adding symbols: File in wrong format

When compiling for 64-bit, there is no problem.
I have tried reinstalling the Android platform, and using a different SDK version, but the issue is the same.
How do I resolve this?

Read More

Audio Plugin Software Application Market Size, Share, Growth Overview, Competitive Analysis

New Jersey, United States,- This detail Audio Plug-in Software Application Market The report outlines the growth development and analysis of the industry, which plays an important role for new market players entering the market. The new players in the market can get a comprehensive overview of the main aspects that control the growth of the […] … Read More

Read More

GExperts 1.3.20 experimental twm 2022-01-30 released

  

COVID-19 is still going strong, even 2 years after it was first discovered. We’re on the Omicron variant now and nobody knows what new variants the near future may bring. I got my vaccination jabs in 2021-06-08 (AstraZeneca), 2021-07-17 (Biontech/Pfizer) and a booster 2021-12-09 (Moderna). As you can see, I survived all of them for at least a month 😉 Side effects were limited to some mild headache that lasted for about 24 hours.
On the bright side: I have been working from home basically through the whole pandemic and I like it (my wife does too). I even managed not to put on too much weight, but using an exercise bike for 30 to 45 minutes a day takes much more effort than simply cycling to work and back. And I miss flying to the south on vacation.
But I digress:
The new GExperts version still supports all Delphi versions back to Delphi 6 (with the notable exception of Delphi 8) and even the Delphi 11 version is no longer in Alpha state (but it’s still beta, there will be glitches!). Support for per monitor DPI awareness should now work (in Delphi 11, and definitely better than in the IDE itself).
There are even a few new features:

A new expert to edit the unit search path (only Delphi 2009 and later)
A per monitor DPI aware stand alone Grep (with a bugfix to save and restore the form position)
Some small improvements for the Goto, Grep search and Todo expert.
Separate cache directories per platform in the Uses Clause Manager
Separate lists for VCL and FMX in the Rename Components expert

And of course a few bug fixes.
As always: Report and any bugs you find (or contribute bug fixes) and also file feature requests or maybe even contribute implementations for these features.
Discussion about this post in the international Delphi Praxis forum.

Read More

How can I write an event in FireMonkey when Windows time changes? [duplicate]

  

In Delphi VCL, using this code, I can capture Windows time changes.
uses Winapi.Messages;

private
procedure WMTimeChange(var Msg: TMessage); message WM_TIMECHANGE;

procedure TForm1.WMTimeChange(var Msg: TMessage);
begin
inherited;
ShowMessage(‘time changed’);
end;

But, it doesn’t work in FireMonkey.
What is the equivalent for FireMonkey?

Read More