Examples Delphi

{Here is what's left from what I got from borland some time ago.
The DDEClient is a component you drop on the form (System, DdeClientItem). }
Var Macro : String;
Var Cmd: array[0..255] of Char;
NewPrg,Desc : String;
Begin
{ Create the group, does nothing if it existst }
Name := 'StartUp';
Macro := Format('[CreateGroup(%s)]', [Name]) + #13#10;
StrPCopy (Cmd, Macro);
DDEClient.OpenLink;
if not DDEClient.ExecuteMacro(Cmd, False) then
MessageDlg(, mtInformation, [mbOK], 0);
{ Then you add you program }
NewPrg := 'C:\HELLO.EXE'; {Full path of the program you}
Desc := 'Say Hello'; {Description that appears under the icon|
Macro := '[AddItem('+NewPrg+','+Desc+')]'+ #13#10;
StrPCopy (Cmd, Macro);
if not f1_.DDEClient.ExecuteMacro(Cmd, False) then
MessageDlg(,mtInformation, [mbOK], 0);
{ To make sure the group is saved }
StrPCopy (Cmd,'[ShowGroup(nonexist,1)]');
DDEClient.ExecuteMacro(Cmd, False);
{ Now... this part doesn't work and I don't know why }
{ Anybody who knows why is welcome }
StrPCopy (Cmd,'[reload()]');
DDEClient.ExecuteMacro(Cmd, False);
{ and close the link }
DDEClient.CloseLink;
End;
A procedure to get all groups from the program manager using a DDEclientconv:
{This example needs a listbox called AllGroups}
procedure GetGroups(Sender: TObject);
var
Thedata: pchar; {pchar that holds the groups}
dat: char; {used to process each group}
charcount: word;
Theitem,theline:string;
begin
{get allgroups items}
charcount:=0;
TheData:= DDEClientConv2.RequestData('Groups');
theline:='';
repeat
application.processmessages;
dat:=Thedata[charcount];{get character from the Thedata}
if (dat=chr(10)) {or (dat=chr(13))} then
begin
while Pos(char(10), Theline) > 0 do
delete(Theline,pos(char(10),Theline),1);
while Pos(char(13), Theline) > 0 do
delete(Theline,pos(char(13),Theline),1);
If theline='' then continue;
allgroups.items.add(theline); {Allgroups is a LISTBOX}
theline:='';
end;
Theline:=theline+dat;
inc(charcount);
until charcount>=strlen(Thedata);
strdispose(Thedata);
end;