Seryjna zmiana tych samych parametrów różnych elementów

Seryjna zmiana tych samych parametrów różnych elementów
Neosphoros
  • Rejestracja:około 4 lata
  • Ostatnio:ponad rok
  • Postów:147
0

Cześć wszystkim.

Czy istnieje możliwość jednoczesnej zmiany tego samego parametru (np visible typu Boolean) dla wielu różnych elementów na parametr przeciwny lub zadany/wskazany? Jeśli tak to co na to zezwala?

Mam np taką listę elementów:

Kopiuj
BTN_GVtabela_1_2_1_posiadane_zasoby_grunty_DodajNowaPozycje.Visible = false;
            BTN_GVtabela_1_2_1_posiadane_zasoby_grunty_AnulujDodawanieNowaPozycje.Visible = true;
            Lbl_GVtabela_1_2_1_posiadane_zasoby_grunty_NowaPozycjaGrunty.Visible = true;
            TB_GVtabela_1_2_1_posiadane_zasoby_grunty_NowaPozycjaGrunty.Visible = true;
            Lbl_GVtabela_1_2_1_posiadane_zasoby_grunty_NowaPozycjaPowierzchniaWHa.Visible = true;
            TB_GVtabela_1_2_1_posiadane_zasoby_grunty_NowaPozycjaPowierzchniaWHa.Visible = true;
            Lbl_GVtabela_1_2_1_posiadane_zasoby_grunty_NowaPozycjaPosiadanieZalezne.Visible = true;
            ChB_GVtabela_1_2_1_posiadane_zasoby_grunty_NowaPozycjaPosiadanieZalezne.Visible = true;
            Btn_GVtabela_1_2_1_posiadane_zasoby_grunty.Visible = true;

...i czy można zrobić by parametr wszystkich przyjął wartości przeciwne do posiadanych lub taki jaki zostanie wskazany?

edytowany 5x, ostatnio: Neosphoros
_13th_Dragon
  • Rejestracja:ponad 19 lat
  • Ostatnio:2 miesiące
2

Stwórz tablicę tych kontrolek raz w konstruktorze. Lecisz po tej tablice w pętli tb[i].Visible = ! tb[i].Visible;
Zamiast tablicy możesz użyć refleksji.


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

Stwórz tablicę tych kontrolek raz w konstruktorze. Lecisz po tej tablice w pętli tb[i].Visible = ! tb[i].Visible;
Zamiast tablicy możesz użyć refleksji.

Widzę, że podany przykład zmienia wartość visible na przeciwną.

Kopiuj
tb[i].Visible = ! tb[i].Visible;

...a co jeśli chciałbym zmienić na konkretną np by wszystkie bez względu na posiadaną przybrały wartość "false"?

_13th_Dragon
  • Rejestracja:ponad 19 lat
  • Ostatnio:2 miesiące
6
Neosphoros napisał(a):

Widzę, że podany przykład zmienia wartość visible na przeciwną.

Kopiuj
tb[i].Visible = ! tb[i].Visible;

...a co jeśli chciałbym zmienić na konkretną np by wszystkie bez względu na posiadaną przybrały wartość "false"?

Wtedy Google: kurs c# podstawy


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
WeiXiao
  • Rejestracja:około 9 lat
  • Ostatnio:około 9 godzin
  • Postów:5108
1

@Neosphoros:

...a co jeśli chciałbym zmienić na konkretną np by wszystkie bez względu na posiadaną przybrały wartość "false"?

Kopiuj
tb[i].Visible = false;
edytowany 1x, ostatnio: WeiXiao
Z5
  • Rejestracja:prawie 8 lat
  • Ostatnio:około rok
  • Postów:14
0

Możesz np użyć metody

UstawWartosc(bool wsk)
{
for (int i=0; i<tb.Length; i++)
tb[i].Visible = wsk;
}

Tasmanian Devil
Twój post prawdopodobnie zawiera niesformatowany kod - nie wklejaj bezpośrednio kodu, ale obejmuj go w znaczniki kodu ```! (jestem botem, ten komentarz został dodany automatycznie) /cc @cerrato
Neosphoros
  • Rejestracja:około 4 lata
  • Ostatnio:ponad rok
  • Postów:147
0
1a2b3c4d5e napisał(a):

@Neosphoros:

...a co jeśli chciałbym zmienić na konkretną np by wszystkie bez względu na posiadaną przybrały wartość "false"?

Kopiuj
tb[i].Visible = false;

Ok. Zmiana wydaje się łatwa, ale jak (czy w ogóle można?) budować (przechowywać w niej) tablicę wskazując jednocześnie w niej wartość właściwości obiektu (np bool, true lub false)? Czy budując tablicę można wskazać w niej wartość parametrów czy może jednak nie i trzeba to zadeklarować po za granicami tablicy?

edytowany 5x, ostatnio: Neosphoros
WeiXiao
  • Rejestracja:około 9 lat
  • Ostatnio:około 9 godzin
  • Postów:5108
1

@Neosphoros:

Chciałbyś mieć tablice zawierającą to jedno property powiązaną z obiektem?

czyli np. tablica [true, true, false]

która wie że pierwsze true jest związane z jakąś tam kontrolką?

Nie. Musiałbyś to opakować w jakiś inny obiekt - zrobić klasę zawierającą wartość i powiązanie, lub po prostu mieć zamiast samych wartości danego property, to całe obiekty.

O ile widzę jakąś tam potencjał do optymalizacji w tym, to na razie raczej utrudniłbyś sobie życie

Miej po prostu tablicę/listę kontrolek i tyle.

Neosphoros
  • Rejestracja:około 4 lata
  • Ostatnio:ponad rok
  • Postów:147
0
1a2b3c4d5e napisał(a):

@Neosphoros:

Chciałbyś mieć tablice zawierającą to jedno property powiązaną z obiektem?

czyli np. tablica [true, true, false]

która wie że pierwsze true jest związane z jakąś tam kontrolką?

Nie. Musiałbyś to opakować w jakiś inny obiekt - zrobić klasę zawierającą wartość i powiązanie, lub po prostu mieć zamiast samych wartości danego property, to całe obiekty.

O ile widzę jakąś tam potencjał do optymalizacji w tym, to na razie raczej utrudniłbyś sobie życie

Miej po prostu tablicę/listę kontrolek i tyle.

Więc chyba nazywam to w zły sposób bo taka funkcjonalność o jakiej myślę wydawać by się mogło powinna być podstawową do masowej edycji parametrów wielu elementów bez potrzeby wielokrotnego wypisywania cały czas szeregu ich nazw. Spróbuję przedstawić mój punkt widzenia za pomocą pseudo-kodu (nie patrz na rodzaj nawiasów bo te na pewno będą niewłaściwe):

Deklaruje listę elementów z jednoczesną deklaracja parametrów/własności tych elementów:

Kopiuj
lista/tablica elementów (nazwa_listy)
{
textbox1.visible = true;
label1.visible = false;
button1.visible = true;
}

Wywołanie listy, czyli jednoczesne przypisanie elementom listy - własności wynikającej z ich deklaracji w liście:

Kopiuj
lista_elementów();

Wywołanie listy z taką samą zmiana własności, czyli jednoczesne przypisaniem wszystkim elementom listy własności visible = false:

Kopiuj
lista_elementów[i].visible = false;

Wywołanie listy z zmiana własności visible elementów na przeciwną (czyli to co miało true, zmieni się na false, a to co false - na true):

Kopiuj
lista_elementów[i].visible != lista_elementów[i].visible;

Jeśli mimo wszystko nie można wykonać tego w ten konkretny sposób, to czy jest inna podobna ewentualność?

edytowany 3x, ostatnio: Neosphoros
_13th_Dragon
  • Rejestracja:ponad 19 lat
  • Ostatnio:2 miesiące
3

Jest możliwe, rozwiązanie dostałeś dwa dni temu, a że nie znasz podstaw to nie rozumiesz jak to zrobić.
Więc powtórzę po raz kolejny: kurs c# podstawy

Kopiuj
Control[] list=new Control[] { textbox1,label1,button1 };

foreach(Control cnt in list) cnt.Visible=true;
foreach(Control cnt in list) cnt.Visible=false;
foreach(Control cnt in list) cnt.Visible=!cnt.Visible;

Nie powtarzaj losu @eninede, przeczytaj jakieś podstawy aby rozumiałeś nakierowania.


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
edytowany 1x, ostatnio: _13th_Dragon
Zobacz pozostałe 27 komentarzy
SA
Gdybyście jeszcze przy tym rymowali to byłby z tego niezły beef.
Neosphoros
@Saalin: ...i uciekłby z płaczem skarżąc się jednej z swych osobowości o zdisowanie (zbanowanie) mnie bo przegrał w rymowance, w której według niego nie miał prawa przegrać
SA
Obawiam się, że nie jesteś faworytem, chociaż porównanie @_13th_Dragon to @gswidwa1 było mocne.
Neosphoros
@Saalin: Z tego co widzę, to zawsze gdy pojawia się smok, zawsze pojawiają się tez i oni... prędzej czy później. 3 osobowości, 3 konta na forum i 1 człowiek "by wszystkimi rządzić, Jeden, by wszystkie odnaleźć i w ciemności związać" ;) To jak "zabawa" w dobrego i złego glinę, tyle że jest ich 3. gswidwa1 reprezentuje najnormalniejszą formę, potrafi pomóc bezinteresowni, _13th_dragon to nieomylny przedszkolak udający wykładowcę-koksa, pomoże gdy nie ma wyboru i ZrobieDobrze to wielbiący sarkazm, metaforę i ironię przedstawiciel tych, których nikt nie rozumie.
_13th_Dragon
których nikt nie rozumie ... - nikt to w sensie ty z (3-mi powiadasz?) dodatkowymi kontami, @zkubinski i św. pamięci @eninede? Pozostałych za ludzi nie uważasz? Oczywiście kilka tysięcy zadowolonych z moich odpowiedzi to żaden dowód, bo skoro troll ma 3 dodatkowych konta, aby swoje posty polubić to inni też tak robią - kilka tysięcy kąt - co za problem?
ZD
  • Rejestracja:około 3 lata
  • Ostatnio:ponad rok
  • Postów:2310
1

@Neosphoros:

Funkcjonalność zmiany wszystkich elementów tablicy można napisać w formie proceduralnej, obiektowej a także programowania funckyjnego. Możliwości jest w odpór ...
Ale to trzeba elementarz języka poznać.

Środowiska GUI w 2/3 mają tablicę wszystkich dzieci rodzica za darmo. Mozę sie nazywać Controls(), GetControls() czy jeszcze inaczej.
Ale nie mam zamiaru pogłębiać wiedzy nt muzealnego środowiska, którego nigdy nie użyję.

Twój brat bliźniak @eninede (ale to nie ty, coooo???) by wkleił przypadkowo wylosowany kod z SO i pokazał swoje wyższość nad złym forum.


If you put a million monkeys at a million keyboards, one of them will eventually write a Java program - the rest of them will write Perl
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)