Paul @ JWare

Member since: Thursday, 27 July 2017
Last login: 2 months ago
Profile viewed: 330 views

No Rank
Points: 0

Hi Sarina, very much enjoy your blogs, fyi, there is no link to follow for the webinar attached to this article.

Okay, call me the newb that I am. I found the location of the necessary .bpi files from another search posting. I was confusing BPL with BPI files.

Anyway I have it working, thanks to Al and the other posters that are out there in in the ether... One thing to consider, there may be other bpi files necessary depending on the Database .dll's used in your project.


I have the same issue, exactly. Using C++ 10.2.3. When I right click the "Requires" folder in the project and chose Add Reference, I navigate to the folder C:\Program Files (x86)\Embarcadero\Studio\19.0\Redist\win32 and none of the .bpi files show, I have to choose all files from the filter menu to see the bpi files. They are all FrieDACxxx250.bpi files.
However, when I choose the FireDAC250.bpi, I get a an error thrown in the IDE. It states that another file with the same base name already exists on the path.

I cannot get this resolved? Any other ideas?


Paul @ JWare created a new topic ' TCalendarView Custom Drawing Multi-line Text' in the forum. 3 months ago

I'm writing this as an answer to a question I posted some time back on the old forums which for whatever reason is not available on the new Community Forum. Hopefully this may help any others trying to use the TCalendarView to display more then just a custom color for a given day. After reading the excellent article posted by Pawel Glowacki, to understand the basics, and much effort and parsing through the Pascal source, I finally realized the only way one could have a multi-line text and have full control over what is drawn is to override a few of the protected functions of TCalendarView and perform a cast

With that in mind here's some code. The trick is setting the TextFormat for tfEditControl to allow multiple lines in the control. Then completing the calls for drawing the cell item

thus allowing it draw the cell normally. Then replicating the code in the
changing the TextFormat. Here's the code from my main form handling the OnDrawDayWeek event for drawing the calendar.
void __fastcall TMainForm::SchedulingCalendarDrawDayItem(TObject *Sender, TDrawViewInfoParams *DrawParams,
		  TCellItemViewInfo *CalendarViewViewInfo)
	unsigned short year, month, day;

	TDate theDate = CalendarViewViewInfo->Date;

	DecodeDate(theDate, year, month, day);

       // whatever day you want to draw
	if( day == 3 )
		TCalendarViewViewInfoBase *info = SchedulingCalendar->NeedCurrentViewInfo();
		ICalendarViewController *con = info->Controller;
		TCalendarViewDrawer *theDrawer = con->GetDrawer();

		CustomCalendarDrawer *aDrawer = static_cast<CustomCalendarDrawer*> (theDrawer);
		String theString = IntToStr(day) + L"\nHello World";
		aDrawer->DrawCalendarItem(DrawParams, DrawParams->Canvas, CalendarViewViewInfo);
		aDrawer->DrawDayOfWeek(DrawParams, DrawParams->Canvas, theString );

Here is the code for overriding the library code.
lass PASCALIMPLEMENTATION CustomCalendarDrawer : public Vcl::Winxcalendars::TCalendarViewDrawer
	void DrawCalendartItem(TDrawViewInfoParams *DrawParams, TCanvas *ACanvas, TCellItemViewInfo *AViewInfo)
		TCalendarViewDrawer::DrawCalendarItem(DrawParams, ACanvas, AViewInfo);

	void DrawDayOfWeek(TDrawViewInfoParams *DrawParams, TCanvas *ACanvas, String LText)
		TRect DrawRect;
		String Text;
		Vcl::Graphics::TTextFormat LTextAttr;

		DrawRect = DrawParams->DrawRect;
		Text = LText;
		ACanvas->Font->Color = DrawParams->ForegroundColor;
		ACanvas->Brush->Color = DrawParams->BkColor;
		ACanvas->Brush->Style = bsSolid;

		ACanvas->Font->Style = TFontStyles() << fsBold;
		LTextAttr = Vcl::Graphics::TTextFormat() << tfEditControl << tfEndEllipsis;
		DrawRect.Inflate(-DrawParams->FocusRectWidth*3, -DrawParams->FocusRectWidth*3);
		ACanvas->TextRect(DrawRect, Text, LTextAttr);

Any comments positive or negative, or if there's a better way or better code, please type at me.


Paul @ JWare replied to the topic 'RAD Server developer license' in the forum. 8 months ago

When I installed EMS for the first time I was never presented with that page form the wiki either. But it's ok, just use the defaults and it will work, with limitations as Malcolm mentioned.

The reason you're getting that message is because you have to have a licensed version of Interbase XE7 running on the deployment machine. So if you really want to use EMS you have to upgrade to Enterprise or buy the license for EMS.



Paul @ JWare replied to the topic 'Install Interbase on Linux for RAD Server' in the forum. 8 months ago

You can request a re-host for your license from the online support form at: Support

However, I'm not sure how many times they will allow it, but I'm sure they have a way to continue to use the license as servers can change.

Yes, the single site license will be used when you install Interbase XE7, in other words when the installer asks for the license for Interbase XE7, use the single site license you purchased. If you don't have the link for XE7 Server, request it from support. Or email me and I'll try to find it for you.

RAD/EMS Server uses IBXE7 for user authentication only, so unless you do purchase a full license for Interbase you have to use another DB server anyway. So you're on the right path.

As far as where they are hosted, when you setup EMS for the first time, it requests the instance of XE7, where you may be able to give a "url:port", not sure.

But since EMS/RAD Server only uses IBXE7 for user auth, why not just install it on the same machine as RAD Server with Apache? Then you can host your customers DB on the other hardware server.

That's all I know at this point. Since I bought the Windows version, I am trying to setup my Linux machine using virtualization. It has 24 processors and 32 g RAM, so it fly's.

I will eventually run EMS Server, IBXE7 and Apache on a Windows 7 Pro VM, and my PostgresSQL in another VM. For the Win7 VM I am stripping the OS down to the barest essentials and giving it lots of power, so my expectations are that it will be very fast.

Good luck, feel free to email me personally if you like, maybe we can compare notes and experiences. This email address is being protected from spambots. You need JavaScript enabled to view it.



Paul @ JWare posted a comment on Mimicking MessageDlg on mobile platforms 11 months ago

Good article. This is also a perfect place to use animations to, well animate the "floating" dialog box. For example, by using a float animation to you could drop the rectangle down from the top of the screen and then animate it back up after the u

Paul @ JWare replied to the topic 'Trouble accessing Docwiki' in the forum. 1 year ago

Here's what my sales rep replied to me, she communicated with Al Mannarinoand and forwarded below. This actually shows what's in the docwiki for components. So until the site is back up, this may be all the reference we can use.
"Embarcadero is migrating the API/Reference Web Sites, and that's why you are getting the Error 503 Service Unavailable message."
"The Function F1 key on a VCL component on the form, like your TCalendarView component, should bring up the Libraries Reference: VCL in your IDE, like this:"
Some images of the help topic.


Paul @ JWare replied to the topic 'Trouble accessing Docwiki' in the forum. 1 year ago

Agreed! I am somewhat new to Embarcadero and have embarked on a major project for my first client, and need access to the API's and References. I've emailed my sales rep about the issues 2 days ago and did get an answer, see below, but they never mentioned anything about the servers being down for maintenance.
BTW the cached pages did not work either. From my experience, I got to the first level page, when I drilled down, I got nothing. If it helps anyone this is the response I received, give it shot. Be sure to click the down arrow on the right side and see if you get anything more than the Main page for the topic.

[size= 11.0pt; font-family: 'Calibri',sans-serif; color: #1f497d]As the error message on our DocWiki site suggests the customer can do a google search on what he is trying to access and view a cached page[/size]

[size= 11.0pt; font-family: 'Calibri',sans-serif; color: #1f497d]The pages do not look pretty, but the information can be obtained with a google search...he might have to narrow the search.[/size]

[size= 11.0pt; font-family: 'Calibri',sans-serif; color: #1f497d] To get to a cached page do a google search and click on the down arrow at the end of the url[/size]