LMD VCL - LMD Packs: Difference between revisions

From LMD
Jump to navigation Jump to search
Balabuyew (talk | contribs)
Balabuyew (talk | contribs)
 
(9 intermediate revisions by 3 users not shown)
Line 4: Line 4:
===Using Paste/Copy commands at runtime===
===Using Paste/Copy commands at runtime===
Copy:
Copy:
<delphi>
<syntaxhighlight lang="delphi">
if assigned(LMDShellList1.selected) then
if assigned(LMDShellList1.selected) then
LMDDoContextMenuVerb( LMDShellList1, (LMDShellList1.Selected as TLMDShellListItem).ShellItem, 'copy');
  LMDShellDoContextMenuVerb( LMDShellList1, (LMDShellList1.Selected as TLMDShellListItem).ShellItem, 'copy');
</delphi>
</syntaxhighlight>
Paste:
Paste:
<delphi>
<syntaxhighlight lang="delphi">
LMDDoContextMenuVerb( LMDShellList2, LMDShellFolder2.ActiveFolder,'paste');
LMDShellDoContextMenuVerb( LMDShellList2, LMDShellFolder2.ActiveFolder,'paste');
</delphi>
</syntaxhighlight>


==LMD RichPack==
==LMD RichPack==
Line 27: Line 27:
===[Linker Error] Unresolved external "InternetCloseHandle" referenced from===
===[Linker Error] Unresolved external "InternetCloseHandle" referenced from===
Simply add wininet.lib to your project (file can be found in \lib directory of your C++ Builder / BDS / CRS installation). In recent IDEs you can also add<br>  
Simply add wininet.lib to your project (file can be found in \lib directory of your C++ Builder / BDS / CRS installation). In recent IDEs you can also add<br>  
<code>#pragma link "wininet.lib"</code><br> in your code.
<syntaxhighlight lang="cpp">
 
#pragma link "wininet.lib"
==NG Serialization==
</syntaxhighlight> in your code.
===How to serialize collections===
Serializing collections, including custom or standard collections (like TList) requires writing custom converters. For example, lets consider the folowing collection declaration:
 
<pre class="brush:delphi">
type
  TItem = class
  public
    X: Integer;
    Y: Integer;
  end;
 
  TItems = class(TObjectList<TItem>);
</pre>
 
To be able to serialize it, we need to declare a converter class, and '''associate''' this class with our collection using Converter attribute:
 
<pre class="brush:delphi">
type 
  TItemsConverter = class(TConverter)
  public
    function  GetReadMode: TReadMode; override;
    procedure Write(S: TSerializer; const V); override;
    procedure Read(D: TDeserializer; var V); override;
  end;
 
  [Converter(TItemsConverter)]
  TItems = class(TObjectList<TItem>);
</pre>
 
The converter can be implemented like this:
 
<pre class="brush:delphi">
</pre>

Latest revision as of 14:09, 28 April 2022

[edit]

<< Back to Overview page

LMD ShellPack

Using Paste/Copy commands at runtime

Copy:

if assigned(LMDShellList1.selected) then
  LMDShellDoContextMenuVerb( LMDShellList1, (LMDShellList1.Selected as TLMDShellListItem).ShellItem, 'copy');

Paste:

LMDShellDoContextMenuVerb( LMDShellList2, LMDShellFolder2.ActiveFolder,'paste');

LMD RichPack

Which MS RichEdit DLL Version can I expect on a specific operating system?

Please check list of different RichEdit versions.

Searching for specific attributes

Q: I was trying out the LMD RTF wrapper (using BCB 6) and wanted to know what would be the best way to search for words or characters with a specific attribute. A:

  • Use FindTextEx
  • Check SelAttributes
    if attrs not ok then FindTextEx again.

LMD WebPack

[Linker Error] Unresolved external "InternetCloseHandle" referenced from

Simply add wininet.lib to your project (file can be found in \lib directory of your C++ Builder / BDS / CRS installation). In recent IDEs you can also add

#pragma link "wininet.lib"

in your code.