22. 4. 2014

 

Méně známé klávesové zkratky Delphi IDE


Méně známé klávesové zkratky Delphi IDE, které jsem se nově naučil:

Je jasné, že pro efektivní práci v IDE je potřeba používat klávesové zkratky. Mnohé jsou notoricky známé - viz např. zde: Delphi - klávesové zkratky v IDE. IDE má ale zkratek ještě mnohem více. A ne všechny jsem znal a používal.

Toto je seznam, které jsem nově zavedl do svého repertoáru:
Docela rád bych používal Ctrl+Alt+↑ nebo na skákání mezi jednotlivými těly metod, ale funguje to jen někdy, jaksi pofidérně.

Zdroj:
Povětšinou http://stackoverflow.com/questions/102254/hidden-features-of-the-delphi-ide

Pozn.: jsem na Delphi XE3 a přecházím na XE6.

 

London Grammar


Dlouho se mi to už nestalo. Dechberoucí na první poslech. Úplně náhodu jsem narazil na toto video:
London Grammar - Live on KEXP Seattle

A objevil London Grammar. A hlavně Hannah Reid. Takový hlas se jen tak nepotká. Ale oceňuju i oba kluky. Mají za sebou teprve první desku. Nemá smysl o tom psát, to se musí poslouchat...

Štítky: ,

21. 4. 2014

 

Plain text z HTML textu


Funkční fragment kódu, který umí vzít HTML kód a "vytáhnout" z něj očištěný text. Je jasné, že se ztratí všelijaké formátování typu barvy, bold, italic atd. atd.

Je závislé na instalaci jádra Microsoft Internet Exploreru. Tedy nebude fungovat na OS X, iOS, Androidu apod.

Testováno v Delphi XE3 a XE6, ale mělo by fungovat v libovolné verzi.

uses
  System.Variants, System.Win.ComObj, Winapi.ActiveX, MSHTML;

function GetPlainText(const AHtml: string): string;
var
  LDocument: IHtmlDocument2;
  LVariantArray: Variant;
begin
  LDocument := CreateComObject(CLASS_HTMLDocument) as IHtmlDocument2;
  LVariantArray := VarArrayOf([AHtml]);
  LDocument.write(PSafeArray(TVarData(LVariantArray).VArray));
  LDocument.close;
  Result := (LDocument.body as IHTMLBodyElement).createTextRange.text;
end;

Štítky:

5. 12. 2013

 

Smazání souborů staršínch než N dnů Windows dávkou


Windows dávka (.cmd nebo .bat), která maže JPG soubory starší než 30 dnů v cestě C:\Cesta\KdeChiMazat vypadá následovně:
forfiles /P "C:\Cesta\KdeChiMazat" /M *.jpg /D -30 /C "cmd.exe /c del /q @path" 

Pokud chci i v podadresářích C:\Cesta\KdeChiMazat, tak přidám parametr /S.

Příkaz forfiles neumí fungovat nad UNC cestami. Ale dá se to obejít trikem s PUSHD / POPD, který dočasně UNC cestu namapuje na volné písmenko disku (pravděpodobně Z:):
pushd \\Server\Cesta\KdeChciMazat && (
    forfiles /M *.jpg /D -30 /C "cmd.exe /c del /q @path"
) & popd
Pokud si nejsem jist, co bude dávka mazat, tak si mohu soubory jen zobrazit. Nahradím
del /q @path
tímto
echo @path

24. 7. 2013

 

Radiohead: OK Computer


Jejich OK Computer z roku 1997 můžu poslouchat pořád. Vůbec není znát, že už je to 15 let. Podařilo se jim nadčasové dílko. Ještě dnes se mi u No Surprises (nejen!) ježí chlupy.



Radiohead: OK Computer booklet



Tracklist s mým hodnocením:

1. Radiohead - Airbag (4:44)
2. Radiohead - Paranoid Android (6:23)  ★★★★★
3. Radiohead - Subterranean Homesick Alien (4:28)  ★★★★★
4. Radiohead - Exit Music (For A Film) (4:25)  ★★★★★
5. Radiohead - Let Down (4:59)  ★★★★★
6. Radiohead - Karma Police (4:21)  ★★★★★
7. Radiohead - Fitter Happier (1:57)
8. Radiohead - Electioneering (3:50)
9. Radiohead - Climbing up The Walls (4:45)
10. Radiohead - No Surprises (3:48)  ★★★★★
11. Radiohead - Lucky (4:19)  ★★★★★
12. Radiohead - The Tourist (5:23)  ★★★★★

Štítky: ,

4. 9. 2012

 

Delphi XE3

Takže Embarcadero Delphi XE3 je venku. Pokud potřebuji při podmíněné kompilaci poznat tuto verzi, tak takto:

{$IFDEF VER240}
...
{$ENDIF}

Seznam všech verzí:

VER250 → Delphi XE4 / C++Builder XE4 (Win32/Win64/iOS)
VER240 → Delphi XE3 / C++Builder XE3 (Win32/Win64)
VER230 → Delphi XE2 / C++Builder XE2 (Win32/Win64)
VER220 → Delphi XE / C++Builder XE (Win32)
VER210 → Delphi 2010 / C++Builder 2010 (Win32)
VER200 → Delphi 2009 / C++Builder 2009 (Win32)
VER190 → Delphi 2007 for .NET
VER180 or VER185 → Delphi 2007 / C++Builder 2007 for Win32
VER180 → Delphi 2006 / C++Builder 2006 (Win32/.NET) and Delphi/C++Builder 2007 for Win32
VER170 → Delphi 2005 (Win32/.NET)
VER160 → Delphi 8 for .NET
VER150 → Delphi 7
VER140 → Delphi 6 / C++Builder 6
VER130 → Delphi 5 / C++Builder 5
VER125 → C++Builder 4
VER120 → Delphi 4
VER110 → C++Builder 3
VER100 → Delphi 3
VER93 → C++Builder 1
VER90 → Delphi 2
VER80 → Delphi 1

Zdroj: RAD Studio Compiler Versions

Štítky: , ,

7. 4. 2012

 

How to create case insensitive TDictionary<>

Very simple:

uses System.Generics.Collections, System.Generics.Defaults;

var
  Dict: TDictionary‹string, TValue›;
begin
  Dict := TDictionary‹string, TValue›.Create(TIStringComparer.Ordinal); // ‹- this is the trick
  try
  .
  .
  .
  finally
    Dict.Free;
  end;
end;

Indeed you can use TObjectDictionary‹›. Tested in Delphi XE2.

Štítky: , ,

This page is powered by Blogger. Isn't yours?

Přihlášení k odběru Příspěvky [Atom]