Delphi.cz

Český portál Delphi

Rozcestník: Jste tu poprvé? Pro začátečníky jsem napsal úvod do programování v Delphi. Můžete si přečíst informace ohledně změn v jednotlivých verzích Delphi a případně mezi jednotlivými edicemi Delphi. Pokud přecházíte ze starších verzí tak řetezce a unicode.
Možná Vás bude zajímat spolupráce databáze a Delphi, nebo se budete rozhodovat mezi různými druhy Delphi projektů.

Navštivte adresář nejpopulárnějších open source Delphi komponent

Platform status - podporované platformy v jednotlivých verzích

Free Delphi Starter Edition download

Potřebujete Delphi školení nebo konzultace na různá témata?

Případ FieldByName

Jak se tak potuluji po zákaznících se školením nebo konzultacemi, tak narážím na opakovanou situaci s FieldByName (případně podobnými funkcemi).

Více...

Datum: 2018-03-05 23:36:00 Tagy: db, ladeni, optimalizace

Optimalizace Praxe

Debugger znovu

Ladění je jako vyšetřování vraždy, kdy je člověk sám vrahem. Některé věci užitečné pro ladění jsem naznačoval dříve, ale možná je vhodné je připomenout.

Jedna z nich je okno Evaluate/modify, kde můžete zadat nejen název proměnné, ale prakticky libovolný řádek kódu Delphi a ten bude spuštěn z kontextu laděného procesu. Tedy např.

Watch

Více...

Datum: 2017-11-13 23:37:00 Tagy: praxe, ladeni

Změna pozice vykonávání při ladění programu

Je mi jasné, že jsem o tom již kdysi psal, ale opakovaně na školeních, které provádím, narážím na tuto vlastnost IDE, která je pro mnohé překvapením: jednoduchá změna pozice aktuálního řádku provádění kódu. Nejedná se o žádnou novinku, ale o věc cca z verze Delphi 2010.

Aktuální pozice je ukázána šipkou, viz obrázek.

debugger

Více...

Datum: 2017-11-04 21:41:00 Tagy: ladeni

Praxe

TDataset debug visualizer

Když v D2010 byla do Delphi přidána podpora Debug visualizer měl jsem radost. Od té doby žádný nový oficiální nepřibyl, ale aspoň komunita něco přidala. Mimochodem RSP-16946 je feature request o nové vizualizery.

TDataset debug visualizer

Více...

Datum: 2017-07-10 23:07:00 Tagy: debugger, ladeni

Nástroje

Unit testing s DUnitX

Od doby co jsem napsal článek o Delphi unit testování již nějaký čas uplynul. Původní DUnit byl napsáno v době cca Delphi 6 a to odpovídá té době. Proto jsem ocenil, když jsem nalezl DUnitX, který pěkně využívá možností novějších Delphi pro usnadnění práce.

Více...

Datum: 2015-02-23 20:52:00 Tagy: dunit, ladeni

Novinky

DDDebug

Nedávno jsem zde ukazoval svůj malý pokus o trasování alokace a dealokace s případným vyhodnocením co se uvolňovalo. A pak jsem narazil na DDDebug - on moji myšlenku dotáhnul až tak, kam jsem si to nedokázal představit. Za pár desítek dolarů dostanete profesionální nástroj na live trasovaní alokací, včetně statistik a výpisu zásobníku pro neuvolněné objekty. Autor nabízí trial demo pro všechny možné verze Delphi.

DDDebug

Více...

Datum: 2015-01-21 23:05:00 Tagy: debugger, ladeni, super

Nástroje

Náhodné výkřiky 46

Dnes to bude převážně o nástrojích na které jsem nedávno narazil.

Více...

Datum: 2014-10-08 18:12:00 Tagy: vykriky, nastroje, Android, ladeni

Poslední pomoc při ladění

Dnes bych rád ukázal jeden prastarý trik, který vám může pomoci při ladění v poslední instanci.

AV

Delphi v normální situaci instaluje globální ovladač výjimek, který odchytává vaše problémy (to je to okno které se zobrazí při výjimce). Tento globální ovladač samozřejmě můžete nahradit vlastním, je na to několik knihoven - podrobněji jsem o tom psal dříve - Exception dialog v Delphi.

Více...

Datum: 2014-03-17 23:49:00 Tagy: ladeni, praxe

Praxe

Ladění za pomoci SafeMM

Pravidelní čtenáři snad chápou, že se tématu ladění věnuji dost podrobně.

Schopnost najít chybu je podle mne to, co odlišuje vynikajícího programátora od zbytku. Postupně jsem se snažil ukazovat různé nástroje a finty jak si práci v této oblasti zjednodušit (počínaje fulldebug mode u FastMM, přes seriál o debuggeru atd).

Dnes ukáži zajímavou možnost a tou je SafeMM.

Více...

Datum: 2012-07-04 15:01:00 Tagy: ladeni, FastMM, praxe

Remote debugging - v XE2

O vzdáleném ladění v Delphi jsem již psal. Jenže s příchodem XE2 se situace zjednodušuje a to hodně a v souvislosti s multiplatformností.

Více...

Datum: 2012-05-28 22:59:00 Tagy: nastroje, ladeni, DelphiXE2

Návody

Případ TinyDB a XE2

Pod článkem s anketou ohledně nejvyšší používané verze jsou i dva komentáře stěžující si na problémy s XE2. Leoš si stěžoval na design mód a stabilitu ohledně IBX komponent a JaroB na problémy s portací TinyDB z XE do XE2. Bohužel Leoše v tom asi musím nechat, jelikož IBX komponenty a já se nemáme rádi, ale ohledně TinyDB jsem si řekl, že bych to mohl zkusit.

Výsledkem byl zajímavý možný problém ohledně TStream.

Více...

Datum: 2012-01-28 21:55:00 Tagy: ladeni, DelphiXE2, RTL

Praxe

Unit testing

Jedna z důležitých věcí je testování. Nevím jak vy, ale já nesnáším opakované testy. Tj. člověk udělá nějaké změny a následně by měl přetestovat úplně všechno. Ale všichni známe jak to dopadne …

A proto je vhodné použít unit testing, tj. nástroj, který za nás bude opakovaně provádět testy, které mu předepíšeme. Pro Delphi se jedná o DUnit, který je navíc součástí vyšších verzí Delphi (tj. od D2007 nebo možná i starších). Více...

Datum: 2011-07-26 22:09:00 Tagy: nastroje, delphi, ladeni, začátečníci, IDE, RTTI

Návody

Užitečné pomůcky pro ladění

Ladění se zde věnuji často, ale jelikož se některé otázky stále opakují, zde je seznam aplikací, které mi pomáhají a které mohou pomoci i při řešení Vašich problémů.

Možná je to tím, jaký druh programů píši, ale na mém HDD nesmí chybět následující aplikace, které používám jako pomůcky při ladění:

  • WireShark
  • Process Monitor (nahradil dříve používaný RegMon a FileMon nefungující na Windows 7)
  • PortMon (už jen sporadicky)
  • Process Explorer
  • Sampling Profiler - profiler kódu viz. můj odkazovaný článek
  • wget - původně unix program, který např. uloží stáhnutou odpověď z HTTP serveru (např. i včetně hlaviček) do souboru a tam se dá pak prozkoumat co je špatně
  • Unlocker - ukáže, kdo zamkl soubor, kdo ho drží a umožní ho odblokovat nebo kopírovat

No a když už jsem v tom tak i následující nástroje

  • Dependency Walker - co používá váš program za knihovny a které knihovny používají ty knihovny atd.
  • PeInfo, PEiD, StudPe (to ale jen pro případ práce s cizími programy, už jsem je zmiňoval dříve)
  • HiJackThis - pokud Vás zajímá co se zavádí ve Windows

a další Více...

Datum: 2011-06-01 22:16:00 Tagy: praxe, ladeni, nastroje

Praxe

Něco o exceptions

Koncept výjimek v Delphi je dobře vymyšlen a dokonce jsem kdesi četl, že je částečně patentován, jelikož v době Delphi 1 byl naprosto převratný způsobem zpracování za běhu (nějak to souviselo s efektivním odvíjením zásobníku při výjimce, detaily si nepamatuji a snad se nepletu).

Mimochodem Windows podporují výjimky až od 32bit verzí, tj. Delphi 1, které bylo 16bit mělo výjimky vlastní a až Delphi 2 mapují část výjimek na výjimky Windows.

Od Delphi 1 je základem třída Exception, která byla v Delphi 2009 trochu rozšířena - přece jen je to už pár let. Více...

Datum: 2011-04-10 22:49:00 Tagy: Delphi 2009, RTL, začátečníci, ladeni

Novinky v Delphi

FastMM4 a detekce přepisu paměti

Snad už naposledy malá poznámka ohledně využití FastMM4 při ladění. Tentokráte jak na detekci zápisu mimo alokovanou paměť. Více...

Datum: 2011-01-03 21:17:00 Tagy: FastMM, ladeni, super

Praxe

Logování za pomocí CodeSite 4

Součástí Delphi XE je i Express verze nástroje CodeSite.

CodeSite je dle mého celkem podařený nástroj pro logování fungující na bázi klient - server, kdy při kompilaci je do programu začleněn kód komunikačního klienta. Komunikace je pomocí zasílání zpráv WmCopyData (standard) nebo pomocí TPC/IP (volitelně, ale v plné verzi i na vzdálené počítače). Tento nástroj poskytuje zajímavé možnosti i v této Express verzi. Více...

Datum: 2010-12-28 00:37:00 Tagy: ladeni, nastroje, delphi XE

Nástroje

Tipy a triky pro IDE

Zkusím ukázat několik triků (možná je i znáte) jak si usnadnit život s IDE.

Posuvné breakpointy a bookmarky

Nevím jak je to u Vás, ale už se mi několikrát stalo, že si nastavím breakpoint (včetně jeho parametrů) a pak si uvědomím, že bych ho chtěl někde jinde. V novějších Delphi ho prostě chytnete a přetáhnete. A pokud při tom držíte CTRL (objeví se u něho malé plus jako na obrázku) tak ho jednoduše naklonujete včetně parametrů. O přetahování aktuálně vykonávaného řádku během ladění jsem psal minule. (novější Delphi, myslím 2009+)

posuvné breakpointy

Více...

Datum: 2010-11-13 00:35:00 Tagy: IDE, delphi, ladeni

Praxe

Několik tipů pro debugger - 3 díl

Pravděpodobně poslední pokračování mini série o temných zákoutí ladění v Delphi. Dnes to bude o modulech, data breakpointech, thread breakpointu a nějaké drobnosti. Více...

Datum: 2010-10-25 22:44:00 Tagy: debugger, ladeni

Praxe

Úvod do datasnap serverů včetně ladění

John Kaster napsat moc pěkný článek o DataSnap serveru v Delphi, nastavování IIS a ladění ISAPI (jak pro IIS 7.5, tak pro IIS 6).

Osobně se mi líbí prezentovaná idea vytvářet ISAPI rozšíření jako samostatný exe program (což Delphi XE umožňuje), který se chová jako server a pak ho jen jednoduše konvertovat do podoby ISAPI.

Více...

Datum: 2010-10-09 08:24:00 Tagy: data snap, REST, ladeni, delphi XE,

Praxe

Několik tipů pro debugger - 2 díl

V minulém díle jsem začal ukazovat pár triků pro ladění a dnes je tu pokračování. Více...

Datum: 2010-09-29 23:28:00 Tagy: debugger, ladeni, Delphi 2010, delphi XE, Delphi 2007, Delphi 2009

Praxe

Několik tipů pro debugger

Laděním našinec zabije velkou část času u vývoje programu. Nebudu Vás podceňovat a ukazovat základní věci jako zadávání breakpointu, ale s debuggerem zkusíme jiné věci. Více...

Datum: 2010-09-20 21:26:00 Tagy: debugger, ladeni, super

Praxe

Exception dialog

V každém programu je chyba. A teď co s tím. Podle mne nejhloupější variantou je ukončit program, protože uživatel přijde o data. Více...

Datum: 2010-08-02 21:28:00 Tagy: open source, ladeni, nastroje

Praxe

Debug vizualizéry po druhé

O debug vizualizérech v Delphi 2010 jsem již psal. Jen pro zopakování - jsou dva typy: jeden trasformuje datový typ (např. TDateTime) na srozumitelnější text, druhý zobrazuje okno (např. z instalace Delphi je vizualizer pro TStringList). Více...

Datum: 2010-05-03 23:06:00 Tagy: Delphi 2010, rozšíření, debugger, ladeni

Rozšíření Delphi

Remote debugging v Delphi

Sem tam je vhodné provádět ladění přímo na počítači klienta, protože na vývojovém počítači nejde problém nasimulovat. Samozřejmě v takovýchto případech není vhodné (a ani často možné) instalovat Delphi na počítač klienta a proto Delphi nabízejí možnost vzdáleného ladění (Remote debugging). Jak tedy na to? Více...

Datum: 2010-02-21 22:24:00 Tagy: debugger, delphi, ladeni, nastroje, super

Praxe

Delphi 2010 a debug vizualizers

S Delphi 2010 přichází i další vylepšení v debuggeru. Už v Delphi 2007 byla třeba přidána podpora breakpointů přes callstack (viz mé poznámky o Delphi 2007) a mnoho dalších rozšíření debuggeru Delphi (např. pojmenování vláken pro debugger), ale dnes něco o debug vizualizerech. Více...

Datum: 2010-01-02 22:29:00 Tagy: Delphi 2010, ladeni, debugger

Recenze

Detekce problémů za pomoci FastMM4

O FastMM4 jsem již psal a zmínil jsem se také, že pomáhá detekovat problémy s uvolňováním paměti. Více...

Datum: 2009-12-15 19:30:00 Tagy: RTL, delphi, ladeni, FastMM

Praxe