>1. Meghivok egy MessageDlg(...)-t, es azt szeretnem lekerdezni, hogy ez
>vajon takarja-e a TMemo komponensem kijelolt szovegreszet. Ezutan, hogy
>lehet gorgetni a memo-t, hogy ne takarja.
Csak el kell kuldened az EM_POSFROMCHAR uzenetet a memodnak, es o visszaad
egy integert - az felso 16 bit az x, az also 16 az y kordinata.
i := SendMessage(Memo1.Handle, EM_POSFROMCHAR, memo1.SelStart, 0);
button2.Left := Memo1.Left + (i and $ffff);
button2.Top := Memo1.Top + (i shr 16);
A skrollhoz az EM_SCROLL uzenetet hasznald.
>2. Hogyan lehet programbol megvaltoztatni, a kulonbozo fajltipusokhoz
>hozzarendelt alapertelmezett programot.
A registryben kell letrehoznod nehany kulcsot. A kovetkezo kod a .wdp
kiterjesztesu fileokat hozzarendeli a futo programhoz:
uses Registry;
procedure writenew;
var nr: TRegistry;
begin
nr := TRegistry.Create;
try
nr.RootKey := HKEY_CLASSES_ROOT;
nr.DeleteKey('webdirectorygenerator.project');
nr.CreateKey('webdirectorygenerator.project\shell\open\command');
nr.CreateKey('webdirectorygenerator.project\DefaultIcon');
nr.OpenKey('webdirectorygenerator.project', true);
nr.WriteString('','Web Directory Generator Project');
nr.CloseKey;
nr.OpenKey('webdirectorygenerator.project\shell', true);
nr.WriteString('','Open');
nr.CloseKey;
nr.OpenKey('webdirectorygenerator.project\shell\open\command',true);
nr.WriteString('',ParamStr(0) + ' %1');
nr.CLoseKey;
nr.OpenKey('webdirectorygenerator.project\DefaultIcon', true);
nr.WriteString('', ParamSTr(0) + ',1');
nr.CloseKey;
Result := true;
finally
nr.Free;
end;
end;
>3. Hogy lehet programbol Shortcut-ot (*.pif) gyartani.
type
ShortcutType = (_DESKTOP, _SENDTO, _STARTMENU);
uses Registry, ShlObj, ComObj, ActiveX;
procedure CreateShortcut(FileName: string; Location: ShortcutType);
{ proc to create a shortcut on the desktop or startmenu. }
var
MyObject : IUnknown;
MySLink : IShellLink;
MyPFile : IPersistFile;
Directory,
LinkName : string;
WFileName : WideString;
MyReg : TRegIniFile;
;
(Illene megemlitenem a kod eredeti szerzojet, de sajnos nem emlekszem...)
>4. Szeretnek egy Undo funkciot csinalni a fent emlitett memo-mnak, a
>Delphi-s szovegszerkeszto analogiajara. Ha netan van erre valami
>trivialis modszer, azt szivesen alkalmaznam, mert nekem csak bonyolult
>jutott eszembe.
ha az EM_CANUNDO true-val ter vissza kuld az EM_UNDO uzenetet. Sajnos ezzel
a modszerrel csak az utolso valtozas vonhato vissza...
>Egyenlore korubelul ennyi megoldatlan problemaval allok szembe a
>szovegszerkesztomet illetoen.
Remelem segithettem...
:)
Arpi
|