Delphi 6 i tekst do odczytu

0

Cześć,
Mam pewien problem...
Mam plik tekstowy w którym tekst jest następujący:

e2e4
e7e5
g1f3 {Ruch w tekście jest standardową odpowiedzią białych Często grywa się w tym miejscu [b1c3]}
b8c6
f1b5 {Przechodzimy do obrony Ruy Lopeza}

Rzecz w tym, by odczyt głównego tekstu (Bez nawiasów) był priorytetem nie poprzez onclick lecz poprzez strzałki (góra i dół)
Natomiast tekst w nawiasach tylko po kliknięciu w dany wiersz...
Jakiego użyć komponentu i jak napisać procedurę odczytu w w/w sposób?

Pozdrawiam Henryk555

0

Co?

1

Ja mniej więcej wiem o co mu chodzi. Właśnie kończę kodzić rozwiązanie z TListBoxem, ale to tylko jako podgląd. Bo tutaj można użyć innych komponentów. Kiedy skończę wyedytuje jeżeli nie będzie nowych postów. I dodam załącznik z kodem oraz exekiem pod Delphi 7.

EDIT: w załączniku moja propozycja. Sprawdzanie poprawności danych lub ewentualnie parsowanie za pomocą RegExpr to już sobie sam zrób. Jeżeli przy wciskaniu klawiszy innych niż góra/dół ma się nic nie dziać to wywal to co po else. A i ponieważ standardowo pod Delphi 7 TListBox zachowuje się przy kliknięciu tak jakbyśmy robili też wciskanie klawiszy czyli chyba jest wywoływany również komunikat LBN_SELCHANGE. I wtedy OnKeyDown działa powrotnie tylko gdy najedziemy klawiszami na item o indeksie zero i znowu zaczniemy naciskać klawisze. Teraz jest już raczej ok.

Zatem musiałem subclassować ListBoxa aby na pewno reagował do pokazywania opisów w nawiasach tylko wtedy gdy na prawdę zachodzi komunikat klikania WM_LBUTTONDOWN. Chyba nie da się kliknąc poza wiersz, ale w razie czego jest to i tak zabezpieczone. Jeśli ma się nie pokazywać pusty wiersz przy klinaniu wierszy które nie mają nic w nawiasach, to sobie dorób warunek po else w procedurze obsługi komunikatów. Nie chciało mi się robić subclassingu przez własną klasę dziedziczącą po TListBox by później mieć konwersję z Handle rodzica na obiekt, więc tam na szybko jest użyta nazwa komponentu jaką proponuję.

Kod jest jako pogląd, masz bazę do dalszych samodzielnych kominowań. Bo to co chcesz osiągnąć można rozwiącać pewnie też inaczej. Ale ja tak zrobiłem na szybko. Wedle mnie jak najprościej się dało chyba. A i na przyszłość pisz jaśniej, bo z opisu domyśliłęm się co mniej więcej chcesz osiągnąć. Ale nie napisałeś, co się ma robić gdy wciskamy inny klawisz niż góra/dół. A co się ma dziać gdy wiersz nie ma opisu w "ostrych" nawiasach. Takie coś trzeba opisywać jak najdokładniej i najlepiej z przykładami. Poza tym przykładową treść pliku wejściowego najlepiej podać w znacznikach code.

0

A nie lepiej użyć TTreeView i to co w nawiasie dać jako child node i po prostu rozwijać? Nie jestem pewien ale coś mi się wydaje że gdyby użyć Virtual TreeView chyba można by zrobić aby w tej samej linijce się rozwijał ten opis czy co to.

0

olesio Dziekuję za pomoc :=)

1 użytkowników online, w tym zalogowanych: 0, gości: 1