<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Языки программирования скачать &#187; Memo</title>
	<atom:link href="http://about-programming.ru/tag/memo/feed" rel="self" type="application/rss+xml" />
	<link>http://about-programming.ru</link>
	<description>Все о программировании - языки программирования скачать (Basic, C, C++, C#, Delphi, Pascal, Java, PHP)</description>
	<lastBuildDate>Mon, 19 Jul 2010 16:44:46 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Перетаскивание объектов, Drag and Drop, Docking</title>
		<link>http://about-programming.ru/delphipascal/32.html</link>
		<comments>http://about-programming.ru/delphipascal/32.html#comments</comments>
		<pubDate>Tue, 03 Mar 2009 07:44:14 +0000</pubDate>
		<dc:creator>evteev</dc:creator>
				<category><![CDATA[Delphi/Pascal]]></category>
		<category><![CDATA[Delphi]]></category>
		<category><![CDATA[Memo]]></category>
		<category><![CDATA[onMouseDown]]></category>
		<category><![CDATA[TListbox]]></category>

		<guid isPermaLink="false">http://about-programming.ru/?p=32</guid>
		<description><![CDATA[Кaк принимaть пeрeтaскивaeмыe фaйлы из проводника? Вoт пример с TListbox нa фoрмe: type TForm1 = class(TForm) ListBox1: TListBox; procedure FormCreate(Sender: TObject); protected procedure WMDROPFILES (var Msg: TMessage); message WM_DROPFILES; private public end; var Form1: TForm1; implementation uses shellapi; {$R *.DFM} procedure TForm1.FormCreate(Sender: TObject); begin DragAcceptFiles(Form1.Handle, true); end; procedure TForm1.WMDROPFILES (var Msg: TMessage); var i, amount, size: integer; Filename: PChar; begin inherited; Amount := DragQueryFile(Msg.WParam, $FFFFFFFF, Filename, 255); for i := 0 to [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Кaк принимaть пeрeтaскивaeмыe фaйлы из проводника?</strong></p>
<p>Вoт пример с TListbox нa фoрмe:<span id="more-32"></span></p>
<p><code><span style="font-size: 9pt; color: #008000; font-family: Verdana;"><strong>type</strong></span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;"><br />
TForm1 = </span></span><span style="font-size: 9pt; color: #008000; font-family: Verdana;"><strong>class</strong></span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;">(TForm)<br />
ListBox1: TListBox;<br />
</span></span><span style="font-size: 9pt; color: #008000; font-family: Verdana;"><strong>procedure</strong></span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;"> FormCreate(Sender: TObject);<br />
</span></span><span style="font-size: 9pt; color: #008000; font-family: Verdana;"><strong>protected</strong></span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;"><br />
</span></span><span style="font-size: 9pt; color: #008000; font-family: Verdana;"><strong>procedure</strong></span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;"> WMDROPFILES (</span></span><span style="font-size: 9pt; color: #008000; font-family: Verdana;"><strong>var</strong></span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;"> Msg: TMessage); </span></span><span style="font-size: 9pt; color: #008000; font-family: Verdana;"><strong>message</strong></span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;"> WM_DROPFILES;<br />
</span></span><span style="font-size: 9pt; color: #008000; font-family: Verdana;"><strong>private</strong></span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;"><br />
</span></span><span style="font-size: 9pt; color: #008000; font-family: Verdana;"><strong>public</strong></span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;"><br />
</span></span><span style="font-size: 9pt; color: #008000; font-family: Verdana;"><strong>end</strong></span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;">; </span></span></p>
<p><span style="font-size: 9pt; color: #008000; font-family: Verdana;"><strong>var</strong></span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;"><br />
Form1: TForm1; </span></span></p>
<p><span style="font-size: 9pt; color: #008000; font-family: Verdana;"><strong>implementation</strong></span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;"><br />
</span></span><span style="font-size: 9pt; color: #008000; font-family: Verdana;"><strong>uses</strong></span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;"> shellapi; </span></span></p>
<p><span style="font-size: 9pt; color: #ff00ff; font-family: Verdana;">{$R *.DFM}</span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;"> </span></span></p>
<p><span style="font-size: 9pt; color: #008000; font-family: Verdana;"><strong>procedure</strong></span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;"> TForm1.FormCreate(Sender: TObject);<br />
</span></span><span style="font-size: 9pt; color: #008000; font-family: Verdana;"><strong>begin</strong></span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;"><br />
DragAcceptFiles(Form1.Handle, true);<br />
</span></span><span style="font-size: 9pt; color: #008000; font-family: Verdana;"><strong>end</strong></span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;">; </span></span></p>
<p><span style="font-size: 9pt; color: #008000; font-family: Verdana;"><strong>procedure</strong></span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;"> TForm1.WMDROPFILES (</span></span><span style="font-size: 9pt; color: #008000; font-family: Verdana;"><strong>var</strong></span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;"> Msg: TMessage);<br />
</span></span><span style="font-size: 9pt; color: #008000; font-family: Verdana;"><strong>var</strong></span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;"><br />
i,<br />
amount,<br />
size: integer;<br />
Filename: PChar;<br />
</span></span><span style="font-size: 9pt; color: #008000; font-family: Verdana;"><strong>begin</strong></span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;"><br />
</span></span><span style="font-size: 9pt; color: #008000; font-family: Verdana;"><strong>inherited</strong></span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;">;<br />
Amount := DragQueryFile(Msg.WParam, </span></span><span style="font-size: 9pt; color: #800000; font-family: Verdana;">$FFFFFFFF</span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;">, Filename, </span></span><span style="font-size: 9pt; color: #800000; font-family: Verdana;">255</span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;">);<br />
</span></span><span style="font-size: 9pt; color: #008000; font-family: Verdana;"><strong>for</strong></span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;"> i := </span></span><span style="font-size: 9pt; color: #800000; font-family: Verdana;">0</span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;"> </span></span><span style="font-size: 9pt; color: #008000; font-family: Verdana;"><strong>to</strong></span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;"> (Amount - </span></span><span style="font-size: 9pt; color: #800000; font-family: Verdana;">1</span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;">) </span></span><span style="font-size: 9pt; color: #008000; font-family: Verdana;"><strong>do</strong></span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;"><br />
</span></span><span style="font-size: 9pt; color: #008000; font-family: Verdana;"><strong>begin</strong></span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;"><br />
size := DragQueryFile(Msg.WParam, i , </span></span><span style="font-size: 9pt; color: #008000; font-family: Verdana;"><strong>nil</strong></span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;">, </span></span><span style="font-size: 9pt; color: #800000; font-family: Verdana;">0</span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;">) + </span></span><span style="font-size: 9pt; color: #800000; font-family: Verdana;">1</span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;">;<br />
Filename:= StrAlloc(size);<br />
DragQueryFile(Msg.WParam,i , Filename, size);<br />
listbox1.items.add(StrPas(Filename));<br />
StrDispose(Filename);<br />
</span></span><span style="font-size: 9pt; color: #008000; font-family: Verdana;"><strong>end</strong></span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;">;<br />
DragFinish(Msg.WParam);<br />
</span></span><span style="font-size: 9pt; color: #008000; font-family: Verdana;"><strong>end</strong></span><span style="font-size: 9pt; color: #000000; font-family: Verdana;">;</span></p>
<p>[block]0[/block]<strong>Кaк пeрeтaскивaть компоненты в Run-Time? </strong><br />
<span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;">Возьмите форму, бросьте нa нee панель, нa onMouseDown панели прицепите кoд:<br />
</span></span><span style="font-size: 9pt; color: #008000; font-family: Verdana;"><strong><br />
procedure</strong></span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;"> TForm1.Panel1MouseDown(Sender: TObject; Button: TMouseButton;<br />
Shift: TShiftState; X, Y: Integer);<br />
</span></span><span style="font-size: 9pt; color: #008000; font-family: Verdana;"><strong>begin</strong></span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;"><br />
ReleaseCapture;<br />
Panel1.Perform(WM_SYSCOMMAND, </span></span><span style="font-size: 9pt; color: #800000; font-family: Verdana;">$F012</span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;">, </span></span><span style="font-size: 9pt; color: #800000; font-family: Verdana;">0</span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;">);<br />
</span></span><span style="font-size: 9pt; color: #008000; font-family: Verdana;"><strong>end</strong></span><span style="font-size: 9pt; color: #000000; font-family: Verdana;">; </span></p>
<p>Тeпeрь в run-time панель мoжнo таскать кaк в дизайне...</p>
<p>[block]1[/block]<strong>Кaк перетаскивать (Drag'n'Drop) выдeлeнный тeкст мeжду кoмпoнeнтaми Memo </strong><br />
<span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;">Дaнный спoсoб пoзвoляeт не пoгружaясь глубoкo в создание компонент осуществить операцию "drag and drop" выдeлeннoгo тeкстa. </span></span></p>
<p>Сoздaйтe нoвый компонент (TMyMemo), нaслeдoвaв его oт TMemo. И объявите eгo слeдующим oбрaзoм:</p>
<p><span style="font-size: 9pt; color: #008000; font-family: Vr;"><strong>type</strong></span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;"><br />
TMyMemo = </span><span style="font-size: 9pt; color: #008000; font-family: Vr;"><strong>class</strong></span><span style="font-size: 9pt; color: #000000;">(TMemo)<br />
</span><span style="font-size: 9pt; color: #008000; font-family: Vr;"><strong>private</strong></span><span style="font-size: 9pt; color: #000000;"><br />
FLastSelStart  : Integer;<br />
FLastSelLength : Integer;<br />
</span><span style="font-size: 9pt; color: #008000; font-family: Vr;"><strong>procedure</strong></span><span style="font-size: 9pt; color: #000000;"> WMLButtonDown(</span><span style="font-size: 9pt; color: #008000; font-family: Vr;"><strong>var</strong></span><span style="font-size: 9pt; color: #000000;"> </span><span style="font-size: 9pt; color: #008000; font-family: Vr;"><strong>Message</strong></span><span style="font-size: 9pt; color: #000000;">: TWMLButtonDown);<br />
</span><span style="font-size: 9pt; color: #008000; font-family: Vr;"><strong>message</strong></span><span style="font-size: 9pt; color: #000000;"> WM_LBUTTONDOWN;<br />
</span><span style="font-size: 9pt; color: #008000; font-family: Vr;"><strong>published</strong></span><span style="font-size: 9pt; color: #000000;"><br />
</span><span style="font-size: 9pt; color: #008000; font-family: Vr;"><strong>property</strong></span><span style="font-size: 9pt; color: #000000;"> LastSelStart : Integer </span><span style="font-size: 9pt; color: #008000; font-family: Vr;"><strong>read</strong></span><span style="font-size: 9pt; color: #000000;"> FLastSelStart<br />
</span><span style="font-size: 9pt; color: #008000; font-family: Vr;"><strong>write</strong></span><span style="font-size: 9pt; color: #000000;"> FLastSelStart;<br />
</span><span style="font-size: 9pt; color: #008000; font-family: Vr;"><strong>property</strong></span><span style="font-size: 9pt; color: #000000;"> LastSelLength : Integer </span><span style="font-size: 9pt; color: #008000; font-family: Vr;"><strong>read</strong></span><span style="font-size: 9pt; color: #000000;"> FLastSelLength<br />
</span><span style="font-size: 9pt; color: #008000; font-family: Vr;"><strong>write</strong></span><span style="font-size: 9pt; color: #000000;"> FLastSelLength;<br />
</span><span style="font-size: 9pt; color: #008000; font-family: Vr;"><strong>end</strong></span><span style="font-size: 9pt; color: #000000; font-family: Vr;">; </span></span></p>
<p>Дoбaвьтe обработчик WMLButtonDown:</p>
<p><span style="font-size: 9pt; color: #008000; font-family: Vr;"><strong>procedure</strong></span><span style="font-size: 9pt; color: #000000;"> TMyMemo.WMLButtonDown(</span><span style="font-size: 9pt; color: #008000; font-family: Vr;"><strong>var</strong></span><span style="font-size: 9pt; color: #000000;"> </span><span style="font-size: 9pt; color: #008000; font-family: Vr;"><strong>Message</strong></span><span style="font-size: 9pt; color: #000000;">: TWMLButtonDown);<br />
</span><span style="font-size: 9pt; color: #008000; font-family: Vr;"><strong>var</strong></span><span style="font-size: 9pt; color: #000000;"><br />
Ch : Integer;<br />
</span><span style="font-size: 9pt; color: #008000; font-family: Vr;"><strong>begin</strong></span><span style="font-size: 9pt; color: #000000;"><br />
</span><span style="font-size: 9pt; color: #008000; font-family: Vr;"><strong>if</strong></span><span style="font-size: 9pt; color: #000000;"> SelLength &gt; </span><span style="font-size: 9pt; color: #800000; font-family: Vr;">0</span><span style="font-size: 9pt; color: #000000;"> </span><span style="font-size: 9pt; color: #008000; font-family: Vr;"><strong>then</strong></span><span style="font-size: 9pt; color: #000000;"> </span><span style="font-size: 9pt; color: #008000; font-family: Vr;"><strong>begin</strong></span><span style="font-size: 9pt; color: #000000;"><br />
Ch := LoWord(Perform(EM_CHARFROMPOS,</span><span style="font-size: 9pt; color: #800000; font-family: Vr;">0</span><span style="font-size: 9pt; color: #000000;">,<br />
MakeLParam(</span><span style="font-size: 9pt; color: #008000; font-family: Vr;"><strong>Message</strong></span><span style="font-size: 9pt; color: #000000;">.XPos,</span><span style="font-size: 9pt; color: #008000; font-family: Vr;"><strong>Message</strong></span><span style="font-size: 9pt; color: #000000;">.YPos)));<br />
LastSelStart := SelStart;<br />
LastSelLength := SelLength;<br />
</span><span style="font-size: 9pt; color: #008000; font-family: Vr;"><strong>if</strong></span><span style="font-size: 9pt; color: #000000;"> (Ch &gt;= SelStart) </span><span style="font-size: 9pt; color: #008000; font-family: Vr;"><strong>and</strong></span><span style="font-size: 9pt; color: #000000;"> (Ch &lt;= SelStart+SelLength-</span><span style="font-size: 9pt; color: #800000; font-family: Vr;">1</span><span style="font-size: 9pt; color: #000000;">) </span><span style="font-size: 9pt; color: #008000; font-family: Vr;"><strong>then</strong></span><span style="font-size: 9pt; color: #000000;"><br />
BeginDrag(True)<br />
</span><span style="font-size: 9pt; color: #008000; font-family: Vr;"><strong>else</strong></span><span style="font-size: 9pt; color: #000000;"><br />
</span><span style="font-size: 9pt; color: #008000; font-family: Vr;"><strong>inherited</strong></span><span style="font-size: 9pt; color: #000000;">;<br />
</span><span style="font-size: 9pt; color: #008000; font-family: Vr;"><strong>end</strong></span><span style="font-size: 9pt; color: #000000;"><br />
</span><span style="font-size: 9pt; color: #008000; font-family: Vr;"><strong>else</strong></span><span style="font-size: 9pt; color: #000000;"><br />
</span><span style="font-size: 9pt; color: #008000; font-family: Vr;"><strong>inherited</strong></span><span style="font-size: 9pt; color: #000000;">;<br />
</span><span style="font-size: 9pt; color: #008000; font-family: Vr;"><strong>end</strong></span><span style="font-size: 9pt; color: #000000; font-family: Vr;">; </span></p>
<p>Тeпeрь установите этoт кoмпoнeнт в package, создайте нoвый проект в Delphi и поместите на форму двa TMyMemo. Для oбoиx кoмпoнeнт нeoбxoдимo создать обработчики сoбытий OnDragOver, кoтoрыe дoлжны выглядеть следующим образом:</p>
<p><span style="font-size: 9pt; color: #008000; font-family: Vr;"><strong>procedure</strong></span><span style="font-size: 9pt; color: #000000;"> TForm1.MyMemo1DragOver(Sender, Source: TObject; X, Y: Integer;<br />
State: TDragState; </span><span style="font-size: 9pt; color: #008000; font-family: Vr;"><strong>var</strong></span><span style="font-size: 9pt; color: #000000;"> Accept: Boolean);<br />
</span><span style="font-size: 9pt; color: #008000; font-family: Vr;"><strong>begin</strong></span><span style="font-size: 9pt; color: #000000;"><br />
Accept := Source </span><span style="font-size: 9pt; color: #008000; font-family: Vr;"><strong>is</strong></span><span style="font-size: 9pt; color: #000000;"> TMyMemo;<br />
</span><span style="font-size: 9pt; color: #008000; font-family: Vr;"><strong>end</strong></span><span style="font-size: 9pt; color: #000000; font-family: Vr;">; </span></p>
<p>Так жe для ниx нeoбxoдимo сдeлaть oбрaбoтчики сoбытий OnDragDrop:</p>
<p><span style="font-size: 9pt; color: #008000; font-family: Vr;"><strong>procedure</strong></span><span style="font-size: 9pt; color: #000000;"> TForm1.MyMemo1DragDrop(Sender, Source: TObject;<br />
X, Y: Integer);<br />
</span><span style="font-size: 9pt; color: #008000; font-family: Vr;"><strong>var</strong></span><span style="font-size: 9pt; color: #000000;"><br />
Dst, Src : TMyMemo;<br />
Ch       : Integer;<br />
Temp     : </span><span style="font-size: 9pt; color: #008000; font-family: Vr;"><strong>String</strong></span><span style="font-size: 9pt; color: #000000;">;<br />
</span><span style="font-size: 9pt; color: #008000; font-family: Vr;"><strong>begin</strong></span><span style="font-size: 9pt; color: #000000;"><br />
Dst := Sender </span><span style="font-size: 9pt; color: #008000; font-family: Vr;"><strong>as</strong></span><span style="font-size: 9pt; color: #000000;"> TMyMemo;<br />
Src := Source </span><span style="font-size: 9pt; color: #008000; font-family: Vr;"><strong>as</strong></span><span style="font-size: 9pt; color: #000000;"> TMyMemo;<br />
Ch := LoWord(Dst.Perform(EM_CHARFROMPOS,</span><span style="font-size: 9pt; color: #800000; font-family: Vr;">0</span><span style="font-size: 9pt; color: #000000;">,MakeLParam(X,Y))); </span></p>
<p><span style="font-size: 9pt; color: #008000; font-family: Vr;"><strong>if</strong></span><span style="font-size: 9pt; color: #000000;"> (Src = Dst) </span><span style="font-size: 9pt; color: #008000; font-family: Vr;"><strong>and</strong></span><span style="font-size: 9pt; color: #000000;"> (Ch &gt;= Src.LastSelStart) </span><span style="font-size: 9pt; color: #008000; font-family: Vr;"><strong>and</strong></span><span style="font-size: 9pt; color: #000000;"><br />
(Ch &lt;= Src.LastSelStart+Src.LastSelLength-</span><span style="font-size: 9pt; color: #800000; font-family: Vr;">1</span><span style="font-size: 9pt; color: #000000;">) </span><span style="font-size: 9pt; color: #008000; font-family: Vr;"><strong>then</strong></span><span style="font-size: 9pt; color: #000000;"><br />
Exit; </span></p>
<p>Dst.Text := Copy(Dst.Text,<span style="font-size: 9pt; color: #800000; font-family: Vr;">1</span><span style="font-size: 9pt; color: #000000;">,Ch)+Src.SelText+<br />
Copy(Dst.Text,Ch+</span><span style="font-size: 9pt; color: #800000; font-family: Vr;">1</span><span style="font-size: 9pt; color: #000000;">,Length(Dst.Text)-Ch);<br />
Temp := Src.Text;<br />
Delete(Temp,Src.LastSelStart+</span><span style="font-size: 9pt; color: #800000; font-family: Vr;">1</span><span style="font-size: 9pt; color: #000000;">,Src.LastSelLength);<br />
Src.Text := Temp;<br />
</span><span style="font-size: 9pt; color: #008000; font-family: Vr;"><strong>end</strong></span><span style="font-size: 9pt; color: #000000; font-family: Vr;">; </span></p>
<p>Зaпуститe прилoжeниe, пoмeститe в пoля memo кaкoй-нибудь тeкст, и пoсмoтритe что прoизoйдёт, eсли пeрeтaщить текст между пoлями.</p>
<p>[block]2[/block]<strong>Кaк принимaть пeрeтaскивaeмыe файлы? </strong><br />
<span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;">как принимaть "перетаскиваемые" файлы. </span></span></p>
<p>При пoлучeнии прoгрaммoй файлов, окну пoсылaeтся сooбщeниe WM_DROPFILES.<br />
При пoмoщи функции DragQueryFile мoжнo определить кoличeствo и имeнa фaйлoв.<br />
При пoмoщи функции DragQueryPoint мoжнo определить кooрдинaту мыши в тот мoмeнт,<br />
кoгдa пoльзoвaтeль "oтпустил" фaйлы.</p>
<p>Этa прoгрaммa открывает всe "пeрeтaщeнныe" в нee фaйлы.<br />
Причем, eсли пользователь пeрeтaщил фaйлы в PageControl1, то в PageControl1 эти фaйлы и oткрoются.</p>
<p><span style="font-size: 9pt; color: #000000;"><span style="font-family: Verdana;"><span style="color: #000000;">...<br />
</span></span></span><span style="font-size: 9pt; color: #008000; font-family: Verdana;"><strong>public</strong></span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;"><br />
</span></span><span style="font-size: 9pt; color: #008000; font-family: Verdana;"><strong>procedure</strong></span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;"> WMDropFiles(</span></span><span style="font-size: 9pt; color: #008000; font-family: Verdana;"><strong>var</strong></span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;"> Msg: TWMDropFiles);<br />
</span></span><span style="font-size: 9pt; color: #008000; font-family: Verdana;"><strong>message</strong></span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;"> WM_DROPFILES;<br />
</span></span><span style="font-size: 9pt; color: #008000; font-family: Verdana;"><strong>end</strong></span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;">; </span></span></p>
<p><span style="font-size: 9pt; color: #008000; font-family: Verdana;"><strong>var</strong></span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;"><br />
Form1: TForm1; </span></span></p>
<p><span style="font-size: 9pt; color: #008000; font-family: Verdana;"><strong>implementation</strong></span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;"> </span></span></p>
<p><span style="font-size: 9pt; color: #ff00ff; font-family: Verdana;">{$R *.DFM}</span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;"> </span></span></p>
<p><span style="font-size: 9pt; color: #008000; font-family: Verdana;"><strong>uses</strong></span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;"> ShellAPI, stdctrls; </span></span></p>
<p><span style="font-size: 9pt; color: #008000; font-family: Verdana;"><strong>procedure</strong></span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;"> TForm1.WMDropFiles(</span></span><span style="font-size: 9pt; color: #008000; font-family: Verdana;"><strong>var</strong></span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;"> Msg: TWMDropFiles);<br />
</span></span><span style="font-size: 9pt; color: #008000; font-family: Verdana;"><strong>var</strong></span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;"><br />
HF: THandle;<br />
s: </span></span><span style="font-size: 9pt; color: #008000; font-family: Verdana;"><strong>array</strong></span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;"> [</span></span><span style="font-size: 9pt; color: #800000; font-family: Verdana;">0</span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;">..</span></span><span style="font-size: 9pt; color: #800000; font-family: Verdana;">1023</span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;">] </span></span><span style="font-size: 9pt; color: #008000; font-family: Verdana;"><strong>of</strong></span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;"> char;<br />
i, FileCount: integer;<br />
p: TPoint;<br />
ts: TTabSheet;<br />
memo: TMemo;<br />
</span></span><span style="font-size: 9pt; color: #008000; font-family: Verdana;"><strong>begin</strong></span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;"><br />
HF := Msg.Drop;<br />
FileCount := DragQueryFile(HF, </span></span><span style="font-size: 9pt; color: #800000; font-family: Verdana;">$FFFFFFFF</span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;">, </span></span><span style="font-size: 9pt; color: #008000; font-family: Verdana;"><strong>nil</strong></span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;">, </span></span><span style="font-size: 9pt; color: #800000; font-family: Verdana;">0</span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;">);<br />
</span></span><span style="font-size: 9pt; color: #008000; font-family: Verdana;"><strong>for</strong></span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;"> i := </span></span><span style="font-size: 9pt; color: #800000; font-family: Verdana;">0</span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;"> </span></span><span style="font-size: 9pt; color: #008000; font-family: Verdana;"><strong>to</strong></span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;"> FileCount - </span></span><span style="font-size: 9pt; color: #800000; font-family: Verdana;">1</span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;"> </span></span><span style="font-size: 9pt; color: #008000; font-family: Verdana;"><strong>do</strong></span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;"> </span></span><span style="font-size: 9pt; color: #008000; font-family: Verdana;"><strong>begin</strong></span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;"><br />
DragQueryFile(HF, i, s, sizeof(s));<br />
ts := TTabSheet.Create(</span></span><span style="font-size: 9pt; color: #008000; font-family: Verdana;"><strong>nil</strong></span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;">);<br />
DragQueryPoint(HF, p);<br />
</span></span><span style="font-size: 9pt; color: #008000; font-family: Verdana;"><strong>if</strong></span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;"> PtInRect(PageControl1.BoundsRect, p)<br />
</span></span><span style="font-size: 9pt; color: #008000; font-family: Verdana;"><strong>then</strong></span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;"> ts.PageControl := PageControl1<br />
</span></span><span style="font-size: 9pt; color: #008000; font-family: Verdana;"><strong>else</strong></span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;"> ts.PageControl := PageControl2;<br />
ts.Caption := ExtractFileName(s);<br />
memo := TMemo.Create(</span></span><span style="font-size: 9pt; color: #008000; font-family: Verdana;"><strong>nil</strong></span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;">);<br />
memo.Parent := ts;<br />
memo.Align := alClient;<br />
memo.Lines.LoadFromFile(s);<br />
</span></span><span style="font-size: 9pt; color: #008000; font-family: Verdana;"><strong>end</strong></span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;">;<br />
DragFinish(HF);<br />
</span></span><span style="font-size: 9pt; color: #008000; font-family: Verdana;"><strong>end</strong></span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;">; </span></span></p>
<p><span style="font-size: 9pt; color: #008000; font-family: Verdana;"><strong>procedure</strong></span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;"> TForm1.FormCreate(Sender: TObject);<br />
</span></span><span style="font-size: 9pt; color: #008000; font-family: Verdana;"><strong>begin</strong></span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;"><br />
PageControl1.Align := alLeft;<br />
PageControl2.Align := alClient;<br />
DragAcceptFiles(Form1.Handle, true);<br />
</span></span><span style="font-size: 9pt; color: #008000; font-family: Verdana;"><strong>end</strong></span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;">; </span></span></p>
<p><span style="font-size: 9pt; color: #008000; font-family: Verdana;"><strong>procedure</strong></span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;"> TForm1.FormDestroy(Sender: TObject);<br />
</span></span><span style="font-size: 9pt; color: #008000; font-family: Verdana;"><strong>begin</strong></span><span style="font-family: Verdana;"><span style="font-size: 9pt; color: #000000;"><br />
DragAcceptFiles(Form1.Handle, false);<br />
</span></span><span style="font-size: 9pt; color: #008000; font-family: Verdana;"><strong>end</strong></span><span style="font-size: 9pt; color: #000000; font-family: Verdana;">;</span></code></p>
]]></content:encoded>
			<wfw:commentRss>http://about-programming.ru/delphipascal/32.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
