delphi,com,delphi-2007,variant , What is required in Delphi 2007 to use Variant arrays?


What is required in Delphi 2007 to use Variant arrays?

Question:

Tag: delphi,com,delphi-2007,variant

I'm a newbie in Delphi, using Delphi 2007. I am learning things related to COM programming, in order to make a basic plugin to a program called Retail Pro. I have a little of background in .NET (C#, ASP), NetBeans (Java, JSF) and PHP.

Anyway, I'm following this intro tutorial to COM Programming :

An Introduction to COM Programming with Delphi

At second and third parts of the 5th lesson about Variant Arrays, there are sample codes to download. Here is the sample code of second part:

http://delphi.about.com/library/weekly/code/src122104_sample.zip

When I compile the code, it gives me a lot of errors of undeclared identifier (VarType, VarArrayCreate, VarArrayLowBound, etc). Is there some class to add in the uses section in order to be able to compile this piece of code?


Answer:

The code is missing a unit from the uses clause. That unit is named Variants and contains all the symbols that the compiler cannot find. Add that unit and the code will compile.


Related:


How to correctly have modeless form appear in taskbar


windows,delphi,windows-7,delphi-xe6,windows-95
I am trying to achieve the age-old Delphi dream of having a modeless form appear in the taskbar. What is the correct way to have a modeless form appear in the taskbar? Research Effort These are my attempts to solve the problem. There are a lot of things needed to...

PasswordChar in Delphi XE8's TMemo


delphi,delphi-xe8
I spent a few hours searching Google to see if anyone had shared their articles, but came up empty-handed. If it's possible, I want to know how to enable/disable the passwordChar in Delphi XE8's TMemo to hide user input like in TEdit. ? Maybe via a checkbox! So when the...

Can I specify the save location for Delphi .dsk file?


git,delphi,ide
I want the Delphi IDE to remember which files I had open, etc., but if I enable the "Project Desktop" autosave option (Tools -> Options -> EnvironmentOptions in XE7) it puts the .dsk file in the root folder of my source code. We are using git for our version control,...

Open file manage and get selected file


android,delphi,firemonkey
Using Delphi XE 8 and building Android app, can I browse files in the device by opening a certain file manager app installed on the device and then get back that selected file name and path ?

How to make TDBCheckBox update its DataField immediately after click?


delphi,checkbox,event-handling,delphi-xe3,data-aware
I have a form with several controls where the first one is a TDBCheckBox that is bound to DataField := 'enabled'. When the checkbox is clicked I want all the remaining controls to be enabled / disabled. procedure TMyAdapter.DataSourceDataChange(Sender: TObject; Field: TField); var Enabled: Boolean; begin Enabled := FModel.DataSet['enabled'].AsBoolean; FView.Label1.Enabled...

Delphi generic frame


delphi,frames
I'm still here with a questione about Delphi frames. I would like to create an application that use various type of frames in order to manage different database tables, so trying to understand how to do this kind of task I've create a simple Delphi Form: unit main; interface uses...

Media Foundation set video capture frame rate using PROPVARIANT structure


c++,windows,com,ms-media-foundation
I'm writing a media foundation application where I need to set the capture frame rate for a video device. The function I'm writing is something like: bool SetRequestedFrameRate(const size_t requestedFramesPerSecond); where I pass a user-defined integer as the frame rate parameter. I'm following the code snippet on https://msdn.microsoft.com/en-us/library/windows/desktop/ff485859(v=vs.85).aspx : PROPVARIANT...

How can a dialog become responsive while waiting for a call to DoModal() to return?


winapi,com,mfc,modal-dialog
A button on a dialog causes a child dialog to be created, and displayed modally. e.g: void ParentDialog::OnButton() { ChildDialog dlg; int ret = dlg.DoModal(); } The parent dialog is initially unresponsive as expected. But, the child dialog also makes COM calls to a server module, which causes the server...

Setting “Server” programatically with a TFDConnection


mysql,delphi,firedac
TFDConnection.Params.Server is not a valid published property in Delphi XE7. How can I set the server location programatically? I have 2 MySQL servers (test and production) that are at different ip's and based on what I am doing in the application, I want to easily switch back and forth between...

Issues with AES Encryption using SynCrypto


delphi,encryption,cryptography,aes
Am trying to encrypt a file using SynCrypto.pas with AES 256, but it fails if I try to encrypt a file whose size is not a multiple of 16 bytes. The decrypted data contains junk. Example: Original string in txt file we are testing the file Encrypted String [ù[„|wáî}f *!4ìÙw¬•ü¨s...

Expression illegal in evaluator


delphi,delphi-xe2
I'm trying to code something but there is happening something I don't understand. I get some values from a database and loop over them and change some of them if needed. This is what I'm trying to do: if qryGeneral.fieldbyname('B_PRIJS').IsNull or qryGeneral.fieldbyname('B_PRIJS').Value = 0 then begin if (qryGeneral.fieldbyname('V_PRIJS').Value <> 0)...

How to call the original class's code when a class helper is in scope?


delphi,class-helpers
I'm doing some unit testing on an improved version of quicksort. The (hopefully) faster version is implemented using: TArrayHelper = class helper for System.Generics.Collections.TArray .... class procedure Sort<T>(var Values: array of T); overload; static; class procedure Sort<T>(var Values: array of T; Comparer: IComparer<T>); overload; static; .... I know for now...

Function that returns intersection of two TShapes, including TPaths?


delphi,firemonkey
Anyone have any knowledge of a function that returns the intersection TPath for two TShapes? Especially one that returns the intersection TPath of two TPaths. For instance: pthIntersection := PathIntersection(Path1,Path2); ...

Delphi - extract string between tags (duplicate tags)


delphi
I'm trying to write a function to extract a string between two tags. The problem is that the first tag is a duplicate in that string with an unknown count e.g. Str := 'Delphi App Hello Hello SomeText here Hello Hello Hello This is a Test!'; What i want exactly...

Missing operator or semicolon in Delphi 7


delphi,delphi-7
I've got the error message "Missing operator or semicolon" on line 38 of this code: procedure TForm1.SpinEdit1Change(Sender: TObject); begin case SpinEdit1.Value of 1: Label6.Caption('rok'); // line 38 end; end; end. Does somebody know what I am missing? Thank you....

Delphi - Use a string variable's name in assignfile()


file,delphi,variables,assign
Is it possible to use a variable in the assignfile command? Eg. f : Textfile ; sFile : string ; {contains 'MyFile.txt' as content} ... cFileDir = 'C:\Users\User\Desktop\Data Engine\Data\Country' ; ... Assignfile(f, cFileDir + '\' + sFile) ; ... I appreciate your help very much. if it's unclear I'll edit...

Is there any Delphi implementation of MurMurHash3?


delphi,murmurhash
Is there any Delphi implementation of MurMurHash 3? I tried implementing it myself, but my implementation is actually slower that the MurMurHash2. Is it normal? Is there any other implementation? This is mine: function MurMur3_32(const S: AnsiString; const Seed: LongWord=$9747b28c): LongWord; const c1 = $cc9e2d51; c2 = $1b873593; r1 =...

How to make my custom control be notified when his form or application receives and loses focus?


delphi,focus,delphi-2009
I want my control to receive distinct notifications only when it's parent form (not panel or something else, just the main form of this control) receives and loses focus. Doesn't matter if the focus is switched from another form of the application or between my application and other application, it...

See when Delphi Twebbrowser starts loading a page


delphi,twebbrowser
I am using delphi's TWebbrowser to navigate to a php file I created. I have a loading screen I would like to show when the page is loading or processing commands. How can I detect when it is being refreshed or still loading. currently I am using the ondocumentcomplete to...

How to get enabled property of a control?


delphi,properties
In Delphi it is possible to get the process name and class name of any control which is clicked system wide via windows api. process name: GetWindowThreadProcessId(Hwnd, ProcessId) by process ID one can get to the process name class name: SetLength(ClassName, 255); SetLength(ClassName, GetClassName(Hwnd, pchar(ClassName), 255)); Is there an easy...

Odd compilation error message


delphi,delphi-xe6
The following snippet, in XE6 procedure TForm1.Test(CDS : TClientDataSet); var AGuid : TGuid; lResult : Longint; begin lResult := SysUtils.CreateGUID(AGuid); CDS.InsertRecord([AGuid, '', False]); end; produces the error message [dcc32 Error] Unit1.pas(73): E2150 Bad argument type in variable type array constructor Fwiw, in discovering this, I was trying to retrace my...

Delphi XE8: problems running an external console application, waiting for its results and capturing its results


delphi,pipe,console-application,createprocess,waitforsingleobject
In Delphi XE8 under Windows, I am trying to call an external console application and capture its output. I use the following code, as described in Capture the output from a DOS (command/console) Window and also Getting output from a shell/dos app into a Delphi app: procedure TForm1.Button1Click(Sender: TObject) ;...

connection refused when I try to connect client with server


delphi,datasnap
I made a basic client / server datasnap applications and it work in local network through http but when I tried to connect from the internet I get connection refused, here are the steps I followed: I set at the server component TDSHTTPService to connect through port no 8081 then...

Why can't I use compiler intrinsics in an asm block?


delphi,assembly
Is this a compiler bug? program Project44; {$APPTYPE CONSOLE} uses System.SysUtils; function Test: integer; asm xor eax,eax add eax,SizeOf(NativeInt); end; begin WriteLn(Test); //Typically outputs 31 or 49 {$ifdef CPUX86} WriteLn('should be 4'); {$else} {$ifdef CPUX64} WriteLn('should be 8'); {$endif}{$endif} ReadLn end. This program outputs all kinds of things, except for...

HasValidFileNameChars fails for UNC files


delphi,delphi-xe,delphi-xe7
For me HasValidFileNameChars function (in Delphi XE7) returns false for UNC files: B:= IOUtils.TPath.HasValidFileNameChars('\\ETA-PC\tests\test.ini', FALSE) B is false now This means that if you try to validate the filename that I show in my test (yes the file is real and as you can see its name is correct) HasValidFileNameChars...

Get which capture group matched a result using Delphi's TRegex


regex,delphi
I've written a regex whose job is to return all matches to its three alternative capture groups. My goal is to learn which capture group produced each match. PCRE seems able to produce that information. But I haven't yet been able coerce the TRegEx class in Delphi XE8 to yield...

Currency Formatting with Delphi


delphi,currency,object-pascal
I am trying to writte a code in Delphi, which will be displaying a given number in currency format like this: Now it works if filled whole number and another field until any paramater is updated. I'd be happy to have a code which would displaying a number in currency...

SetProcessWorkingSetSize does not work in compiling 64bit


delphi,memory
I use the following command to reduce the memory usage of my program, I'm actually testing it, only when I compile the program in 64bit this command does not work fot, no error occurs, only the memory in task managerIt does not decrease too, since in compiling 32bit works perfectly,...

Digital Metaphors Report Builder Surround Group Inside Box


delphi,report,reportbuilder
I'm interested in creating a report that contains a group in it. I'd like the group to be enclosed in a box where the box surrounds the group in every page I've tried this using lines and placing them in such a way that there is one on the group...

How to remove duplicates in ListBox?


delphi,listbox,duplicate-removal
I use this code to remove duplicates: procedure TForm1.RemoveDuplicates(StrList : TStringList); var NoDuplicate: TStringList; i: Integer; begin NoDuplicate := TStringList.Create; try NoDuplicate.Sorted := True; NoDuplicate.Duplicates := dupIgnore; /// for i := 0 to StrList.Count - 1 do NoDuplicate.Add(StrList[i]) ; /// NoDuplicate.Sorted:= False; StrList.Assign(NoDuplicate) ; finally NoDuplicate.Free; end; end; It works...

do oncalculate fields in one table using values from another table


delphi
I am doing calculations in my KLOG table. However, my PRICES table has the data I need for the calculations in the KLOG table. Example : KLOG table has PRICE_ID field (integer). So does the PRICES table. So I am trying to do something like this (oncalculatefields of the KLOG...

Asynchronous TADOQuery's OnFetchComplete not synchonized to main thread


delphi,asynchronous,delphi-xe4,delphi-xe8,tadoquery
When using TADOQuery with [eoAsyncFetchNonBlocking] and attaching to OnFetchComplete event I found that OnFetchComplete is not executing in the main thread (tested in XE4 and XE8). I assume this a bug*, since most of us will do work in the UI on these type of event. I believe this to...

Custom component controls keep re-creating


delphi,firemonkey
I'm a newbie in Firemonkey/custom controls so sorry if this is a banal question or a duplicate one but I'm stuck and can't figure it out. Here's the code of my custom control unit swScheduler; interface uses System.SysUtils, System.Classes, FMX.Types, FMX.Controls, FMX.StdCtrls, FMX.Calendar, FMX.Objects; type TswScheduler = class(TControl) private {...

Referring to interface versus to an object implemeting it?


delphi
Given the following declarations: var XML:IXMLDocument; and var XML:TXMLDocument; What's the difference of working with the XML variable from end-user point of view? What's preferred?...

Does “enable runtime themes” affect performance?


delphi,themes,delphi-2007
I've recently changed "enable runtime themes" value in the project options and I'm wondering if it's value affects application's performances and, in case, in which manner? Hope someone can clarify me this point.

Why does my application using OmniThreadLibrary Parallel.Pipeline continue remain running in the background after being closed?


multithreading,delphi,delphi-xe7,omnithreadlibrary
I'm using OmniThreadLibrary to implement a background pipleline for sending emails (refer to this SO question). I notice that after closing the application, it continues running in the background (seen in Windows Task Manager). That means that there is something wrong in my code in the way I implemented the...

It is required to free the IShellFolder interface returned by SHGetDesktopFolder ? and how?


delphi,delphi-2009
I am confused. I want to use the function PathToPidlBind from Jedi JCL and I see that they don't release the IShellFolder interfece reurned by SHGetDesktopFolder after using it. Microsoft docs says: "The calling application is responsible for eventually freeing the interface by calling its IUnknown::Release method.". I tried to...

Remove specific XML element in Delphi


xml,delphi,delphi-7
I have an xml document looks like this: <?xml version="1.0"?> <Person xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <ExtensionData /> <Name>ali</Name> <Age>37</Age> <Father> <ExtensionData /> <Name>I</Name> <Age>72</Age> </Father> <Mother> <ExtensionData /> <Name>M</Name> <Age>62</Age> </Mother> </Person> I am using Delphi 7. How can I remove all...

Why Application.OnException never runs?


delphi,exception-handling,delphi-xe2,delphi-7
Problem summary: The method assigned to Application.OnException never runs when an unhandled exception occurs. I create a blank project with only this unit and place a single button on Unit.dfm (this is based on an official example) : // Unit1.pas // ********* type TForm1 = class(TForm) Button1: TButton; procedure FormCreate(Sender:...

how to connect to a NIC card or network adapter knowing its IP address?


delphi,network-programming,ip-address,windows-10
Say I have two NIC or adapter card on my system and also I found their IP address through the following code: procedure TForm4.RetrieveLocalAdapterInformation(strings: Tmemo); var pAdapterInfo, pTempAdapterInfo: PIP_ADAPTER_INFO; AdapterInfo: IP_ADAPTER_INFO; BufLen: DWORD; Status: DWORD; strMAC: String; i: Integer; begin strings.Clear; BufLen:= sizeof(AdapterInfo); pAdapterInfo:= @AdapterInfo; Status:= GetAdaptersInfo(nil, BufLen); pAdapterInfo:= AllocMem(BufLen);...

Set node state in a virtual tree


delphi,nodes,virtualtreeview
I have created a virtual tree with multiple node and I want to disable some of them. I've seen there's a States property of a node. Which is a property of a type TVirtualNodeStates so I've check what kind of states I can set and apparently TVirtualNodeStates is a set...

How to use TThread.Synchronize() to retrieve the text of a TEdit control?


delphi,c++builder
How can I use TThread.Synchronize() to retrieve the text of a TEdit control. Should I assign the TEdit text to a global variable or something?

Component event detection in Delphi


delphi,events,components
I am developing a DataAware component and executing some code after the database is open. This is the code I have at the moment: TMyDataAwareComponent = class(TDataAwareComponent) private { Private declarations } procedure ToBeExecutedOnAfterOpen(DataSet: TDataSet); protected { Protected declarations } public { Public declarations } constructor Create(AOwner: TComponent); override; end;...

VARIANT structure (COM) seems to have no member [on hold]


c++,com,directshow,visual-studio-2015,variant
Using Visual Studio 2015 RC and the Windows SDK 7.1 with this simple DirectShow code (C++ with COM) #include <dshow.h> #include <iostream> int main () { CoInitialize(nullptr); ICreateDevEnum* devEnum = nullptr; CoCreateInstance( CLSID_SystemClock, NULL, CLSCTX_INPROC_SERVER, IID_ICreateDevEnum, reinterpret_cast<void**>(devEnum) ); IEnumMoniker* monikerEnum = nullptr; devEnum->CreateClassEnumerator( CLSID_VideoInputDeviceCategory, &monikerEnum, 0 ); IMoniker* moniker =...

Reduce lines, use case?


delphi,case
How to reduce the lines, I could use case? I feel that this code is too large, no way to improve? if valmes.Text = '01' then WebTesta.OleObject.Document.all.Item('expmonth', 0).value := '0'; if valmes.Text = '02' then WebTesta.OleObject.Document.all.Item('expmonth', 0).value := '1'; if valmes.Text = '03' then WebTesta.OleObject.Document.all.Item('expmonth', 0).value := '2'; if valmes.Text...

Delphi Bug in Indy FTP List method?


delphi,ftp,indy
I'm trying to generate a list of files matching a certain file mask and Indy falls over with this error EidReplyRFCError with message '.': No such file or directory. I've tried several variations and this is the result: FTP.List( aFiles, '', true ); => this works FTP.List( aFiles, '*.*', false...

How can I extract part of a PChar into a string?


string,delphi,optimization,pchar
During profiling I came across a function that was taking quite a bit of time, but essentially boiled down to this very simple piece of code: function GetSubstring(AInput: PChar; AStart, ASubstringLength: Integer): string; begin Result := Copy(AInput, AStart, ASubstringLength); end; This function returns the expected sub-string, but it doesn't scale...

Firemonkey ListView item indexes not updating


delphi,listview,firemonkey
I'm using a TListView in Firemonkey. On startup, I create 3 list view headers and keep references to them for future use (specifically inserting items below each header). FItemHeader:= LV.Items.Add; FItemHeader.Purpose:= TListItemPurpose.Header; FItemHeader.Text:= 'Items'; FChargeHeader:= LV.Items.Add; FChargeHeader.Purpose:= TListItemPurpose.Header; FChargeHeader.Text:= 'Charges'; FPaymentHeader:= LV.Items.Add; FPaymentHeader.Purpose:= TListItemPurpose.Header; FPaymentHeader.Text:= 'Payments'; Then, I've added a...

Delphi XE4 - TImage is not displayed at runtime


delphi,delphi-xe4
Note: In the original question I was in a hurry and wrongly assumed that the problem was related to VCL Styles, but at the end after some testing it seems to be related to the SynGdiPlus.pas, so I removed the original description. The problem: TImage correctly shows the image at...

What circumstances other than “await” will allow synchronous code to be interrupted


c#,com,async-await,activex,rcw
I recently came across a strange bug in my async code. I was calling a blocking method on a COM control, which appeared to allow my async continuations to run while it was blocking. Consider example code (illustrative purposes only) public async void Main() { //assume some single threaded dispatcher....