Fizycy, matematycy, astrofizycy, Pascal :)

Fizycy, matematycy, astrofizycy, Pascal :)
MP
  • Rejestracja:około 13 lat
  • Ostatnio:prawie 5 lat
  • Postów:28
0

Jest propozycja rozwinięcia tematu/projektu(OCZYWIŚCIE FREE, dla nauki) dla zagadnień jak w temacie wątku. Głównie rozbija się o obsługę WEBCAM i detekcji cząstek uderzonych przez MIONY ;). Mam zalążek pracy w Lazarus Pascal.

Jeśli interesujące pytać :)
M....

flowCRANE
Moderator Delphi/Pascal
  • Rejestracja:ponad 13 lat
  • Ostatnio:około 5 godzin
  • Lokalizacja:Tuchów
  • Postów:12168
0

O co konkretnie chodzi? Napisz coś więcej.


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.
MP
  • Rejestracja:około 13 lat
  • Ostatnio:prawie 5 lat
  • Postów:28
0

Jest sobie taka aplikacja na Smartfony, Credo Detector.
W ramach wolnego czasu postanowiłem zrobić coś podobnego na PC.
Zasada jest taka. Zaklejamy kamerkę, i skanujemy każdą klatkę. Liczymy średnią jasności każdego pixela dla klatki i jeśli pojawi się coś np. 4 razy jaśniejszego niż średnia, zapisujemy ten obraz na dysk. Jestem w trakcie układania kodu by go udostępnić do rozwoju. Na razie bałagan.
Jeśli chodzi o fizykę, to jest to detekcja cząstek promieniowania kosmicznego. A raczej efektu zderzenia mionów z cząstkami w atmosferze. Te mogą zostać wykryte przez matrycę kamery. Więcej info o zjawisku https://credo.science/credodetektor/index.php

Wkrótce dopiszę więcej informacji, gdy to wszystko sobie poukładam....

P2
  • Rejestracja:około 10 lat
  • Ostatnio:prawie 5 lat
  • Lokalizacja:okolice Pińczowa
  • Postów:73
1

Mógłbym sie tym zainteresować, jestem na razie związany z programowaniem w celach edukacyjnych i rozrywkowych (i się to nie zmieni dopóki nie skończę liceum)
Fizyka to też jedno z moich zamiłowań
Dodatkowo ostatnio uczyłem się technologi OpenCL, która z pewnością mogła by pomóc w analizie obrazów (i chętnie bym to przećwiczył)
Oczywiście obsługa CL z poziomu Lazarusa, tyle że na razie tylko pod Windows
Tak więc w ramach wolnego czasu zgłaszam się na chętnego :)

MP
  • Rejestracja:około 13 lat
  • Ostatnio:prawie 5 lat
  • Postów:28
0

Ok, powracam z tematem.
Wstępna aplikacja już jest, działająca. Proszę zapoznać się z opisem najpierw (w PDF).
Na stronie jest i wersja exe i źródła.....Proszę o wyrozumiałość ponieważ samouk jestem.

Chodzi o:

  • sprawdzenie poprawności kodu
  • optymalizacja
  • i sugestie
  • następnie dalszy rozwój.

Moja wizja jest taka:

  • dodać SPRAWDZENIE CZY JEST NOWA WERSJA
  • wersja ENG
  • detekcja (pixele) ładnie by wyglądały w formie wykresu 3d,
  • wykres sesji (coś jak EKG u lekarza ;)

Przyszłościowo podłączenie kilku kamer, a nawet aparatu "lustrzanki", gdzie matrycja jest potężna!!!

Program jet na razie testem, czy w ogóle detekcja jest możliwa.Dr Homola twierdzi, że wyniki są ok. Wyniki zapisywane są na komputerze na którym działa program. Główną sprawą będzie upload na serwer uczelni wg ich protokołu i formatu (którego opis mam dostać niedługo)

Chętnych zapraszam do zabawy, i współpracy z naukowcami (nie ze mną).
Ostatecznie to badanie na skalę Nobla :)

Link do forum gdzie jest wszystko...
https://credo.science/credodetektor/viewtopic.php?f=3&t=45

edytowany 1x, ostatnio: flowCRANE
P2
  • Rejestracja:około 10 lat
  • Ostatnio:prawie 5 lat
  • Lokalizacja:okolice Pińczowa
  • Postów:73
0

Więc tak, na pierwszy rzut oka:
Zamieniłbym sposób wyboru katalogu do zapisywania; zamiast TEdit, TButton i TSaveDialog dałbym jeden wygodniejszy komponent TDirectoryEdit z zakładki Misc
Po drugie, wykasowałbym zbędne moduły (raczej kompilator je wywala jak są niepotrzebne, ale i tak, lepiej mieć porządek)
I taka porządna sugestia (której jeszcze nie sprawdzałem, na ile jest możliwa/łatwa do zrobienia): trzeba by to zrobić tak, żeby nie przechodziło przez schowek, bo to zajmuje czas.
A z mojej strony zacząłem implementacje algorytmu analizowania w OpenCL, powinienem skończyć w tydzień

I co do samych wykresów? jak by miały one wyglądać? I W jakie dane miały by być przez nie uwzględniane?

No i najważniejsze: wszystko co robię, sugestie itp mam pisać na forum Credo, czy gdzieś na prywatną wiadomość?

flowCRANE
Moderator Delphi/Pascal
  • Rejestracja:ponad 13 lat
  • Ostatnio:około 5 godzin
  • Lokalizacja:Tuchów
  • Postów:12168
0

Przeglądnąłem pobieżnie źródła tej aplikacji (pobrałem z forumowego załącznika) i uważam, że jeśli o implementację chodzi, każdy jego aspekt to programistyczna tragedia… Ostatnią rzeczą na jaką mam ochotę to praca przy projekcie z takimi źródłami…

Powodów do krwotoku z oczu jest tak dużo, że nie sposób podać ich w jednym poście, bo parser udławi się treścią. Poczynając od tego, że Lazarus rzuca błędami już podczas otwierania projektu.

Od czego zacząć mam listowanie rzeczy do poprawy?


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 3x, ostatnio: flowCRANE
P2
Może alfabetycznie ;) A tak serio, w takich sytuacjach najlepiej sobie przypomniec swoje własne początki (od moich nie tylko oczy krwawią)
flowCRANE
Ja rozumiem, że każdy zaczynał od pisania gównianego kodu (ja też!), jednak czymś innym jest jego produkowanie podczas uczenia się, a czymś innym praca przy takim projekcie. Absolutnie nie polecam nikomu zabierania się za większy program i zapraszania innych do przyłączenia się, jeśli samemu ledwo raczkuje się w tym temacie.
P2
W sumie racja. Ale jeśli chodzi o mnie, to i tak nic lepszego do roboty w wolnym czasie nie mam
flowCRANE
Mimo wszystko, skoro już chcesz poświęcać wolny czas na rozwój tego projektu, to dobrze by było zapewnić sobie odpowiednie warunki pracy. A dobrze prowadzone źródła projektu to obowiązek, nie moje widzimisię.
MP
  • Rejestracja:około 13 lat
  • Ostatnio:prawie 5 lat
  • Postów:28
0
furious programming napisał(a):

Przeglądnąłem pobieżnie źródła tej aplikacji (pobrałem z forumowego załącznika) i uważam, że jeśli o implementację chodzi, każdy jego aspekt to programistyczna tragedia… Ostatnią rzeczą na jaką mam ochotę to praca przy projekcie z takimi źródłami…

Powodów do krwotoku z oczu jest tak dużo, że nie sposób podać ich w jednym poście, bo parser udławi się treścią. Poczynając od tego, że Lazarus rzuca błędami już podczas otwierania projektu.

Od czego zacząć mam listowanie rzeczy do poprawy?

Jeśli przyjacielu chciałeś mnie "zjechać" bo jak widać wyżej to nie krytyka to i tak Ci się nie uda :). Szanowny kolego, Mam wrażenie że jesteś profesjonalistą bo spodziewałem się takich opini więc zapraszam do rozwoju apki. Ja ani nie jestem programistą,ani informatykiem ani wynalazcą działania tej aplikacji. Nie powiem kim bo pewnie i wtym będziesz lepszy :P.
Zrobiłem po swojemu coś co istnieje na Smartfony. W związku z tym, że pomysłodawca projektu CREDO powiedział że to się nadaje na rozwój wpadłem na pomysł aby oddać to co skleciłem komuś kto zna się lepiej. Czujesz się na siłach? nadajesz się do tego :).

Kod to zarys zasady działania, niech każdy kto chce robi kroki do przodu i prezentuje to np. na tamtym forum lub PW
Pozdrawiam :)

flowCRANE
Moderator Delphi/Pascal
  • Rejestracja:ponad 13 lat
  • Ostatnio:około 5 godzin
  • Lokalizacja:Tuchów
  • Postów:12168
0
mpknap napisał(a):

Jeśli przyjacielu chciałeś mnie "zjechać" bo jak widać wyżej to nie krytyka to i tak Ci się nie uda :)

Cieszę się – bardzo dobrze, że przyjmujesz taką postawę. Ale nie to było moim celem.

Szanowny kolego, Mam wrażenie że jesteś profesjonalistą bo spodziewałem się takich opini więc zapraszam do rozwoju apki.

Przykro mi, nie mam na to czasu. Jednak mogę poświęcić godzinkę i napisać Ci co wymaga poprawy, co poczytać, czego się dowiedzieć, jak pisać kod i jak go nie pisać. Dzięki temu jakość projektu wzrośnie, a więc i zainteresowanie. A to leży w Twoim interesie, nie w moim.

Ja ani nie jestem programistą,ani informatykiem ani wynalazcą działania tej aplikacji. Nie powiem kim bo pewnie i wtym będziesz lepszy :P.

A czy jak wieszasz w domu obrazek na ścianie, do gwoździk wbijasz łopatą zaciśniętą między nogami, stojąc na rękach? To że nie jesteś programistą nie zwalnia Cię z przykładania się do tworzenia tego projektu i stosowania się do ogólnie przyjętych, uniwersalnych zasad.

Zrobiłem po swojemu coś co istnieje na Smartfony. W związku z tym, że pomysłodawca projektu CREDO powiedział że to się nadaje na rozwój wpadłem na pomysł aby oddać to co skleciłem komuś kto zna się lepiej. Czujesz się na siłach? nadajesz się do tego :).

Nie wiem jak to skomentować. Zrobiłeś zalążek projektu i teraz chcesz go wepchnąć komuś do rąk, bo sam nie chcesz się uczyć programowania i go rozwijać?

Kod to zarys zasady działania, niech każdy kto chce robi kroki do przodu i prezentuje to np. na tamtym forum lub PW

Zarys nie zarys – prezentujesz coś, co bardzo źle wygląda i co nie nadaje się do prezentowania. W dodatku chyba nie do końca zdajesz sobie sprawę z tego, że projekt w obecnej postaci wygląda bardzo źle, co odpycha potencjalnych zainteresowanych, a to poważny problem.

@pawel24pl jest chętny, chce podłubać przy nim. I co teraz? Ma produkować kod równie słabej jakości, czy w pierwszej kolejności zająć się jego refaktoryzacją (bo to jedyne co można teraz z tym projektem zrobić)? A jak sam będziesz chciał coś dodać, to znów dopiszesz kupkę nieczytelnych linijek, niezgodnych ze wszystkimi możliwymi zasadami tworzenia kodu, a inni będą go poprawiać?

Wybacz, ale tak to nie działa. Z chęcią podpowiem Ci jak ten kod naprawić, ale nie poświęcę godziny czy dwóch na przysłowiowe „mówienie do ściany”. Muszę wiedzieć, że zastosujesz się do udzielonych rad – w przeciwnym razie stracę tylko czas.


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 5x, ostatnio: flowCRANE
MP
  • Rejestracja:około 13 lat
  • Ostatnio:prawie 5 lat
  • Postów:28
0

Chyba jednak masz całkowitą rację, głównie dlatego że znasz się na rzeczy. Ja zatrzymałem się na latach 80-90' i Turbo Pascalu ;) Zakończmy więc krytykę na tym etapie i zostaje na Twoim. Sam kod mógłbym ładniej poukładać i przygotować do prezentacji, ale to m.in. przez pośpiech przed pewną datą.

Zrobiłem po swojemu coś co istnieje na Smartfony. W związku z tym, że pomysłodawca projektu CREDO powiedział że to się nadaje na rozwój wpadłem na pomysł aby oddać to co skleciłem komuś kto zna się lepiej. Czujesz się na siłach? nadajesz się do tego :).

Nie wiem jak to skomentować. Zrobiłeś zalążek projektu i teraz chcesz go wepchnąć komuś do rąk, bo sam nie chcesz się uczyć programowania i go rozwijać?

Nie chcę nikomu nic wciskać na siłę, to podrzucenie pomysłu dla chętnych i mających czas na rozwinięcie programu, nawet nie na bazie mojego kodu, a własnego i pisanego od zera. Liczy się efekt końcowy, którym są "fotki" mające dużą wartość dla ludzi z projektu CREDO. Mój program jak nie napisany działa i to się dla mnie liczy. A jeśli chodzi o chęci do nauki, to z wiekiem coraz mniejsze, szczególnie przez brak czasu.

..... Z chęcią podpowiem Ci jak ten kod naprawić, ale nie poświęcę godziny czy dwóch na przysłowiowe „mówienie do ściany”. Muszę wiedzieć, że zastosujesz się do udzielonych rad – w przeciwnym razie stracę tylko czas.

Chętnie, a nawet bardzo wysłucham co masz do powiedzenia :) Może być to tu, lub na PW.

Piotr Pluciński
  • Rejestracja:ponad 7 lat
  • Ostatnio:ponad 6 lat
  • Postów:6
0

Ja chętnie podejmę sie przepisania tego w pythonie, na ile czas pozwoli.

MP
  • Rejestracja:około 13 lat
  • Ostatnio:prawie 5 lat
  • Postów:28
0
Piotr Pluciński napisał(a):

Ja chętnie podejmę sie przepisania tego w pythonie, na ile czas pozwoli.

Myślę że to świetny pomysł. Nawet mam gdzieś źródło do aplikacji mobilnej w tym języku, później podeślę...

flowCRANE
Dobrze, więc napiszę co poprawić, jak tylko znajdę wolną godzinkę. ;)
flowCRANE
Moderator Delphi/Pascal
  • Rejestracja:ponad 13 lat
  • Ostatnio:około 5 godzin
  • Lokalizacja:Tuchów
  • Postów:12168
4

Zacznijmy od absolutnych podstaw, czyli od organizacji katalogu z projektem, plikami i ich nazewnictwem.

W sumie to używasz wyłącznie jednego katalogu dla wszystkich plików, co jest bardzo złym pomysłem. Nie dość, że wymieszane są pliki dwóch projektów (CREDO i KALIB_PROG), to jeszcze znajdują się w tym katalogu również pliki binarne, tworzone przy kompilacji. Binarki domyślnie tworzone są w podkatalogu lib\$(TargetCPU)-$(TargetOS) i nie ma potrzeby tego zmieniać. Przyjdzie czas opublikować źródła, więc do archiwum wrzuca się wszystko oprócz podkatalogu lib. U Ciebie wszystko jest na kupę, dlatego też binarki trzeba wykluczać ręcznie.

Struktura katalogów powinna być np. taka:

Kopiuj
+ Sources
  + CREDO
    - pliki projektu
    + lib
      + i386-win32
        - pliki binarne
  + KALIB_PROG
    - pliki projektu
    + lib
      + i386-win32
        - pliki binarne

Kolejna rzecz – nazewnictwo plików. Nazwy plików nie powinny być samymi dużymi literami, to nie DOS… Główny plik projektu najczęściej przyjmuje nazwę main lub nazwę projektu (pełną lub skróconą), pisaną małymi literami lub w stylu PascalCase. Pliki z kodem formularzy powinny swoją nazwą jasno o tym informować, np. MainWindow.pas, SettingsWindow.pas. Stosuje się też notację frmMain.pas, frmSettings.pas lub Main_frm.pas, Settings_frm.pas. A u Ciebie jest to core.pas… serio? Formularz jest jądrem aplikacji? Masz też kalibunit.pas, który też zawiera kod formularza. Tu stosujesz inne nazewnictwo – sufiks unit. Wiadome, że ten plik to moduł – nie musisz tego dodatkowo zaznaczać.

Inna sprawa to brak plików .lpr, czyli domyślnie tworzonych głównych plików projektu. Nie wiem czemu u Ciebie pliki te mają rozszerzenie .pas – zmieniałeś je ręcznie? Jeśli tak, to po co?

Przechodzimy dalej, otwieram plik CREDO.pas i jeb, IDE wyrzuca błąd o braku modułu:

missing-file.png

To samo jeśli otworzę KALIB_PROG.lpi. W plikach .lpi masz sporo odwołań do plików, które nie istnieją w tym archiwum. Niektóre są wymagane (jak ten, którego nazwa widnieje w oknie z błędem), a niektóre nie są wymagane, przynajmniej do otwarcia projektu w IDE (np. związane z pakietem Indy). Tak więc zbędne wpisy należy usunąć z pliku .lpi, bo IDE wysypuje się.

Następna rzecz – główna ikona projektu, czyli plik CREDO.ico. Eksplorer nie potrafi wyświetlić jego zawartości, tak jak ma to miejsce w przypadku standardowych ikon. Otworzyłem ten plik w programie do tworzenia i edycji ikon i widzę, że posiada on tylko jedną grafikę, w dodatku o rozmiarach zupełnie niezgodnych z formatem ikon (300x223 to nie jest prawidłowy rozmiar ikony dla eksplorera). Ikona jest prostokątna, a powinna być kwadratowa, poza tym o wielu rozmiarach – co najmniej 16x16, 24x24, 32x32, 48x48, 64x64, 128x128 i 256x256.


Czas na projekt. Podstawa to jego konfiguracja, czyli wszystko co znajduje się w oknie ustawień projektu. Wchodzę w to okno, a tam cuda i dziwy. Ikona przypisana (ale jej zawartość jest zła), lista formularzy zawiera dwie pozycje, z czego jedna nie istnieje (Form1), Version Info nieuzupełnione. Jeśli o opcje kompilacji chodzi, to uzupełnione są pola ze ścieżkami, choć ścieżki te dotyczą katalogów nieistniejących w archiwum (np. ..\..\..\indy9\lazarus), opcje debugowania są włączone, ale pola w grupie checks and assertion są odznaczone, custom options wypełnione symbolami dla Borlanda (domyślam się czemu ma to służyć). Ogólnie trochę bałaganu, a próba kompilacji rzuca kupką notek i ostrzeżeń o duplikacji plików. Niedobrze.


Skupmy się na razie na formularzu, a konkretniej na jego wyglądzie (w dalszej części uczepię się kodu). Okno nie wygląda zachęcająco – emotka w tytule na belce okna (sic!), do tego informacja o wersji i o autorze (to umieszcza się w oknie about). Używasz systemowego schematu interfejsu, ale pomimo tego zmieniłeś kolor tła okna i fonty na przyciskach. Na innych systemach może to bardzo źle wyglądać. Tekst w kontrolkach jest w dwóch językach (np. Kamera On) – takich rzeczy się nie robi. Albo tworzy się domyślny interfejs po angielsku i dodaje opcje językowe, albo robi się jedną wersję językową (np. polską). Do tego niektóre napisy są dużymi literami (tego należy unikać, chyba że dokładnie wie się co się robi).

Układ komponentów na formularzu nie jest dobry – niektóre kontrolki przykryte są całkowicie przez inne. Takie rzeczy robi się wtedy, gdy część kontrolek ma być niewidoczna i pokazywana dynamicznie. Jednak w takim przypadku grupuje się je np. na panelu, tak aby móc manipulować widocznością całej grupy, a nie każdej kontrolki z osobna. U Ciebie część jest zgrupowana, a część nie.

Teraz czas na nazewnictwo. Nie stosujesz żadnego uniwersalnego sposobu nazywania kontrolek. Niektóre mają nazwy domyślne, inne polskie, a jeszcze inne angielskie lub mieszane. Przyjęło się, aby kontrolki nazywać w stylu CameraOnButton, LoopTimer, SaveImageDialog, gdzie początkowa część nazwy określa pełnioną funkcję (CameraOn czy SaveImage), a sufiks zawiera typ kontrolki (Button, Timer itd.). Kontrolki nie są też właściwie skonfigurowane. Pierwsze co się robi po umieszczeniu kontrolki na formularzu to otwiera się okno inspektora obiektów i ustawia się wszystkie właściwości, zanim zacznie się z nimi pracę (czytaj: oprogramowywanie). Twoje kontrolki nawet nie posiadają ustawionych kotwic (Anchors), więc zmiana rozmiaru okna całkowicie rozwala układ interfejsu (żadna nie reaguje). Czas przysiąść nad tym oknem i poustawiać wszystko jak należy. Do tego nazwa formularza – czyli Formularz – jest bardzo zła…


Przejdźmy do najważniejszego, czyli do kodu – póki co do kodu projektu CREDO.

Tutaj jest tak dużo problemów, że trudno opisać je wszystkie… Absolutnie nie stosujesz żadnej przyjętej konwencji, ani co do formatowania kodu, ani co do jego nazewnictwa. Kod pisany jest bardzo niedbale – stusujesz nazwy polskie i angielskie naprzemiennie, również naprzemiennie używasz różnych notacji. Wcięcia są zupełnie randomowe, tak samo jak odstępy (tworzone pustymi liniami). Wplatasz importy funkcji z zewnętrznych bibliotek pomiędzy definicje metod formularza. W komentarzach tłumaczysz działanie kodu i trzymasz niektóre zbędne instrukcje. Do tego masz wycieki pamięci – tworzysz dynamicznie obiekty TBitmap i nigdzie ich nie zwalniasz. Niektóre metody są bardzo długie – pasuje podzielić je na mniejsze fragmenty.

Kod usiany jest różnymi dyrektywami, a niektóre używane są niezgodnie z ich przeznaczeniem. Np. przełącznik {$MODE} może być użyty tylko raz w danym module, a w core.pas masz ich pięć, z czego kilka zaremowanych. Kompilator w takim przypadku weźmie pod uwagę tylko jeden (pierwszy, czyli {$MODE DELPHI}), a reszta zostanie zignorowana, nawet jeśli nie jest zakomentowana.


Naprawdę mógłbym jeszcze bardzo długo wymieniać problemy istniejące w tych projektach, ale to nie ma sensu.

Zacznij od początku – zorganizuj jak należy strukturę katalogów, stwórz projekty od nowa, w pierwszej kolejności przejdź do ustawień projektu i skonfiguruj wszystko (łącznie z informacjami o wersji i ikonie programu), następnie zajmij się formularzem, poukładaj na nim wszystkie komponenty i skonfiguruj je, a na koniec zajmij się kodem.

Zanim jednak zabierzesz się za pisanie kodu, zapoznaj się z terminami KISS i DRY, a także z artykułem traktującym o przyjętej i uniwersalnej konwencji nazewnictwa oraz formatowania kodu. Dobry artykuł znajduje się tutaj: Object Pascal Style Guide - Embarcadero Developer Network.

Powodzenia! ;)


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 8x, ostatnio: flowCRANE
Zobacz pozostałe 3 komentarze
MP
No to spadłem na ziemię, z wielkim hukiem. Uwierz, że byłem świadomy bałaganu, no ale to? to już przesada. Całość do przepisania na nowo, nie wspominając o wkuciu elementarza. Syf głównie dlatego, że opieram się na gotowcach z netu, część kopiuję, część dołączam, coś później nie działa, i zaczynam kombinować. Dzięki za poświęcony czas, na pewno wiele się dowiedziałem. Modlić się tylko żeby stary człowiek się zmienił ;)....Postaram się :)
flowCRANE
To co opisałem wyżej w sumie dotyczy tylko CREDO, jednak nie wszystkie problemy wymieniłem. A tego drugiego projektu nie analizowałem w ogóle – tylko go otworzyłem, aby sprawdzić, czy w nim też brakuje plików. Na całe szczęście kodu masz bardzo mało, więc jeden dzień wystarczy, aby przepisać oba te projekty na nowo. ;)
MY
@mpknap pamiętaj, że te komentarze nie są po to aby Cię zgnębić. Po prostu jak kod będzie lepszej jakości, to masz większą szansę na to, że więcej ludzi się przyłączy :)
MP
Będzie dobrze (ale nie dla perfekcjonisty), proszę o czas, czas, czas...... bo zarobić na chleb też w między czasie muszę ;)
MY
@mpknap zatem trzymamy kciuki :)
MP
  • Rejestracja:około 13 lat
  • Ostatnio:prawie 5 lat
  • Postów:28
0

...trochę minęło. Uprościłem jak umiałem. https://github.com/marekmarcos/CREDO

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)