Dneska to budou spíše takové triky.
Zmenšení velikosti zálohy instalačních souborů
Instalátor Delphi je napsán v Install Aware, který bohužel ještě z různých důvodů (asi politických) spolupracuje s Microsoftim MSI. Nejen, že MSI je totální neefektivní (např. při reinstalaci otevírá prý každý soubor 4x - proto taky Delphi dělají unistall a nový install), ale ještě se ukládají informace pro reinstalaci do c:\ProgramData (to jde nějak změnit parametrem).
Problémem je, že v době SSD disků a VMWare jsou disky C malé a takové XE7 tak napráská 10GB dat, které se už moc nepoužijí. Bohužel do doby než se vykopne MSI s tím moc neuděláme.
Samozřejmě nejjednodušší je tyto data smazat, ale to není ideální. Naštěstí Windows umožňují jednoduše některé adresáře komprimovat a v tomto případě je to momentálně nejlepší řešení.
Kompresí jsem to stáhl na polovinu - viz. první screenshot.
Doplnění metody dle interface
Přiznám se, že jsem dlouho toto hledal, přitom to Delphi umějí prý věky.
Mějme
type
ITest = interface
procedure TestA;
procedure TestB;
end;
TTest = class(ITest)
public
end;
Vždycky jsem jak idiot kopíroval metody dle interface, což v případě nějakých externích rozhraní je pracné. Přitom se stačí postavit mezi public a end a stisknout CTRL + Space.
Dvakrát trik při obsluze klávesnice
a) jak jednoduše otestovat, že není stisknut např. ALT ani CTRL v onKeyxxx:
if (Shift * [ssCtrl, ssAlt] = []) then
V tomto případě se provádí průnik množin s testem na prázdnou množinu.
b) Jak v OnKeyPress otestovat, zda je klávesa stisknuta s CTRL?
procedure TForm1.Memo1KeyPress(Sender: TObject; var Key: Char);
begin
if Key = ^A then
begin
(Sender as TMemo).SelectAll;
Key := #0;
end;
end;
V tomto případě (který by se dal napsat i jinak) jsem schválně využil ^, což je málo dokumentovaný operátor (funguje to od dob TP, včetně FPC), kdy např. ^A znamená ASCII kód CTRL+A.
No a uvedený příklad přidává podporu CTRL+A pro Memo (výchozí windows memo CTRL+A nepodporuje).
Oba příklady používají konstrukce, které se dají použít samozřejmě i jinde.
Jak zakázat IDE balíčky
To jsem taky nevěděl (tu druhou část). Pokud otevřete v registru
[HKEY_CURRENT_USER\Software\Embarcadero\BDS\15.0\Known IDE Packages]
je tam seznam IDE rozšíření.
Pokud u libovolného změníte data sekci tak, že bude začínat jedním nebo dvěma _ (např. na "__Start Page IDE Package"), zakážete inkriminovaný balíček.
Jedno podržítko = zakázáno uživatelem, dvě = zakázáno systémem.
Platnost od doby cca D2006.
Snad Vám něco z toho bude k užitku.