I want to develop a Web application in Delphi using VCL. I tried UniGUI, but it does not seem to work. Well, it works, but quite not how I wanted. Let me explain.
My problem is that I do want a library whose visual controls expose Handle to them. UniGUI does that, but it's not working correctly - for example, the main form has a Handle set to 0, but a TUniPanel has a different handle and what's more - it's always the same, even if I run the app in another window or tab.
I want to have a control which exposes its Handle correctly, because I need it for the purposes of the application I want to develop.
Do you know any other VCL library which allows me to do that? I tried Intraweb, but it does not seem to solve my problem either.
The only way I know that a web browser could host VCL code would be through an ActiveX. I wouldn't really advise you to take that approach.
Related
I need to use datawindow design mode in my application but i think there is no such function to open design mode at runtime.
In my application there is reporting module that is not perfect in the sense that there is always need to design a new report. I want to implement functionality in my application that will let user design reports the way he/she wants.
Designing the same interface as the one we use in design mode in powerbuilder is very difficult because there are no helping functions in powerbuilder.
The other option if possible to get syntax of a created window in design mode in powerbuilder can be seen or captured in a string from memory where powerbuilder is loaded. for example i design a datawindow in datawindow painter and do not close the painter. is there way to get the datawindow syntax from the memory where powerbuilder is loaded?
The best option would be the designer integrated in custom powerbuilder app instead of designing everything from scratch.
Yes, there is. It's called InfoMaker, and it's fairly inexpensive.
Give your users licensed copies of IM and let them create datawindow definitions. You can import those into your app at runtime with LibraryImport().
-Paul Horan-
In official examples "(..\Code Examples\Example App\pbexamfe.pbl)" PB there is one called "Runtime DataWindow Painter", perhaps I can help.
I'm developing my MS Access database editor (mdb, accdb) which I will give everyone for free. I've done mostly everything that matters except relationships. The problem for me is how to show relationship(s). I would like to do it like in the real MS Access:
The thing is, I don't know how would I connect these child windows with a line that is stretching and resizing when one of the windows move etc...
This maybe not a question that can have a direct answer but I'm stuck here and don't know how to show those relationship(s). I'm using C++ Builder XE2.
So you need a library to draw graphs...
Making an answer, for being able to put links in the list (which comments would not allow)
http://sourceforge.net/projects/extgraph/
How to create graphs in Delphi application
http://www.torry.net/pages.php?s=88
I want to make a charting control for an embedded device using Silverlight for Windows Embedded. Currently i am planning to use line shape for drawing the graph.
My question is if its a good approach(performance wise) or should i look for other options.
Or if any controls are available for SWE.
Thanks
Silverlight is not a proper answer to drawing charts on an Windows Embedded Compact device. You should go for using (or creating) a native GDI element. If performance is very important (e.g. for a fast-updating chart), you might also consider DirectDraw.
The best way in a commercial project would probably be to use a readymade component, such as this one.
You can find somebody else's experiences and advice here for pointers to what to look for when doing this yourself. If you expand your post with more details about what you are actually trying to achieve, I might give you a more detailed response.
The answer is stop using Silverlight, since Microsoft is abandoning the product. Do it in Flash—or better yet, use HTML5 and JavaScript.
In recent windows embedded applications that use windows universal apps I would highly recommend oxyplot.
http://oxyplot.org/
These plots are the best I've found on the internet so far and very easy to use. Best of all they are free. You can get these using a NuGet Package manager which makes getting updates fairly simple.
I'd like to get information about a third party application's controls such as a list of its properties and their values: something like RTTI information but for a third-party Delphi application.
I see that this is possible. For example TestComplete has the ObjectSpy window which can give many useful information about the control, including RTTI information. How can this be done ?
Edit: To explain why I'm investigating this issue... I'm a registered user of TestComplete/TestExecute and I do like... most of it. I can get over the minor things but the one major problem for me is their license verification system which requires me to have a physical computer (not a virtual machine) always on just for the sake of running a license server so that TestExecute can run at night. As I have basic testing needs (compare screenshots and check basic Delphi component's properties) I wondered how hard it would be to make my own private very simple "TestExecute-like" application.
To go further, I suggest you these relevant resources found here on SO
Writing a very basic debugger (The accepted answer along with its comment thread are all valuable).
Is it possible to access memory from an application to another ? How? (Excerpt from the accepted answer: It is possible. Just use the Windows API functions WriteProcessMemory/ReadProcessMemory. Pass in the handle of the process and the pointer to the data).
Search the memory of another process (The excellent accepted answer also forwards to another valuable resource delphi-code-coverage by Christer Fahlgren and Nick Ring).
StackWalk of other process in delphi? (Check Barry Kelly's answer !!!, the same for the one from the AsmProfiler author !!!).
I strongly suggest you to port to Delphi this c++ project entitled Get Process Info with NtQueryInformationProcess: A hands on experience on using ReadProcessMemory to access the CommandLine used to launch another process.
Last Edit:
NtQuerySystemInformation Delphi Example.
RRUZ's answer to Delphi - get what files are opened by an application as suggested by LU RD.
When we want to take another application which is compiled with debug information and get stuff out of it at runtime, what we are dealing with is the problem of "how to write my own custom debugger/profiler/automated-test kernel".
TestComplete and other AutomatedQA programs contain a Debugger and Profiler Kernel which can start up, run and remotely control apps, and parse their Debug information in several formats, including the TurboDebugger TD32 information attached to these executables. Their profiling kernel also can see each object as it is created, and can iterate the RTTI-like debug information to determine that an object that was created is of a particular class type, and then see what properties exist in that object.
Now, TestComplete adds on top of the AQTime-level of stuff, the ability to introspect Window handles, and intuit from Window Handles, the Delphi class Names that are behind it. However, it's much easier for you (or me) to write a program which can tell you that the mouse is over a window handle that belongs to a TPanel, than to know which version of Delphi created that particular executable, what version of TPanel that is, then, and what properties it would contain, and to read those values back from a running program, which requires that you implement your own "debugger engine". I am not aware of any open source applications that you could even use to get a start writing your own debugger, and you certainly can't use the ones that are inside AQTime/TestComplete, or the one inside Delphi itself, in your own apps.
I could not write you a sample program to do this, but even if I could, it would require a lot of third-party library support. To see the window classes for a window handle which your mouse is over, look for how to implement something like the MS Spy++ utility.
An easy case is if your mouse is mousing over a window inside your own application. For that, see this about.com link, which simply uses RTTI.
I'm considering different user interface layouts for my next project and I was wondering if there are either integrated or 3rd party frameworks which allow me to create tabbed document interface?
To clarify, what I want is not some kind of docking mechanism or either an MDI interface but primarily a framework which allows me to have one main form and one or more secondary forms which will be shown as tabs inside the main form.
Though I said I don't want any kind of docking mechanism, I made a small test application that actually uses it. The result I got is very close to what I want. First, I miss some features like the close button on each tab. Second, I'd have to create some kind of framework of my own in order to automate all tasks, like creating and destroying the tabs, associating each new form with its tab, freeing the form when the associated tab is closed and so on. I'm not saying I can't do it but I'd like to know if there are any ready-made frameworks which already have all these features. Though I'd prefer an open source solution, a commercial one is also welcome.
Third-party components are not mandatory here.
You can use standard Delphi controls to obtain what you want:
Put a TPageControl on your form (from Win32 tab);
Set its Align property to alClient;
Right click on the control, then select "New page" to add a new page.
Then don't write your "tabbed" interface on forms, but on frames.
You can also create pages by code, displaying the frame inside each page.
I don't think there is any framework for tabbed interface, but for nice looking tab/page controls with close buttons on each tab, please check the following:
rkSmartTabs, it simulates Google Chrome browser's tabbed UI. and it's open source.
TAdvOfficePager, MS Office style.
Hope it helps.
I recommend using a tool bar(TToolBar or any similar) and frames(TFrame) in order to mimic tabbed interface, reason?! well Delphi is going cross platform(no secret in that) they will port most if not all of the standard VCL shipped with Delphi, so WHY NOT use this as an advantage?
Just create the frame(dynamically) when the user clicks on a button from tool bar and destroy the previous one(if exists) so you will keep memory usage at minimum, application startup/shutdown time will be very good, on the other hand, if you chose to use (cx)TPageControl, TAdvPager, etc. you might get caught in a situation in which one form(the main I suspect) will have so many VCL's that it will take a lot of UNNECESSARY memory and it will be slow.
Using frames has a lot of advantages, if somewhere in your application you need a "tab" to be shown, you can simply create the needed frame dynamically and use it without additional work.
Anyways, this is my two cents, hope this helps.
I recommend TvjPageList, which is part of the JVCL suite of components. It's open source and seems to fit your requirements.
I use JVCL JvDocking, and its tabbed docking system, to make MDI-like applications.
You can also float, or tile your windows, in addition to having them in tabs.