W Delphi 2010 istnieje sposób na iterację poprzez wszelkiego rodzaju indeksowane właściwości (na przykład Strony TPageControl, na przykład)?Powtórzenie przez indeksowaną właściwość w Delphi 2010
Odpowiedz
Nie, to nie jest możliwe, ponieważ nie ma standardowy wzór, który:
- określa typ indeksu
- określa początkowe i końcowe wartości indeksu użyć
To dlaczego niektóre klasy mają moduły wyliczające: jest to wzorzec, który mówi ... jak to wyliczyć.
Co można zrobić, jednak jest to najlepsze oszacowanie:
- większość czasu indeks jest całkowite
- większość czasu indeks zaczyna się od zera
- większość czasu jest hrabia nieruchomości lub długość, która mówi jak uzyskać wartość końcową:
Wreszcie możliwe jest "retrofit" TPageControl with a GetEnumertor using class helpers (lub nagrywanie pomocników, jeśli typem bazowym jest rekord).
Widziałem twój post (dobre rzeczy) podczas gdy szukałem w Internecie, próbując znaleźć odpowiedź na to :) W moim przypadku mam pół tuzina indeksowanych właściwości różnych komponentów . Przeszukuję je, aby uzyskać właściwość "Podpis". Tak więc, teraz mam pół tuzina prawie identycznych pętli i nie podoba mi się to. Chociaż sprawa GetEnumerator jest fajna, to za dużo kodu na tak mały problem. –
Co powiesz na zamknięcie tych pętli w jakiś ogólny kod, a następnie przekażesz do niego anonimową metodę, która zawiera nieidentyczny kod? –
Jeśli dobrze Cię rozumiem, chcesz przetestować te właściwości za pomocą RTTI, nie wiedząc nic o właściwości i jej wartościach indeksu. Ponieważ prawidłowe wartości indeksu nie mogą być ciągiem całkowitych wartości, nie jest to możliwe. Mogą istnieć właściwości z ciągami-indeksami lub z odwołaniami do obiektów jako wartością indeksu. W RTTI nie ma mechanizmu służącego do sprawdzania poprawnych wartości indeksu, które można wykorzystać do iteracji.
- 1. Powtórzenie przez bajty NSData
- 2. Delphi 2010 inlining bezużyteczne?
- 3. Delphi 2010 z wcześniejszym kompilatorem
- 4. Delphi 2010 RTTI Przeglądaj Wyliczenia
- 5. Wznawianie zawieszonej nici w Delphi 2010?
- 6. Pisanie ciąg do TFileStream w Delphi 2010
- 7. Konwersja do object indeksowaną
- 8. Ukryj właściwość przed inspektorem obiektów w delphi
- 9. Delphi 2010 Datasnap - Zapytanie o projekt
- 10. Przenieś projekt z Delphi 3 do Delphi 2010
- 11. Problemy z ciągami migracyjnymi Delphi 3 do Delphi 2010
- 12. nauka Haskell: łącznikami zwracane przez powtórzenie
- 13. Czy istnieje nowa ORM dla Delphi 2010?
- 14. Przykład Delphi 2010/XE2 MDI - brakujący kod
- 15. Delphi 2010 Szerokie funkcje a funkcje ciągów
- 16. Delphi Sortuj TListBox przez ItemData.Detail?
- 17. Zastępowanie UserControl przez właściwość
- 18. Powtórzenie zakresu dat w NodeJS
- 19. Jak utworzyć instancję obiektu z RTTI w Delphi 2010?
- 20. Jak uzyskać dostęp do "NameThreadForDebugging" w Delphi 2010
- 21. Uzyskiwanie rozmiaru pliku w Delphi 2010 lub nowszym?
- 22. Czy szybkość kodowania została poprawiona w Delphi 2010?
- 23. Jak mogę oznaczyć właściwość jako przestarzałą w delphi?
- 24. Jak imponować właściwość stringlist w niestandardowym komponencie delphi?
- 25. Delphi: Pętla przez bajtów w rekordzie
- 26. Powtórzenie właściwości JsonObject
- 27. Powtórzenie kontenera unique_ptr's
- 28. Powtórzenie elementów tablicy w MATLAB
- 29. Android VideoView powtórzenie
- 30. Delphi 2010 wirtualna klawiatura, zacznij z CapsLock na?
@TLame 'ActivePageIndex' nie jest własnością indeksowaną. –
Nie zrozumiałem twojego komentarza, dość obraźliwego przy okazji ... Nie powiedziałem nic o ActivePageIndex, nie wiem gdzie to zobaczyłeś. Powiedziałem Strony. –
Przypuszczam, że odnosisz się do usuniętych komentarzy –