Kontrola stanu CheckBox w FastReport

Kontrola stanu CheckBox w FastReport
RA
  • Rejestracja:około 2 lata
  • Ostatnio:prawie 2 lata
  • Postów:9
0

Witam

Może mi ktoś podpowiedzieć jak mogę w FastReport w Code (PascalScript) sterować stanem CheckBox. Od dwóch dni szukam w internecie, próbowałem różnych kombinacji, ale bez oczekiwanego skutku.
Potrzebuję ustawić CheckBox z "ptaszkiem" lub bez w zależności od wartości z formularza, ale mam problemy z wyłączeniem "ptaszka".

Kopiuj
procedure NPSRASSS;
begin
CheckBox4.Visible := FALSE;
CheckBox4.Checked:=FALSE;
if (<FORMULARZ."A"> = 4)
       then (<"CheckBox4"> is True)  
       else CheckBox4 is False;                                               
end;

Może ktoś mnie poratować.

Pozdrawiam
Darek

edytowany 1x, ostatnio: Riddle
Riddle
@radziwil: Używaj oznaczników ```pas oraz ``` do formatowania kodu. Składnia > służy do cytatów użytkowników.
_13th_Dragon
  • Rejestracja:ponad 19 lat
  • Ostatnio:2 miesiące
0

Porównaj dwa wiersze ze swego kodu:
CheckBox4.Visible := FALSE;
a
else CheckBox4 is False
Czy nie widzisz czegoś co nasuwa uczucie "WTF?!"


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
RA
  • Rejestracja:około 2 lata
  • Ostatnio:prawie 2 lata
  • Postów:9
0
_13th_Dragon napisał(a):

Porównaj dwa wiersze ze swego kodu:
CheckBox4.Visible := FALSE;
a
else CheckBox4 is False
Czy nie widzisz czegoś co nasuwa uczucie "WTF?!"

To co przedstawiłem, to są moje próby odnalezienia rozwiązania, ale niestety żaden z zapisów nie działa tak, jakbym tego sobie życzył, czyli, niezależnie jak zapiszę, to i tak CheckBox jest permanentnie zaznaczony, a zależy mi na tym, abym mógł nim sterować z poziomu Codu.01.png

  • 01.png (74 KB) - ściągnięć: 9
edytowany 1x, ostatnio: radziwil
abrakadaber
abrakadaber
  • Rejestracja:ponad 12 lat
  • Ostatnio:7 miesięcy
  • Postów:6610
1

a skąd wołasz tą funkcję NPSRASSS (btw nie dało się wymyślić lepszej nazwy?)


Chcesz pomocy - pokaż kod - abrakadabra źle działa z techniką.
RA
  • Rejestracja:około 2 lata
  • Ostatnio:prawie 2 lata
  • Postów:9
0
abrakadaber napisał(a):

a skąd wołasz tą funkcję NPSRASSS (btw nie dało się wymyślić lepszej nazwy?)

Dziękuję za podpowiedź. Już się poprawiłem i teraz pięknie działa. Co do nazwy, to są to pierwsze litery nazwy formularza.

04.png

Kod procedury wygląda teraz tak:

05.png

Pozdrawiam
Darek

  • 04.png (31 KB) - ściągnięć: 15
  • 05.png (6 KB) - ściągnięć: 8
flowCRANE
Moderator Delphi/Pascal
  • Rejestracja:ponad 13 lat
  • Ostatnio:około godziny
  • Lokalizacja:Tuchów
  • Postów:12166
1
radziwil napisał(a):

Kod procedury wygląda teraz tak:

05.png

A powinien tak:

Kopiuj
procedure NPSRASSS(Sender: TfrxComponent)
begin
  CheckBox4.Checked := <FORMULARZ."A"> = 4;
  CheckBox5.Checked := False;
end;

Mniej kodu, od razu wiadomo o co chodzi. Sprawdź czy taka składnia jest poprawna. Przy okazji, ta procedura ma nazwę z tyłka NPSRASSS absolutnie nic nie mówi o tym, do czego służy — przyda się ją zmienić na coś sensownego.


Pracuję nad własną, arcade'ową, docelowo komercyjną grą z gatunku action/adventure w stylu retro (pixel art), programując silnik i powłokę gry od zupełnych podstaw, przy użyciu Free Pascala i SDL3. Więcej informacji znajdziesz na moim mikroblogu.
edytowany 1x, ostatnio: flowCRANE
RA
  • Rejestracja:około 2 lata
  • Ostatnio:prawie 2 lata
  • Postów:9
0

Jest OK, dziękuję, dużo mniej pisania.
Zastanawiam się, czy udałoby się zaprząc pętlę np. for do ustawienia wszystkich CheckBox od 4 do 23 status False. Na początek wszystkie wyłączam, a później włączam tylko te, które należy.
07.png

  • 07.png (26 KB) - ściągnięć: 7
flowCRANE
Moderator Delphi/Pascal
  • Rejestracja:ponad 13 lat
  • Ostatnio:około godziny
  • Lokalizacja:Tuchów
  • Postów:12166
0

Po co przypisujesz do tych wszystkich checkboxów False, skoro następnie nadpisujesz ich stan za pomocą <FORMULARZ."*"> = *? Przecież te wyrażenia zwracają wartości logiczne porównań, czyli albo False, albo True.

radziwil napisał(a):

Na początek wszystkie wyłączam, a później włączam tylko te, które należy.

Nie, to tak nie działa. Każdemu checkboxowi dwa razy ustawiasz wartość — najpierw False, a potem rezultat porównania. Nie ma to za wiele sensu, a poza tym mnożysz sporo linijek kodu.

Na pewno da się użyć pętli i odszukać kontrolki po nazwie, ale że ich stan ma być określony nie tylko na podstawie różnych formularzy, ale też porównań z jakimiś magicznymi intami, to wolałbym już zostawić tak jak jest (ale najpierw usunąć wszystkie ustawienia False), bo trudno tu znaleźć jakiś dobry dla pętli schemat. Dla 20-kilku checkboxów nie ma co kombinować z pętlami, bo tylko zaciemnisz kod i trudno będzie zrozumieć co w ogóle robi.


Pracuję nad własną, arcade'ową, docelowo komercyjną grą z gatunku action/adventure w stylu retro (pixel art), programując silnik i powłokę gry od zupełnych podstaw, przy użyciu Free Pascala i SDL3. Więcej informacji znajdziesz na moim mikroblogu.
edytowany 4x, ostatnio: flowCRANE
RA
  • Rejestracja:około 2 lata
  • Ostatnio:prawie 2 lata
  • Postów:9
0

@furious programming:
OK, dziękuję wszystkim za przekazane sugestie i za okazaną pomoc.

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)