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?
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).
Datum: 2018-03-05 23:36:00 Tagy: db, ladeni, optimalizace
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ř.
Datum: 2017-11-13 23:37:00 Tagy: praxe, ladeni
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.
Datum: 2017-11-04 21:41:00 Tagy: ladeni
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.
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.
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.
Dnes to bude převážně o nástrojích na které jsem nedávno narazil.
Datum: 2014-10-08 18:12:00 Tagy: vykriky, nastroje, Android, ladeni
Dnes bych rád ukázal jeden prastarý trik, který vám může pomoci při ladění v poslední instanci.
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.
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.
Datum: 2012-07-04 15:01:00 Tagy: ladeni, FastMM, praxe
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í.
Datum: 2012-05-28 22:59:00 Tagy: nastroje, ladeni, DelphiXE2
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.
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
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í:
No a když už jsem v tom tak i následující nástroje
a další Více...
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
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...
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
Zkusím ukázat několik triků (možná je i znáte) jak si usnadnit život s IDE.
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+)
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...
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,
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
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...
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
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
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
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