IDE tricks/sk

From Lazarus wiki

Deutsch (de) English (en) français (fr) magyar (hu) 日本語 (ja) 한국어 (ko) русский (ru) slovenčina (sk)

Vytvorenie nového súboru pomocou Open File

Môžete buď vytvoriť nový súbor a uložiť ho, alebo ho môžete vytvoriť v jednom kroku. Jednoducho vyvolajte otvorenie súboru (Ctrl+O) a vyberte neexistujúci súbor, napr. unit1.pas. IDE sa vás spýta, či súbor vytvoriť.

Prispôsobenie východzej novej unity / formulára

Od verzie 0.9.27 môžete pravým tlačidlom kliknúť na 'New unit' / 'New form' v paneli nástrojov a nastaviť typ súboru, aký sa bude vytvárať. Môžete zaregistrovať viacero typov súborov pomocou IDEIntf alebo pomocou balíčka šablón projektov.

Makrá v IDE

IDE Macros in paths and filenames

Získanie parametrov kompilera z príkazového riadka

Môžete skopírovať paremetre z Project | Compiler Options | Show Options. Cesty sú tu uvedené relatívne k adresáru projektu, preto ich obvykle môže používať bez upravovania.

Parametre sú tiež uložené v súbore <názov projektu>.compiled v adresári, kde sa vytvára spustiteľný súbor. Je to obyčajný XML súbor, preto ho môžete skopírovať, upraviť cesty a použiť pri kompilovaní na inom počítači.

Pre balíčky to funguje úplne rovnako.

Takýmto spôsobom môžete kompilovať váš kód mimo Lazarus IDE.

Zatvorenie všetkých editovaných súborov okrem jedného

Pod gtk (Linux / Mac OS X / FreeBSD) záložky v okne Source Editor majú napravo tlačidlo 'Zatvoriť'. Stlačte Ctrl+kliknite na tlačidlo, a zatvoria sa všetky ostatné záložky.

Paleta komponentov

Hľadanie komponenty na palete

Pravým tlačidlom kliknite na hocijakú komponentu na palete, otvorí sa vyskakovacie menu. Vyberte 'Find component'. Zadajte názov (aspoň časť) hľadanej komponenty.

Otvorenie balíčka z ktorého pochádza komponenta na palete

Pravým tlačidlom kliknite na komponentu a vyberte 'Open package'

Nájdenie dekláracie komponenty na palete

Pravým tlačidlom kliknite na komponentu a vyberte 'Open unit'

Moja aplikácia spôsobí zatuhnutie mojej linuxovej pracovnej plochy

X (vaša pracovná plocha) môže zatuhnúť, ak aplikácia, ktorá sprácováva nejakú udalosť myši bola zastavená debugerom gdb.

Použitie druhej relácie X

Druhé X môžete zapnúť príkazom:

  X :1 &

potom pomocou Ctrl-Alt-F7 sa prepnete do :0 a Ctrl-Alt-F8 do :1 Potom ako zapnete druhé X, môžete zapnúť aj druhú reláciu napr. gnome, pomocou:

  gnome-session --display=:1 &

Použitie VNC

Môžete použiť vncserver/client nainštalovaním tightvncserver/realvncserver. Server zapnete príkazom:

  vncserver :1

Potom sa na neho môžete pripojiť pomocou vncviewer.

Debugujte aplikácia na druhom servri

V Lazarovi, v 'Run Parameters' nastavte 'use display' na:

 :1

Teraz vaša aplikácia pobeží na druhom servri, takže keď ju budete debugovať, zatuhne len druhý server (čo ale nie je problém, lebo vy pracujete na prvom).

Ako kompilovať IDE rýchlejšie

Práce na samotnom Lazarovi obvykle vyžadujú prekompilovávanie IDE veľmi často. Pokiaľ použijete nasledovné triky, máte dostatok pamäte a výkonný procesor, mali by ste byť schopný rekomplivať IDE za pár sekúnd.

  • Umiestnite zdrojové kódy Lazara na rýchly harddisk, nie na pomalý sieťový filesystém.
  • Nainštalujte len potrebné balíčky.
  • Nastavte USESVN2REVISIONINC=0, aby sa nevykonávala aktualizácia revision.inc.
  • Kompilujte po častiach. Ak prekompilujete registráciu balíčkov, všetky preinštalované balíčky sa prekompilujú tiež. Ak prekompilujete IDEIntf, všetky nainštalované designové balíčky sa prekompilujú.

Debugovanie IDE pomocou DebugLn

IDE zapisuje veľké množstvo použiteľných informácii pomocou DebugLn. Viac [[1]]

Vyhľadanie zdrojového kódu IDE okna

  • Otvorte IDE okno.
  • Stlačte Ctrl+Shift+F1, otvorí sa editor nápovedy.
  • Zapamätajte si názov triedy okna. Zatvorte okno.
  • Použite Find In Files na nájdenie zdrojového súboru triedy.

Object Inspector: Events: Frames: Skok na zdrojový kód odvodenej udalosti

V okne Object Inspector sa zobrazujú udalosti odvodených udalostí ako ClassName.MethodName. Dvojitým kliknutím vytvoríte novú udalosť. Ctrl+kliknutím skočíte rovno do tela odvodenej metódy, bez vytvorenia novej metódy.

Udalosti (Events) v okne Object Inspector

Udalosti ("vlastnosti majúce ako hodnotu metódu") sú špeciálne vlastnosti, lebo potrebujú ako hodnotu smerník na adresu kódu, ktorý neexistuje počas designu. Preto Lazarus používa rovnaký trik ako Delphi: Každá metóda sa dá pretypovať do TMethod, ktorá obsahuje Data (smerník na objekt alebo triedu) a Code (smerník na adresu kódu). Normálne sú obidva nil. IDE nastaví Data na špeciálny kľúč v internej lookup tabuľke a nastaví Code na nil. To znamená

  • Počas behu programu, keď sa načítava .lfm súbor, sa použije skutočná (Data+Code) metóda.
  • Počas deignu, hodnota môže byť buď reálna metóda (Data<>nil and Code<>nil), alebo vymyslená (fake) metóda (Data<>nil and Code=nil)
  • Z dôvodu kompatibility s Delphi má kompiler niekoľko špecialít:

Nepoužívajte:

if OnMyEvent<>nil then OnMyEvent(...); // zle, lebo kontroluje tiež Data

Pretože tento spôsob kontroluje aj Code aj Data, pokúsi sa vykonať vymyslenú (fake) metódu, skočí do nil a nastane výnimka. Namiesto toho používajte funkciu Assign:

if Assigned(OnMyEvent) then OnMyEvent(...); // správne, kontroluje len Code

Nepoužívajte:

if OnMyEvent=NewValue then exit; // zle, lebo kontroluje len Code

Namiesto toho používajte

if CompareMem(@FOnMyEvent,@NewValue,SizeOf(TMethod)) then exit; // správne, kontroluje aj Code aj Data