How do I access Paint.Picture OLE Class External Properties and Functions in PowerBuilder - powerbuilder

I have jpeg image files of A4 Size displayed on a window in PowerBuilder 12.5 using PB Image Controls (PictureButton, Picture, InkPicture) vs OLE Control (Paintbrush Picture). When compared the OLE option displayed clearer than the Picture Controls.
I'll like to use the OLE option (due to its clearity) but will like to determine the image file using my code. But I do not know how access the OLE Object External Functions and Properties in my code as these are not available in the PowerBuilder Object Browser.
Is there a way to get the list of the Paint.Picture OLE Class's Functions/Properties or make any of the PB Picture Controls display clearer without increasing the control's size?
Thanks

Examining OLE Class Functions and/or Properties in PowerBuilder
From the Tools menu in PowerBuilder choose "Browser..." menu item.
Choose the OLE Tab
Double click an appropriate OLE category such as "OLE Custom Controls".
Choose a registered OLE control and expand the tree view
View the Class Information, Properties and/or Functions
You mentioned this not showing in the Object Browser. I'm not sure why it wouldn't show up if registered. You could refer to the Microsoft Paintbrush API documentation as a fail safe.

You can use progid value in class information to acces object

Related

Windows Runtime Component: Variable for the UWP Image element and how to get it from XAML

Suppose that I have a UWP app where in MainPage.xaml, what I have is an image control (or image pane) as an instance of Windows.UI.Xaml.Controls.Image (called testImage), and I have a Windows Runtime component in C++. MainPage.xaml also has a button and a button listener to run a function in the component to change the image control's source.
Using code for the Windows Runtime component, how do I get that element that's already defined in the XAML file to change its source to a WriteableBitmap instance (holding an image) and display it in the image control? In this case, the image control is put in place by using the Visual Studio 2017 XAML Designer.
Using this line
auto testImage = ref new Windows::UI::Xaml::Controls::Image();
only instantiates a new image control to be placed in MainPage.xaml itself, even when the variable name matches the value of the Name attribute for the image control as an XAML element.
I do remember seeing the documentation and I think one StackOverflow question where it is possible to reference an XAML element between a script and a UWP app page, but that's in C#. Here, I want it in C++ because I am using OpenCV.
EDIT: Hmm, perhaps one alternative would be to have the component simply process the image using OpenCV, pass it back to the button listener in C#, then set the source attribute of that image control to the processed image.

How to implement a simple add-in for MS Excel on C++

I need a help for implementing add-in for Excel 2010 or higher on C++, the only functionality of this add-in is renaming of current Excel sheet.
The add-in should create new custom tab on the Ribbon with name: “Test Add-in”, this tab contains group with name “My Functionality”, this group contains large button with some picture with name “Rename Current Sheet”. After clicking on the button, I should show the following dialog:
User can enter new name, click ok and after this, the name of current sheet will be changed.
I understand that I need to use #import directive for getting references to Office API, use ATL to wrap COM objects, MFC or WTL to create dialog, but I I'm not opposed to using the mentioned methodologies.
I've implemented the add-in by following
this article

Modify windows 7 preview pane to display a folder's subdirectories instead of a big empty frame

I would like to get rid of an extremely annoying windows7 behaviour and i think there are no other way than overriding windows programatically.
Since i'm confortable with delphi and it can also do a lot in system programming i am thinking of using this language, but let's explain first :
In windows 7 file explorer there is the preview pane ( usually located in the right side of any explorer's window ) that show you the content of the current selected file if supported ( office files, pictures, html and text based files ).
Example :
But an annoying behaviour of this panel is that when you select a folder, the pane remains completely empty :
I would like it to display the content of the selectd folder ( files and folders icon and name ) so that there is no need to open it.
To do that i think i have to deal with windows dll. I know i will have to search more deeply about that but i would like some experienced user to tell me if it is definitely not possible, or if possible where to start investigating or how to proceed.
Also any other advice is welcome.
If i mange to do that i would be glad to share it over internet.
Create a custom Preview Handler COM object and register it for the HKEY_CLASSES_ROOT\Folder ProgID in the Registry:
HKEY_CLASSES_ROOT\Folder\shellex\{8895b1c6-b41f-4c1c-a562-0d564250836f}
(Default) = [REG_SZ] "your CLSID here"
Your handler should implement IInitializeWithFile or IInitializeWithItem, and not IInitializeWithStream, so it can receive the path/IShellItem of a selected folder. Then you can enumerate that folder's content and display it in your implemented IPreviewHandler UI as needed.

Where is the Component Toolbar configuration data stored in Delphi XE4?

I'm trying to customize the appearance of the Component Toolbar pages within Delphi XE4. I clicked on Tools > Options > Component Toolbar
I highlighted Data Access and moved it up underneath Standard and clicked OK. However it still shows up in the IDE Tool Palette in the original location underneath Samples.
Ray Konopka distributes a utility that moves all the Raize components to the top of the list in the Tool Palette so there's got to be a config file somewhere that I can tweek so the pages and components are in the order I'd like them to be.
Where can I find this file?
Looking at Delphi XE, it is stored in the key HKEY_CURRENT_USER\Software\Embarcadero\BDS\8.0\ToolForm\Mapping(Default), so I guess that for Delphi XE4, it will be HKEY_CURRENT_USER\Software\Embarcadero\BDS\11.0\ToolForm\Mapping(Default). To read this key, this answer should help : How to read Default Value of Registry Key

Need help with deriving from TImage (to store the path to image's file)

I have an Object Inspector, just like Delphi's, which I show at run-time to allow the user to change properties of components displayed in my app.
I would like to create a component derived from TImage with one extra property where I can store the path from which the image was loaded. To do so, I presume that I can subclass TImage, have an event to select the image by using something like ...
var OpenPictureDialog: TPictureEditorDlg;
if OpenPictureDialog1.Execute then
OpenPictureDialog1.FileName <-- contains what I want
But, if I wrap that in a proc/fn, what's the signature and how do I get it to be called when the user clicks on the ellipsis next to the Picture property in the Object Inspector?
Or perhaps my question ought to have been whether there is an existing 3rd party component which already does this ...
50 point bounty for a free component which can be used in commercial applications (I will increase the bounty for an very good component)
If anyone can give the URL of a component that does this then I will start another bounty, 100 this time, and award it to them
TImage does not know the file name of the loaded picture. Because it receives only the image content, not the file name. So in order to get this information you must replace that default open picture select dialog with your own, and in it you pass the filename and the image content. Then your custom TImage can store this information.
That depends on how your Object Inspector works. It would help if we knew where you got it from.
The way it works in Delphi's Object Inspector is that BPL packages can register property designers with the IDE, so when it sees a certain type, such as your custom TImage, it opens that designer instead of whatever it would normally open. See if your Object Inspector supports this, or if not, if you can add the functionality.
MiTeC's ImageEx is a small, simple and free component that extends Delphi's TImage. It doesn't have a "path" property, but it has an "about" property that you could use as the path property, or as a template to add your own path property.
For something more comprehensive and not too expensive, you might try the Envision Image library by Interval Software, It is integrated with Delphi's TImage. It costs $69 US.
If i understood correctly, you want to load an image, then get the path to image's file.
This should work:
procedure TForm1.Button1Click(Sender: TObject);
var Imagefilepath:String; //Declare Imagefilepath:String;
begin
//Get name of file path
if opendialog1.Execute then Imagefilepath:=opendialog1.FileName;
//Load the picture
image1.Picture.LoadFromFile(Imagefilepath);
//show the name
showmessage(Imagefilepath);
end;
And make sure you have written in uses "JPEG" so that it loads JPEG images
Easy Peasy

Resources