Delphi - Ako urobiť používateľskú metódu na triedenie TStringList?
Keďže v mojom predchádzajúcom vlákne diskutujem sám a tu mám špecifickú otázku, tak som sa rozhodol založiť nové vlákno.
Ako urobiť používateľské hľadanie v TStringList? Ide mi o to, že chcem "nahradiť" metódu pre porovnanie textu, aby som dosiahol zoradenie podľa svojho uváženia.
Zle som hľadal v helpe. Nevšimol som si CustomSort method (TStringList). Všimol som si iba Sort.
Koukal jsem na tve minule vlakno ,pokud chces delat hru mel bych mozna pro tebe lepsi reseni nez pouzit Timage, ale misto toho pouzit 3Dengine, je to vcelku jednoduchy a nenarocny .
Nemusi se to ani instalovat, neco jako je delphiX akorat stim rozdilem ze tuto componentu muzes sam rozsirovat , uz si nepamatuji kde jsem to stahl je to uz asi pres rok ale mam za to ze nazev je 3Dengine, nepotrebujes ani listview kterej na tento ucel je dost neforemnej.
Pokud nic nenajdes tak napis ja to hodim na download.
Moje vlákno týkajúce sa hry je niečo iné ako vlákno s grafmi, ktoré súvisí s týmto.
http://pc.poradna.net/question/view/45467-delphi-ko mponenta-na-zobrazenie-grafiky-a-textu-s-podporou-s tlpcov-bez-deliacich-ciar
Čo sa hry týka, tam som použil TPanel a TImage a občas, keď sa mi chce, tak pridávam programový kód, ale hlavné je, že problém s presným umiestnením TImage je vyriešený.
Áno, gratulujem ! Keď si nevieš dať rady pozri Help !
Skutočne existuje metóda TStringList.CustomSort(Compare: TStringListSortCompare);
Delphi syntax:
type TStringListSortCompare = function(List: TStringList; Index1, Index2: Integer): Integer;
V nápovede je aj vysvetlené akú hodnotu má mať výsledok funkcie....
ako vas to moze bavit...
mna to vobec nebavi ale budem musiet to vediet
Je to ako keby si si programoval vlastnú frajerku. Skutočnú nenaprogramuješ, tak si mi programátori liečime komplexy aspoň takto.
Práveže, ja som help použil, ale akosi intuitívne som hľadal metódy na S (Sort a podobne), takže CustomSort som nechtiac prehliadol. Ako som si potom neskoršie pozeral help, tak som ti to potom všimol, čiže toto vlákno som založil zbytočne, ale na druhej strane, možno sa toto vlákno niekomu bude hodiť, takže ho nemá zmysel mazať.
Tak jsem nasel primej link , muzes to otestovat .
f047_001.htm
Nevyzerá to zle, ale na moje použitie je to ako kladivo so sekáčom miesto pinzety (mám na mysli jednoduchý graf, ktorý chcem robiť). Model aplikácie už mám v mysli hotový, takže už kódujem.
Napiš, co budeš kódovat zítra, ať si to zatím nastudujeme.
Už som napísal. TScrollBar.
Takže triedenie mám hotové:
Priradenie metódy mám v CreateForm:
Pri kompilácii mi píše chybu na uvedenom riadku v CreateForm s týmto textom:
Chyba bude asi v deklarácii, ale keďže to robím prvýkrát, tak netuším kde.
Edit:
Skúsil som aj zápis
ale bez úspechu.
Edit 2:
Zatiaľ skúsim nájsť v Delphi zdroják TStringList a kuknúť, ako je to priradené tam. Teda ak také priradenie existuje, nakoľko tam je štandardné triedenie.
Edit 3:
Takže našiel som SCompare, ale nikde som nenašiel deklaráciu.
Edit 4:
Ach, som ja ale hlupák, veď do SCompare sa ukladá tá metóda pomocou CustomSort, tak idem na to znova.
Edit 5:
Takže táto metóda nesmie patriť objektu, inak mi to neskompiluje. Lenže teraz mi to síce skompiluje, ale zruti sa to na tom istom riadkou s chybou Access violation. Tak tomu nerozummiem.
Edit 6:
Napadlo ma, že nemôžem priraďovať, keď som nevytvoril objekt TStringList a tak som priradil triedenie v metóde FormShow. Stále mám Access violation.
Keďže mi to nešlo skompilovať, tak som pridal do sekcie public:
A to spôsobilo problém s access violation, pretože som to zabudol odstrániť. No čo, aj takáto primitívna chyba sa v programe občas nájde.
Edit: Doprajem vám dovolenku a 2 týždne sem nenapíšem ani pol slova.
Kazdy den nejaky problem s Delphi, ty musis toho vela programovat