Re: ?

Autor: Wojciech Gazda (gazda_at_usu-n-to.fema.krakow.pl)
Data: Thu 04 Apr 2002 - 22:24:19 MET DST


Marek Wojciechowski napisał(a):
>
> Hej,
>
> No właśnie może ja skorzystam z okazji, i zadam przynajmniej parę
> podstawowych pytań, bo że jakiś bardziej formalny kurs dojdzie do
> skutku to i tak nie wierzę :-)
>
> Właśnie ostatnio próbuję nauczyć się pisania programów PMowych. Jak na
> razie moje umiejętności programowania kończą się na czystym "C".
>
> Narzędzia jakimi dysponuję to emx, VACpp 3.08, DrDialog/DrREXX.
> EMX-a (a właściwie GCC) używam od dłuższego czasu, ale tylko do
> programów działających wsadowo bez żadnej grafiki. Żeby dać obraz
> swoich nikłych umiejętności, to muszę się jeszcze przyznać, że co
> prawda, od dawna piszę programy po parę/paręnaście tysięcy lini, ale
> dopiero niedawno nauczyłem się robić proste makefile i dzielić
> programy w C na moduły. Dotychczas pisałem wszystko jako jeden wielki
> plik bo tak mi wystarczało i było wygodnie :-)
> Rozumiem, że programu PMowego tak się już napisać nie da.

Da sie. Tylko po co nadwyrezac kompilator piszac taka kobyle? Dla mnie
graniczny rozmiar pliku to 3000 - 4000 lini (razem z komentarzami).

 
> Pierwsze przymiarki do PMa robię w DrDialog/DrREXX.
> Tu mam pierwsze (chyba banalne) pytanie związane z techniką pisania
> tego typu programów. Przypuśćmy, że w interfejsie mam "single-line
> edit control", "spin button" czy cokolwiek podobnego. Czy wartości
> ustalane przez urzytkownika tymi kontrolkami dublować do jakiejś
> zmiennej globalnej i w innych miejscach programu czytać je z tej
> zmiennej, czy raczej niczego nie dublować, a jedynie, gdy ta wartość
> jest potrzebna, odczytywać "value" danej kontrolki. Jaka metoda (i
> dlaczego) jest "politycznie poprawna".

Jesli mialbys czytac te wartosc kilkadziesiat razy na sekunde lub
czesciej wtedy warto zrobic kopie. Jesli nie szkoda sobie zawracac glowe
- lepiej czytac bezposrednio. Z reszta to zalezy od architektury
programu. Trudno cos powiedziec "ogolnie".
 
> Dalsze pytania.
>
> Na ile jest możliwe napisanie aplikacji PMowej w czystym C. W
> szczególności czy można to zrobić w VACku bez znajomości C++ ?

Jest to IMHO bardzo sensowne (C). Wiele (wszystkie?) klasy C++ od GUI sa
albo zapluskwione, albo nie implementuja wszystkiego, albo ograniczaja
"tfurczosc", albo implementacja to "ubieranie spodni przez glowe", albo
sa wolne, albo wszystko na raz :->
Przymierzalem sie do napisania klas C++ GUI pozbawionych wady
polegajacej na tym, ze za pomoca dziedziczenia nie wszystko da sie
zrobic, oraz bez "ubierania spodni przez glowe". Ale zakopalem sie...
Moze w przyplywie sil cos jeszcze wymysle...
 

> Jak działa DIVE? W szczególności mam (dalekosiężne ;-) ) plany
> napisania aplikacji podobnej do tej (uwaga linki zapewne będą
> "połamane"):
Na tyle na ile zagladalem do dokumentacji DIVE jest to "po prostu"
interfejs (API) ktory kopiuje wybrany kawalek pamieci do bufora karty
graficznej - tyle. 3D to OpenGL - tylko dla ilu kart zostalo
oprogramowane wspomaganie sprzetowe?

> http://www.bernstein-plus-sons.com/cgi-bin/yaya/decomp.cgi/software/Ra
> sMol_2.7.1.MSWIN/raswin.exe
> Plik z helpem (nie jest konieczny)
> http://www.bernstein-plus-sons.com/cgi-bin/yaya/decomp.cgi/software/Ra
> sMol_2.7.1/doc/raswin.hlp
> Tu można znaleźć przykładowy plik z danymi do pooglądania:
> http://www.rcsb.org/pdb/cgi/export.cgi/1GDO.pdb?format=PDB&pdbId=1GDO&
> compression=None
> (tak przy okazji ta aplikacja działa prawie idealnie pod ODINem. Nie
> działa jej okno tekstowe - napisy w kolorze tła (żeby sprawdzić
> wystarczy napisać w tym oknie "help"). Może jakiś odinowiec dałby radę
> to poprawić, dorobić brakujące API, czy co tam jest źle :-) )
>
> Czy dobrze wyobrażam sobie, że interface mogę zrobić np. W DrREXX (bo
> tak najprościej), który może przekazć rozmiar/połorzenie swojego okna
> zewnętrznemu programowi w "C", który zrobi całą robotę obliczeniową i
> dzięki DIVE będzie mógł bazgrać swoje wyniki bezpośrednio po tym
> oknie?
> Czy nie będzie to bardziej skomplikowane, niż napisanie całości w C
> (VAC)?
> Gdzie będzie musiała być robiona obsługa komunikatów od myszy. W
> programie rysującym samo okno (interface, REXX) czy w programie
> rysującym zawartość tego okna (DIVE, C) ?
Nie wiem jak to wyglada w praktyce (konsekwentnie omijalem REXX-a).
Napisanie calosci w C bedzie pewnie rownie trudne, tyle ze uniknie sie
problemow z laczeniem jezykow programowania...

> Możecie polecić jakieś dobre pliki_INF/strony_www/cokolwiek co warto
> poczytać, żeby nauczyć się podstaw powyższego ?
Toolkit 4.5 lub wyzszy (dokumentacja *.INF). Ale nie wiem czy mozna to
ot tak sobie skads sciagnac...

-- 
Wojciech Gazda
/*******************************************************/
/* Home page        - http://www.fema.krakow.pl/~gazda */
/* Asua programmers - http://www.asua.org.pl           */
/*******************************************************/


To archiwum zostało wygenerowane przez hypermail 2.1.7 : Tue 18 May 2004 - 15:37:34 MET DST