PCPROG.3

26 Jul 1993 - 22 Apr 1994

Messages - windows

windows.1 ficus,
Evo, ba{ lepo {to su se setili da otvore i ovu temu... Nedostatak ove teme je bila moja jedina sugestija na konferenciju PC.PROG Mislim da je tek sada ova konferencija kompletna...
windows.2 vitez.koja,
Pitanje: da li jedan MDI klijent (izvinite ako se frljam sa izrazima; mislim na glavni prozor aplikacije) može da otvori pop-up prozor, a taj pop-up prozor ondak da otvori jedan MDI child window ? Ako ne može, kako postići otvaranje prozora X iz prozora Y (na pritisak gumba), pri čemu ni X ni Y nisu glavni ? Pitanje2: da li MDI child prozor mož' da ima menije ? Radim, ako je bitno, u Turbo Pascalu for Windows, neka bajata verzija.
windows.3 ficus, -> #2, vitez.koja
Kojo, pa ima{ funkciju CreateWindow koja izme|u ostalog tra`i i HANDLE roditeljskog (parent) prozora... A, pritisak na taster je tako trivijalna stvar, da ne znam u ~emu je tvoj problem...!
windows.5 jevta,
Ima li neko ideju šta se zbilo ??? Startujem Windowse koji su najnormalnije radili do danas, kad ono resetuje se mašina. Opet kucam win, opet reset ... Skinem memmaker, turim Qemm 6.03 ista stvar. Dopišem u configu ono čuveno x=b000:bfff i sve radi ok. Jasno mi je za qemm, ali šta bi memmakeru i to iz čista mira posle dva meseca pouzdanog rada ? I šta mu uraditi da opet bude pristojan (probao sam da ga reinstaliram , ali se isto ponaša) ?
windows.6 milos,
Da li neko koristi Quick C for Windows??? Imam neke probleme oko podešavanja boja, pa ako bi neko mogao da se javi na mail da mi pomogne...
windows.7 bduke, -> #5, jevta
Kod mene je pomoglo tek kada sam ponovo instalirao ceo WINDOWS. Pre toga se desavalo isto. bduke
windows.8 .obj,
Imam jedno pitanjce, možda se neko već petljao sa ovime. Recimo, hoćemo da ceo dijalog ofarbamo sivom (COLOR_BTNFACE) bojom umesto default boje (COLOR_WINDOW), slično kao u CorelDRAW!-u. To je najlakše uraditi primanjem poruke WM_ERASEBKGND a zatim jednostavnim farbanjem celog dijaloga. OK. Problem je, međutim, u ostalim kontrolama dijaloga, najviše u BUTTON-ima i STATIC-ima. Naime, na ivicama BUTTON-a ostaju 4 male bele tačkice, i, mada mi sasvim jasno zašto se to dešava, želeo bih da znam da li postoji način da se te tačkice uklone (tj. da se i one farbaju sa COLOR_BTNFACE). Takođe, da je moguće na jednostavan način postaviti boje pozadine i za STATIC kontrole - da se ne bi pravila posebna klasa prozora (npr. MYSTATIC) samo da bi se postavile sopstvene boje? Dakle, postoji li jednostavan način da se postavi boja pozadine za BUTTON i STATIC kontrole? :) Ou bi džej
windows.9 nkbog, -> #8, .obj
> Dakle, postoji li jednostavan način da se postavi boja pozadine za > BUTTON i STATIC kontrole? :) Pogledaj opis poruke WM_CTLCOLOR. Ona ti traži "četku" (sic!) pozadine za kontrole (a čini mi se i za dijalog - nema potrebe za petljanjem sa brisanjem pozadine), sve što treba je da se vrati HBRUSH pozadine, a kol'ko se sećam treba valjda izvršiti i SetBkColor na HDC-om kontrole (dijaloga), inače ne promeni odma' boju, il' tako nešto. NB.
windows.10 milos, -> #9, nkbog
A možda je lakše da sa CreateSolidBrush lepo napravi svoju boju i da poruci WM_CTLCOLOR prenese to. A još lakše je uzeti ResourceWorkshop iz TCWIN-a... ;)
windows.11 .obj,
Verovatno znate da se startovanje programa koristi univerzalna funkcija WinExec(LPSTR ime_programa, int inicijalni_prikaz). Šta da se radi kada je potrebno startovati program tako da on sačeka da se upravo startovana aplikacija završi? Na primer, program A startuje program B koji generiše datoteku X koju koristi program A, pa je neophodno da program A sačeka da se B završi pre nego što nastavi sa radom. Ja sam pronašao jedno rešenje koje i meni izgleda "prljavo", tj. nepouzdano. To se svodi na sledeći program: WinExec("dir > qwe", SW_NORMAL); int cbNumTasks = GetNumTasks(); while(cbNumTasks == GetNumTasks()); WinExec("copy qwe sdf", SW_NORMAL); Da li postoji neko bolje rešenje? Ovo ovde je upotrebljivo samo ako program B svoj posao radi relativno kratko. Ou bi džej
windows.12 nkbog, -> #11, .obj
> Verovatno znate da se startovanje programa koristi univerzalna funkcija > WinExec(LPSTR ime_programa, int inicijalni_prikaz). > Šta da se radi kada je potrebno startovati program tako da on sačeka da > se upravo startovana aplikacija završi? Evo jedno rešenje: //-----------------Iseci ovde-------------------------------------------- MSG msg; HINSTANCE hinst; hinst = WinExec("program",SW_NORMAL); // Ovde treba proveriti da li je hinst ispravan - tj nije manji od 32 do { if (PeekMessage(&msg,0,0,0,PM_REMOVE)) { // ovo da ne bi blokirali sistem TranslateMessage(&msg); // treba dodati i proveru za WM_QUIT DispatchMessage(&msg); // tj kraj programa kada stigne WM_QUIT } } while (GetModuleUsage(hinst) != 0); //-----------------Iseci i ovde------------------------------------------- Kada se program završi hinst postaje neispravan i GetModuleUsage vraća nulu. Inače vraća neki nenulti ceo broj (a ne pola broja) (zavisno od broja instanci programa koje su trenutno aktivne). NB.
windows.13 paki,
Pre par dana sam počeo da programiram pod Pendžerima (konkretno u Turbo Pascal for Win) i oduševljen sam :) Još nijedna fatalna greška u mom prvom programu ;) Da li neko može da mi preporuči neku dobru knjigu (bilo u pisanom bilo u elektronskom obliku) o programiranju pod Win (poželjno za TPW, ali može i za C), jer samo pomoću Helpa, bez literature, teško radim? Ima li još neko ovde, na Sezamu, ko programira u TPW?
windows.14 .obj, -> #13, paki
> Pre par dana sam počeo da programiram pod Pendžerima (konkretno u > Turbo Pascal for Win) i oduševljen sam :) Nije ni čudo. :) TPW 1.0 je bio (i ostao) fenomenalan program. Mali, brz, moćan, generiše kratak i brz kod, dobar help, odličan IDE, puno dodatnih alata sa strane (WRT, HC),... prosto savršen. > Da li neko može da mi preporuči neku dobru knjigu (bilo u pisanom > bilo u elektronskom obliku) o programiranju pod Win (poželjno za > TPW, ali može i za C), jer samo pomoću Helpa, bez literature, > teško radim? Pa, pitanje je da li radiš u ObjectWindows ili kopaš po Win API-ju? Ako je ovo prvo, teško (mislim nikako) naći literaturu osim originalne uz TPW. A ako je ovo drugo, slobodno možeš da uzmeš bilo koju knjigu koja obrađuje Windows API bez obrzira na jezik (mada je to uvek MS C). Knjige koje obrađuju Windows API ionako ne koriste nikakve specifičnosti nekih kompajlera, tako da sigurno nećeš imati problema sa strane "kompatibilnosti" C i paskala. Sad, koja knjiga? Definitivno je najpoznatija i najpopularnija knjiga žarlsa Pecolda (Charles Petzold) "Programming Windows". Dosta je skupa. U Budimpešti košta 150 maraka. Ima i ovde u Novom Sadu da se kupi u knjižari ispod bioskopa pored dunavskog parka, i to znatno jeftinije zato što se tu prodaju (i) strane polovne knjige. Dotična knjiga je odlična, ima praktično sve što takva knjiga treba da ima. Ne mora uopšte da se čita u celini (u stvari, ni ne može, jer je predebela) da bi se nešto uradilo, tako je napisana. Tj., ne počinje, kako bih rekao, od suštine, već odma' prelazi na komplikovanije primere i redom objašnjava šta je šta. Knjiga vredi svaku uloženu paru. Što se tiče elektronske pomoći, nisam još naleteo na neku "elektronsku knjigu", mada ima dosta "poučnih tekstova" ;) čak i ovde na Sezamu, pored ovolikih windowsomrzaca ;)). Primere po imenom adg*.zip (ili arj) nemoj da skidaš (ako mene pitaš) pošto su neinformativni i dosadni ;) Ali zato skini one wpj*.zip zato što tu ima nešto više, mada na početničkom nivou. BTW, kada se nauče neke osnovne stvari, onaj stardandan Windows API help (čija se, nešto izmenjena verzija nalazi i u okviru TPW.HLP) je *sasvim* dovoljan za svakodnevno snalaženje. Tek ako naleti nešto malo specifičnije što nije lako odma' naleteti u HELP-u, pomaže dokumentacija. A mogu da ti pomognu i kolege sa Sezama, samo pitaj. :) Ou bi džej
windows.15 djelovic, -> #13, paki
> Da li neko može da mi preporuči neku dobru knjigu (bilo u pisanom > bilo u elektronskom obliku) o programiranju pod Win (poželjno za > TPW, ali može i za C), jer samo pomoću Helpa, bez literature, > teško radim? Well, poziv Win API-ju je poziv Win API-ju, bilo da radiš na Paskalu ili na C-u. Prema tome, ako dobiješ knjigu sa C primerima, nećeš imati problema da se prebaciš na TP 4 Win. A najbolja knjiga na tržištu je definitivno "Programming Windows" od Charles Petzold-a. Ukoliko imaš načina da je dobaviš iz inozemstva, vikaj da ti ostavim detaljnije informacije.
windows.17 paki, -> #14, .obj
­> Ali zato skini one wpj*.zip zato što tu ima nešto više, mada na ­> početničkom nivou. Skinuo sam ih, i stvarno su dobri. ­> BTW, kada se nauče neke osnovne stvari, onaj ­> stardandan Windows API help (čija se, nešto izmenjena verzija ­> nalazi i u okviru TPW.HLP) je *sasvim* dovoljan za svakodnevno ­> snalaženje. Da, tako je bilo i sa TP for DOS, sve što ti treba ima u helpu, ali prvo treba da naučiš osnove.
windows.16 paki, -> #15, djelovic
­> Well, poziv Win API-ju je poziv Win API-ju, bilo da radiš na ­> Paskalu ili na C-u. Prema tome, ako dobiješ knjigu sa C primerima, ­> nećeš imati problema da se prebaciš na TP 4 Win. Jasno, ukapirao sam to već i iz textova u R. ­> A najbolja knjiga ­> na tržištu je definitivno "Programming Windows" od Charles ­> Petzold-a. Ukoliko imaš načina da je dobaviš iz inozemstva, vikaj ­> da ti ostavim detaljnije informacije. Videću, možda nađem način. Thanx to all.
windows.19 milos,
Paki, mislim da bez Petzold -ove knjige ne ma {ta da razgovara{ na ovu temu. Dakle, 2 Novi Sad. [to se API-ja ti~e, mislim da je mnogo bolje "kopati" po apiju nego radi sa OWL jer je OWL tragi~no spor i treba mu za kompilovanje (naro~ito u T) ohaha (negde oko 15 hedera). Programi pisani API jem su mnogo efikasniji i {to je bitno manji. Ja ne znam, kada je re~ o knjigama, za{to neko ne preporu~i ~oveku Software Development Kit 4 Windows Programming guide. Knjigica ;) ima negde oko 500 strana i odatle sam (barem ja) nau~io sve (!) {to mi treba a imam je kod ku}e tako da mi nije problem. Usput imam i one odli~ne primere iz SDK (slu~ajno sam ih pokupio sa neke ma{ine), tako da mi je i bez OWL rad k'o bog. Ali, ne lezi vra`e, ja nabavio i oficijelnu literatutu borlanda za OWL (C). Iako ve} delimi~no znam OWL, ja }u je pro~itati i korisiti u nekim ve}im stvarima dok je za male stvari mnogo bolji API. Usput, nadam se da }e ova konferencija `ivnuti. Ponekad mi se jave neki problemi, a sve se ne{to uzdr`avam da ostavim poruku jer znam da ovde ljudi ne vole Windows... :((((( Paki, obrati se dekiper-u za sve ove lepe stvari, jer su mi trenutno kod njega, dosadan ~ovek, pa sam morao da mu dam... :))) Ustvari bilo bi najbolje da ode{ kod njega, ili u subotu u club...
windows.20 bulaja, -> #14, .obj
│Definitivno je najpoznatija i najpopularnija knjiga Carlsa Pecolda │(Charles Petzold) "Programming Windows". Dosta je skupa. U Budimpesti │kosta 150 maraka. └─── Kod mene je mnogo jeftinije :), evo prodajem u kompletu Petzoldov "Programming Windows (2nd edition)" (inace ima 1000 strana) i "Microsoft WINDOWS 3 Programmer's Reference" (reference svih API funkcija, 1200 strana), knjige su nove a cena je svega 120 DEM za komplet :).
windows.21 asterix,
Nedavno je počela da mi izlazi sledeća poruka prilikom generisanja exec-a: Datoteku sa vašim odgovorima nije moguće otvoriti. Pažnja: Exec nije u potpunosti snimljen! Da li neko možda zna o čemu je reč, i kako da se to otkloni? Dosta je neprijatno bez exec-a kojeg sad ne mogu da pravim :( Naravno radi se o SDW ;), zaboravih da pomenem ...
windows.22 .obj, -> #21, asterix
> Nedavno je počela da mi izlazi sledeća poruka prilikom generisanja > exec-a: > Datoteku sa vašim odgovorima nije moguće otvoriti. Pažnja: > Exec nije u potpunosti snimljen! To znači da si otvorio neki odgovor (Alt-R), SDW je kreirao neku datoteku tipa RE1.CDF, a ti si je kasnije obrisao, ali ne i naredbu iz EXEC-a. Drugi put ;) nemoj da ručno brišeš datoteku RE*.CDF, već obriši reply odgovarajućom opcijom u "Pregledu EXEC-a". :) Pozdrav, Ou bi džej
windows.23 paki, -> #19, milos
­> Paki, obrati se dekiper-u za sve ove lepe stvari, jer su mi ­> trenutno kod njega, dosadan ~ovek, pa sam morao da mu dam... :))) Jasno :) P.S. set code :)
windows.24 spantic,
Kad smo već kod SDW-a. To je sjajan program i govoreći to ne govorim ništa novo :) Od nove verzije sam definitivno prešao na njega. Do sada je bio i izuzetno pouzdan. Ali, ima jedna stvar koja mi smeta. Naime, kad odlučim da skinem datoteku uz poruku SDW je odmah preusmeri u PAD. Ja tako ne radim. Postoji li način da se tome doskoči?
windows.25 jerry, -> #24, spantic
> Kad smo vec kod SDW-a. To je sjajan program i govoreci to ne > govorim nista novo :) Od nove verzije sam definitivno presao na > njega. Otprilike. S' tim sto se meni desava nesto cudno... Ucitavanje text pada mi uzrokuje izbacivanje u DOS bez opomene. (mislim na UNZIP) Ako ga raspakujem rucno iz DOS-a pa uzitam, sve je ok. Zasto? Ou bi dzej-ar?
windows.26 .obj, -> #25, jerry
> Ucitavanje text pada mi uzrokuje izbacivanje u DOS bez opomene. > (mislim na UNZIP) Ako ga raspakujem rucno iz DOS-a pa uzitam, sve je ok. > Zasto? Zato što nisi pročitao uputstvo. ;)) Šalim se. Evo kako: (piše u uputstvu;)) Napraviš PIF datoteku PKU.PIF za PKUNZIP.EXE. U njoj uključi sve žive opcije koje liče na Minimized, Background i sl. Zatim iz "Podešavanja" u SDW-u umesto npr. PKUNZIP stavi PKU.PIF. Klikni na opciju "Minimizovan dearhiver". Den... rileks end indžoj... brot-tu-ju baj Ou bi džej end Soni mjuzik ;)
windows.27 .obj, -> #24, spantic
> Naime, kad odlučim da skinem datoteku uz poruku SDW je > odmah preusmeri u PAD. Ja tako ne radim. Postoji li način da se > tome doskoči? Može, :) ja treba da doskočim tako što će sledeća verzija imati dve naredbe u "onom" Combo-Box-u. Prva je ovako kako je i bilo (sa &) a druga bez &. Dakle, pritisneš "strelicu nadole" (ili klikneš mišem na odgovarajuću opciju) kada se pojavi dijalog "Unos naredbe Sezama", i to je to. Ou bi džej txe di džej :) P.S. Ukoliko neko ima neko pitanje u vezi sa SDW-om mislim da je daleko bolje da ga postavi u SEZAM.4:sor, obzirom da nema toliko puno pitanja (o SDW-u) da bi se uživaoci SOR-a bunili. :) Naravno, uvek može i mail send .obj. :) Ovu konf. najbolje da ostavimo za programerske teme. :)
windows.28 viktor, -> #27, .obj
> Ovu konf. najbolje da ostavimo za programerske teme. :) Evo da ja postavim pitanje. Na jednoj konferenciji sam procitao da (ako sam ja dobro shvatio, ako nisam vi cete me ispraviti ;) ) u Windows programskoj okolini postoji "komanda" GlobalCompact (ili nekako tako, nisam odmah prepisao ... ;() kojom se rascepkana (fragemented) memorija u Windows-ima "dovodi u red". Interesuje me da li to postoji, da li neko ima nesto vec uradjeno "po tom pitanju". Problem se javlja nakon duzeg koriscenja Windows-a bez izlaska iz istih i bilo bi zgodno imati jedan mali programcic koji bi pozvali i "pocistili" ...
windows.29 paki,
Evo, dok ne nabavim literaturu, da priupitam: Kako da ubacim dijaloge u svoj program? U Resource Toolkitu sam napravio jedan dijalog i želeo bih da se on aktivira kad iz menija izaberem određenu stavku. Tada se poziva procedura za pravljenje dotičnog dijaloga. Šta u okviru nje da se radi? Pretpostavljam da postoji neka API procedura koja sve radi sama, a na meni je, posle klika na OK ili Cancel, samo da očitam rezultate (koji čekboks je uključen/isključen, koji text je unesen itd.). U nekom od primera iskopao sam parče koda i ubacio ga u moj program. To trenutno glasi: --------- procedure TMyWindow.Paki; var Dialog: TDialog; begin { Application^.ExecDialog(New(PMyDialog, Init(@Self, 'PakiDlg'))); (Ova naredba ima naoko isto dejstvo kao i ove tri dole)} Dialog.Init(@Self, 'PakiDlg'); Dialog.Execute; Dialog.Done; end; --------- Tada dijalog radi OK, ali kako da znam npr. koje dugme je pritisnuto pri izlasku (OK/Cancel/Help/...) ili koji je text unesen u Edit Box, dakle, kako očitavam rezultate procedure Execute da bi ih upotrebio u ostatku programa? I još nešto, da li je ovakav način aktiviranja dijalog boksova OK, ili treba drugačije?
windows.30 wizard, -> #24, spantic
> Do sada je bio i izuzetno pouzdan. Ali, ima jedna stvar koja mi > smeta. Naime, kad odlučim da skinem datoteku uz poruku SDW je > odmah preusmeri u PAD. Ja tako ne radim. Postoji li način da se > tome doskoči? Kako da nema, pa već su ti doskočili, sad radiš tako. ;))) Ozbiljno, zaista mi nije jasno zašto ne bi skidao fajlove u PAD i posle ih DL-ovao batch Zmodem-om...
windows.31 nboskovic, -> #30, wizard
*> Ozbiljno, zaista mi nije jasno zašto ne bi skidao fajlove *> u PAD i posle ih DL-ovao batch Zmodem-om... I još treba pridodati jedno pad do /b da ne bi arhivirao sve datoteke u padu već da ih šalje jednu po jednu. (c) klap nikola
windows.33 .obj, -> #29, paki
> Kako da ubacim dijaloge u svoj program? Pre nego što još počnem ;), samo da ti kažem par stvari. Prvo, ja nisam nikada radio u ObjectWindows, pa tu slabo mogu šta da kažem, osim da bi, kao što je i red, dijalog trebalo da bude objekat, a da se tom objektu šalju poruke kada korisnik kresne neki taster, skrol bar, ovo-ono... na sve te poruke ti odgovaraš iz metoda tog objekta. Drugo, dijalozi rade na gotovo istom principu kao i "normalni" prozori, osim što primaju neke ekstra poruke. Sad, svaki (u principu) dijalog mora imati svoju servisnu funkciju, *isto* kao i prozor. Tako, recimo, imaš (pored ostalih) i poruku WM_INITDIALOG na koju možeš da reaguješ tako što ćeš, na primer, popuniti sadržajem neku listu. Dijalog, dakle, NIJE funkcija koja bi recimo vratila OK ili Cancel. To je (na sreću) mnogo pametnije urađeno. > nje da se radi? Pretpostavljam da postoji neka API procedura koja > sve radi sama, a na meni je, posle klika na OK ili Cancel, samo > da očitam rezultate (koji čekboks je uključen/isključen, koji > text je unesen itd.). Ovo što dalje piše važi ako pišeš program preko Windows API-ja, što, BTW, ja tebi preporučujem, ako smem. Prvo, kreiranje funkcije iz BRW-a, WRT-a, ili pisanje skripta (.RC). To si prebrinuo. Drugo, pisanje servisne funkcije. Koliko se razumem u TPW (nemam ga trenutno na disku), to treba da izgleda nekako ovako: procedure MićaDlgProc (HWND hDlg, word message, word wParam, long lParam); // ovde treba neka deklaracija, valjda PUBLICDLL; // ili tako nešto, zaboravio sam begin MićaDlgProc := false; case (message) of WM_INITDIALOG: begin ...neke inicijalizacije, ako su potrebne, punjenje LISTBOX-ova, itd end; WM_COMMAND: // ovo se aktivira kad god korisnik uradi nešto // sa nekom kontrolom u okviru dijaloga. Npr. klikne // na button, listbox, ukuca nešto u edit, itd. case (wParam) of IDOK: begin // ovo se aktivira ako if (HiWord(lParam) == BN_CLICKED) // klikneš na OK! EndDialog(hDlg, wParam); // dakle, izađemo MićaDlgProc := true; // napolje iz dijaloga end; IDCANCEL: begin // ovo se aktivira if (HiWord(lParam) == BN_CLICKED) then // klikneš na Cancel MessageBox (hDlg, 'Stani bre malo', 'Stop!', MB_OK or MB_ICONSTOP); MićaDlgProc := true; end; else MićaDlgProc := true; end; end; end; Treće, kako pozvati dijalog. Lako: var lpfnMićaDlgProc: FarProc; // lpfn = Long Pointer to FuNction... lpfnMićaDlgProc = MakeProcInstance(MićaDlgProc, hInst); DialogBox(hInst, "IME_DIJALOGA_IZ_RC_ILI_RES_FAJLA", hWnd, lpfnMićaDlgProc); FreeProcInstance(lpfnMićaDlgProc); > Tada dijalog radi OK, ali kako da znam npr. koje dugme je > pritisnuto pri izlasku (OK/Cancel/Help/...) ili koji je text > unesen u Edit Box, dakle, kako očitavam rezultate procedure > Execute da bi ih upotrebio u ostatku programa? I još nešto, da li > je ovakav način aktiviranja dijalog boksova OK, ili treba > drugačije? Kao što se vidi iz primera, reagovanjem na poruku WM_COMMAND. Dodatne podatke možeš da očitaš: wParam Identifikator kontrole (npr, IDOK, 500, 501, ID_MIĆA itd) HiWord(lParam) Poruka kontrole (elementa dijaloga). Npr. BN_CLICKED (BN je "Button Notification"), EN_ERRSPACE ("Edit Notification"), LBN_SELCHANGE. Na kraju, pošto vidim da tek počinješ, može dosta da ti pomogne primer GENERIC.PAS iz TPW-a. Puno sreće, Ou bi džej
windows.32 .obj, -> #28, viktor
> postoji "komanda" GlobalCompact (ili nekako tako, nisam odmah prepisao > ... ;() kojom se rascepkana (fragemented) memorija u Windows-ima "dovodi u > red". Funkcija GlobalCompact postoji. Napišeš mali program, recimo u C-u, koji će je samo pozvati sa pravim parametrima (pogledaj u help), i moralo bi da radi. Ou bi džej
windows.34 milos,
Pa ne znam ba{ paki dal' si se odlu~io za pravu stvar. Uzeo si TPW 1.0 koliko sam na~uo u klubu, a sa njim }e{ se vrlo te{ko sna}i iz nekoliko razloga: 1. Whitewater Resource toolkit je sme{an u odnosu na Workshop 2. Turbo Debbuger 4 windows ne radi ba{ najbolje pod win3.1 3. U 1.5 TPW-u je Object WIndows pobolj{an, tako da }e ti biti lak{e da ga nau~i{ jer su neki kriti~ni delovi sre|eni (:)) 4. Ne znam kako paskal guta API funkcije! Verovatno je OK, ali mislim da }e{ se d`abe buniti kada bude{ prekucavao neke kodove iz C-a jer bukvalno sve bolje knjige za Win programiranje su pisane za C, tako da ti predla`em dve stvari: Ako ve} ho}e{ paskal uzmi BP 7.0 ili TPW 1.5, ili {to je po meni bolje, zna{ i sam...
windows.35 spantic, -> #30, wizard
> Kako da nema, pa već su ti doskočili, sad radiš tako. ;))) Ne radim ;) Jedan kratak programčić rešava me te muke, ali ne bih da i toliko komplikujem :( > Ozbiljno, zaista mi nije jasno zašto ne bi skidao fajlove u PAD i posle > ih DL-ovao batch Zmodem-om... Zato što mi ne odgovara :)
windows.36 .obj, -> #33, .obj
> Prvo, kreiranje funkcije iz BRW-a, WRT-a, ili pisanje skripta (.RC). To ======================== E i ja svašta lupam... iz BRW-a se kreira *dijalog* a ne funkcija :)) Drugo, MićaDlgProc treba da bude funkcija koja vraća Boolean, a ne procedura. Još jednom, Paki, pogledaj GENERIC.PAS za detalje. :) > lpfnMićaDlgProc = MakeProcInstance(MićaDlgProc, hInst); > DialogBox(hInst, "IME_DIJALOGA_IZ_RC_ILI_RES_FAJLA", hWnd, lpfnMićaDlgProc); > FreeProcInstance(lpfnMićaDlgProc); Ono što je takođe bitno a nisam pomenuo je da je hInst instanca tekuće aplikacije, a hWnd roditeljski prozor dijaloga (kom' prozoru će se vratiti kontrola posle završetka dijaloga). Ou bi džej Mr. Zaboravni :)
windows.37 viktor, -> #32, .obj
Ne bavim se programiranjem u Windows-ima. Dakle, gde se nalazi ta funkcija i kako je pozvati. Jel' moze jedan mali exe koji to radi ... ;)) Kada vec pisem u SDW-u da ne menjam programersku kucu :)))
windows.38 wizard, -> #31, nboskovic
> *> Ozbiljno, zaista mi nije jasno zašto ne bi skidao fajlove > *> u PAD i posle ih DL-ovao batch Zmodem-om... > > I još treba pridodati jedno pad do /b da ne bi arhivirao > sve datoteke u padu već da ih šalje jednu po jednu. Pa zar to nisam i ja napisao? :))
windows.40 paki, -> #34, milos
­> 1. Whitewater Resource toolkit je sme{an u odnosu na Workshop Znam, umesto njega sam nakalemio Workshop iz BP7.0. :)) ­> 2. Turbo Debbuger 4 windows ne radi ba{ najbolje pod win3.1 Taj odvratni hibrid sam ubio odmah po instalaciji :( Od njega bi mi više pomogao čak i mali (ali tehničar ;) integrisani debager, poput onog u TP. ­> 3. U 1.5 TPW-u je Object WIndows pobolj{an, tako da }e ti biti ­> lak{e da ga nau~i{ jer su neki kriti~ni delovi sre|eni (:)) Ne znam, mislim da je bolje da naučim API. ­> 4. Ne znam kako paskal guta API funkcije! Verovatno je OK, ali Mislim da ih guta bez problema. ­> C, tako da ti predla`em dve stvari: Ako ve} ho}e{ paskal uzmi BP ­> 7.0 ili TPW 1.5, ili {to je po meni bolje, zna{ i sam... Pa imam ja kući BP7.0 ali mi ne valja disketa sa najvažnijim (;) fajlom, helpom za Win :((( Kad budem ponovo nabavio tu disketu, prelazim na 7.0, do tada sam na klonu TP1.0+RWshop :) P.S. Podesi kodnu stranu na Sezamu, umesto YU slova imaš gomilu kuka i kvaka :(
windows.39 paki, -> #33, .obj
­> Ovo što dalje piše važi ako pišeš program preko Windows API-ja, ­> što, BTW, ja tebi preporučujem, ako smem. Pa, kao što se može zaključiti, ja sam samo prekopao malo demo programe i C&Povao :) parčiće koda koji rade bitne stvari. Koristio sam objekte jer sam naleteo na njih. Ali pošto kupujem onu literaturu (nadam se bar) preći ću na API. ­> procedure MićaDlgProc (HWND hDlg, word message, word wParam, long ­> lParam); ... ­> begin ­> MićaDlgProc := false; Mislim da procedura ne može da vraća vrednost. Verovatno si mislio na funkciju. ­> Na kraju, pošto vidim da tek počinješ, može dosta da ti pomogne ­> primer GENERIC.PAS iz TPW-a. Hvala ti na objašnjenju i savetima. Pogledaću primer, obavezno.
windows.41 ssokorac, -> #30, wizard
─┼┤ Ozbiljno, zaista mi nije jasno zašto ne bi skidao fajlove u PAD i ─┼┤ posle ih DL-ovao batch Zmodem-om... Ja uvek skidam fajlove u PAD pa zatim pad do /b. Prednost? Pa, skidaš sve datoteke odjednom, dakle, pustiš da se dl i sačekaš da sve bude gotovo, a druga prednost je - sezam obračuna vreme potrebno za sve datoteke na početku prenosa i dozvoli prenos. E, sad, ako imaš lošu vezu možda prenos prva 2-3 fajla traje preko predvidjenog vremena i u normalnim uslovima ne bi(H:) mogao da preneseš poslednji fajl ali ovako - prenos je već počeo i ništa te ne može zaustaviti :).
windows.42 nboskovic, -> #38, wizard
*> Pa zar to nisam i ja napisao? :)) Ako uradiš pad do onda će Sezam napraviti arhivu pad?????.zip a ako staviš /b slaće odvojeno :)) (c) klap nikola
windows.43 wizard, -> #42, nboskovic
> Ako uradiš pad do onda će Sezam napraviti arhivu > pad?????.zip a ako staviš /b slaće odvojeno :)) PA ZAR TO NISAM I JA REKAO!? :))) Napisao sam "batch Zmodem", pa to je valjda to?!
windows.44 asterix,
Da li neko ima loša iskustva sa PhotoPaint-om iz Corel-ovog novog paketa? Odmah nakon podizanja istog se javlja greška 'Gerenal Error' sa opcijama 'Close' i 'Ignore'. Da li neko možda zna nešto više o ovome ? CorelDraw! 4 je inače instaliran sa iskopiranih instalacionih disketa...
windows.45 .obj,
Smešan i simpatičan ;) bag Turbo Linkera (u režimu EXETYPE WINDOWS)... ako u DEF datoteci u imenu modula stavite karakter 255 (Alt-255), TLINK se tako temeljito zaglavi da pomaže samo hard-reset. Ou bi džej
windows.46 niklaus, -> #17, paki
> Da, tako je bilo i sa TP for DOS, sve što ti treba ima u helpu, > ali prvo treba da naučiš osnove. Ali, stvar se komlikuje sa vremenom koje je potrebno Win-u da učita Help fajl, odn. ubija volju. Glavni i osnovni (ne i jedini) razlog, zbog koga sam digao ruke od programiranja pod Win. (:niklaus:)
windows.47 paki, -> #46, niklaus
­> Ali, stvar se komlikuje sa vremenom koje je potrebno Win-u ­> da učita Help fajl, odn. ubija volju. Šta znam...ja sam pre imao 286/12, tako da mi je ovo sasvim pristojna brzina :)
windows.48 peca.st, -> #46, niklaus
!-> Ali, stvar se komlikuje sa vremenom koje !-> je potrebno Win-u da učita Help fajl, !-> odn. ubija volju. Tačno. Ja sam se taman zagrejao da pređem na Win, uzeo TP4WIN, i kad sam pritisnuo ctrl+f1, a moj seagate na 286 zatrubeo i nastabio da trubi oxoxoxo, odmah sam odustao. (bar za sada) Peđa.
windows.49 niklaus, -> #48, peca.st
>! -> Ali, stvar se komlikuje sa vremenom koje >! -> je potrebno Win-u da učita Help fajl, >! -> odn. ubija volju. > > Tačno. Ja sam se taman zagrejao da pređem > na Win, uzeo TP4WIN, i kad sam pritisnuo > ctrl+f1, a moj seagate na 286 zatrubeo > i nastabio da trubi oxoxoxo, odmah sam > odustao. (bar za sada) Ma puštaj prozore nek' se lome (; - preporučujem ti da počneš da se igraš C-om, a malo kasnije sa GNU C-om. Puno kvalitetnih programa i biblioteka napravljenih od strane pametnih ljudi - a sve je džabe. (: CU u GNU svetu... (:niklaus:)
windows.50 .bale., -> #49, niklaus
> Ma puštaj prozore nek' se lome (; - preporučujem ti da počneš > da se igraš C-om, a malo kasnije sa GNU C-om. Puno kvalitetnih > programa i biblioteka napravljenih od strane pametnih ljudi - a sve je > džabe. (: > > CU u GNU svetu... > (:niklaus:) To, care! Treba pobiti sve što ima veze sa MS Windowsima, pokvariće nam omladinu! (Al' sam postao vadikalan u poslednje vveme - ovo mi je već drugi poziv na linč, prvi je bio u vezi sa tetkicama što uništavaju kompjutere van radnog vremena...) Unix, GNU, Internet, Usenet... Ameri se time bave, a nas truju softverom Š klase.
windows.51 dr.grba, -> #48, peca.st
>> ctrl+f1, a moj seagate na 286 zatrubeo >> i nastabio da trubi oxoxoxo, odmah sam >> odustao. (bar za sada) Priznaj da nisi odmah odustao. Morao si sačekati da završi (;
windows.52 idesign, -> #44, asterix
I ja imam istih problema ali ne kod startovanja nego kod otvaranja i zatvaranja datoteka. Ako kažeš Close javlja grešku u OLE2.DLL a ako si uporan sa Ignore proći će i radiće kasnije bez ikakvih problema, bar ih ja nisam primetio. Inače sve to se dešava kada se otvara ili zatvara samo prva datoteka (slika), za sledeće se ponaša normalno. Inače problem je i sa Corelom ali on pride ima problema i sa nekim filterima za Import (ne sećeam se kojim) i ono što me je stvarno iznerviralo je kad mi ispomera neke objekte na ekranu ali ne onako kao što je to radila dvojka nego su odstupanja od nekoliko milimetara i to radi mnogo češće. Tako da se sada uveliko kajem što sam počeo da radim jedan veliki posao na njemu jer sam više vremena potrošio u vraćanju objekata na svoju poziciju nego što sam uštedeo koristeći nov interfejs i moćnije naredbe. Verujem da će se to ispraviti u nekim 4.00001 B verzijama a do tada... pozdrav ...Zlatan
windows.53 leka,
Imam problem kod Corel-a 4.0! :( Kada recimo nesto nacrtam i pokusam da smanjim on sve lepo uradi, ali nece da isto tako proporcionalno smanji i debljinu linije. Ako neko moze da mi pomogne bilo bi odlicno.Stvarno je HITNO! Pozdrav od Sase
windows.54 magician, -> #53, leka
­=> Imam problem kod Corel-a 4.0! :( Kada recimo nesto nacrtam i pokusam ­=> da smanjim on sve lepo uradi, ali nece da isto tako proporcionalno ­=> smanji i debljinu linije. Izaberi 'pero' (pretposlednja ikonica u toolbox-u) pa jos jednom 'pero' i dobićeš jedan dialog-box u kome možeš da definišeš različite karakteristike linije. Ono što tebe interesuje (trenutno :) je 'Scale with image'.
windows.55 oldtimer, -> #53, leka
> Imam problem kod Corel-a 4.0! :( Kada recimo nesto nacrtam i pokusam > da smanjim on sve lepo uradi, ali nece da isto tako proporcionalno > smanji i debljinu linije. Odeš na alat za debljinu i boju linija (perce), otvore se njegovi dugmići, klikneš opet na perce, otvori se prozor öOutline Penö i u donjem desnom uglu uključiš opciju öscale with imageö. Mora da giba. B) Miša
windows.56 adiklic,
Svojevremeno je Jtitov pisao o Windowsima EE za istočnoevropsko tržište, koji imaju ugradjene sve naše fontove, samo na nekim mestima nedostupnim na prvi pogled korišćenju. Objašnjava da se ti fontovi mogu editovanjem datoteke gdi.exe dovesti u opseg iz koga se mogu videti (ispod 255 acii kodnog broja) i koristiti u radu. Pošto su ti fontovi nemodifikovani, kvalitet im je bolji u svim rezolucijama, a posebno u većim. Pitanje glasi: Da li je moguće spuštanje naših slova tako napraviti da se spuste na kodne brojeve koji odgovaraju YUASCII standardu, što bi meni odgovaralo, jer su mi do sada svi tekstovi pisani u tom standardu ?
windows.57 ssokorac, -> #55, oldtimer
─┼┤ öOutline Penö i u Ja ovde vidim dva slova o sa dve tačke iznad. Kod .bale.tovih 'naglašavanja' vidim dva slova ž, dok kod madamova navodnici izgledaju kao PI :). Dakle, molim vas da koristite nešto standardnije :).
windows.60 todorp,
Pa ljudi zar ne vidite da je ovo pc.prog a ne pc.os??? U poslednje vreme sve je vise korisnickih pitanja u ovoj temi :(((((
windows.61 dsoskic, -> #57, ssokorac
> ─┼┤ đOutline Penđ i u > Ja ovde vidim dva slova o sa dve tačke iznad. Kod .bale.tovih A ja vidim umestonavodnika dva mala slova dj (đ) > PI :). Dakle, molim vas da koristite nešto standardnije :). Lepo bi bilo da se koriste normalni navodnici?
windows.62 dsoskic, -> #56, adiklic
> Da li je moguće spuštanje naših slova tako napraviti da se spuste na kodne > brojeve koji odgovaraju YUASCII standardu, što bi meni odgovaralo, jer su Normalna stvar, moguće je i sigurno da je to već neko uradio. Sorry ja ti ne mogu pomoći jer sam ih spustio na nemačke umlaute, koji mi skoro neće biti potrebni, a i lepo mi radi konverzija malih u velika slova. Verovatno bi mi lepo radila konverzija i da sam ih spustio na WIN EE kodove, al mi se žurilo pa nisam a sad me mrzi da ih pomeram.
windows.63 .bale., -> #61, dsoskic
> Lepo bi bilo da se koriste normalni navodnici? Bljak! ;-)))
windows.64 dr.grba, -> #57, ssokorac
>> PI :). Dakle, molim vas da koristite nešto standardnije :). Ja predlažem da pokušaju da koriste ASCII karakter 34 (dec). Taj liči na dva zareza blizu jedan drugom, malo gore, video sam neke da ga koriste.
windows.65 ndragan, -> #57, ssokorac
/ ─┼┤ öOutline Penö i u / Ja ovde vidim dva slova o sa dve tačke iznad. Kod .bale.tovih Ja ovde vidim najstandardnije veliko R ćirilicom.
windows.66 ilazarevic, -> #61, dsoskic
> Lepo bi bilo da se koriste normalni navodnici? Naravno :) Ja pobrljaveh pored Baletovih žž-ova... PS. Codename - yuscii ;)
windows.67 .bale., -> #66, ilazarevic
> Naravno :) Ja pobrljaveh pored Baletovih žž-ova... Tako piše ceo svet, šta ti ja mogu ;-)))
windows.68 ssokorac, -> #65, ndragan
─┼┤ Ja ovde vidim najstandardnije veliko R ćirilicom. Moram se složiti da je to najčešće korišćen znak za naglašavanje ;).
windows.69 dsoskic, -> #67, .bale.
> Tako piše ceo svet, šta ti ja mogu ;-))) ``ni ovo ni '' meni ne smeta, ali ono đđ je haos ;))
windows.70 v.nesic, -> #67, .bale.
> Tako piše ceo svet, šta ti ja mogu ;-))) Da promeniš YU kod ?
windows.71 .bale., -> #70, v.nesic
> Da promeniš YU kod ? Ne razumem, koristim Custom2.
windows.72 paki,
Kako da u TPW ispišem najobičniji tekst na ekran? Probao sam s funkcijom TextOut, ali mi je veoma odbojna (da ne kažem odvratna), jer moram da se petljam s raznim glupostima, kao što su pointeri i formatiranje teksta :( Treba mi samo neka naredba koja ima efekat kao u DOSu: GotoXY(x,y); write(s); Da li je moguće da ovako nešto ne postoji u Win? Da bih ispisao string, moram da pravim bafer za njega, zatim da ga upisujem u bafer i računam mu dužinu, što mi se čini apsolutno nepotrebno i komplikovano :(
windows.73 paki,
Mali problem: U TPW, u funkciji WndProc, dakle onoj koja prima sve poruke od Windowsa, deklarišem promenljive (npr.) x i y, i u obradi poruke WM_CREATE dodelim x i y neke vrednosti. Kako da ih sačuvam za 'buduća pokoljenja' :), tj. za buduće pozive funkcije WndProc, jer želim da ih koristim u okviru obrade poruke WM_PAINT? Mislim da se ovo u C-u označava sa 'static'.
windows.74 milos, -> #73, paki
jeste, u C-u je to static, a u TPW (joj majko) ne znam... ;)))
windows.75 niklaus, -> #72, paki
(:> Da li je moguće da ovako nešto ne postoji u Win? Da bih (:> ispisao string, moram da pravim bafer za njega, zatim da ga (:> upisujem u bafer i računam mu dužinu, što mi se čini (:> apsolutno nepotrebno i komplikovano :( Napravi inteligentnu proceduru tipa: Ispiši_taj_i_taj_tekst_tim_i_tim_fontom_poznate_dužine _sa_alignment-om_na_levo_ili_desno.... (:niklaus:) PS Napravi je dobro, i bićeš sebi zahvalan svaki put, kad je budeš upotrebio.
windows.77 milos, -> #72, paki
Pogledaj, Petzolda, ionako mi reče da si ga kupio, pa zar pored tolike knjižurine, ne možeš da rešiš ovako trivijalnu stvar. Rešenje ti je u funkciji DrawText koja, kako kaže Microsoft Windows Software Development Kit Programming Guide na strani 3-11 gde piše: strcpy(szText, "This text is being displayed with a single call to DrawText(). DrawText() isn't as fast as TextOut(), and iti is somewhere more constrained, but it provides numerous optional formatting features, such as the centering and line breaking used in this example."); DrawText(hDC /*display context (dobijaš ga sa GetDC)*/, szText, strlen(szText), &rcTextBox /*(pogledaj API SetRect)*/, DT_CENTER đ DT_EXTERNALLEADING đ DT_NOCLIP đ DT_NOPREFIX đ DT_WORDBREAK);
windows.78 .obj, -> #72, paki
> Probao sam s funkcijom TextOut, ali mi je veoma odbojna (da ne > kažem odvratna), jer moram da se petljam s raznim glupostima, kao > što su pointeri i formatiranje teksta :( Ili napravi neku *svoju* funkciju za ispis koja bi bila kao neki kompromis jednostavnosti i mogućnosti, ili probaj funkciju DrawText pošto je relativno jednostavna a ima gomilu mogućnosti (word wrap, centriranje itd). Primer: LPSTR lpstr = "Bla Bla"; DrawText(hdc, lpstr, lstrlen(lpstr), (LPRECT)&rect, // pravougaonik gde treba da ide tekst DT_CENTER + DT_NOPREFIX); // flegovi :) > Mislim da se ovo u C-u označava sa 'static'. Jes', npr. static int x :) Ou bi džej
windows.79 .obj, -> #78, .obj
>> U TPW... >> Mislim da se ovo u C-u označava sa 'static'. > > Jes', npr. static int x :) E što sam pametan :)) ... u paskalu (a TPW je kao paskal;) možeš jedino na napraviš globalnu promenljivu u glavnom bloku, pošto nešto kao static ne postoji. Ou bi džej
windows.80 paki, -> #75, niklaus
­> Napravi inteligentnu proceduru tipa: Nema problema, urađeno :)
windows.81 paki, -> #77, milos
­> Pogledaj, Petzolda, ionako mi reče da si ga kupio, pa zar pored tolike ­> knjižurine, ne možeš da rešiš ovako trivijalnu stvar. Rešenje ti je u ­> funkciji DrawText koja, kako kaže Microsoft Windows Software Development Pazi, funkcijom DrawText nemam skoro nikakvu kontrolu gde će se tekst ispisati, dakle, ne znam na kojoj X i Y poziciji, a to je upravo ono čega se ne bih odricao :) Rešenje je ipak da napravim svoju "kastom" :) funkciju.
windows.82 paki, -> #79, .obj
­> E što sam pametan :)) ... u paskalu (a TPW je kao paskal;) možeš jedino ­> na napraviš globalnu promenljivu u glavnom bloku, pošto nešto kao ­> static ne postoji. Šteta, ali nema veze, važno je da radi :)
windows.83 milos, -> #81, paki
Pa, ja ti lepo kažem da pogledaš objašnjenje API-ja SetRect, čiji jedan parametar prenosiš DrawText-u. Upravo SetRect će postaviti recrangle onde gde želiš da se ispiše text. Zato Help u RUKE!
windows.84 stosic,
Na koji nacin se izlaskom iz nekog programa, npr Write, moze izaci i iz Windows-a, a da se preskoci dijalog "Exit Windows"? Boban
windows.85 niklaus,
Pošto nikako ne mogu da se estim gde to videh, pitam Vas, moje uzdanice. (: "Kako se zvaše parametar iz WIN.INI za podešava proreda između ikonica?" Ako znate, navedite i ostale parametre za "šminkanje"... (: Uostalom, Windows upravo za to i služi, zar ne? (:niklaus:)
windows.86 sbrk, -> #85, niklaus
>> "Kako se zvaše parametar iz WIN.INI za podešava proreda između >> ikonica?" >> Ako znate, navedite i ostale parametre za "šminkanje"... (: ŠDesktopĆ Pattern=(None) Wallpaper=(None) GridGranularity=0 IconSpacing=72 TileWallPaper=0 IconTitleFaceName=Avalon IconTitleSize=10
windows.87 ppekovic, -> #85, niklaus
>> "Kako se zvaše parametar iz WIN.INI za podešava proreda između >> ikonica?" Što diraš win.ini kad možeš da odeš u Control Panel, pa Desktop i tamo podešavaš šta ti treba. Paya
windows.88 tales,
Jedan moj drugar se interesuje za TTF (YU) fontove. Ima li na SEZAMU nesto tog tipa (po direktorijumima nisam video)? POZDRAV
windows.89 cnenad, -> #87, ppekovic
ŁŁŁ Sto diras win.ini kad mozes da odes u Control Panel, ŁŁŁ pa "DOS JE MOJA PRVA LJUBAV, IAKO RADIM U WINDOWSIMA" ! :) Sta zna dete sta je WIN !?
windows.90 niklaus, -> #87, ppekovic
(:>>> "Kako se zvaše parametar iz WIN.INI za podešava proreda (:>>> između ikonica?" (:> (:> Što diraš win.ini kad možeš da odeš u Control Panel, (:> pa Desktop i tamo podešavaš šta ti treba. Sad se i ja pitam, što sam pitao. (; Znam da je negde bilo, al' zaboravih dal' u samim Windows-ima, ili negde među advanced opcijama (WIN & SYSTEM.INI). (:niklaus:)
windows.91 furlani,
Jel moze neko da mi objasni kako da uradim u Windows-u da kad se shellujem u dos da mi ostane 4dos? Pzodrav Ceda P.S.Znam da je vec objasnjavano ali ako moze neko malo da pojednostavi please ;)
windows.92 nboskovic, -> #91, furlani
*> Jel moze neko da mi objasni kako da uradim u Windows-u da *> kad se shellujem u dos da mi ostane 4dos? Staneš na ikonu i stisneš CTRL+ENTER> U tom prozoru koji se otvori se spominje command.com. E njega prepravi u 4dos.com i tvoj problem je rešen. (c) klap nikola
windows.94 ppekovic,
Skinuo sam Microsoft drajvere za Windows koje je zkehler poslao pre neki dan. Samo da naglasim ako je neko slučajno propustio to da pročita, da ovi drajveri neće raditi u 800x600x256 i 1024x768x256 ako na kartici nema 1M. Ja sam instaliran na mojoj Trident 8900 (512K) 800x600x16 drajver i sve radi bez problema, čak šta više primetno je ubrzanje u odnosu na Winspeed drajvere. Paya
windows.93 ppekovic, -> #91, furlani
>> Jel moze neko da mi objasni kako da uradim u Windows-u da kad se >> shellujem u dos da mi ostane 4dos? Startuješ PIF editor i edituješ dosprompt.pif. Umesto command.com staviš 4dos.com i odgovarajući path. Paya
windows.95 bulaja, -> #94, ppekovic
│Samo da naglasim ako je neko slucajno propustio to da procita, da │ovi drajveri nece raditi u 800x600x256 i 1024x768x256 ako na │kartici nema 1M. └─── Video sam da su to napisali, ali im ne verujem :) - za rezoluciju 800*600 u 256 boja potrebno je 468.75 Kb memorije, sto znaci da bi trebalo da stane u 512 K. Provericemo :).
windows.96 milan, -> #94, ppekovic
> Ja sam instaliran na mojoj Trident 8900 (512K) 800x600x16 > drajver i sve radi bez problema, čak šta više primetno je ubrzanje > u odnosu na Winspeed drajvere. Ali je primetno i "uružnjavanje" boja. Očigledno (bar za ET4000 koji ja imam) kada se stave ovi ubrzavajući drajveri (ovi ili ET400 turbo) boje postanu nekako drečave. U čemu je fazon? Pl poz M
windows.97 paki, -> #95, bulaja
­> Video sam da su to napisali, ali im ne verujem :) - za rezoluciju ­> 800*600 u 256 boja potrebno je 468.75 Kb memorije, sto znaci da bi ­> trebalo da stane u 512 K. Provericemo :). Jes', i meni je čudno, jer ne vidim nikakav razlog zašto ne bi radilo sa 512k kada sadašnji drajveri sasvim fino rade.
windows.98 dcolak, -> #97, paki
│ Jes', i meni je čudno, jer ne vidim nikakav razlog zašto ne bi │ radilo sa 512k kada sadašnji drajveri sasvim fino rade. Pretpostavka: Onih drugih 512K koristi kao Video Cache, zato je i grafika brža sa tim drajverima ;) Sledge DAMMIR!
windows.100 paki,
Kako da u Resource WorkShopu u projekat ubacim fajl sa svojim identifikatorima? Probao sam sa 'Add to project', ali mi se ne pruža opcija '.PAS', '.H', ili bilo šta slično. Da nije možda 'user'? Ako jeste, u kom formatu treba da bude moj fajl da bi sarađivao sa WorkShopom?
windows.99 paki,
Evo jednog pitanja: Kako da u okviru obrade WM_SIZE poruke, u zavisnosti od veličine glavnog prozora, promenim i veličinu child prozora. Probao sam sa sledećim: ----- var hwndInTerm: HWnd; function WndProc(Window: HWnd; Message, ...):longint; export; var ClRect : TRect; begin ... WndProc := 0; case Message of WM_SIZE: begin GetClientRect(Window, ClRect); MoveWindow(hWndInTerm, ClRect.left, ClRect.top, ClRect.right-ClRect.left, ClRect.bottom div 2, TRUE); end; end; ... end; procedure WinMain; var ClRect : TRect; begin ... GetClientRect (Window, ClRect); hwndInTerm:=CreateWindow(AppName,'Input', WS_CHILD or WS_VISIBLE or WS_BORDER or WS_THICKFRAME or WS_CAPTION, ClRect.left, ClRect.top, ClRect.right, ClRect.bottom div 4, Window, ID_INTERM, hInstance, nil); ... end; ----- (naravno, ovo su samo najvažniji detalji iz programa), ali... Program se tako temeljno zaglavi da pomaže samo CtrlAltDel i njegovo zatvaranje (Win kaže da je prestao da se odaziva). U čemu je štos?
windows.101 .obj, -> #99, paki
> Kako da u okviru obrade WM_SIZE poruke, u zavisnosti od veličine > glavnog prozora, promenim i veličinu child prozora. Probao sam sa > sledećim: Koliko me oči služe :), nisam primetio ni jednu grešku u onom delu programa koji si poslao. Zato, mislim da je greška negde drugde, pre svega zato što se program zaglupi. Iz iskustva znam da u tom slučaju najviše problema prave čuvene funkcije GetDC/ReleaseDC i SelectObject (eventualno BeginPaint/EndPaint). Kod ovog prvog, ne sme se zaboraviti ReleaseDC jer Windows ima ograničen broj DC-ova na raspolaganju i kada se taj keš napuni uzastopnim pozivima GetDC-a, program blokira. Zato, proveri npr. ovakve situacije: hdc = GetDC(hWnd); NacrtajTortu(hWnd, hdc); // bla, bla, bla... Znači, ovde je zaboravljeno jedno ReleaseDC na kraju. BTW, GetDC je relativno spora funkcija i nikad je ne treba stavljati u telo neke petlje. SelectObject je još gori po pitanju "podmuklosti". On ne blokira odma', već malo po malo krade Windowsu resurse sve dok odjednom nijedan program neće da radi ili se Windows ponaša čudno. Ovaj problem se najlakše prepozna na sledeći način: startuje se Program Manager i iz About dijaloga se vidi koliko ima slobodnih resursa, npr 90%. Zatim startujem program i nešto drndam u njemu izvesno vreme i na kraju ga zatvorim. Ako posle toga resursi budu ispod 90%, najverovatnije da je u programu neki bag sa SelectObject. U ovom slučaju, možda je i od veće koristi probati program Hot Line (ima ga i na Sezamu). On, naime, hvata bagove u programima. Iznenadio sam se kada sam primetio da neki prilično poznati i veliki programi vrve od bagova pri pozivima Windows API funkcija. Npr. Ami Pro. Da još pomenem zašto se uopšte javljaju bagovi u vezi sa SelectObject funkcijom. Za svaki DC je moguće postaviti kao aktivne neke objekte, npr. font, brush. U jednom trenutku može biti aktivan samo jedan npr. font, i njime se vrše, u ovom slučaju, ispisivanja teksta. Sad', vrlo bitna stvar je da se uvek mora vratiti stanje pre upotrebe SelectObject-a. To izgleda otprilike ovako: hOldObject = SelectObject(hVelikiFont); // vraća ranije ExtTextOut... itd. // aktivni objekat SelectObject(hOldObject); Problemi nastaju ako se "zaboravi" ova poslednja linija. Toliko.
windows.102 paki, -> #101, .obj
­> Koliko me oči služe :), nisam primetio ni jednu grešku u onom delu ­> programa koji si poslao. Zato, mislim da je greška negde drugde, Greška je u ovom delu programa: ----- WM_SIZE: begin ==> hWndInTerm:=GetWindow(Window, GW_CHILD); GetWindowRect(Window, ClRect); MoveWindow(hWndInTerm, ClRect.left, ClRect.top, ClRect.right-ClRect.left, ClRect.bottom div 4, TRUE); Exit; end; ----- Kada sam dodao red označen strelicom, sve je proradilo (nije ni sada baš kako treba, ali se barem ne zablokira). Promenljiva hWndInRect je deklarisana kao globalna, pa me to jedino navodi na pomisao da se handle menja u toku izvršavanja. Da li se pre svakog obraćanja child prozoru mora dobiti njegov handle sa GetWindow ili nečim sličnim? I kako se pravilno dobija handle određenog prozora? Ovako sam samo dobio handle prvog child prozora, koji se menja u toku programa (jer imam 2 child prozora, pa čas dobijam handle jednog, a čas drugog), što mi ne odgovara. ­> ovom slučaju, možda je i od veće koristi probati program Hot Line ­> (ima ga i na Sezamu). On, naime, hvata bagove u programima. Probao sam s njim, i tako sam i ustanovio da je bug u pogrešnom (invalidnom ;) hendlu. I sada mi javlja neke silne greške i upozorenja, ali bar program radi. Nažalost, i dalje ne OK. Od velike koristi bi mi bio neki kratak program koji ilustruje pravilnu upotrebu child prozora i MoveWindowa na njima (npr. kada glavni prozor promeni veličinu, i child se prilagodi), jer ovi #%(*$!# primeri koji se dobijaju uz TPW i BP su pisani s objektima, koje ja ič ne volim, a u Petzoldu ;) se ovakva stvar ne nalazi (MoveWindow se pominje samo na jednom mestu). Inače, da vam preporučim BP, jer se TPW 'ladno zablokirao kada sam pokrenuo onu moju kupusariju, dok je BP prekinuo program i pomenuo mi 'grešku 202'.
windows.103 .obj, -> #102, paki
> Kada sam dodao red označen strelicom, sve je proradilo (nije > ni sada baš kako treba, ali se barem ne zablokira). Ne vidim razlog da se mučiš sa tim GetWindow. CreateWindow pri kreiranju child prozora vrati lepo njegov (childov) handle i njega lepo upišeš u neku globalnu promenljivu i gotovo. > Promenljiva > hWndInRect je deklarisana kao globalna, pa me to jedino navodi na > pomisao da se handle menja u toku izvršavanja. Sigurno se ne menja, zbog toga su i izmišljeni handle-ovi. Dakle, kad jednom npr. otvoriš prozor, on će *uvek* imati isti handle. To važi i za sve ostalo, dakle font-, brush-, pen-, DC-, ... -handleove. > pomisao da se handle menja u toku izvršavanja. Da li se pre > svakog obraćanja child prozoru mora dobiti njegov handle sa > GetWindow ili nečim sličnim? Taman posla! :) To bi bila prava robija. Sistem je prost: pri kreiranju prozora (CreateWindow, CreateWindowEx) dobiješ njegov handle, zapišeš ga u neku glob. promenljivu i kasnije ga UVEK možeš koristiti. Jedino ako ne zatvoriš prozor, naravno. :) > Probao sam s njim, i tako sam i ustanovio da je bug u > pogrešnom (invalidnom ;) hendlu. I sada mi javlja neke silne > greške i upozorenja, ali bar program radi. Nažalost, i dalje ne > OK. Potrudi se da provališ u čemu si pogrešio, jer će ti program inače biti jako nestabilan, u onom najgorem smislu - nikad ne znaš kad će da pukne. > Od velike koristi bi mi bio neki kratak program koji > ilustruje pravilnu upotrebu child prozora i MoveWindowa na njima > (npr. kada glavni prozor promeni veličinu, i child se prilagodi), Evo uz ovu poruku je jedan mali C modul, mislim da će ti biti jasno. Kad smo kod tih zavrzlama o handle-ovima, da pomenem jedan problem koji često pravi velike glavobolje početnicima. Program: HWND hProzor; WinMain(...) ( hProzor = CreateWindow(...); ) MainWndProc(HWND hWnd, ...) ( switch(message) ( case WM_CREATE: NeštoUradiSaProzorom(hProzor); ) !!!!!-----------treba ..Prozorom(hWnd); ) Stvar je što se poruka WM_CREATE pošalje pre nego što se izvrši dodeljivanje kod CreateWindow (!) pa zato na mestu gde su uskličnici promenljiva hProzor uopšte nije inicijalizovana!! Zato uvek treba paziti kojim redom se šta inicijalizuje i šta u nekom trenutku sme ili ne sme da se koristi. :) Ali, sve je to vrlo logično. chat.c
windows.104 paki, -> #103, .obj
­> Sigurno se ne menja, zbog toga su i izmišljeni handle-ovi. Dakle, kad ­> jednom npr. otvoriš prozor, on će *uvek* imati isti handle. To važi i ­> za sve ostalo, dakle font-, brush-, pen-, DC-, ... -handleove. OK, i mislio sam da je tako, ali me ovo malo pokolebalo. ­> Potrudi se da provališ u čemu si pogrešio, jer će ti program inače biti ­> jako nestabilan, u onom najgorem smislu - nikad ne znaš kad će da ­> pukne. Narafski, sigurno je greška trivijalna :) ­> Evo uz ovu poruku je jedan mali C modul, mislim da će ti biti jasno. Hvala, probaću.
windows.105 dragann,
Potreban mi je exe programa opisanog u R76 Tehnike programiranja Popunjavanje formulara. HvaÚ]la Dragoljub