Kod w Pascalu do formularza FastReport

Kod w Pascalu do formularza FastReport
TH
  • Rejestracja:ponad 3 lata
  • Ostatnio:ponad rok
  • Postów:13
0

Chciałbym dodać kod w Pascalu do formularza FastReport.
Kod ma oddziaływać na dwie zmienne: kol3 i kol6.
Jeżeli zmienna kol6 zawiera znaki drukowalne, to kol3 ma nie wyświetlać danych. Jeżeli natomiast kol6 jest pusta, to kol3 ma wyświetlać dane. Zmienne są typu string.
Nie mam pewności, czy kol6 niekiedy nie zawiera spacji (być może nie, ale musiałbym sprawdzać w danych programu kilka tysięcy pozycji), jeżeli nic nie wyświetla, dlatego pisałem o znakach drukowalnych.
Pomoże ktoś?

robertz68
  • Rejestracja:około 18 lat
  • Ostatnio:11 dni
  • Lokalizacja:Zielona Góra
0

skoro kod ma reagować na znaki drukowane to nawet jeden ze znaków spełnia warunek. Dlatego sprawdź czy w danym stringu znajduje się choć jeden znak z tych drukowanych, czyli:

Kopiuj
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~

jeśli spełnia to możesz uznac warunek za spełniony i już

DZ
  • Rejestracja:ponad 13 lat
  • Ostatnio:około miesiąc
  • Lokalizacja:Podaj nazwę miejscowości
2

A nie wystarczy coś takiego? (nie znam typów jakich tam używasz)

Kopiuj
kol3.visible := trim(kol6.text) <> '';
edytowany 1x, ostatnio: dziobu
robertz68
no chyba nie, wyraźnie jest napisane że kod ma reagować tylko na znaki drukowane. No chyba że to takie uproszczenie myślowe
DZ
Ale Trim usuwa (z początku/końca tekstu) właśnie znaki niedrukowane (o kodach <= 0x20). Jeśli coś zostanie to znaczy że tekst jakiś jest.
TH
  • Rejestracja:ponad 3 lata
  • Ostatnio:ponad rok
  • Postów:13
0

Dziękuję, ale chyba nie do końca się zrozumieliśmy. Chodzi mi o to, jak wyglądałby cały kod. Dla uproszczenia przyjmijmy, że w niektórych rekordach kol6 jest pusta (NULL).
Próbowałem coś takiego:

Kopiuj
var kol3, kol6: string;
begin
  if kol6 =null then kol3 else kol6;
end.

Ale nie działa.

edytowany 1x, ostatnio: flowCRANE
DZ
  • Rejestracja:ponad 13 lat
  • Ostatnio:około miesiąc
  • Lokalizacja:Podaj nazwę miejscowości
0

"Rekord kol6", w innym miejscu "kol6: string". A powyższy kod nie ma sensu ale za to też nie przedstawia żadnej idei.
To co piszesz sugeruje że nie masz żadnego z powyższych tylko string zapisany jako Variant. Czyli pewnie pole z bazy danych. I wartość z tego pola wyświetlasz w jakimś obiekcie.

Dlatego w zdarzeniu wywoływanym przed wydrukowaniem danych każdego rekordu (np OnMasterDetail albo OnBeforePaint dla bloku MasterData) bierzesz wartość tegoż pola i sprawdzasz czy to null czy też pusty tekst, jeśli tak to robisz co tam chcesz.

O np to:

Kopiuj
procedure OnMasterDetail();
begin
  MemoKol6.Visible := Trim(VarAsStr(<Towary."T_Nazwa">)) <> '';
  MemoKol3.Visible := not MemoKol6.Visible;
end;

Piszę z pamięci ale OIDP tak to powinno wyglądać. Jak pomyliłem zdarzenie wywoływane przy każdym rekordzie to luknij w dokumentacji do FR.

edit.
A jak nie chodzi o dane z bazy, to powyższy kod robisz normalnie w głównym bloku skryptu (begin...end.).

edytowany 1x, ostatnio: dziobu
abrakadaber
abrakadaber
  • Rejestracja:ponad 12 lat
  • Ostatnio:7 miesięcy
  • Postów:6610
0

a nie możesz tego załatwić po stronie danych jak normalny człowiek?


Chcesz pomocy - pokaż kod - abrakadabra źle działa z techniką.
DZ
Formatowanie danych na poziomie raportu jest przecież zupełnie normalne. Zwłaszcza że program nie musi wiedzieć że raport coś sobie filtruje, a w tym konkretnym przypadku można w ogóle tą opcję dać użytkownikowi.
abrakadaber
abrakadaber
tylko, że to już nie jest formatowanie a manipulacja. Oczywiście da się to ogarnąć na poziomie raportu i jak się wie co się robi to jest to proste. Ale :) - w Twoim rozwiązaniu, jeśli np. komórka będzie miała ramkę a ty ją schowasz to już masz niefajny efekt, tak samo jeśli komórka miała by tło albo nawet jeśli pola będą miały ustawiony allign to się wszystko rozsypie. Są rzeczy, które "proście" robi się po stronie danych a są rzeczy, które prościej zrobić po stronie raportu, szczególnie jeśli nie ma się doświadczenia w którymś z powyższych.
DZ
Problem w tym że dalej nie wiemy czy to chodzi o dane z bazy czy pojedyncze zmienne. Poza tym można wstawić pusty tekst zamiast ukrywać obiekt żeby zachować część wizualną o której wspominasz. Podałem jedno z wielu rozwiązań ale przy obecnym zestawie informacji to w zasadzie zgadujemy o co chodzi.
TH
  • Rejestracja:ponad 3 lata
  • Ostatnio:ponad rok
  • Postów:13
0

@abrakadaber: Dzięki za zainteresowanie. Ostatnio nie miałem czasu się tym zajmować, ale temat ciągle aktualny.
A zatem po kolei. To są dane z bazy programu. Ale to nie jest baza SQL-owa, tylko plikowa. Ale to chyba nieistotne.
Zmienne kol3, kol6 i inne zawierają specyficzne wyrażenia (kody, które zna program), które odnoszą się do konkretnych pól w bazie.
Na przykład wyrażenie '@0003' wyciąga ulicę i numery klatek budynku (przykładowo Piłsudskiego 9-17), wyrażenie '@2118' ulicę i numer klatki (Piłsudskiego 11), wyrażenie '@0002' numer mieszkania.
Ale jest pewien problem. Niektóre wpisy w bazie nie zawierają ulicy i numeru klatki, za to wszystkie zawierają ulicę i numery klatek budynku. Te, które nie zawierają ulicy i numeru klatki, to są zazwyczaj budynki z jedną klatką (ale nie wszystkie - niektóre budynki jednoklatkowe są zwracane w wyrażeniu '@0003'). Wtedy od razu wiadomo jaki jest konkretny adres mieszkania, ale jak budynek ma 10 klatek, to adres pobrany z wyrażenia '@0003' nie jest jednoznaczny (Piłsudskiego 9-17 m. 36).
Chodzi mi o takie wyciągnięcie adresów, że kiedy wyrażenie '@2118' odwołuje się do pustego pola, wtedy dopiero wyświetla się pole z wyrażenia '@0003'.
Chcę po prostu mieć jednoznaczny adres w jednej kolumnie w zestawieniu.
W moim konkretnym przypadku zmienna kol3 ma przypisane wyrażenie '@0003', zmienna kol6 - '@2118', kol7 - '@0002'
Nie wiem, czy nie zagmatwałem zbytnio.

robertz68
  • Rejestracja:około 18 lat
  • Ostatnio:11 dni
  • Lokalizacja:Zielona Góra
0

w którymś momencie mówisz o tysiącach rekordów, pytanie, czy raport który drukujesz to tabela z bazy danych z dużą ilością rekordów czy też na wydruku są dane z jednego rekordu?

abrakadaber
abrakadaber
  • Rejestracja:ponad 12 lat
  • Ostatnio:7 miesięcy
  • Postów:6610
0

@Therminus: no ale do wydruku chyba nie przekazujesz @2118 tylko wartość "docelową", np. Piłsudskiego 11 - to co stoi na przeszkodzie podstawić żądaną wartość na etapie jej wyliczania?


Chcesz pomocy - pokaż kod - abrakadabra źle działa z techniką.
TH
  • Rejestracja:ponad 3 lata
  • Ostatnio:ponad rok
  • Postów:13
0

@robertz68: Powiedzmy, że chcę odfiltrować wszystkich lokatorów z całej bazy, którzy mają adres e-mail. Adres zamieszkania chcę w jednej kolumnie.

TH
  • Rejestracja:ponad 3 lata
  • Ostatnio:ponad rok
  • Postów:13
0

@abrakadaber: Chyba Cię nie rozumiem. Jestem użytkownikiem programu i chcę za pomocą dostępnego w programie narzędzia (FastReport) stworzyć odpowiedni formularz z pewnymi zależnościami.

abrakadaber
abrakadaber
  • Rejestracja:ponad 12 lat
  • Ostatnio:7 miesięcy
  • Postów:6610
0
Therminus napisał(a):

Jestem użytkownikiem programu

a no to to zmienia bardzo dużo. Od tego powinieneś zacząć ponieważ chyba wszyscy (a ja na pewno) założyli, że masz dostęp do kodu aplikacji.

To jeszcze kilka pytań:

  1. to jest raport dla net, vcl (w edytorze wydruków kliknij pomoc -> O FastReport...)
  2. jak jest zdefiniowane źródło danych dla raportu - czy jest bezpośrednio w raporcie (zakładka Dane i czy są tam jakieś obiekty, jak na rysunku)
    screenshot-20220107232332.png
    czy może są TYLKO w Raport->Dane...
    screenshot-20220107232625.png

A teraz próbując rozwiązać Twój problem to może tak

  1. kliknij na swój MasterData
  2. w OI na zakładce zdarzenia wybierz OnBeforePrint i kliknij go dwa razy
  3. w kodzie wpisz mmKol3.Visible := Trim(<FDQuery1."kol6">) = ''; zastępując mmKol3 nazwą MemoView, które pokazuje u Ciebie Kol3 i odpowiednio FDQuery1."kol6" polem które masz

Efekt, bez kodu
screenshot-20220107234740.png
z kodem
screenshot-20220107234800.png

dane

Kopiuj
select '_ aaa' kol1, '' kol3, 'aaa' kol6
union all select '_ bbb', '', 'bbb'
union all select '111 _', '111', ''
union all select '222 ccc', '222', 'cccc'

w załączniku raport spakowany 7Z bo forum nie przepuszcza załączników fr3 Test.7z


Chcesz pomocy - pokaż kod - abrakadabra źle działa z techniką.
TH
  • Rejestracja:ponad 3 lata
  • Ostatnio:ponad rok
  • Postów:13
0

@abrakadaber: Dziękuję za poświęcony czas i chęć pomocy.
Prawie działa, ale nie do końca tak, jak chciałem.
AD Pytanie 1: Nie nie rozumiem o co pytasz, ale to chyba nieistotne.
AD Pytanie 2: W zakładce Data (Dane) jest pusto.
Mój kod mógłby wyglądać tak:

Kopiuj
procedure MasterData1OnBeforePrint(Sender: TfrxComponent);
   begin
   Memo3.Visible := Trim(<kol6>) = '';
end;
begin
end.

I to działa, ale zmienna kol3 wymaga umieszczenia w dodatkowym polu Memo, a to oznacza, że muszę dodać na wydruku jeszcze jedną kolumnę. Na przykład tak:

FR1.png

No i wydruk wtedy wygląda dziwnie, bo jest ramka z numerem budynku tam, gdzie powinien być, a pozostałe miejsca są puste.

wydruk1.png

Tymczasem ja chcę mieć adresy w jednej kolumnie.

FR2.png

Jak widać pole Memo7 powinno zawierać zmienne kol3, kol6 i kol7, które składają się na adres budynku/klatki i numeru lokalu.
Z tym, że kol3 ma wyświetlać dane tylko w przypadku pustej kol7, żeby numery budynków i klatek nie dublowały się.

edytowany 1x, ostatnio: flowCRANE
DZ
  • Rejestracja:ponad 13 lat
  • Ostatnio:około miesiąc
  • Lokalizacja:Podaj nazwę miejscowości
0
Therminus napisał(a):

Jak widać pole Memo7 powinno zawierać zmienne kol3, kol6 i kol7, które składają się na adres budynku/klatki i numeru lokalu.
Z tym, że kol3 ma wyświetlać dane tylko w przypadku pustej kol7, żeby numery budynków i klatek nie dublowały się.

Przyznam że się już zupełnie pogubiłem w tym co piszesz. Czytelność tego wszystkiego jest żadna.
Ale z grubsza - zamiast ukrywać memo to wpłyń a jego zawartość, o np tak:

Kopiuj
procedure MasterData1OnBeforePrint(Sender: TfrxComponent);
begin
  if Trim(<kol7>) = '' then
    Memo3.Text := Format('%s %s', [<kol3>, <kol6>]) else
    Memo3.Text := <kol6>;
end;
begin
end.
Zobacz pozostałe 3 komentarze
DZ
Pierwszy raz słyszę że to bardzo złe praktyki formatowania kodu. Zwłaszcza że masa kodu w samym Delphi jest formatowana właśnie w ten sposób. Wspomniane powyżej "dzieło" to mój twór i bardzo mi przykro że nie jest dla Ciebie czytelne. Za mało mam doświadczenia, może się kiedyś nauczę ;)
flowCRANE
To że pierwszy raz słyszysz nie oznacza, że normy formatowania kodu nie istniały i nie istnieją nadal. I nawet jeśli źródła samego Delphi są tak fatalnie formatowanie, nie czyni tych norm nieistniejącymi. Tym bardziej, że mowa o dokumentach opisujących to jak formatować kod, znajdujących się na stronach twórcy Delphi.
flowCRANE
Oficjalne stanowisko w sprawie formatowania znajdziesz tutaj — https://docwiki.embarcadero.com/RADStudio/Sydney/en/Delphi_Statements#2._if_statements — a pełny dokument będący kopią nieistniejącego od niedawna w serwisie embarcadero jest tutaj — http://www.sourceformat.com/coding-standard-delphi-econos.htm — oraz ten od JEDI — https://wiki.delphi-jedi.org/wiki/Project_JEDI_Delphi_Language_Style_Guide#if_statement
flowCRANE
Nieważne jaki dokument o stylu formatowania znajdę, każdy uznaje używany przez Ciebie sposób za niepoprawny i nieczytelny.
abrakadaber
abrakadaber
  • Rejestracja:ponad 12 lat
  • Ostatnio:7 miesięcy
  • Postów:6610
0

@Therminus: to co napisałeś w ostatnim poście zmienia całkowicie postać rzeczy i od tego powinieneś był zacząć.
Do "problematycznego" memo wstaw takie coś ul. [IIF(Length(Trim(<kol7>)) = 0, <kol3>, '')] [kol6] m. [kol7] - powinno załatwić sprawę


Chcesz pomocy - pokaż kod - abrakadabra źle działa z techniką.
TH
  • Rejestracja:ponad 3 lata
  • Ostatnio:ponad rok
  • Postów:13
0

@dziobu:

dziobu napisał(a):

Przyznam że się już zupełnie pogubiłem w tym co piszesz.

Istotnie, chyba trochę pogmatwałem. Nie chcę dodatkowego pola Memo (w tym wypadku Memo3), bo mi dojdzie jeszcze jedna kolumna na wydruku, której nie potrzebuję i nie chcę. Kod, który zaproponował @abrakadaber wymagał umieszczenia [kol3] w oddzielnym polu Memo. Ale to ślepa uliczka. Tabelka na wydruku ma zawierać 4 kolumny, a nie pięć.
Powtórzę jeszcze raz najważniejsze:
pole Memo7 powinno zawierać zmienne kol3, kol6 i kol7, które składają się na adres budynku/klatki i numeru lokalu; kol3 ma wyświetlać dane tylko wtedy, kiedy kol7 jest pusta.
Chyba jaśniej nie potrafię. :)

FS
  • Rejestracja:ponad 3 lata
  • Ostatnio:około 3 lata
  • Postów:46
0

Widze, że to żyje pełną parą i sercem ...
(to użyj pętli i "przeleć" zmienną he he)

edytowany 1x, ostatnio: FullSnack
TH
  • Rejestracja:ponad 3 lata
  • Ostatnio:ponad rok
  • Postów:13
0

@abrakadaber: Niestety, nie zadziałało. [kol3] nie wyświetla żadnych danych. Nawet tam, gdzie są potrzebne. To znaczy kiedy [kol7] jest pusta.

Edit: Sam się pogubiłem. :-) Miało być "kiedy [kol6] jest pusta". Zasugerowałem, się tym co pisał @abrakadaber

edytowany 1x, ostatnio: Therminus
FS
  • Rejestracja:ponad 3 lata
  • Ostatnio:około 3 lata
  • Postów:46
0

@Therminus: tutaj :

Kopiuj
if Trim(<kol7>) = '' then

daj :

Kopiuj
if Trim(<kol7>) <>'' then
edytowany 2x, ostatnio: flowCRANE
Tasmanian Devil
"Twój post prawdopodobnie zawiera niesformatowany kod - nie wklejaj bezpośrednio kodu, ale obejmuj go w odpowiednie znaczniki! (jestem botem, ten komentarz został dodany automatycznie)"
FS
Jak dodac znaczniki ? skad mam wiedziec jakie znaczniki. gdzie twoj manażer ?
flowCRANE
@FullSnack: znaczniki, w które wstawia się kod źródłowy. Pod polem do pisania treści posta, z prawej strony jest link Markdown jest obsługiwany. — kliknij go i rozwinie się instrukcja formatowania zawartości.
TH
  • Rejestracja:ponad 3 lata
  • Ostatnio:ponad rok
  • Postów:13
0

@abrakadaber:

wstaw takie coś ul. [IIF(Length(Trim(<kol7>)) = 0, <kol3>, '')] [kol6] m. [kol7]

Stop! Pomyłka! Ma być [IIF(Length(Trim(<kol6>)) = 0, <kol3>, '')] [kol6] m. [kol7]
I teraz to działa!
Dziękuję bardzo.

abrakadaber
abrakadaber
no ale sam pisałeś o kol7 więc pretensje miej do siebie :p Z tym, że kol3 ma wyświetlać dane tylko w przypadku pustej kol7,
TH
  • Rejestracja:ponad 3 lata
  • Ostatnio:ponad rok
  • Postów:13
0

@Therminus: Tak było. Zamieszałem konkretnie w tym post 2022-01-09 13:28 i potem błąd powtarzałem. :-)

Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)