windows.1ficus,
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.2vitez.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.3ficus,
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.5jevta,
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.6milos,
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.7bduke,
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.9nkbog,
> 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.10milos,
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.12nkbog,
> 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.13paki,
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,
> 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.15djelovic,
> 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.16paki,
> 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.17paki,
> 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.19milos,
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.20bulaja,
│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.21asterix,
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,
> 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.23paki,
> 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.24spantic,
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.25jerry,
> 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,
> 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,
> 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.28viktor,
> 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.29paki,
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.30wizard,
> 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.31nboskovic,
*> 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.32.obj,
> 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.33.obj,
> 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.34milos,
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.35spantic,
> 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,
> 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.37viktor,
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.38wizard,
> *> 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.39paki,
> 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.40paki,
> 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.41ssokorac,
─┼┤ 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.42nboskovic,
*> 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.43wizard,
> 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.44asterix,
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.46niklaus,
> 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.47paki,
> 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.48peca.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)
Peđa.
windows.49niklaus,
>! -> 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.,
> 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.51dr.grba,
>> 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.52idesign,
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.53leka,
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.54magician,
=> 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.55oldtimer,
> 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.56adiklic,
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.57ssokorac,
─┼┤ ö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.60todorp,
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.61dsoskic,
> ─┼┤ đ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.62dsoskic,
> 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.,
> Lepo bi bilo da se koriste normalni navodnici?
Bljak! ;-)))
windows.64dr.grba,
>> 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.65ndragan,
/ ─┼┤ ö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.66ilazarevic,
> Lepo bi bilo da se koriste normalni navodnici?
Naravno :) Ja pobrljaveh pored Baletovih žž-ova...
PS. Codename - yuscii ;)
windows.67.bale.,
> Naravno :) Ja pobrljaveh pored Baletovih žž-ova...
Tako piše ceo svet, šta ti ja mogu ;-)))
windows.68ssokorac,
─┼┤ Ja ovde vidim najstandardnije veliko R ćirilicom.
Moram se složiti da je to najčešće korišćen znak za naglašavanje ;).
windows.69dsoskic,
> Tako piše ceo svet, šta ti ja mogu ;-)))
``ni ovo ni '' meni ne smeta, ali ono đđ je haos ;))
windows.70v.nesic,
> Tako piše ceo svet, šta ti ja mogu ;-)))
Da promeniš YU kod ?
windows.71.bale.,
> Da promeniš YU kod ?
Ne razumem, koristim Custom2.
windows.72paki,
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.73paki,
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.74milos,
jeste, u C-u je to static, a u TPW (joj majko) ne znam... ;)))
windows.75niklaus,
(:> 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.77milos,
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,
> 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,
>> 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.80paki,
> Napravi inteligentnu proceduru tipa:
Nema problema, urađeno :)
windows.81paki,
> 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.82paki,
> 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.83milos,
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.84stosic,
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.85niklaus,
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.86sbrk,
>> "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.87ppekovic,
>> "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.88tales,
Jedan moj drugar se interesuje za TTF (YU) fontove. Ima li na
SEZAMU nesto tog tipa (po direktorijumima nisam video)?
POZDRAV
windows.89cnenad,
ŁŁŁ 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.90niklaus,
(:>>> "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.91furlani,
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.92nboskovic,
*> 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.93ppekovic,
>> 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.94ppekovic,
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.95bulaja,
│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.96milan,
> 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.97paki,
> 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.98dcolak,
│ 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.99paki,
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.100paki,
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.101.obj,
> 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.102paki,
> 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,
> 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.cwindows.104paki,
> 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.105dragann,
Potreban mi je exe programa opisanog u R76 Tehnike programiranja
Popunjavanje formulara. HvaÚ]la
Dragoljub
windows.106furlani,
Imam pitanje jedno zasto nemogu u win 3.1 da instaliram
drajver za sb 1.5 nego moram sb 1.0 probao sam i kod
ortaka koji ima sb 2.0 i nece.
Zasto?
windows.107furlani,
Imam jos jedno pitanje zaboravih da napisem.Koristim
kao shell PC Tools 7.0 i malo sam se igrao i stavio
sifru to je sve ok kad sam ponovo startovao pitao me
za sifru ja otkucao i sve ok.Pa sam hteo da izbrisem
i izbrisao je i ponovo startova windows i pitao me za
sifru naravno sifra je ostala ista kao i ranije.Sve sam
lepo uradio izbrisao je i normalno izasao ajde ako neko
zna pa da mi kaze sta da radim
Pozdrav Ceda
windows.108wizard,
> Imam pitanje jedno zasto nemogu u win 3.1 da instaliram
> drajver za sb 1.5 nego moram sb 1.0 probao sam i kod
> ortaka koji ima sb 2.0 i nece.
> Zasto?
Probaj up-date drajvere. Najsvežiji koje znam/imam su iz marta '93.
windows.109paki,
> Imam jos jedno pitanje zaboravih da napisem.Koristim
Ej, 'ajde pređite u PC.USER, 'leba vam.
windows.110.obj,
Treba mi funkcija kojoj ću zadati LPSTR tekst, HDC hdc, int širina i
koja će mi na osnovu tekućeg fonta izračunati koliko se karaktera u
stringu <tekst> uklapa u navedenu <širinu> u tačkama (na tom DC-u). Ne
mogu nigde na nađem funkciju koja bi mi odgovarala. Negde sam bio
pročitao da ta f-ja postoji u Windows 3.1 i da se zove GetTextExtentEx,
ali takve nema.
windows.111peca.st,
!-> Ej, 'ajde pređite u PC.USER, 'leba vam.
Šta je paki, ne daš da ti uzurpiraju temu, a? ;))
Peđa.
windows.112furlani,
> Ej, 'ajde predite u PC.USER, 'leba vam.
Dobro ako ti tako kazes ali samo mi obrazlozi zasto?
Pozdrav Ceda
windows.113ognjan,
Nija valjda da jos nije rjeseno pitanje YU slova pod WIN3.1 ???
U windows\util diru nema nista na tu temu :(
Ogy.
windows.115paki,
> Šta je paki, ne daš da ti uzurpiraju temu, a? ;))
Ma ne, nego kad se budem raspisao njihove poruke se neće ni
primetiti ;)
windows.116paki,
>> Ej, 'ajde predite u PC.USER, 'leba vam.
>
> Dobro ako ti tako kazes ali samo mi obrazlozi zasto?
Zato što je ovo konferencija posvećena programiranju ('PROG',
ring any bells? :), a PC.USER se bavi korisničkom stranom
kompjutera (i to PC :). Možete i u PC.UTIL, ne pravim pitanje,
ali se udomite negde :)
Uostalom, u reklami za PC.PROG stoji da je ovo konferencija sa
najmanje šuma :)
windows.117paki,
> > 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 :)
Provalio sam, i bila je trivijalna (korišćenje hendlova koji još
nisu postavljeni na prave vrednosti). Onaj HotLine mi je spasao
život - topla preporuka.
windows.118spantic,
Povodom video kartica i drajvera.
Da li je neko uspeo da instalira nove SVGA drajvere za TRIDENT 8900,
pogotovo u rezoluciji 800*600, 256 boja a da mu se pri startovanju
maksimalizovane DOS aplikacije ekran ne zbrčka? I kako?
I odmah, ima li neko drajvere za TRIDENT 8900 za tu rezoluciju koji
rade?
windows.119milan,
> Da li je neko uspeo da instalira nove SVGA drajvere za TRIDENT 8900,
> pogotovo u rezoluciji 800*600, 256 boja a da mu se pri startovanju
> maksimalizovane DOS aplikacije ekran ne zbrčka? I kako?
Nemoj da staviš ANSI drajver za DOS u CONFIG.SYS i radiće
normalno. To je bar moje (istina na samo jednom računaru :)))
iskustvo "popravke" ovog problema.
Pl poz M
windows.120danilo,
- Koje sve fontove WIN koristi za sistemske potrebe?
oemfonts.fon= ?
fixedfon.fon= ?
fonts.fon= ?
icontitlefacename= ?
woafont= ?
EGA80.FON= ?
EGA40.FON= ?
CGA80.FON= ?
CGA40.FON= ?
- Koji font Win koristi za ispisivanje naslova ikona, ali ne kada su programi
minimizirani na ikonu (tu koristi font definisan u icontitlefacename=), već
ispod ikone programa u prozoru grupe u kojoj je instaliran.
- Takodje, šta znači kada se u bootlog.txt ispiše sledeće?
LoadStart = GDI.EXE
LoadStart = FONTS.FON
LoadSuccess = FONTS.FON
LoadStart = yvgafix.fon
LoadSuccess = yvgafix.fon
LoadStart = OEMFONTS.FON
LoadSuccess = OEMFONTS.FON
LoadSuccess = GDI.EXE
LoadStart = USER.EXE
Šta radi taj GDI.EXE (jedino kod njegovog učitavanja ima još nekih radnji
izmedju poruke da je učitavanje pokrenuto i uspešno završeno)? Koji su to
fontovi FONTS.FON i OEMFONTS.FON?
Ako ima neko voljan da podrobnije objasni, mislim da bi bilo interesantno za
širi krug.
windows.121kenza,
(;>> Ej, 'ajde predite u PC.USER, 'leba vam.
(;> Dobro ako ti tako kazes ali samo mi obrazlozi zasto?
Protivurecis Pakiju The Windows Programeru ? ;)
windows.122jtitov,
> Nija valjda da jos nije rjeseno pitanje YU slova pod WIN3.1 ???
Reseno je odavno :). Potrazi neku od mojih poruka o ovoj conf/temi. Radi
se o bezopasnom patch-u gdi.exe-a.
windows.123peca.st,
!-> Ako ima neko voljan da podrobnije
!-> objasni, mislim da bi bilo interesantno
!-> za širi krug.
A bilo bi još interesantnije za neku drugu temu.
Pliiiiiiz, oće li se ove (uključujući i ovu moju) poruke
brisati već jednom?
Peđa.
windows.124pbojan,
Da nema neko na pozajmicu Petzoldovu knizicu? Na samo par dana, please?
windows.125paki,
Kako bih pomoću SendMessage mogao da saznam liniju u kojoj se
trenutno nalazi kursor (tj. caret) u child prozoru klase Edit?
Pregledao sam sve EM_xxx poruke, ali nema one koja mi treba.
windows.126danilo,
> A bilo bi još interesantnije za neku drugu temu.
Ako već nisi voljan da pomogneš i odgovoriš na postavljeno pitanje budi barem
tolerantan. Koliko shvatam problematiku kojom se bavi konferencija PC.PROG ovo
pitanje je upravo iz te oblasti.
I još nešto. Od šuma koji su tvoje poruke u abnormalnim količinama unosile u
sistem Sezam se dugo nije mogao normalno pratiti. O tome rečito govori i broj
opomena i Ignore-a koje si dobio u prethodnom periodu. Zato molim te pusti da
ozbiljan čovek postavi ozbiljno pitanje i ne pleti se u ono u šta se ne
razumeš.
Zamolio bih još jednom da neko ko zna napiše koje sve fontove WIN3.1. koristi
za sistemske potrebe.
Pozdrav, Danilo
windows.127peca.st,
!-> Ako već nisi voljan da pomogneš i
!-> odgovoriš na postavljeno pitanje budi
!-> barem tolerantan. Koliko shvatam
!-> problematiku kojom se bavi konferencija
!-> PC.PROG ovo pitanje je upravo iz te
!-> oblasti.
Na ovo odgovaram ovde, ostatak u mail.
Instaliranje fontova i manipulacija njima baš i nemaju preterane veze sa
programiranjem, a postoje konferencije gde bi to pitanje mnogo bolje
pristajalo. Onako sam reagovao zato što je izgleda postala praksa da se
u ovu temu piše o samim windowsima a ne o programiranju pod njima.
Peđa.
windows.130paki,
> Kako bih pomoću SendMessage mogao da saznam liniju u kojoj se
> trenutno nalazi kursor (tj. caret) u child prozoru klase Edit?
> Pregledao sam sve EM_xxx poruke, ali nema one koja mi treba.
Našao sam jednu:
len:=SendMessage(hwndEdit, EM_GETLINE, wLine, lpszBuffer);
i kaže se 'A wLine value of -1 returns the offset of the line
containing the cursor', ali wLine je word. Kako je moguće da word
bude -1?
Probao sam sa castingom (da li se to tako kaže), i stavio
wLine:=word(-1) (što je jednako sa wLine:=65535), ali se dobije
samo prazan string (ako je npr. wLine=0, sasvim se normalno
dobije prva linija texta). Da li postoji neka konstanta ili nešto
slično što treba staviti umesto wParam?
windows.134.obj,
Vidi poruku EM_GETLINEFROMCHAR, wParam -1.
windows.135furlani,
> ***** Ponistio moderator *****
Ako sme da se zna zasto je moderator ponistio ovoliki
broj poruka?
Pozdrav Ceda
windows.136djelovic,
> Ako sme da se zna zasto je moderator ponistio ovoliki
> broj poruka?
Zato što nemaju nikakve veze sa programiranjem, već spadaju u
PC.OS. Nekoliko poruka van teme nikada ne smeta, ali ovo je već postala
epidemija :-).
windows.138paki,
> Vidi poruku EM_GETLINEFROMCHAR, wParam -1.
OK, sad šljaka. A kako da, prilikom obrade EN_CHANGE poruke,
saznam da li je korisnik pritisnuo određeni taster (konkretno,
ENTER) i tada uradim nešto s tom linijom?
P.S. Izvinite na ovolikom broju pitanja. Ova EDIT klasa mi zadaje
više problema nego što sam očekivao.
windows.139mnikolic,
Jel' zna neko zašto se kod Turbo Debuggera za Windows, verzija koja
ide uz Borland C++ v2.0 javlja greška "Can't load WINDEBUG.DLL"? Jel' može da
bude nekompatibilnost sa Win 3.1 CEE ili je nešto drugo?
windows.140.obj,
> OK, sad šljaka. A kako da, prilikom obrade EN_CHANGE poruke,
> saznam da li je korisnik pritisnuo određeni taster (konkretno,
> ENTER) i tada uradim nešto s tom linijom?
Paki legendo, samo pošalju poruku EM_GETLINECOUNT, i ako je vraćena
vrednost veća od one koju si očitao "prošli put", e to znači da je tvoj
genijalac ukucao nešto u edit i pritis'o Enter.
> P.S. Izvinite na ovolikom broju pitanja. Ova EDIT klasa mi zadaje
> više problema nego što sam očekivao.
Ma nije ni čudo. žike u Majkrosoftu su zaboravili da dodaju barem još
desetak neophodnih EM_xxx i EN_xxx poruka, verovatno su u to vreme
žurili na odbojku, ...
windows.141.obj,
> Jel' zna neko zašto se kod Turbo Debuggera za Windows, verzija
> koja ide uz Borland C++ v2.0 javlja greška "Can't load
> WINDEBUG.DLL"? Jel' može da bude nekompatibilnost sa Win 3.1 CEE
> ili je nešto drugo?
Ili nabavi TDW iz BC++W 3.1 ;) ili uzmi jedan patch koji je Skerl
jednom ostavio u PC.OS.X:windows. Nekompatibilnost se ogleda ;) u
tome što je TDW tako životinjski napisan da hoće da radi samo na
verziji Windowsa na kojoj su ga Borlandovci isprobavali. ;)
windows.142spantic,
Upravo sam video da mi je poruka 4.133 obrisana. Pošto
se stvarno ne sećam šta je bilo u njoj, hajde neka mi
moderator objasni zašto? Ako je arhiva bila uz nju onda
dolazi sa ftp-a za Windows i nije komercijalan proizvod.
windows.143djelovic,
> Upravo sam video da mi je poruka 4.133 obrisana. Pošto se stvarno ne sećam
> šta je bilo u njoj, hajde neka mi moderator objasni zašto?
Zato što u njoj svečano izjavljuješ da koristiš 4DOS, umesto da
pišeš o programiranju :).
windows.144paki,
> Paki legendo, samo pošalju poruku EM_GETLINECOUNT, i ako je vraćena
Moram priznati da mi mozak u zadnje vreme slabo radi. Loša
cirkulacija, šta li? :) Hvala. Posle malo čačkanja, šljaka kako
treba.
> Ma nije ni čudo. žike u Majkrosoftu su zaboravili da dodaju barem još
> desetak neophodnih EM_xxx i EN_xxx poruka, verovatno su u to vreme
> žurili na odbojku, ...
E vala baš. :( Mada, kad bolje razmislim, ovako je možda bolje,
ipak i programer mora nešto da radi; evo, ja sam se toliko
razmazio da sam prestao i da razmišljam (zlobnici bi rekli da
nisam ni počinjao ;).
Nego, lepa vest za vas :) Izgleda da sam apsolvirao Edit klasu,
pa vas time više neću gušiti (nadam se bar).
windows.147skerl,
│ ide uz Borland C++ v2.0 javlja greska "Can't load WINDEBUG.DLL"?
└────
tdwin31.zip uz poruku 4.76 iz PC.OS.2 konferencije bi
trebalo da res tvoj problem.
Pozdrav,
Skerl.
windows.148i.a.n.,
>>> koja ide uz Borland C++ v2.0 javlja greška "Can't load
>>> WINDEBUG.DLL"? Jel' može da bude nekompatibilnost sa Win 3.1 CEE
>>
>> Ili nabavi TDW iz BC++W 3.1 ;) ili uzmi jedan patch koji je Skerl
>> jednom ostavio u PC.OS.X:windows. Nekompatibilnost se ogleda ;) u
Bolje ovo prvo (noviji TDW), jer a) manje se zaglavljuje, i b) ima
(bar) jednu novost koja ume dobro da dođe, a to je lista selektora na
globalnom heap-u, pomoću koje očas možeš da pregledaš sadržaj učitanog
segmenta.
windows.149spantic,
> Zato što u njoj svečano izjavljuješ da koristiš 4DOS, umesto da
> pišeš o programiranju :).
Hvala na objašnjenju :) Hajde da se iskupim uz ovu poruku
idu FAQ o Windows-ima, sa aspekta korisnika, i sa aspekta
programera.
winfaq.zipwindows.150mnikolic,
>> tdwin31.zip uz poruku 4.76 iz PC.OS.2 konferencije bi
>> trebalo da res tvoj problem.
Već mi je .obj ukazao na to. Danke obojici :)
windows.151paki,
> > Paki legendo, samo pošalju poruku EM_GETLINECOUNT, i ako je vraćena
>
> cirkulacija, šta li? :) Hvala. Posle malo čačkanja, šljaka kako
> treba.
I dalje mi se čini da je ovo malo "sirotinjsko" rešenje (npr. šta
ako se koristi Cut/Paste?), pa sam zato malo čačkao po literaturi
(tj. po Helpu, sva literatura mi je za 3.0) i našao stil
(specifičan za Win 3.1) ES_WANTRETURN za koji se kaže da ne
izvršava akciju definisanu s ENTER, već ubaci ENTER u bafer. Može
li se ovo iskoristiti?
windows.152.obj,
> I dalje mi se čini da je ovo malo "sirotinjsko" rešenje (npr. šta
> ako se koristi Cut/Paste?), pa sam zato malo čačkao po literaturi
Pa sad, rešenje bi se moglo nazvati i "sirotinjskim" (mada, kada malo
bolje razmislim, reči "skrnavo" ili "nikakvo" bi bile ubedljivije), ali
je samo u pitanju šta tebi treba. Šta treba da se desi ako korisnik
pritisne Shift-Ins (Paste)? Ako treba da se obradi i to što je u
Clipboardu, onda ćeš malo da se pomučiš. :) U principu, za toliko
specifične "slučajeve" se pravi sopstvena klasa, nezavisna od Edit-a.
Tu, jbg, imaš da se odereš. :)
> ES_WANTRETURN... Može li se ovo iskoristiti?
Uh, pažljivo pročitaj šta Holy Help kaže o tome. :)
windows.153paki,
> je samo u pitanju šta tebi treba. Šta treba da se desi ako korisnik
> pritisne Shift-Ins (Paste)? Ako treba da se obradi i to što je u
> Clipboardu, onda ćeš malo da se pomučiš. :) U principu, za toliko
Treba mi da sve radi najnormalnije, ali da _samo_ kada se
pritisne ENTER ja uradim nešto s tekućom linijom. Dakle,
Shift-Ins me ne zanima (tj. ne bi me zanimao da ne ubacuje par
redova u Edit prozor, pa se dužina texta promeni, a ja ne mogu da
razlikujem taj slučaj od slučaja kad je pritisnut ENTER. Dakle, u
tome je kvaka :).
>> ES_WANTRETURN... Može li se ovo iskoristiti?
>
> Uh, pažljivo pročitaj šta Holy Help kaže o tome. :)
Nemam nikakvu literaturu/help za Win 3.1 :( (ne pitajte kako).
Podatak o postojanju ovog stila sam izvukao iz helpa za Resource
Workshop. Zato me i zanima, može li ili ne?
windows.154cobra,
<> Zato što nemaju nikakve veze sa programiranjem, već spadaju u
<> PC.OS. Nekoliko poruka van teme nikada ne smeta, ali ovo je
<> već postala epidemija :-).
Zar ne bilo bolje da se te poruke prebace u drugu konferenciju?
(PC.OS, ...)
windows.155djelovic,
> Zar ne bilo bolje da se te poruke prebace u drugu konferenciju?
> (PC.OS, ...)
Naravno da bi!
Nažalost, moderatori nemaju privilegija da prebacuju poruke između
konferencija, to mogu samo SysAdmovi. Trenutno razmišljam da ovde otvorim temu
chat (ili tako nekako) za sve ovakve priče koje nisu za brisanje, ali ne
spadaju ni u neku stručnu temu.
(Nemojte sada svi da opalite ovde sa glasanjem za ili protiv ovog predloga.
Ako neko hoće da da svoj glas, neka to uradi meni na mail.)
windows.156spantic,
Uz poruku je sors Windows Unzipa 2.0 baziranog na Info Unzipu 5.0 i
plasiran kao freeware. Izvršna verzija je u PC.OS::WINDOWS.
wunz20sr.zipwindows.157spantic,
Uz poruku je HLP fajl za Windows koji zapravo predstavlja izdanje časopisa
za Visual Basic, tema za Windows je sada popunjenija, za DOS je još prazan.
Dopunjava se povremeno od priloga.
dbtips11.zipwindows.158furlani,
izvini sysadame ili moderatoru nemoj da ponistis ovo jer mi je vrlo vazno a u
pc.os.2 nemogu da stavim poruku.Treba mi program pod imenom hc31.exe koji
startuje programe sa extenzijom .dll
Pozdrav Ceda
windows.159spantic,
Uz poruku je tekst o programiranju u Visual Basicu, ASCII je. Ima
korisnih uputstava.
vb-tips.zipwindows.160.obj,
U raznim knjigama i helpovima možete da pročitate da Windows ne
podržava prozore veće od veličine desktopa (odn. celog ekrana). To nije
tačno. :) Na primer, pozovite funkciju MessageBox() sa 10-ak kilobajta
teksta i videćete (na primer, iz WinSight-a) da je prozor velik čitavih
500x8000 tačaka, što je definitivno veće od rezolucije većine ekrana. ;)
Jedino je pomeranje vidljivog dela prozora malo teže. :)
Kad smo već kod veličine prozora, da li ste znali da je moguće menjati
i veličinu desktopa? Međutim, obzirom da je u pitanju nelegalna (a osim
toga i nepotrebna) operacija, ponašanje zavisi od grafičkog drajvera.
Stvar se postiže jednostavnim
MoveWindow(GetDesktopWindow(), 0, 0, 10000, 10000, TRUE); ;)
windows.161dejanr,
>> U raznim knjigama i helpovima možete da pročitate da Windows ne
>> podržava prozore veće od veličine desktopa (odn. celog ekrana). To nije
>> tačno. :)
Ja sam to primetio i bez PC.PROG pristupa. Ako instaliraš 800*600 drajver
pa nešto izotvaraš, ponovo učitaš običan VGA drajver, a ono prozori veći
od ekrana. I ima da se naradiš dok sve vratiš "u okvire".
windows.162ognjen,
)-> Jedino je pomeranje vidljivog dela prozora malo teže. :)
Ide lako uz ovaj programčić! BigDesk fow Windows 3.0 (naravno,
radi i na 3.1 :) ....
ShareWare, of course :)
Pozdrav, Ognjen
windows.163ognjen,
)-> Ide lako uz ovaj programčić! BigDesk fow Windows 3.0
)-> (naravno, radi i na 3.1 :) ....
Ow, tek sad videh da FT nije uspeo... Stiže još jedanput!... :)
bigdesk.zipwindows.164bulaja,
│BigDesk fow Windows 3.0
└───
Nisi morao da se trudis :), to na Sezamu stoji vec godinama :).
R:\WINDOWS\WUTIL\*.*
----------------------
backdesk arj 97591 BigDesk/BackMenu - Win menu/desktop manager
windows.165jerry,
A gde je programcic?????
BTW, SDW mi i pored pku.pif pravi s*anja sa bazom!!! Uradio sam sve
po uputstvu.
windows.166spantic,
> R:\WINDOWS\WUTIL\*.*
> ----------------------
> backdesk arj 97591 BigDesk/BackMenu - Win menu/desktop manager
Kad smo već kod toga, ako vam tako nešto treba preporučujem
windows shell HP Dashboard. Isti vam omogućuje tri virtuelna
ekrana. Momentalan pristup dos vih resursa, trenutak pregled
zauzeća memorije i sat ( mada ja za te svrhe koristim Barclock )
etc.
Ja imam verziju 1.1z koja nije prava komercijalna. Ona prelaže
Upgrade na verziju 2.0 za zaista sitne pare ( ali avaj, za
Amere ) koju bih voleo da vidim.
Ova verzija kaže da je namenjema distribuiranju među članovima
mreže, a da nije dozvoljen UL na druge sisteme.
Inače zauzima u instalacionoj formi 1 DD 3.5" disketu, a u memoriji
300K.
windows.167cnenad,
ŁŁŁ backdesk arj 97591 BigDesk/BackMenu - Win menu/desktop
ŁŁŁ manager
backdesk zip 22123
Cek, otkuda razlika u velcini (jeste da je onaj ZIP a ovaj ARJ al ne moze biti
tolika razlika u kompresiji) ?
windows.168bulaja,
│Cek, otkuda razlika u velcini (jeste da je onaj ZIP a ovaj ARJ
│al ne moze biti tolika razlika u kompresiji) ?
└───
Verovatno je razlika u sadrzaju (dokumentacija i sl.:).
windows.169ognjen,
)-> Nisi morao da se trudis :), to na Sezamu stoji vec godinama :)
Ok! Onda preporuka svima da obavezno skinu... :)
windows.170spantic,
Uz poruku je program koji olakšava kreiranje HLP fajlova, rađen za Visual
Basic 3.0 . Zahteva VBRUN 3.0 za rad.
vbaha102.zipwindows.171spantic,
Update za Visual Basic 3.0
VBExtenders (tm)
Custom Control Sets for Microsoft Visual Basic
by
Sheridan Software Systems
65 Maxess Road
Melville, New York 11747
Voice: (516) 753-0985
Fax: (516) 753-3661
BBS: 2400 baud (516) 753-5452 9600 baud (516) 753-6510
================================================================
Release History for THREED.VBX from VB3 Professional
as of Version 3.0a, July 16, 1993
-------------------------------------------------
Version 3.0a:
============
1. Fixed GP Fault problem when unloading a form from the click
event of a control on the same form (applies to the 3D Checkbox,
3D Option Button, 3D Command Button and 3D GroupPush Button)
2. Fixed problem that occurred when unloading MDI child forms
that contained 3D Panels and/or 3D Frames. This problem occurred
infrequently and would cause either a GP Fault or the application
to 'hang'.
3. Fixed problem which caused focus to be improperly set when
attempting to use the .SetFocus method on a control from the
click event of a 3D Option Button that had been 'tabbed to' (as
opposed to 'clicked on' with the mouse)
4. Added HelpContextID property to the 3D Frame, which was
unintentionally left out in the 3.0 version.
5. Fixed GP Fault problem when unloading a form from the click
event of a 3D Checkbox that was triggered by the user pressing
the space bar instead of clicking with the mouse or entering
the control's accelerator key combination.
6. 3D Option Buttons and 3D Checkboxes no longer generate a
click event if their .Value property is set to its current
value (i.e., if the Value property of Check3d1 is currently = True,
then the statement Check3d1.Value = True will no longer generate a
click event)
7. Fixed a problem when showing a form modally from the click
event of a 3D Checkbox, Option button, Command button or GroupPush
button, which caused mouse input to be directed to the clicked
button after the form was shown (instead of directing mouse input
to the newly shown form).
Notes:
=====
1. 'Extra' double click events being generated by all
3D button controls are due to a behavioural change in the 3D
controls that were made for VB3 and not to a 'bug'. Versions
of the 3D controls prior to 3.0, incorporated 'anti-recursion'
logic to suppress click events that were generated by VB code
(i.e., by resetting the .Value property of the control) if there
was already a click event in progress for the control. Since
this behaviour differs from the standard VB controls, a change
was made for v3.0 to change the behaviour of the 3D buttons and
allow recursion.
If your application code relies on the earlier behaviour of the
buttons, the change may result in your apps acting differently.
In this case, you may need to set a static flag in your button's
click event that can be tested upon entry to the event to
determine if this is a recursive click triggered by .Value
property change made during a prior click. Here is some example
code:
Sub Some3DButton_Click ()
Static InClick as Integer
if InClick = False then
InClick = True
'Do click processing (might include setting .Value prop)
InClick = False
Exit Sub
End If
End Sub
Note again that this behaviour conforms to the operation of the
standard VB buttons and that you would have to include the same
code in a standard VB button as well, to guard against recursion.
threed.zipwindows.172i.a.n.,
Kako da dokonam da će prozor da se minimizuje u trenutku kad primam
WM_MOVE? Naime, hoću da mi se položaj prozora pamti u jednoj RECT
strukturi, koju posle zapisujem u INI.
Ako ažuriram strukturu svaki put kad primim WM_MOVE, ne valja, jer kod
minimizacije mi prvo pošalje tu poruku sa koordinatama mesta gde će
iscrtati ikonu, pa ako izađem iz programa dok je minimizovan, sledeći
put ga dobijam tamo. WM_SIZE mi nije problem, jer mogu da proverim
wParam == SIZEICONIC.
Pokušao sam sa PeekMessage da hvatam WM_PAINTICON, ali to radi samo
ako je prostor za ikone slobodan. Ukoliko je na desktopu neka
aplikacija koja taj deo pokriva, WM_PAINTICON se uopšte ne šalje.
windows.173dejanr,
Bejzik programiranje pod Windows-om. CA-Realizer 2.0 ili Visual Basic 3.0?
NOVOSTI/microb 4.615.
windows.175oldtimer,
> Evo malo simpaticnih .wav -ova za Windows-e.
žuj malo :)) 250k Hvala u svakom slučaju, skinućemo.
B) Miša
windows.176spantic,
Još jedan iz serije alata za pravljenje HLP fajlova.
Copyright 1992-93 Stefan Olson. All Rights Reserved.
HELP WRITER'S ASSISTANT FOR WINDOWS
Version 1.0 - Beta III.30
Welcome to HWA/w!
--------------------------------------
Help Writer's Assistant for Windows greatly simplifies the
task of writing help files under windows, in fact, it even
makes it enjoyable!!
Beta III contains many great new features that were not
in Beta II. Please look at HWAWIN.HLP in the
How to - Upgrade from a previous versions to learn about the
new features.
The major change in this release is support opening RTF files!
Please see the help on the File|Open menu item in HWAWIN.HLP
for more information on this great new feature. This release
also fixes some minor bugs which were causing some
problems. Also added is the ability to create *.inc files
for context sensitive help using Borland Pascal.
It is Beta III.30
This is a beta release, and as such, should be treated as one.
There are likely to be bugs, not only in the documentation,
but also in the program. Please read the help file carefully
before starting to write help files. A tutorial has now
been added under How To - Create a Help File.
If you do find a bug (that isn't already known about), and
you are an unregistered user, you will recieve $0.50NZ off
your registration cost. Please see the help file for more
detail on registering.
The unregistered version will only allow you to have 20
topics in a file. The registered version will allow you
to have as many as your computer's memory allows.
Please Note: HWA/w Beta III requires Microsoft Windows 3.1
or better.
Thank you for looking at HWA/w!
Stefan Olson (Author)
hwab330.zipwindows.177paki,
Koja je numerička vrednost konstante ES_WANTRETURN?
windows.178.obj,
4096
windows.179.obj,
Evo jednog (IMHO) sjajnog programčeta za praćenje zauzeća memorije,
resursa i svega ostalog. Za svaki task u sistemu ide mali okvir sa
osnovnim podacima, par grafika i preciznijim informacijama. Sve se
odvija dinamički. žini mi se da je ovaj program u kombinaciji sa
HotLine-om sjajan duo za provaljivanje programskih greški koje se tiču
preopterećenja resursa ili memorije. Ako ste Windows programer, ne
časite ni časa, nego odma' skidajte ovo što je okačeno. :) Program je
bio objavljen u MSJ-u od maja prošle godine, i služi kao demonstracija
upotrebe dijagnostičke biblioteke, TOOLHELP.DLL. U ZIP-u je i kompletan
sors, MS C 7.
toolhelp.zipwindows.180jerry,
> Evo jednog (IMHO) sjajnog programceta za pracenje zauzeca memorije,
> resursa i svega ostalog.
> ne casite ni casa, nego odma' skidajte ovo sto je okaceno. :)
Koji program? Okaceno? Gde je okaceno? Nema fajla.
windows.181djelovic,
> Koji program? Okaceno? Gde je okaceno? Nema fajla.
Verovatno si pročitao Obrenovu poruku dok je slao datoteku, pa ti zato
nije prikazana. Pokušaj opet, datoteka je tamo.
windows.182jerry,
> Verovatno si procitao Obrenovu poruku dok je slao datoteku, pa ti
zato
> nije prikazana. Pokusaj opet, datoteka je tamo.
Moguce. To mi sad pade na pamet. Ili mozda zato sto
koristim SDW.EXE pa ima BUG? ;))) Salim se.
windows.183juros,
Je l' ima neko ideju kako "iseckati" i smanjiti VBRUN?00.DLL jer
pola stvari koje on sadrzi nisu potrebne. Naravno, pitanje je da
li je to uopste moguce :) ?
windows.184.obj,
> Verovatno si pročitao Obrenovu poruku dok je slao datoteku
Obrad, ObRAD! :) Ajd' što niko ne može da mi zapamti prezime, ali ime
je barem jednostavno. :)
A Džeri je stvarno skinuo poruku dok sam ja UL:
> jerry 13:25 -- Sezam
> luke 13:10 -- Sezam
> gregory 13:24 -- Mail Read
> .obj 13:25 -- Sezam
:) Da gosn. urednik ove teme ne ozvezdiči ovu poruku, evo još jedne
datoteke - kako startovati program pod Windowsom, ali da nakon toga
"sačekamo" da se startovani program i završi. Listing je takođe iz
MSJ-a. Jes' da je ipak malo prekomplikovan, ali može da se vidi kako se
to radi "legalno", koristeći pozive SHELL.DLL-a.
termwait.exewindows.185.obj,
> Je l' ima neko ideju kako "iseckati" i smanjiti VBRUN?00.DLL jer
> pola stvari koje on sadrzi nisu potrebne.
>
> Naravno, pitanje je da li je to uopste moguce :) ?
Nije moguće. :) Ima jedna mala zabluda koja se tiče DLL-ova - da je
moguće zamenljivati i menjati njihove funkcije bez da imamo source. To
nije moguće (barem ne iole jednostavno) ukoliko u sam kood biblioteke
nije ugrađena podrška za takva preusmeravanja (neke vrste Hook-ova i
slična rešenja).
windows.186paki,
> odvija dinamički. žini mi se da je ovaj program u kombinaciji sa
> HotLine-om sjajan duo za provaljivanje programskih greški koje se tiču
> preopterećenja resursa ili memorije. Ako ste Windows programer, ne
A-ha, a moje preporuke i za HotLine.
Inače, samo da vam se požalim da sam danas izgubio sat vremena
čačkajući program, zato što sam dve funkcije zaboravio da
deklarišem kao 'export' :( Što je najgore, kad sastavim te dve
funkcije, radi, čim ih rastavim - puff, počne da se ponaša
totalno nepredviđeno.
žemu uopšte služi 'export'?
windows.187djelovic,
>> Verovatno si pročitao Obrenovu poruku dok je slao datoteku
>
> Obrad, ObRAD! :) Ajd' što niko ne može da mi zapamti prezime, ali ime
> je barem jednostavno. :)
Sorry. Da budem iskren, nikada nisam ni pogledao već sam se poneo za
ostalima :). Ako ti je to neka uteha, mene su tri lepe Sezamovke dugo vremena
zvale Đelo, što je po njima bio sasvim prigodan način da se moj username
skrati. A i mjova je dugo vremena bio Jova :).
windows.188.obj,
> žemu uopšte služi 'export'?
Sve ulazne tačke koje Windows "sam od sebe" poziva (tzv. "callback"
funkcije) moraju biti deklarisane kroz EXPORT, a razlog zašto je to
tako - ne znam, možda bi neko ovde ko zna nešto više o tome mogao da
nam kaže par reči. Dakle, sve funkcije koje se u tvom programu
završavaju na WNDPROC, DLGPROC, ENUMPROC... moraš da exportuješ. :)
windows.190paki,
Da li je ovo što radim ispravno:
-----
function Get(ID:integer):string; export <- za svaki slučaj
var a:array [1..255] of char;
begin
j:=SendDlgItemMessage(hDialog, ID, EM_GETLINE, 0, LongInt(@a[1]));
s[0]:=Chr(j);
for i:=1 to j do s[i]:=a[i]; ***
s[j+1]:=#0;
Get:=s;
end;
-----
Dakle, funkcija koja vraća sadržaj jednog EDIT polja, ali kao
string. S je globalna promenljiva tipa string, a J isto to, samo
tipa integer.
Kada se stavi direktno 'SendDlgItemMessage(..., LongInt(@s[1]));'
i izostavi red *** dobiju se razne žvrljotine. Kada je A globalna
promenljiva, opet se dobiju razne žvrljotine. Ovako, radi za prvi
i drugi znak koji unesem, a od trećeg pa nadalje j:=0.
HotLine ne pronalazi nikakve greške.
Pošto stvarno ne znam šta bi moglo da bude, a ne verujem da će
iko moći da nađe grešku, može li par hintova kako vi, ostali,
radite ovakvu stvar (naročito neki Paskalovac, jer u Cu nema
stringova)? Pogledao bih u primerima, ali šta vredi kad su svi
napisani spomoću objekata :(
Usput se izvinjavam svima na gušenju, ali ovo je jedna od
osnovnih stvari za program.
windows.192dekiper,
> Sve ulazne tačke koje Windows "sam od sebe" poziva (tzv. "callback"
> funkcije) moraju biti deklarisane kroz EXPORT, a razlog zašto je to
> tako - ne znam, možda bi neko ovde ko zna nešto više o tome mogao da
> nam kaže par reči. Dakle, sve funkcije koje se u tvom programu
> završavaju na WNDPROC, DLGPROC, ENUMPROC... moraš da exportuješ. :)
E, pa situacija je sledeća. Svi kompajleri koji generišu kod za Windows
imaju osobinu da pored koda koji kuca programer dodaju dva dela koda
koji su potrebni direktno Windows-u, a samim tim potrebni su samo za
funkcije koje Windows direktno poziva, a to su recimo WNDPROC, DLGPROC,
ENUMPROC... Ova dva dela koda se zovu Prolog i Epilog. Prolog se logi-
čno dodaje na početku, a Epilog na kraju. Turbo C++ for Windows nudi
tri opcije za rad sa EXPORT funkcijama. To su:
a) All functions exportable (sve funkcije se eksportuju)
napomena: Ne smeta ako se funkcija eksportuje a Windows je ne
poziva direktno. Ona će i kao eksportovana fino raditi!
b) Explicit functions exported (samo one koje imaju prefiks _export)
napomena: Ono što piše u .DEF fajlu se ignoriše. Uopšte, mnogo
je bolje eksportovati dodavanjem _export, nego listanjem u de-
finicionom fajlu. Dakle:
BOOL FAR _export PASCAL DaVre(HWND hDlg, unsigned message,
WORD wParam, LONG lParam); // zaglavlje jedne moje funkcije
za dialog box
c) Smart Callbacks podrazumeva da pointer na Stack Segment pokazuje na
istu adresu kao i pointer na Data Segment pa nema potrebe za Prolog
i Epilog kodom, ali ovu mogućnost treba primiti sa zadrškom!
Moj predlog je da treba držati Explicit functions exportable jer se
onda neće sve funkcije eksportovati pa će program biti brži i manji, a
nije nikakav problem ubaciti jedno _export u deklaraciju.
Pozdrav, Deki
windows.193i.a.n.,
>> Da li je ovo što radim ispravno:
EM_GETLINE
This message copies a line from the edit control.
Parameter Description
wParam Specifies the line number of the line in the control,
where the line number of the first line is zero.
lParam Points to the buffer where the line will be stored.
!!! The first word of the buffer specifies the maximum
!!! number of bytes to be copied to the buffer. The
copied line is not null-terminated.
"When all else fails, read the docs". :) Nego nije mi jasno zašto
koristiš EM_GETLINE ako ti treba celokupan sadržaj EDIT polja, a ne
samo prva linija. WM_GETTEXT vraća sve.
BTW imaš li među primerima program koji učitava bit-mapu sa diska i
prikazuje je u prozoru, sa mogućnošću skrolovanja? Ako se dobro sećam,
zove se BSCRLAPP.PAS ili BSCRL.PAS. Nađeš li, please pošalji, diskete
sa Pascalom sam pozajmio ili zaturio.
windows.194dragisha,
-> Sve ulazne tačke koje Windows "sam od sebe" poziva (tzv. "callback"
-> funkcije) moraju biti deklarisane kroz EXPORT, a razlog zašto je to
-> tako - ne znam, možda bi neko ovde ko zna nešto više o tome mogao da
Pa kad se program linkuje, samo ono što je export ostaje 'poznato',
ostale adrese se 'zaboravljaju'. E sad, da bi Windows pozvao to on mora da
zna adresu.
Važi za DOS i OS/2 DLL-ove koje pravi TopSpeed, ne vjerujem da postoji
neka bitna razlika do Windows-a, osim u calling konvencijama.
windows.195paki,
> ! The first word of the buffer specifies the maximum
> ! number of bytes to be copied to the buffer. The
> copied line is not null-terminated.
Auf :) Nikad se ne bih setio, a ko će svu onu dokumentaciju da
pročita...
> "When all else fails, read the docs". :) Nego nije mi jasno zašto
> koristiš EM_GETLINE ako ti treba celokupan sadržaj EDIT polja, a ne
> samo prva linija. WM_GETTEXT vraća sve.
Jasno, tako nešto sam i uradio, i sada radi tutto completto.
Hvala ti puno na pomoći.
windows.196dcolak,
Jo! .OBJ!
U kooperaciji sa Plug-In i BarClck SDW _definitivno_ pravi gluposti!
Elem prilikom prelaska iz sdw u bilo koji task i pokušajem vraćanja
u Sdw dolazi do blokiranja sistema. Satić u uglu radi, sve radi, ali
ničemu ne mogu da pristupim. Tj, ja klikćem mišem ništa se ne
dešava. Da, SDW-ov window ostaje nerefresh-ovan tako da...
Sve u svemu, toliko mi pravi probleme da sam ponovo instalirao
SOR! Znaš šta _ovo_ znači... :>
Sledge DAMMIR!
windows.197asterix,
> U kooperaciji sa Plug-In i BarClck SDW _definitivno_ pravi gluposti!
> Elem prilikom prelaska iz sdw u bilo koji task i pokušajem vraćanja
Onda ti BarClck ne pravi probleme nego Plug-In. Kod mene bez njega
radi sve regularno. Nijednom se nije prehladio (zamrzao ;).
windows.198jerry,
> Jo! .OBJ!
I od mene. Onaj screen saver AfterDark je u maloj koliziji
sa SDW-jom. Kad sam neaktivan par minuta, AD se aktivira.
Kad mrdnem misa, vrati mi SDW ali je win zaglavljen u SDW-u.
Nijedan taster ne reaguje osim ctrl-alt-del. Kad to stisnem,
win mi kaze: Although you can use ctrl-alt-del to quit the
application that has stopped responding to the system, there
is no application in this state. A SDW je bas u tom state-u.
Help?
Imam dovoljno memorije, koristim 32bit disk access, barclk,
metamouse, vshield, 3dlook i ButtonGo kao dodatne aplikacije.
windows.199dcolak,
│ Imam dovoljno memorije, koristim 32bit disk access, barclk,
│ metamouse, vshield, 3dlook i ButtonGo kao dodatne aplikacije.
Pošto nisi pomenuo PlugIn znači da on nije krivac, zajednička
stvar su 32 bit access i barclk... Hm.. Ali ja sumnjam na sam
SDW ;)
Sledge DAMMIR!
windows.200cnenad,
ŁŁŁ │ metamouse, vshield, 3dlook i ButtonGo kao dodatne
ŁŁŁ aplikacije.
ŁŁŁ
ŁŁŁ Posto nisi pomenuo PlugIn znaci da on nije krivac, zajednicka
ŁŁŁ stvar su 32 bit access i barclk... Hm.. Ali ja sumnjam na sam
Sve to je i kod mene osim 3dlook, buttonGo, ali mi se dosta cesto
dogodi da ODOMETER i METAMOUSE prijave greske i padne WIN. Proveri da nije
to. Od kada sam izbacio to WIN rade ko sat.
windows.201spantic,
> U kooperaciji sa Plug-In i BarClck SDW _definitivno_ pravi gluposti!
Neregistrovani Plug-In je taj koji pravi probleme. SDW kod mene sa Bar Clockom
radi
savršeno.
windows.202vcalic,
>> Sve u svemu, toliko mi pravi probleme da sam ponovo instalirao
>> SOR! Znaš šta _ovo_ znači... :>
Nemoj da budeš izdajnik ;) nego koristi staru verziju SDW-a. Meni se
to isto dešavalo, otkad sam vratio onu sdw10b nemam više frke.
Vlada
windows.203vcalic,
>> Onda ti BarClck ne pravi probleme nego Plug-In. Kod mene bez njega
>> radi sve regularno. Nijednom se nije prehladio (zamrzao ;).
Meni se dešavalo i bez Plug-In-a, pa sam vratio staru verziju i od
tada nema problema.
Vlada
windows.204deki.dj,
-=> Neregistrovani Plug-In je taj koji pravi probleme. SDW kod mene
sa Bar
-=> Clockom radi savršeno.
Kod mene sve radi OK.
Plug-In <-> Barlck <-> 3dlook <-> SDW <-> WIN
windows.205dcolak,
│ Sve to je i kod mene osim 3dlook, buttonGo, ali mi se dosta cesto
│ dogodi da ODOMETER i METAMOUSE prijave greske i padne WIN. Proveri da nije
│ to. Od kada sam izbacio to WIN rade ko sat.
Nisu ta dva programa, njih ne koristim. Dakle, stvar je u SDW-u,
očigledno je suviše "nemaran" pa zaboravi da se refreshuje i uzme
kontrolu kad mu ona bude ponuđena..
.OBJ javljaj se i demantuj! :)
Sledge DAMMIR!
windows.206dcolak,
│ Neregistrovani Plug-In je taj koji pravi probleme. SDW kod mene sa Bar
│ Clockom radi
│ savršeno.
Nije Plug-In, neko se ranije javio da ima iste probleme a ne koristi
Plug-In... SO...
Sledge DAMMIR!
windows.207dcolak,
│ Nemoj da budeš izdajnik ;) nego koristi staru verziju SDW-a. Meni se
│ to isto dešavalo, otkad sam vratio onu sdw10b nemam više frke.
Koliko se sećam 10b nije imala dosta toga što sam dobio sa
najnovijom verzijom.. Ako nešto ne volim je nazadovanje ;)
Sledge DAMMIR!
windows.208spantic,
Visual Basic Tips & Tricks 1.2-Windows 3.1 Help File contains many VB for DOS &
Windows tips and tricks. Also contains tips and tricks on Windows Help Files.
Freeware!
vbtips12.zipwindows.209.obj,
Kako prepoznati rad pod Novell ili nekom drugom mrezom? Funkcija
WORD WNetGetCaps(WORD nIndex);
iz USER.EXE sljaka ko luda. U DEF datoteku treba dodati:
IMPORTS USER.WNETGETCAPS
a u .c:
#define WNNC_NET_TYPE 0x0002
#define WNNC_NET_None 0x0000
#define WNNC_NET_MSNet 0x0100
#define WNNC_NET_LanMan 0x0200
#define WNNC_NET_NetWare 0x0300
#define WNNC_NET_Vines 0x0400
#define WNNC_NET_10NET 0x0500
#define WNNC_NET_Locus 0x0600
#define WNNC_NET_SunPCNFS 0x0700
#define WNNC_NET_LANstep 0x0800
#define WNNC_NET_9TILES 0x0900
#define WNNC_NET_LANtastic 0x0a00
...
wNetType = WNetGetCaps(WNNC_NET_TYPE);
if (wNetType == WNNC_NET_None) {
/* nema mreznog sw-a */
} else
if (wNetType == WNNC_NET_NetWare) {
/* vozi novell, misko */
}
windows.210i.a.n.,
Ima li neko hedere i uopšte opis rada za LZEXPAND.DLL?
windows.211vcalic,
>> Koliko se sećam 10b nije imala dosta toga što sam dobio sa
>> najnovijom verzijom.. Ako nešto ne volim je nazadovanje ;)
Ma slažem se, ali zar povratak na SOR nije veće nazadovanje ;))
Vlada
windows.212nradeta,
Ako je neko uzeo onaj poboljsani task manager,
mogao je da vidi zanimljivu opciju: moguce je neki
prozor ostaviti stalno na vrhu. To su do sada imali
i jos neki programi, al' prvi put da vidim da neki
program to omogucava drugom (ne svom) prozoru.
Zna li neko kako se postize gorepomenuti trik?
Meni na pamet padaju razlicite stvari, al' nista
stvarno elegentno. Pomozite!
windows.213magician,
=> mogao je da vidi zanimljivu opciju: moguce je neki
=> prozor ostaviti stalno na vrhu. To su do sada imali
=> Zna li neko kako se postize gorepomenuti trik?
U pitanju je API funkcija SetWindowPos, a parametri su
SetWindowPos (hWnd, wInsertAfter, x, y, dx, dy, wFlags)
* svi parametri su integeri
Parametri x, y, dx, dy su nule ako ne menjaš poziciju prozora, a
wInsertAfter je -2 za Allways Visible ili -1 za Invisible.
Funkcija je iz User biblioteke...
Magician.
windows.214i.a.n.,
>> Ako je neko uzeo onaj poboljsani task manager,
>> mogao je da vidi zanimljivu opciju: moguce je neki
>> prozor ostaviti stalno na vrhu.
>>
>> Zna li neko kako se postize gorepomenuti trik?
>> Meni na pamet padaju razlicite stvari, al' nista
>> stvarno elegentno. Pomozite!
Ovo sam sam svojevremeno ukrao iz Drag & View, disasembliranjem i
teranjem kroz dibager.
SetWindowPos(hWnd(), alwaysVisible ? -1 : -2, 0, 0, 0, 0,
SWP_NOSIZE | SWP_NOMOVE);
hWnd() vraća handle prozora čiji "always visible" (nekako mi
neutralnije zvuči od "always on top" ;) status menjam flegom
alwaysVisible. Nisam se preterano trudio da saznam zašto radi
tako kako je napisano.
windows.216paki,
Koji je mogući uzrok nepravilnog ponašanja child prozora (kad je jedan iznad
drugog, pomeranjem jednog odvuče se i deo drugoga)?
windows.217i.a.n.,
>> Koji je mogući uzrok nepravilnog ponašanja child prozora (kad je
>> jedan iznad drugog, pomeranjem jednog odvuče se i deo drugoga)?
Da li govoriš o child ili MDI child prozorima? Napiši nešto više.
windows.218asterix,
Jel' se pojavila nekom poruka o isteku vremena probanja
Barclocka ? Molio bih onoga ko ima registrovanu veriju
da me mail-ne.
windows.219spantic,
> Jel' se pojavila nekom poruka o isteku vremena probanja
> Barclocka ? Molio bih onoga ko ima registrovanu veriju
Nije za uzrujavanje. Posle se više ni ne pojavljuje. Ali ako ne
želiš ni nju, vrati se na 2.2. Funkcionalno su potpuno isti.
windows.220wizard,
> Jel' se pojavila nekom poruka o isteku vremena probanja
> Barclocka ? Molio bih onoga ko ima registrovanu veriju
> da me mail-ne.
A kad sam ja govorio... Meni se pojavila još pre mesec-dva, ali
nisam hteo da javljam da ne bi mislili da lažem. Srećom, od tada
je nema...
windows.221novim,
"WinExit v2.0 Copyright 1990 by Howard Silver
(for Windows 3.0 or higher)
W H A T I S W I N E X I T?
Well, this is one of those simple little programs that can make life
a little easier. The purpose of this program is simply to allow you
to double-click on an icon and shutdown Windows. This I found to be
easier than going through Program Manager.
I am releasing this program in public domain."
winexit.zipwindows.222.bale.,
> The purpose of this program is simply to allow you
> to double-click on an icon and shutdown Windows.
:))) Suvi genije!
windows.223fancy,
Da pitam i ovde... sorry onima koji čitaju drugi put..:)
U ACCESS-u, pri ulasku u bilo koju tabelu ili query, ili form...
primetio sam da mi na dugmićima čijim se pritiskom pomera kursor na
sledeće polje, fale TROUGLIĆI na desno i na levo !!! Bizarno ;))) !
Pošto sam ponovo instalirao ACCESS, a zatim i (pazi sad!) Windows :))
ništa se nije promenilo, dok se nisam setio da možda nije do nekog
sistemskog fonta, što bi reklo do drajvera za video karticu...
Kad sam promenio rezoluciju (inače radim u 800*600*64000) trouglići ;)
su se VRATILI! ...žak i kad sam ostavio istu rezoluciju, ali promenio
broj boja (256) trouglići su opet bili tu..! (da ne zaboravim, dugmići
su ostali POTPUNO FUNKCIONALNI i bez trouglića, samo su izgledali malo
ćelavo :)))
Ima li neko ideju kako da vratim trougliće na dugmiće... a da ostanem
u svom omiljenom graf. modu..?
windows.224wizard,
> Ima li neko ideju kako da vratim trougliće na dugmiće... a da ostanem
> u svom omiljenom graf. modu..?
Reinstaliraj Win, arhiviraj '*.FON' fajlove, instaliraj drajvere
za karticu, dearhiviraj '*.FON' fajlove.
windows.225fancy,
ŮŢ> Reinstaliraj Win, arhiviraj '*.FON' fajlove, instaliraj drajvere
ŮŢ> za karticu, dearhiviraj '*.FON' fajlove.
OK, znači kol'ko sam sFatio da instaliram neki WIN-ov standardni
driver, sačuvam .FON... pa ih uporabim posle inst. drajvera za
karticu... Thanx, eto meni zabave za noćas...
windows.226asterix,
> ŮŢ> Reinstaliraj Win, arhiviraj '*.FON' fajlove, instaliraj drajvere
> ŮŢ> za karticu, dearhiviraj '*.FON' fajlove.
>
> OK, znači kol'ko sam sFatio da instaliram neki WIN-ov standardni
> driver, sačuvam .FON... pa ih uporabim posle inst. drajvera za
> karticu... Thanx, eto meni zabave za noćas...
Eto kako vas dvojica ipak možete da budete konstruktivni. NoRMaLno ? ;)
windows.227pbojan,
Postoji li neki brzi nacin za ispis teksta od TextOut? Mozda neki ASM?
windows.228paki,
Može li neko da šiljne sintaksu GetOpenFileName funkcije (u
helpu je nema, a diskete s primerima nisu kod mene :()?
windows.229paki,
Zaboravih, treba mi i sintaksa funkcije za dijalog za izbor fontova.
windows.230i.a.n.,
>> Može li neko da šiljne sintaksu GetOpenFileName funkcije (u
>> helpu je nema, a diskete s primerima nisu kod mene :()?
BOOL GetOpenFileName(OPENFILENAME FAR *lpofn);
BOOL ChooseFont(CHOOSEFONT FAR *lpcf);
... ali ništa ti ne vredi bez opisa struktura OPENFILENAME i
CHOOSEFONT, jedno 45 kilobajta teksta. Da šaljem?
windows.231dekiper,
ŠALJI OBAVEZNO (I NEKI SOURCE AKO IMAŠ UZ TO)
Pozdrav, Deki
windows.232i.a.n.,
>> ŠALJI OBAVEZNO (I NEKI SOURCE AKO IMAŠ UZ TO)
Evo. U arhivi je, osim opisa struktura, i primer iz BC++ 3.1 koji sve
to koristi.
cdlgex.zipwindows.233zkadovic,
Imam jedan problem!
Skoro sam nabavio Visual C/C++ v1.0 da bih "malo cackao"
po Windows-ima. Prilikom link-ovanja primera dobijenih uz compiler
obavezno dobijam gresku: "R6000 - stack overflow".
Imam instalirano 4 MB na ploci. Za probu, dodao sam jos 4 MB.
Tada sam samo neke od primera (manji broj) mogao da ulinkujem.
Iz komandne linije (iz DOS-a), naravno, svaki od primera
moguce je prevesti (nmake -f ...).
Koliko memorije je minimalno potrebno da bi compiler (linker)
radio?
Da li ima neki fazon prilikom instalacije (li nesto kao
konfiguracija???) koga nisam primetio?
Uopste, interesuju me detalji/iskustvo sa ovim paketom.
Unapred hvala. Zoran.
windows.234spantic,
Bar Code Control (VBX) <ASP>
BarCod makes bar code display really easy.
Just pick the orientation, set the size,
and pick the bar code style. Then, set the
text to whatever you want the bars to be.
Nothing else to do!
barcod11.zipwindows.235spantic,
Disk and File Info Control (VBX) <ASP>
This control gives you disk and file
information that VB doesn't provide. It also
allows you to change some aspects of a file
(attributes, size, date, time, etc.).
dfinfo14.zipwindows.236spantic,
Security for Windows - contains two
programs that add a measure of security
to Windows. The first utility alters
Program Manager to remove the FILE
command and SAVE options so no programs
can be run that are not on the ProgMan
menu.The second is a program launcher
with passwords. VB source code and
VBRUN200 is included.
seclau.zipwindows.237spantic,
Telefonski imenik. Ako neko uspe da priključi sliku obavezno neka se javi :)
V.I.P. 2.1 is an easy to use phonebook. As a special
feature displaying pictures (BMP format) and playing
VIDEO FOR WINDOWS files ( AVI format ) is provided.
Requirements:
- Microsoft Windows 3.1.
- a 256 color graphics adapter is recommended.
- To play AVI's: Video for Windows, Runtime Version
Features :
- up to 333 entries.
- up to 256 color Bitmaps ( RGB encoded BMP format ).
- searching is done on name, city and the extra field.
- export is supported by copying of the selected
entry to the clipboard.
- automatic backup to VIP.BAK
- printing of a addresses, entries sorted by name
File list:
- VIP.EXE _________ programm
- VIP.DAT _________ data file ( sample entries )
- DJ.BMP, BS.BMP __ sample bitmaps
- README _________ this file
vip.zipwindows.239sjocic,
├> Telefonski imenik. Ako neko uspe da priključi sliku obavezno
├> neka se javi :)
└──────────────────────────────────────────────────
Uspeo ja, ne vidim u cemu je problem to izvesti ???
windows.240bigbrada,
Pitanje se tiče TPW-a. Situacija je ovakva :
Imam Resource fajl koji se zove, npr. NESTO.RES (nije bitno).
U njemu se nalaze Menu i Dialog. Imam recimo tri Dialog-a
koji se zovu npr. PRVI, DRUGI i TRECI. Kako mogu na određenu
opciju iz menija da prikačim određeni Dialog? U Dialog-u imam
Edit Window. Gde se pamti to što ja upišem tu (u Edit-u)?
Kako mogu iz programa da prosledim nešto (neku promenljivu)
Dialog-u, koju će on da upiše u određeno polje?
Ako ima nekoga koga ne mrzi da objašnjava, bio bih mu
veeeoma zahvalan da to i učini... Patim se s ovim već nedelju
dana i sve što sam uspeo da uradim je da osposobim Menu, i
ništa više...
Brada.
windows.241mzgrdja,
Da li neko moze ostaviti primer pozivanja DLL-ova iz Visual Basica 3.0. Hitno
potrebno je VB stalno javlja nesto kao invalid DLL. Unapred zahvalan.
windows.242dekiper,
> Imam Resource fajl koji se zove, npr. NESTO.RES (nije bitno).
> U njemu se nalaze Menu i Dialog. Imam recimo tri Dialog-a
> koji se zovu npr. PRVI, DRUGI i TRECI. Kako mogu na određenu
> opciju iz menija da prikačim određeni Dialog? U Dialog-u imam
> Edit Window. Gde se pamti to što ja upišem tu (u Edit-u)?
> Kako mogu iz programa da prosledim nešto (neku promenljivu)
> Dialog-u, koju će on da upiše u određeno polje?
Pazi ovako. Svaka stavka menija ima svoj karakteristični broj koji
si morao zadati još pri izgradnji menija. U heder fajl (to je u
TPW-u valjda .INC) te brojeve pretvori u neke fine labele da bi ti
bilo lakše kasnije. Na primer ako je za prvu stavku broj 101
(najčešće) onda napiši nešto kao: const IDM_PRVI=101; itd. za sva
tri. Kada si to uradio, meni osposobljavaš u WNDCLASS dodavanjem
odgovarajuće stavke (pogledaj help) recimo (isečak iz jednog mog
programa doduše u C-u):
WNDCLASS wc;
wc.style=NULL;
wc.lpfnWndProc=MainWndProc;
wc.cbClsExtra=0;
wc.cbWndExtra=0;
wc.hInstance=hInstance;
wc.hIcon=LoadIcon(hInstance, "1_IKONA");
wc.hCursor=LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground=COLOR_APPWORKSPACE+1;
wc.lpszMenuName="FSIMenu"; !!!!!!!!!!!!!!!!!!!!!!
wc.lpszClassName="FSIClass";
return(RegisterClass(&wc));
Naravno u .RES fajlu si morao zadati ime meniju a to je ovde ko-
nkretno FSIMenu. Kasnije ćeš u WndProc dodati stavku WM_COMMAND:
Napomena da i svakom dijalogu moraš u okviru .RES fajla dati ime.
Recimo da su imena PRVI, DRUGI i TRECI:
FARPROC lpPrviDialog; // promenljive za dijaloge (nevezano za
FARPROC lpDrugiDialog; // imena dijaloga)
FARPROC lpTreciDialog;
switch(message)
š
case WM_COMMAND: !!!!!!!!!!!!!!!!!!
switch(wParam)
š
case IDM_PRVI: // prva stavka menija
lpPrviDialog=MakeProcInstance(One, hInst);
DialogBox(hInst, "PRVI", hWnd, lpPrviDialog);
FreeProcInstance(lpPrviDialog);
break;
case IDM_DRUGI: // druga stavka menija
lpDrugiDialog=MakeProcInstance(Two, hInst);
DialogBox(hInst, "DRUGI", hWnd, lpDrugiDialog);
FreeProcInstance(lpDrugiDialog);
break;
case IDM_TRECI: // treca stavka menija
lpTreciDialog=MakeProcInstance(Three, hInst);
DialogBox(hInst, "TRECI", hWnd, lpTreciDialog);
FreeProcInstance(lpTreciDialog);
break;
ć
Eto ga, a sada da znaš da su One, Two i Three u MakeProcInstance
u stvari imena funkcija koje rade sa dijalogom (svaki dijalog MORA
imati jednu, daću ti posle primer). PRVI, DRUGI i TRECI su imena
dijaloga u .RES. Što se promenljivih sa završetkom Instance tiče,
shvati da to tako mora. Priča o njima je dugačka i nepotrebna.
E sada recimo da uradimo funkciju za prvi dijalog (podrazumeva se
da dijalog ima samo jedan OK taster i ništa više):
BOOL FAR _export PASCAL One(HWND hDlg, unsigned message, WORD wParam, LONG
lParam)
š
switch(message)
š
case WM_INITDIALOG:
return(TRUE);
case WM_COMMAND:
if(wParam==IDOK)
š
EndDialog(hDlg, TRUE);
return (TRUE);
ć
break;
ć
return(FALSE);
ć
I, voila, treba da radi. Tako fino sve definiši, a posebno ono u
.INC i .RES fajlu i nema problema. Funkcije jednostavno prepiši
i promeni imena u Two i Three da bi radila sva tri dijaloga.
Kasnije, kada ti bude trebalo nešto komplikovanije, proširićeš.
Što se Edit-a u dijalogu tiče, postoje tri funkcije a to su
GetDlgItemText, GetDlgItem i GetDlgItemInt. Prva ti daje tekstu-
ali sadržaj recimo Edit Window-a, druga to isto samo u obliku broja
dok treća daje pointer na objekat u okviru dijaloga (ovo ti još
nije potrebno ali je vrlo bitno kada recimo treba treba raditi sa
Check Box-ovima).
Što se upisa u polja tiče, lako. PAZI!!! Ne smeš menjati funkciju
One (u stvari ne smeš menjati listu parametara koju prima) jer je
funkcija _export što znači da je poziva direktno Windows i daje joj
tačan broj parametara koji ne smeš menjati. Inače, rešenje možeš
naći u globalnim promenljivama ili još bolje, da definišeš potre-
bne podatke u okviru funkcije One (ovo je dozvoljeno). I posle ćeš
sa SetDlgItemText i SetDlgItemInt postavljati vrednosti u polja.
Izgleda jednostavno kad ja objašnjavam, ali u praksi nije. Srećno i
javi se ako zapne jer je bitno da stvorimo veliki broj poruka koje
će oslikavati iskustvo stečeno u Win programiranju. Ovo je relati-
vno nova tema i teško da postoji među nama neko ko je recimo savla-
dao celog Petzold-a. Poenta je u tome da se postavi što veći broj
raznih pitanja koja će možda neko drugi spojiti u celinu. Win pro-
gramiranje kod nas baš i nije popularno, ali polako ljudi prelaze
sa DOS-a na "pravu stvar" pa ih treba nečim dočekati :))).
Pozdrav, Deki
windows.244bigbrada,
!##! Pazi ovako. Svaka stavka menija ima svoj karakteristični
!##! broj koji si morao zadati još pri izgradnji menija. U heder
!##! fajl (to je u TPW-u valjda .INC) te brojeve pretvori u neke
!##! fine labele da bi ti bilo lakše kasnije. Na primer ako je za
!##! prvu stavku broj 101 (najčešće) onda napiši nešto kao: const
!##! IDM_PRVI=101; itd. za sva tri.
OK. To sam i sam otkrio. U TPW-u ne postoji nikakav .INC
fajl nego u samom programu napišeš:
const
IDM_Prvi = 101;
IDM_Drugi = 102;
...
!##! wc.lpfnWndProc = MainWndProc;
Koja je to MainWndProc? Šta se u njoj dešava?
!##! return(RegisterClass(&wc));
Šta vraća tu vrednost? žemu da je dodelim? U Pascalu
ne postoji Return nego moraš da kažeš :
To_i_to := RegisterClass (wc);
!##! lpPrviDialog=MakeProcInstance(One, hInst);
E ovde mi pravi probleme. Kaže (što je i istina :) da
One mora da bude tipa TFarProc. OK to je u redu, stavim
ja nju da bude tog tipa. Ali, u samoj funkciji se
pojavljuje sledeće :
!##! return(TRUE);
Zbog toga funkcija mora da bude tipa Boolean! Ne mogu
da joj dam dva tipa! Kako to rešiti? Kod tebe piše :
!##! BOOL FAR _export PASCAL One(HWND hDlg, unsigned message,
!##! WORD wParam, LONG lParam)
Ja NE mogu da napišem :
Function One (hDlg : Hwnd; Message : Word; wParam : Word;
lParam : LongInt) : Boolean TFarProc; !!!!!!!!!!
================
Pozdrav, Brada.
windows.245dekiper,
Ovako, MainWndProc u stvari obrađuje sve poruke koje stižu prozoru. U njoj se
nalazi ona case struktura. Što se tiče ovog problema sa fukcijom One, pogledaj
u bilo koji primer koji si dobio uz TPW a koji ima dijalog boks. Rado bi ti
pomogao, PASCAL znam odlično ali nemam TPW (ni BPW) pa ne mogu da vidim šta je.
Što se onog return-a tiče, izgleda da tebi uopšte nije jasna ni struktura
Windows programa. Funkcija InitInstance u kojoj se nalazi punjenje WNDCLASS
strukture mora vratiti rezultat da bi WinMain skontao da li je sve u redu
prošlo. Najbolje uzmi kostur najosnovnijeg Win programa iz TPW i lepo dogradi
šta nedostaje (neka to bude HelloWorld najbolje).
Jedan savet. Nemam ništa protiv paskala, čak što više, više mi se sviđa od C-a,
ali Windows programiranje je teško zamislivo bez C(++)-a. Bukvalno sva
literatura (uključujući Petzold-a) referiše na C. Mislim da ćeš imati velikih
problema ako budeš sve konvertovao u Paskal i natrag. Savet: Uzmi Turbo C+ for
Windows ili Quick C for Windows. Oni su mali (relativno (oko 20 MB)) ali su
efikasni do daske i što je najbolje vrlo brzi (doduše ne kao TPW) a i rad je
mnogo lakši (što se direktnog rada sa API-jima tiče).
Pozdrav, Deki
windows.246.obj,
> Izgleda jednostavno kad ja objašnjavam, ali u praksi nije. Srećno i
> javi se ako zapne jer je bitno da stvorimo veliki broj poruka koje
> će oslikavati iskustvo stečeno u Win programiranju. Ovo je relati-
> vno nova tema i teško da postoji među nama neko ko je recimo savla-
> dao celog Petzold-a. Poenta je u tome da se postavi što veći broj
> raznih pitanja koja će možda neko drugi spojiti u celinu. Win pro-
> gramiranje kod nas baš i nije popularno, ali polako ljudi prelaze
> sa DOS-a na "pravu stvar" pa ih treba nečim dočekati :))).
Slažem se. :) Iskreno, nisam očekivao da će neko odgovoriti BigBratu na
onako uopštena pitanja. Da bih i ja malo pomogao, počeću sa par prostih
primera. Pošto je neko (dekiper? :) tražio primere za upotrebu
COMMDLG.DLL, evo samo tri najprostija primera za
COMMDLG.GetOpenFileName, COMMDLG.ChooseFont i COMMDLG.ChooseColor.
Pre upotrebe bilo koje od funkcija, morate imati tri stvari:
o COMMDLG.DLL Biblioteka sa common dijalozima
o COMMDLG.LIB Kreira se pozivom programa IMPLIB, neophodan pri linkovanju
o COMMDLG.H Prototipi funkcija iz COMMDLG.DLL, strukture i konstante
Sve funkcije se u principu koriste tako što se popuni posebna
struktura, i zatim jednostavno izvede poziv odgovarajuće funkcije koja
vrati TRUE ili FALSE, zavisno od toga da li je korisnik pritisnuo OK
ili Cancel.
Još par detalja. Gotovo sve funkcije dozvoljavaju i tzv. template-ove.
Naime, možete biti nezadovoljni izgledom nekog od dijaloga, ili
jednostavno želite da uklonite neku kontrolu ili taster. Tada
jednostavno prekopirate dijalog iz COMMDLG.DLL u neki skript (npr.
MYCHFONT.DLG), u njemu izvršite potrebne promene, i na kraju dijalog
pomoću RC-a uključite u EXE. Potrebno je još samo da u odgovarajućoj
strukturi pri pozivanju neke od ChooseXxx funkcija podesite polje
lpTemplateName koje treba da sadrži ime promenjenog dijaloga.
Druga primamljiva mogućnost je definisanje hook funkcije. Ova funkcija
nasleđuje neku od originalnih DLGPROC iz COMMDLG.DLL, praktično je
moguća izmena ponašanja u okviru samog dijaloga, npr. dodavanje
dodatnih tastera, ListBox-ova itd. Sa ovom mogućnošću je praktično
omogućena potpuna fleksibilnost i izmenljivost COMMDLG dijaloga.
//---------------------------------------------------------------
// Primer za COMMDLG.ChooseFont()
CHOOSEFONT cf;
LOGFONT lf;
memset(&lf, 0, sizeof(LOGFONT));
strcpy(lf.lfFaceName, "MS Sans Serif"); // ime fonta
lf.lfHeight = 8; // veličina
memset(&cf, 0, sizeof(CHOOSEFONT));
cf.lStructSize = sizeof(CHOOSEFONT);
cf.hwndOwner = hWnd; // roditeljski prozor
cf.lpLogFont = &lf;
cf.Flags = CF_SCREENFONTS | CF_NOSIMULATIONS |
CF_INITTOLOGFONTSTRUCT;
cf.nFontType = REGULAR_FONTTYPE | SCREEN_FONTTYPE;
if(ChooseFont(&cf))
MessageBox(hWnd, lf.lfFaceName, "ChooseFont demo:", MB_OK);
// Primer za COMMDLG.GetOpenFileName()
OPENFILENAME ofn;
char szFile[256], szFileTitle[256], *p, char szFilter[256];
szFile = '\0'; // ovde se može staviti default ime
strcpy(szFilter, "INI files,*.INI,All files,*.*,");
p = szFilter;
while(*p)
if(*p++ == ',')
*--p = 0; // svaku pojavu zareza menjamo u (char)0
memset(&ofn, 0, sizeof(OPENFILENAME));
ofn.lStructSize = sizeof(OPENFILENAME);
ofn.hwndOwner = hWnd;
ofn.lpstrFilter = szFilter;
ofn.nFilterIndex = 1; // inicijalno aktivni filter (*.INI)
ofn.lpstrFile= szFile; // pointer na ime
ofn.nMaxFile = sizeof(szFile);
ofn.lpstrFileTitle = szFileTitle;
ofn.nMaxFileTitle = sizeof(szFileTitle);
ofn.lpstrInitialDir = ".";
ofn.lpstrTitle = "Open file..."; // ime prozora
ofn.Flags = OFN_HIDEREADONLY;
if(GetOpenFileName(&ofn))
MessageBox(hWnd, szFile, "GetOpenFileName demo:", MB_OK);
// Primer za COMMDLG.ChooseColorI()
CHOOSECOLOR cc;
COLORREF Color, CustomColors[16];
int i;
for(i = 0; i < 16; i++)
CustomColors[i] = RGB(0, 0, 0); // ovde se mogu dodati sopstvene boje
memset(&cc, 0, sizeof(CHOOSECOLOR));
cc.lStructSize = sizeof(CHOOSECOLOR);
cc.hwndOwner = hWnd; // roditeljski prozor
cc.rgbResult = RGB(123, 34, 158); // boja koja se menja
cc.lpCustColors = CustomColors;
cc.Flags = CC_FULLOPEN | CC_RGBINIT;
if(ChooseColor(&cc))
// u cc.rgbResult je izabrana boja
//---------------------------------------------------------------
Ovo će pomoći da vaši izgledaju puno lepše, na stranu što je mnogo
lakše pozvati par funkcija umesto da se pišu kompletni dijalozi.
Kad smo već kod vizuelnog utiska, možda želite da vaši dijalozi
izgledaju kod oni u Excel-u 4.0? Ništa lakše! Prekopirajte CTL3D.DLL iz
Excelovog direktorijuma u direktorijum vašeg programa (CTL3D je u
javnom vlasništvu). Zatim u headeru dodajte sledeće prototipove:
BOOL WINAPI Ctl3dRegister(HINSTANCE);
BOOL WINAPI Ctl3dUnregister(HINSTANCE);
BOOL WINAPI Ctl3dAutoSubclass(HINSTANCE);
Da bi dijalozi bili 3D, potreban je gotovo zanemarljivo mali trud.
Jednostavno, na početku programa dodajte:
Ctl3dRegister(hInstance);
Ctl3dAutoSubclass(hInstance);
a pred skidanje iz memorije ubacite:
Ctl3dUnregister(hInstance);
i to je sve! Ako vam se ne sviđa (kao meni) izgled checkboxova i radio
buttona, učitajte CTL3D.DLL u neki bitmap editor i doterajte ga po svom
ukusu. Još je samo potrebno kreirati CTL3D.LIB (zbog linkovanja) -
upotrebite IMPLIB!
Have fun!
OB Cool J
windows.247paki,
> OK. To sam i sam otkrio. U TPW-u ne postoji nikakav .INC
> fajl nego u samom programu napišeš:
>
> const
Ovo je loša praksa za veće programe, jer, ako budeš pravio
menije, dijaloge i ostalo iz npr. Resource Workshopa ili
Whitewater Resource Toolkita, moraćeš ručno da menjaš konstante
kada praviš neku izmenu.
Najbolje je da ih sve strpaš u .INC fajl, i onda ga ubaciš na
početak glavnog programa, ili, još bolje, da ih strpaš u jedan
unit (u interface sekciju) i onda taj unit uključiš u glavni
program. Tako ćeš moći da ih menjaš i ručno i pomoću Workshopa.
>!##! wc.lpfnWndProc = MainWndProc;
>
> Koja je to MainWndProc? Šta se u njoj dešava?
MainWndProc je procedura za obradu poruka koje prima glavni
prozor od Windowsa. Kada korisnik uradi bilo šta što se tiče
tvog programa (pritisne taster, pomeri miša, klikne mišem) ili
kad Windows želi da te obavesti o nekom događaju od važnosti za
tvoj program, poziva se ta procedura, kojoj se kao parametri
prosleđuju kod poruke i još par informacija. U zavisnosti od
toga, tvoj program radi ono što ti želiš (npr. ako je poruka
WM_DESTROY, tvoj program treba da počisti za sobom :), dakle,
pozatvara sve prozore, oslobodi memoriju koju je alocirao itd.).
> Ja NE mogu da napišem :
>
> Function One (hDlg : Hwnd; Message : Word; wParam : Word;
> lParam : LongInt) : Boolean TFarProc; !!!!!!!!!!
> ================
Tačno, ne možeš, ali to ti i ne treba. Funkcija One je tipa Bool
(ili Boolean, svejedno je). Treba ti i jedna promenljiva tipa
TFarProc, u kojoj ćeš da čuvaš pointer na instancu funkcije One.
Prvo napišeš funkciju One. Zatim,
1) Pomoću MakeProcInstance, napraviš njenu instancu i sačuvaš
pointer na nju u neku promenljivu (recimo pDialogProc).
2) Sad kažeš Windowsima da napravi dialog box, i kažeš im da će
funkcija One da kontroliše taj dialog box. Zatim posao preuzima
funkcija One, koja vraća kontrolu nazad kad se dialog box zatvori.
3) Tada ubiješ instancu funkcije One i nastaviš dalje s radom.
To u konkretnoj izvedbi izgleda ovako:
--------
function One (hDialog:hWnd; Message, wParam:word; lParam:longint):
Bool; export;
begin
...
end;
procedure MakeDialog (pHandler: TFarProc; DialogID: PChar;
hParent: hWnd);
var
pDialogProc:TFarProc;
begin
pDialogProc:=MakeProcInstance(pHandler, hInstance); <--1
DialogBox(hInstance, DialogID, hParent, pDialogProc); <--2
FreeProcInstance(pDialogProc); <--3
end;
function MainWndProc(hWindow:hWnd; Message,wParam:word;
lParam:longint): longint; export;
begin
MainWndProc:=0;
case WParam of
IDM_ONE: MakeDialog(@One,'ONE', hMainWindow);
...
else
MainWndProc:= DefWindowProc(hWindow, Message,
WParam, LParam);
end;
end;
--------
Nadam se da sam bar malo pomogao.
Pogledaj jedan od 3-4 primera (zaboravio sam mu ime) u
direktorijumu EXAMPLES, on radi upravo ono što tebi treba
(otvara About dialog box na odgovarajući izbor iz menija)
i moći ćeš da vidiš kako se to radi u Pascalu.
windows.248.obj,
Ispravka:
> p = szFilter;
> while(*p)
> if(*p++ == ',')
> *--p = 0; // svaku pojavu zareza menjamo u (char)0
Ovo neće raditi ovako, nego npr.
for(p = szFilter; *p; p++)
if(*p == ',')
*p = 0;
OB Cool J
windows.249bigbrada,
!##! Nadam se da sam bar malo pomogao.
I did it, I did it!!! ;)))
Hvala Pakiju, hvala Dekiju! :) Ali ne! Nemojte
se obradovati pre vremena! Uskoro, vrlo uskoro
će se desiti to : The Return of BIGBrada (sa
gomilom (prvenstveno) glupih pitanja ;) ;)))))
Pozdrav, Brada. :)
windows.250pjankovic,
BUG kod BC++3.1? :(
BCW s vremena na vrijeme prekida rad sa porukom "GENERAL PROTECTION
FAULT"... :( žini mi se da se to ne dešava potpuno slučajno, već da
postoje neka pravila. Naime, par puta se desilo da nekoliko puta
uzastopno, prilikom kompajliranja jednog te istog fajla javi ovu
grešku. Onda ja izbrišem "*.SYS" fajl (prekompajlirani heder) i sve ispravno
radi. Međutim, ponekad nastavi sa radom i bez brisanja ovog fajla.
Nadalje, greška se nikada ne dešava kod prvog kompajliranja vec isključivo
poslije nekoliko ciklusa edit-compajl-link-run. Ovo me navodi na zaključak
da krivica nije do hardvera vec do Borlanda. Da li se još nekome ovo dašava?
windows.251paki,
> BUG kod BC++3.1? :(
>
> BCW s vremena na vrijeme prekida rad sa porukom "GENERAL PROTECTION
> FAULT"... :( žini mi se da se to ne dešava potpuno slučajno, već da
Uzmi neki program tipa DrWatson, HotLine ili WinSpector, pa vidi
šta će ti oni reći.
windows.252mjova,
> grešku. Onda ja izbrišem "*.SYS" fajl (prekompajlirani
> heder) i sve ispravno radi. Međutim, ponekad nastavi sa
> radom i bez brisanja ovog fajla.
ako se ne varam radi se SYM datoteci, a njenim brisanjem se zaista
rešava problem. naime, ta datoteka služi da ubrza prevođenje, ali ako
se često menjaju zaglavlja (koja ulaze u nju) onda se ona povećava.
činjenica je da tu nešto nije ok, ali meni se ta greška nije skoro
javila jer redovno brišem te datoteke.
windows.253mvukolic,
Ima li interesenata za sve primere iz knjige
"Programming Windows" Charlesa Petzolda?
Ako ima da šaljem...
windows.254vcalic,
>> BCW s vremena na vrijeme prekida rad sa porukom "GENERAL PROTECTION
>> FAULT"... :( žini mi se da se to ne dešava potpuno slučajno, već da
Nije do Borlanda. Nešto drugo je u pitanju, može biti maltene bilo šta
od sistemskog softvera. Meni se isto dešavalo sa HELP fajlom (svaki put kad
sam pokušao da pročitam HELP za Notification Messages mi je javljao GPF), a
krivac je bio Stacker, jer je nekako razvukao svoj fajl preko bad sectora. Kad
sam poskidao sve sa Stacker particije i ponovo instalirao od tad radi ko Bog.
Pregledaj sve moguće drajvere, swap fajl i ostalo, verovatno je tu
negde greška.
Vlada
windows.255i.a.n.,
>> BCW s vremena na vrijeme prekida rad sa porukom "GENERAL
>> PROTECTION FAULT"... :( žini mi se da se to ne dešava potpuno
>>
>> Onda ja izbrišem "*.SYS" fajl (prekompajlirani heder) i sve
>> ispravno radi. Međutim, ponekad nastavi sa radom i bez brisanja
>> ovog fajla.
BC++ nije baš sasvim čist u radu sa .SYM fajlovima. Primetio sam da
posle izvesnog broja ispravki u zaglavljima, znači i njihovog ponovnog
kompajliranja, .SYM zna nenormalno da naraste u odnosu na prvobitnu
veličinu. Problem sam "rešio" tako što u .SYM držim samo windows.h i
kompajliram sa -Hu. Sva ostala zaglavlja su ionako mizerno mala u
odnosu na windows.h.
windows.256dsisic,
> Ima li interesenata za sve primere iz knjige
> "Programming Windows" Charlesa Petzolda?
> Ako ima da saljem...
Salji rodjace :)
windows.257pjankovic,
> Uzmi neki program tipa DrWatson, HotLine ili WinSpector, pa vidi
> šta će ti oni reći.
HotLine ikona uvijek mi "čuči" u lijevom donjem uglu ekrana :). Smatram
ovaj program vrlo korisnim i praktično nezamjenljivim. Ali on u konkretnom
slučaju ostaje potpuno nijem.
Inače, skoro sam siguran da je krivica u *.SYM fajlu. Sinoć je
prilikom kompajliranja "iskočio" uz čuvenu poruku "GENERAL PROTECTION FAULT".:(
Resetovao sam računar, ponovo pokrenuo BCW, kompajler i ponovo greška, i to
na istoj liniji izvornog koda. Pošto se ovo ponovilo i treći put obrisao sam
*.SYM fajl i tada je sve prošlo normalno.
windows.258pjankovic,
> Ima li interesenata za sve primere iz knjige
> "Programming Windows" Charlesa Petzolda?
Naravno!:)
windows.259spantic,
> Ima li interesenata za sve primere iz knjige
> "Programming Windows" Charlesa Petzolda?
Ima, ima :)
windows.260fancy,
ŮŢ> Ima li interesenata za sve primere iz knjige
ŮŢ> " Programming Windows" Charlesa Petzolda?
ŮŢ> Ako ima da šaljem...
Daaaa! :)
windows.261markom,
■■■ Ima li interesenata za sve primere iz knjige
■■■ "Programming Windows" Charlesa Petzolda?
■■■ Ako ima da šaljem...
Pošto će verovatno da kažu da nije PD/SW, ti meni lepo to pošalji na mail, OK ?
:))
Marko
windows.262fancy,
ŮŢ> Pošto će verovatno da kažu da nije PD/SW, ti meni lepo to pošalji na mail,
ŮŢ> OK ?
Nije OK... A ostali..?
Group..?
windows.263dvesic,
Cao !
Molim Vas, ako neko ima program koji pod Windowsima
zamenjuje misa kurzorskim tasterima da mi ga posalje
u mail. (Na jednom racunaru je instaliran Win, nema
misa ali mi je preko potreban) !
Unapred zahvalan,
Dejan.
windows.264dekiper,
E; možda je ovo već i bilo ali mi treba fora sa kojom bi pronašao kpod kojom
verzijom Windows-a program radi (naravno iz C-a)...
Pozdrav, Deki
windows.265hobit,
> Ima li interesenata za sve primere iz knjige
> "Programming Windows" Charlesa Petzolda?
> Ako ima da šaljem...
Samo šalji. Ako nemože u conf. mail je otvoren
windows.266djelovic,
> Pošto će verovatno da kažu da nije PD/SW, ti meni lepo to pošalji na mail,
Primeri iz knjige su uvek PD. Prilog je dobrodošao, uz predlog Bulaji da to
odmah prebaci u dir.
windows.267bigbrada,
!##!> Ako ima da saljem...
!##!
!##! Salji rodjace :)
Noge kako!! :)
Brada.
windows.268bigbrada,
Kako se zove funkcija koja mi kaže da
li je CheckBox aktiviran ili nije?
Izgiboh, ali to ne nađoh... :(
Brada.
windows.269vcalic,
>> Ima li interesenata za sve primere iz knjige
>> "Programming Windows" Charlesa Petzolda?
>> Ako ima da šaljem...
Ima.
Vlada
windows.270vcalic,
>> E; možda je ovo već i bilo ali mi treba fora sa kojom bi pronašao kpod
>> kojom verzijom Windows-a program radi (naravno iz C-a)...
DWORD GetVersion(void)
U Windows-u 3.1 je DWORD, u ranijim verzijama izlaz je WORD. U nižih
16 bita je Windows verzija. Viši bajt je "minor" (tj. broj iza tačke, kod Win
3.1 je 10) a niži bajt "major" (kod Win 3.1 je 3). U viših 16 bita je verzija
DOS-a, s tim što je u višem bajtu "major" a u nižem "minor".
U ranijim verzijama Windowsa izlaz je tipa WORD i sadrži samo Windows
verziju.
Vlada
windows.271asterix,
Jel instalirao neko CL5422 v1.4 drivere sa sezama ?
Desava mi se dosta cudna stvar. Install krene, pita gde je win
direktorijum, i pocne da kopira prvi file koje 16 color driver
i vrti se sam jako dugo. Najduze sto sam ga pustio bilo je 15 min.
Any hints ?
windows.272mvukolic,
Charles Petzold "Programming Windows"
petzold.zipwindows.273dekiper,
> Kako se zove funkcija koja mi kaže da
> li je CheckBox aktiviran ili nije?
> Izgiboh, ali to ne nađoh... :(
Zavisi od toga da li ti je CheckBox u okviru prozora ili dijaloga!
Ako je u okviru prozora onda si mu dodelio neki HWND kada si ga
kreirao... recimo:
HWND hCheckBox;
hCheckBox=CreateWindow("Button","Deki",BS_CHECKBOX đ WS_CHILD đ
WS_VISIBLE,20,40,80,20,IDC_DEKI);
Onda ćeš sa jednim:
if(SendMessage(hCheckBox, BM_GETCHECK, 1, 0L))
videti da li jeste ili nije.
Ako je u okviru dijaloga onda:
hDlg je handle dijaloga, a IDC_CHECKBOXUDLG identifikacioni
broj objekta u dijalogu (definisao si ga u .RES , već smo o
tome raspravljali!).
if(SendMessage(GetDlgItem(hDlg, IDC_CHECKBOXUDLG), BM_GETCHECK, 0, 0L))
ako je TRUE (!=0) onda jeste a ako je FALSE (0) onda nije!
Pozdrav, Deki
windows.274paki,
> E; možda je ovo već i bilo ali mi treba fora sa kojom bi pronašao kpod
> kojom verzijom Windows-a program radi (naravno iz C-a)...
GetVersion (Windows API function)
Declaration
function GetVersion: Word;
Description
Retrieves Windows' current version number
Return value
Minor version number in high-order byte
Major version number in low-order byte
windows.275kenza,
(;> Ima li interesenata za sve primere iz knjige
(;> "Programming Windows" Charlesa Petzolda?
Naravno ;) Monumentalno ;)
windows.276goranr,
Skinuo sam sa sezama Oberon4Win, instalirao sam Win32s,
sve fino uradio, startovao Share /f:16384 /l:255,
set oberondirs=E:Đoberon;e:ĐoberonĐfonts, igra FreeCell
radi, ali Oberon kad ga startujem javlja Dos grešku 21?
Da li je to greška 15h ili 21h? Ako je 21h, onda je problem
sa zaključavanjem fajlova.... a ne bi trebalo da ga bude...
Please help me!!!!!!
ÔOPAH
windows.277markom,
■■■ Group..?
Može ...
Marko
windows.278pbojan,
>> Nije OK... A ostali..?
>> Group..?
Evo, i ja 'ocu :).
windows.279dekiper,
E, može grupa ali bez suvišnih članova, moliću lepo. Imam već dosta iskustva sa
ljudima koji bi daj bože ali da budu u nekoj grupi. Hajde da se organizujemo i
da se to lepo i pošteno uradi i ne samo to (mislim na Petzold-a). Predlažem da
vođa grupe bude .obj pošto je najiskusniji i moći će da proceni ko je višak a
ko nije. Dakle Obrade...
Pozdrav, Deki
windows.280markom,
■■■ Charles Petzold "Programming Windows"
Hvala :)
Marko
windows.281.obj,
> if(SendMessage(GetDlgItem(hDlg, IDC_CHECKBOXUDLG), BM_GETCHECK, 0, 0L))
>
> ako je TRUE (!=0) onda jeste a ako je FALSE (0) onda nije!
Može i jednostavnije, pozivom funkcije IsDlgButtonChecked().
Na primer,
if(IsDlgButtonChecked(hDijalog, CheckBoxID))
...
Slično, ako treba "uključiti" neki CheckBox ili RadioButton, nije neophodno
slati poruku BM_SETCHECK, dovoljno je samo
CheckDlgButton(hDijalog, CheckBoxID);
P.S.
Svi koji oće u grupu winp - nek' kažu, i nek požure pošto nema više
puno mesta.
windows.282kenza,
(;> Svi koji oce u grupu winp - nek' kazu, i nek pozure posto
(;> nema vise puno mesta.
Ajde baci me tamo ;) please ;)
windows.283.obj,
Rekosmo da ovu temu treba održavati zarad novajlija u win-programiranju.
Pa, evo rezultata mog jednočasovnog mučenja i to po sred ispitnog roka. :))
Radi se o malom tekstu na temu subclassiranja (nisam znao ovo da
prevedem, majke mi).
Subclassiranje prozora
žesto je potrebno izmeniti "default" ponašanje neke standardne
kontrole. Naime, standardne kontrole (za one koji ne znaju šta je to,
to su standardni Windows elementi kao Button-i (tasteri), Edit polja,
ListBox-ovi za izbor stvari iz liste itd) su napravljene tako da
zadovoljavaju jedan minimum potreba koje se javljaju u normalnom radu.
Obezbeđene su i malo finije mogućnosti, uglavnom u domenu regulisanja
spoljašnjeg izgleda standardnih kontrola (tzv. owner draw Button-i,
ListBox-ovi itd). Međutim, šta ako to nije dovoljno? Reklo bi se da
nije moguće, na primer, obezbediti da se pritiskom na taster Ctrl-Q u
standardnom Edit polju pojavi tekuće vreme i datum, a da nije potrebno
iznova pisati sve one kerefeke koje podržava standardno Edit polje. Da
bi ovo postigli, potrebno je upotrebiti "mehanizam" subclassiranja.
Potencijalni problemi
Na isti način kako se subclassiraju prozori, mogu se subclassirati i
klase prozora. Raditi to sa standardnim klasama (Button, Edit...) nije
nimalo preporučljivo, jer se time menja ponašanje *svih* prozora u
sistemu koji pripadaju klasi koju subclassiramo! Zato se praktikuje
samo subclassiranje pojedinačnih prozora. U određenim situacijama,
naravno, neophodno je subclassiranje klasa prozora, ali to praktično
rade samo programi tipa ALL3D, a takvi se ne prave baš svaki dan.
Kako subclassirati prozor
Iako zvuči opako, subclassiranje prozora je u principu veoma
jednostavno - rutinska operacija. Naime, svaki prozor u sistemu ima
svoje "lične i personalne" podatke - ime, stil, handle roditeljskog
prozora, pointer na "servisnu" funkciju (WndProc), ID (ukoliko se radi
o child prozoru) i još neke podatke. Da bi se pročitale neke od tih
vrednosti, koriste se funkcije GetWindowLong() i GetWindowWord(). Na
primer,
DWORD Style = (DWORD)GetWindowLong(hProzor, GWL_STYLE);
Ovime smo, dakle, "očitali" stil prozora, koji dalje možemo testirati
logičkim operatorima da bismo saznali da je prozor, na primer, vidljiv
(bit WS_VISIBLE). Naravno, taj podatak se može očitati i funkcijom
IsWindowVisible(), ali ovo je, jelda, samo primer.
Na potpuno isti način moguće je i menjati podatke koji pripadaju nekom
prozoru a koriste se, logično, funkcije SetWindowWord() i
SetWindowLong().
Stižemo do subclassiranja. Ono što bi nama bilo potrebno je da nekako
"preusmerimo" servisnu funkciju (WndProc) na neku našu funkciju, tu
uradimo ono što želimo i zatim samo pozovemu "staru" (tj. originalnu)
prozorsku servisnu funkciju.
Ukratko, ideja je sledeća:
StaraWindowProcedura = OčitajWindowProceduru ( hProzor )
PostaviNovuWindowProceduru ( hProzor, NovaWindowProcedura )
...
proc NovaWindowProcedura:
if(PrisitnutoCtrlQ)
...pošalji StarojWindowProceduri trenutni datum
i vreme u ASCII obliku. Najlakše je to uraditi
tako što se StarojWindowProceduri šalju
poruke WM_CHAR (pritisak na ASCII karakter)
koje ona automatski "ispisuje" u Edit prozor
else
Pozovi(StaraWindowProcedura)
Konkretno, stvar bi ličila na nešto tipa:
// Long Pointer to FuNction, lpfn, dva komada, globalne
// promenljive
WNDPROC lpfnStaraWndProc, lpfnNovaWndProc;
// prelazimo na stvar:
//
// napravimo instancu novog WndProc-a na koji
// hoćemo da preusmerimo tok poruka
lpfnNovaWndProc = (WNDPROC)MakeProcInstance(
(FARPROC)NovaWndProc,
hInst);
// očitajmo originalnu WndProc, da bi se kasnije mogla pozivati
// preko CallWindowProc().
lpfnStaraWndProc = (WNDPROC)GetWindowLong(
hProzor,
GWL_WNDPROC);
// najzad: postavljamo novu WndProc
SetWindowLong(
hProzor,
GWL_WNDPROC,
(LONG)lpfnNovaWndProc);
// Moguće je poslednja dva poziva spojiti u jedan - pošto
// SetWindowLong() ujedno i vraća originalnu vrednost promenljive
// GWL_WNDPROC, međutim, ovako je možda malo očiglednije.
Upravo smo izvršili subclassiranje prozora "hProzor"! Podrazumeva se,
naravno, da smo ga pre toga kreirali (bilo preko CreateWindow() ili je
to uradio DialogBox za nas). Ukoliko se subclassira kontrola u okviru
dijaloga (najčešći slučaj), ovo sve gore se poziva kao reakcija na
poruku WM_INITDIALOG.
Ostaje još samo da se napravi NovaWndProc. Ona ima istu strukturu kao i
bilo koja standardna WndProc, samo što na kraju mora (ili bi trebalo)
da pozove "staru", tj. originalnu WndProc. To pozivanje ide preko
funkcije CallWindowProc(). Evo kako izgleda NovaWndProc:
LRESULT FAR PASCAL NovaWndProc(HWND hWnd, UINT message, WPARAM wParam,
LPARAM lParam) {
// sve je potpuno standardno, uključujući i obavezu da se ova
// funkcija EXPORT-uje!
// taster Ctrl+Q ima kod 17:
if(message == WM_CHAR && (char)wParam == 17) {
// par pomoćnih promenljivih da bi se očitao datum i vreme
time_t v;
char *vreme;
// očitajmo trenutno vreme i datum:
time(&v);
vreme = asctime(localtime(&v)));
// ... i pošaljimo ga u Edit prozor kao da ga ručno kuca
// korisnik:
while(*vreme != '\n') { // asctime završava string sa '\n'
// simuliramo kucanje slanjem poruka WM_CHAR u
// originalnu WndProc
CallWindowProc(
lpfnStaraWndProc, // zovemo WndProc koja pripada
// originalnoj Edit klasi
hWnd, // šaljemo istom prozoru...
WM_CHAR, // poruku WM_CHAR...
(WPARAM)*vreme, // pritisnut je ASCII taster
0);
vreme++;
}
// pravimo se kao da se ništa nije desilo:
return NULL;
}
// ako korisnik nije pritisnuo Ctrl+Q, samo treba pozvati
// staru WndProc da bi ona uradila sve što inače radi
// WndProc jednog Edit prozora
return CallWindowProc(lpfnStaraWndProc, hWnd, message, wParam, lParam);
}
Potrebno je i, nakon uništavanja subclassiranog prozora, poništiti
kreiranu instancu funkcije NovaWndProc. Ukoliko se radi o dijalogu,
reakcija na poruku WM_DESTROY bi bila:
BOOL FAR PASCAL AbcDlgProc(...)
...
case WM_DESTROY:
// uništimo instancu funkcije NovaWndProc
FreeProcInstance(lpfnNovaWndProc);
...
I time smo uradili sve što je potrebno da bi edit-polje u dijalogu na
pritisak tastera Ctrl+Q prikazivalo trenutni datum i vreme (btw, u
formatu "Thu Jan 27 13:39:06 1994").
Have fun!
OB Cool J
windows.285pjankovic,
> E, može grupa ali bez suvišnih članova, moliću lepo. Imam već dosta
Sada ste me podsjetili da već postoji jedna grupa koja se bavi Windows
programiranjem.
Zove se winprog i njen vlasnik je dragan.jurić. Ako me sjećanje ne vara, već
više
od godinu dana nije emitovala ni jednu poruku.:( Nadam se da ova nova grupa
neće doži-
vjeti istu sudbinu:).
windows.286ognjen,
[reply to .obj]
)-> Svi koji oce u grupu winp - nek' kazu, i nek pozure posto
)-> nema vise puno mesta.
Nije li glupo otvarati grupu, kad ima ta tema u konferenciji?
windows.287robert,
>> Charles Petzold "Programming Windows"
Ok, a sad bih voleo da znam sledeće stvari:
- da li neko ima tu knjigu i voljan je da mi je pozajmi na dan da
je iskopiram i
- za kopji kompajler su pisani primeri u knjizi
ona prva stavka mi je veoma bitna :).
Još bi me zanimalo da li neko ima Visual C++ i neku literaturu,
voleo bih da to malo pogledam :).
windows.289bigbrada,
!##! if(SendMessage(GetDlgItem(hDlg, IDC_CHECKBOXUDLG),
!##! BM_GETCHECK, 0, 0L))
!##!
!##! Pozdrav, Deki
Thanx. :)
Brada.
windows.290zormi,
* Još bi me zanimalo da li neko ima Visual C++ i neku literaturu,
* voleo bih da to malo pogledam :).
Imam Visual C++ 1.0, ali sam zagubio literaturu...
Izašao je i VC++ 1.5, izgleda na CD-u.
windows.291markom,
■■■ Imam Visual C++ 1.0, ali sam zagubio literaturu...
*******
:))))))
ili je nisi ni imao ;)))
Marko
windows.292dekiper,
Definiši ZAGUBIO, a onda ćemo svi da te bijemo!
Pozdrav, Deki
windows.293vcalic,
>> - za kopji kompajler su pisani primeri u knjizi
Za MSC 6.0 + SDK.
BTW, nije loše dobro prostudirati Petzolda, ali može se i bez toga
vrlo lepo i lako programirati pod Windows-om. Npr. Help za BC3.1 sadrži
maltene sve potrebne informacije, a neki osnovni koncepti se mogu izvući iz
raznih source-ova priloženih uz kompajlere, a i iz raznih PD arhiva kojih ima
i po Sezamu.
Vlada
windows.294jovca.car,
/* Imam Visual C++ 1.0, ali sam zagubio literaturu...
"Zagubio" literaturu od nekoliko hiljada strana???
Cuj, nasi smo, kazi slobodno da je nikad nisi ni video...:)
windows.295bigbrada,
!##! Svi koji oće u grupu winp - nek' kažu, i nek požure pošto
!##! nema više puno mesta.
Ubacuj me!!!
Brada.
windows.296bigbrada,
Opet problem. Imam dijalog koji uzima parametre za Edit
Window iz fajla. E sad, u tom dijalogu imam Button koji
treba da otvori isti dijalog, ali sa drugim parametrima
(koje takođe uzima iz fajla). Evo primera :
Function Primer (Dialog : HWnd; Poruka, WParam: Word;
LParam: Longint): Bool; export;
begin
Primer := True;
Case Poruka of
wm_InitDialog : begin
Reset (DBPrimer);
Seek (DBPrimer, GdeDaIdem);
Read (DBPrimer, HelpPrim);
Close (DBPrimer);
SetDlgItemText (...);
...
Exit;
end;
wm_Command : begin
Case WParam of
001 : begin
GetDlgItemText (...);
...
EndDialog (Dialog, 1);
Exit;
end
800 : begin
Inc (GdeDaIdem);
?????????
end
002 : begin
EndDialog (Dialog, 1);
Exit;
end;
end;
end;
end;
Primer := False;
end;
Kada pritisnem taj Button, onda uvećavam GdeDaIdem, i
treba ponovo da se pozove funkcija Primer. Stavio sam to
ali se ništa ne dešava. Pokušao sam i ovo
Poruka := wm_InitDialog;
ali nije uspelo. Šta treba da uradim da bi radilo?
Brada.
windows.297zbubnjevic,
Zainteresovan sam za učešće u winp grupi.
Pa ako može rado bih pristupio.
zbubnjevic!
windows.298i.a.n.,
>> Opet problem. Imam dijalog koji uzima parametre za Edit Window
>> iz fajla. E sad, u tom dijalogu imam Button koji treba da otvori
>> isti dijalog, ali sa drugim parametrima (koje takođe uzima iz
>> fajla).
Da li hoćeš da otvaraš novi dialog box ili samo da promeniš parametre
postojećeg? Ako je ono prvo, moraš ponovo da zoveš DialogBox(). U
drugom slučaju probaj da izdvojiš sva podešavanja elemenata u
proceduru, pa je zovi i kad obrađuješ WM_INITDIALOG i kad se pritisne
to dugme. Recimo
Function Primer (Dialog : HWnd; Poruka, WParam: Word;
LParam: Longint): Bool; export;
(* Ovde su podešavanja *)
Procedure SetDlgPara(Dialog: HWnd; ...);
begin
SetDlgItemText(...);
...
end;
begin
Primer := True;
Case Poruka of
wm_InitDialog: begin
Reset (DBPrimer);
Seek (DBPrimer, GdeDaIdem);
Read (DBPrimer, HelpPrim);
Close (DBPrimer);
SetDlgPara (Dialog, ...); (* zoveš podešavanja *)
...
Exit;
end;
wm_Command: begin
Case WParam of
001: begin
GetDlgItemText (...);
...
EndDialog (Dialog, 1);
Exit;
end
800: begin
Inc (GdeDaIdem);
...
(* ponovo zoveš proceduru za podešavanja *)
SetDlgPara(Dialog, ...);
...
end;
end;
end;
Primer := False;
end;
windows.299markom,
■■■ Svi koji oće u grupu winp - nek' kažu, i nek požure pošto
■■■ nema više puno mesta.
Jes' da sam svež u toj oblasti, ali ako ima mesta ... :)
Marko
windows.300zormi,
*/ * Imam Visual C++ 1.0, ali sam zagubio literaturu...
*
* "Zagubio" literaturu od nekoliko hiljada strana???
* Cuj, nasi smo, kazi slobodno da je nikad nisi ni video...:)
Nikad je nisam ni video. Kolega je doneo diskete iz Hong Konga (piratske)
ali je u presedanju izgubio torbu sa nekakvom knjigom za to. Doneo je samo
knjigu za Visual Basic, ali v1.0. :(
windows.301djelovic,
Zna li ko koje konstante treba da "isključim" iz stila proznÔa pa
da nema titlebar, tj. da se sastoji samo od okvira i sredine?
windows.302pjankovic,
> Zna li ko koje konstante treba da "isključim" iz stila proznÔa pa
> da nema titlebar, tj. da se sastoji samo od okvira i sredine?
Ne znam koje konstante ti sada stoje u stilu prozora, ali probaj da ostaviš
samo WS_BORDER. Inače, konstanta WS_CAPTION je zadužena za Title bar.
windows.303dekiper,
> Zna li ko koje konstante treba da "isključim" iz stila proznÔa pa
> da nema titlebar, tj. da se sastoji samo od okvira i sredine?
Stavi recimo samo: WS_OVERLAPPED đ WS_THICKFRAME i prozor će biti
onakav, kako si ga ti opisao :))
Pozdrav, Deki
windows.304djelovic,
> Stavi recimo samo: WS_OVERLAPPED đ WS_THICKFRAME i prozor će biti
> onakav, kako si ga ti opisao :))
Neće. Probao sam sve, probao sam da isključim WS_BORDER i/ili WS_CAPTION,
međutim ništa ne šljaka. BTW, Clock koji dolazi uz Windowse ima mogućnost da
radi bez titlebara. Zna li ko kako da "pročitam" njegove atribute?
windows.305pjankovic,
// Neće. Probao sam sve, probao sam da isključim WS_BORDER i/ili WS_CAPTION,
Da možda tvoj prozor nema WS_OVERLAPPED ili WS_OVERLAPPEDWINDOW stil? Ova dva
stila u sebi impliciraju da prozor ima Title bar.
windows.306djelovic,
> Da možda tvoj prozor nema WS_OVERLAPPED ili WS_OVERLAPPEDWINDOW stil? Ova d
> stila u sebi impliciraju da prozor ima Title bar.
Nema. Proverio sam kako to radi Clock koji dolazi uz Windows, i izgleda da
cela stvar nema uopšte veze sa atributima (?). Sad pokušavam da nekako promenim
"Client rectangle" prozora, al' mrka kapa :(.
windows.307paki,
> Nema. Proverio sam kako to radi Clock koji dolazi uz Windows, i izgleda
> da cela stvar nema uopšte veze sa atributima (?). Sad pokušavam da
> nekako promenim "Client rectangle" prozora, al' mrka kapa :(.
Jesi li rešio problem? Ako nisi, možda pomogne:
CreateWindowEx(ExStyle:integer; ...)
Parameter Description
WS_EX_DLGMODALFRAME Designates a window with a double
border that may (optionally) be created
with a title bar by
specifying the WS_CAPTION style flag
in the ExStyle parameter)
windows.308drdjokic,
Da li postoji mogucnost stampanja kompletnog WINDOWS helpa (bilo u fajl,
bilo na stampac) ali ne sa print screen.
Hvala unapred !
windows.309slazic,
Ljudi da li neko ima literaturu za Visual Basic 3.0
Hvala unapred
slazic
windows.310dcolak,
│ Ljudi da li neko ima literaturu za Visual Basic 3.0
Eh, da vidiš kako je samo loše napisana. Za razliku od MSC6.0 koji
je imao stvarno odlično urađenu literaturu, ovo je užas...
Da te utešim, help je dovoljan, samo, ako ti je potrebna informacija
o Custom Controls udari search i ukucaj ih...
Sledge DAMMIR!
windows.311slazic,
Hvala :)
windows.312luks,
Evo ovako:
Moj drugar, kome je istekla pretplata na Sezam, čitao je moj PAD pa
me je zamolio da pošaljem par replika u ovu temu, što ja ovom prilikom
i radim. Tako da ubuduće, ako se pojavi neka poruka u ovoj temi, to
nije moje delo nego mog drugara (username: fole).
Nadam se da uprava nema ništa protiv, jer će poruke biti stručne (nadam
se, pošto nemam pojma sa win programiranjem) što može samo da podigne
nivo rasprave. :)
Pozdrav, luks
windows.313luks,
> Nema. Proverio sam kako to radi Clock koji dolazi uz Windows, i izgleda da
> cela stvar nema uopšte veze sa atributima (?). Sad pokušavam da nekako
> promenim "Client rectangle" prozora, al' mrka kapa :(.
Evo gledam sa WinSight-om Clock, lepo piše:
Overlapped Visible ClipSiblings Border ThickFrame
I stvarno neradi!! Iako je ukupan zbir 0x14840000, Windows-i od toga
naprave 0x14C40000 što je tačno ovo gore + WS_CAPTION?
Malo sam se igrao i evo odgovora.
Za style uzmi sledeće atribute:
WS_POPUP, WS_VISIBLE, WS_BORDER, WS_THICKFRAME.
Probao sam radi!
BDW, ako je neko imao nekada posla sa Win Helpom zna za termin PopupId.
The PopupId macro displays a topic from a specified file in a pop-up
window. To je onaj istaknuti prozor, a on stvarno nema naslov.
Šaljem i mali primer koji objašnjava kako CLOCK radi one stvari ;),
čas ima title bar a čas nema.
Možda će nekoga zanimati joć poneki 'fazon' pa neka slobodno pita. Nisam
ja baš neki mag ali ponešto se i zna.
title_yn.zipwindows.314djelovic,
> Za style uzmi sledeće atribute:
> WS_POPUP, WS_VISIBLE, WS_BORDER, WS_THICKFRAME.
> Probao sam radi!
Imaš piće od mene.
> Možda će nekoga zanimati joć poneki 'fazon' pa neka slobodno pita. Nisam
> ja baš neki mag ali ponešto se i zna.
Kako sada da obezbedim pomeranje (move) mišem ovakvog prozora koji nema
titlebar za koji bi se "uhvatio"? Clock možeš da uhvatiš bilo gde i da ga
pomeraš, iako nema titlebar. Napravio sam, doduše, rutinu za pomeranje
ovakvih prozora, ali to nije ono ugrađeno Windows pomeranje, već "na mišiće".
windows.315dragisha,
Postoji li način da DOS aplikacija saopšti Windows-u da je IDLE? Naravno,
radi u prozorčetu i želim da olakšam slajsovanje. Postoji li negdje info o
'API'ju DOS aplikacija ka Windows-u?
--
[A hundred thousand lemmings can't all be wrong...]
windows.316dzakic,
> Postoji li način da DOS aplikacija saopšti Windows-u da je IDLE?
> Naravno, radi u prozorčetu i želim da olakšam slajsovanje. Postoji
> li negdje info o 'API'ju DOS aplikacija ka Windows-u?
Postoji:
mov ax,$1680 ; Give up time slice
int $2F
MS Windows detektuješ sa:
mov ax,$1600
int $2F
vrati se verzija u ah i al. Ako je al=00h ili 80h, nema windowsa.
Izvor: inter30 iz direktorijuma. Postoji to isto i za DesqView.
Zak
windows.317luks,
> Kako sada da obezbedim pomeranje (move) mišem ovakvog prozora koji nema
> titlebar za koji bi se "uhvatio"? Clock možeš da uhvatiš bilo gde i da ga
> pomeraš, iako nema titlebar. Napravio sam, doduše, rutinu za pomeranje
> ovakvih prozora, ali to nije ono ugrađeno Windows pomeranje, već "na mišiće".
Imao prozor Title bar ili ne, uvek možš da mu pošalješ sistemsku poruku.
Samom sebi! Nešto poput ovoga:
case WM_LBUTTONDOWN:
SendMessage( hwnd, WM_SYSCOMMAND, SC_MOVE đ HTCAPTION, 0l);
return 0 ;
Pošalješ mu SC_MOVE + prevariš ga kao da si kliknuo na HTCAPTION! Bitno je
samo da vratiš 0 kako poruka ne bi propala do DefWindowProc.
BDW, ovakav MOVE pomera i MAXIMIZED window!! Have fun.
windows.318luks,
> Da li postoji mogucnost stampanja kompletnog WINDOWS helpa (bilo u fajl,
> bilo na stampac) ali ne sa print screen.
>
> Hvala unapred !
Petljamo nešto. You will be first to know about that!
windows.319novim,
nezavisno od Bila u Tolstojevoj, ima li negde Microsoft Help
Compiler (HC32.EXE)? (prevodi .RTF u .HLP)
windows.320zbubnjevic,
Ukoliko tražiš hc31.exe možeš ga nači u Borlandovom BC++ 3.1 paketu, a ako ti
to nije dovoljno na FON-ovom BBS-u možeš nači datoteku WHAT.ZIP (ili tako
nešto) to je kompajler koji produkuje .hlp (rtf->hlp) sa skromnim shell-om.
Ili nabavi MSWord 6.0, po meni najbolje rešenje za kreiranje help-ova.
windows.321ppekovic,
>> nezavisno od Bila u Tolstojevoj, ima li negde Microsoft Help
>> Compiler (HC32.EXE)? (prevodi .RTF u .HLP)
Ima na FFS-u (arhiva what.zip). Istina, nije HC32 već HC31.
Paya
windows.322dzoric,
Hi,
Novi sam ovde. Evo ovako: Poceo sam da cackam sa SDK 3.0
i MS C 6.0, jer imam knjigu C.Petzold-a pa mogu lepo da
pratim primere. Ali linker mi uvek javi da _crtused nije
definisMMMMMMana funkcija.
Nekad mi se javi da f-ja _main nije definisana.
windows.323dvesic,
Da li neko zna tacnu strukturu BMP fajla ?
Pozdrav,
Dejan.
windows.324peca.st,
!-> Da li neko zna tacnu strukturu BMP fajla ?
Vrlo je prosta (pominjano je to ovde skoro, samo sam ja zaboravio
da pošaljem) i sa jednim drugom sam napravio brz viewer za bmp.
Podseti me preko maila da to pošaljem ako ti treba.
Peđa.
windows.325ficus,
Nekad mi se javi da f-ja _main nije definisana.
-----
Jeli jesi li mu podesio opcije za win. prg.
windows.326peacock,
Upgrade Windowsa sa 3.10 na 3.11 radi i ako to uradite
W3.1EE. Zadržite stari gdi.exe.
windows.327msijanec,
Da li neko prodaje Petzoldovu knjigu?
Jako sam zainan da je kupim.
mail send msijanec
Filip.
windows.328mjova,
postoji li neki gotivan helpić za win api? silno me zanima. ovde sam
video neke stvari, ali ne znam ima li nešto bolje?
windows.329mnikolic,
>> postoji li neki gotivan helpić za win api? silno me zanima. ovde sam
>> video neke stvari, ali ne znam ima li nešto bolje?
Pa najbolji je onaj što ide uz BCW 3.1
Vlada
windows.330spantic,
> Upgrade Windowsa sa 3.10 na 3.11 radi i ako to uradite
> W3.1EE. Zadržite stari gdi.exe.
Jesi baš siguran za GDI? Naime, probe radi ja sam zamenio i njega. Uopšte
nisam imao nikakvih problema normalna štampa i sve ostalo. Posle sam ga
ipak patchovao sa GDIFIXom ;)
windows.331peacock,
Upgrade Windowsa sa 3.10 na 3.11 radi i ako to uradite
W3.1EE. Zadržite stari gdi.exe.
windows.332peacock,
#### Jesi baš siguran za GDI? Naime, probe radi ja sam zamenio i
#### njega. Uopšte nisam imao nikakvih problema normalna štampa i
#### sve ostalo. Posle sam ga ipak patchovao sa GDIFIXom ;)
Meni je novi GDI.EXE ubacio neke ekranske fontove koji nemaju
veze sa ovim našim. Bila mi je hića da nešto pišem, pa sam
probao sa starim, i sve je prošljakalo kako treba. Kod kuće
mi je novi GDI.EXE, urađen je GDIFIX i proradilo je. Kod
ortaka ovo uopšte ne šljaka. Neke bubice Windowsa?
windows.333saricl,
> Svi koji oće u grupu winp - nek' kažu, i nek požure pošto nema više
> puno mesta.
Pa nedavno sam nabavio VB-3.0 pa bi cenio ako neko mo×e da
mi pomogne da napravim prve korake.
Takoe ako se u toj grupi raspravlja o sliŠnim temama
molio bih prikljuŠak.
DARKO.
windows.334saricl,
> Ljudi da li neko ima literaturu za Visual Basic 3.0
> Hvala unapred
Ajd ako neÜto ŠujeÜ javi i ja sam preko zainteresovan,
a u micro knjigi ka×u tek posle septembra. :(((
windows.335bdm.,
## Pa nedavno sam nabavio VB-3.0 pa bi cenio ako neko mo×e da
## mi pomogne da napravim prve korake.
Za početak startuj tutorial, super je urađen i brzo ćeš sve shvatiti,
plus što je dokumentacija dovoljno obilata...
BDM.
windows.336dcolak,
│ Ajd ako neÜto ŠujeÜ javi i ja sam preko zainteresovan,
│ a u micro knjigi ka×u tek posle septembra. :(((
Set Code...
Sledge DAMMIR!
windows.337bigbrada,
*>> Ajd ako neÜto ŠujeÜ javi i ja sam preko zainteresovan,
*>> a u micro knjigi ka×u tek posle septembra. :(((
SET CODE, SET CODE, SET CODE i SET CODE!!!!!
Brada.
windows.339robert,
Kako to na Sezamu nema Help Compiler-a za Win? U DOC-u od onog
drhelp-a se kaže da postoji verzija 3.x na nekom FTP serveru...
windows.340iboris,
Ł Takoe ako se u toj grupi raspravlja...
Mogao bi da podesiš raspored.
windows.341robert,
>> Kako to na Sezamu nema Help Compiler-a za Win? U DOC-u od onog
E, nema na Sezamu ali ima na FFS-u :). Zove se WHAT.ZIP.
windows.342ppekovic,
>> Kako to na Sezamu nema Help Compiler-a za Win? U DOC-u od onog
>> drhelp-a se kaže da postoji verzija 3.x na nekom FTP serveru...
Help compiler postoji na FFS-u. Mali je problem što je arhiva,
koliko se sećam, nešto veća od 1M.
Paya
windows.343novim,
">> Kako to na Sezamu nema Help Compiler-a za Win?
" E, nema na Sezamu ali ima na FFS-u :). Zove se WHAT.ZIP.
I dugačko 1,309,697. (Koliko je sam HC31.EXE i osnovne biblioteke?)
windows.344mnikolic,
>> I dugačko 1,309,697. (Koliko je sam HC31.EXE i osnovne biblioteke?)
HC31 je oko 250K nezipovano. Potrebni su i WHAT31.DOT, template za
WinWord i WHAT.HLP, help fajl za rad sa pomenutim template-om. Ko hoće da
pravi skokove i pop-up prozore iz bitmap fajlova, treba mu i HOTSPOT (postoji
i u BCW-u), koji je sa sve help-om oko 200K nezipovano.
Vlada
windows.345sifist,
> Pa nedavno sam nabavio VB-3.0
Ako ti nije problem javni mi gde si nabavio VB-3.0 jako sam zaintresovan
odnosno ako neko ima neka mi se javi.
Pozdrav :)
windows.346fancy,
ŮŢ> Ako ti nije problem javni mi gde si nabavio VB-3.0 jako sam zaintresovan
ŮŢ> odnosno ako neko ima neka mi se javi.
MiSoft, 850 DEM. (profesionalna verzija)
Njihove reklame su po svim časopisima koji se bave računarima.
windows.347ziva,
Zdravo svima,
Ovde sam novi pa se unapred izvinjavam ako je o ovome već bilo reči.
Interesuje me da li se neko bavi programiranjem pod WFWG. Preciznije
zanima me kako se koriste mrežne funkcije. Dal' možda postoje nove
API funkcije koje se odnose na rad u mreži.
čiva
windows.348novim,
"
Abulafia is a Windows program designed for keeping a diary. It has
many features, including;
- Multiple topics (documents) per day
- Secure password encryption
- Week display window
The name Abulafia, in case you are wondering, is taken from Umberto
Eco's book, "Foucault's Pendulum".
Abulafia is in the public domain.
"
abulafia.zipwindows.349dr.grba,
>> Abulafia is a Windows program designed for keeping a diary. It has
>> ...
>> - Secure password encryption
Za one koji nisu čitali "Fukoovo klatno" jedan hint:
Ako vas program ljubazno pita "Znate li lozinku?", odgovorite...
...
... Ne, ipak uzmite knjigu. (((:
windows.350paki,
Kako da zadovoljim Borlandov tlink, koji mi konstantno javlja da
je funkcija _main u modulu WINMAIN nedefinisana, iako je ima?
Pretpostavljam da je problem u .mak fajlu; da li ovaj radi
(napravljen c&p metodom od whello.mak)?
plib.exe: plib.obj plib.def plib.res
tlink /Tw /v /n /c C:\BORLANDC\LIB\c0ws plib,\
plib,\
,\
C:\BORLANDC\LIB\cws C:\BORLANDC\LIB\cs C:\BORLANDC\LIB\import,\
plib
rc plib.res
.c.cpp.obj :
BCC -c -ms -v -W $<
.rc.res :
rc -r -iC:\BORLANDC\INCLUDE $<
windows.351paki,
> Kako da zadovoljim Borlandov tlink, koji mi konstantno javlja da
> je funkcija _main u modulu WINMAIN nedefinisana, iako je ima?
Zezao sam se još malo s ovim, i ustanovio sam da je problem u
tome što je nešto loše podešeno, pa je tako npr. WndProc
non-public symbol, iako bi trebalo da je obrnuto.
Pošto ne znam C baš dobro, uporediću ovo s Paskalom: dešava se
nešto slično tome da su sve deklaracije prebačene iz interface u
implementation sekciju. Kako ovo vratiti na normalu?
windows.352djelovic,
> Kako da zadovoljim Borlandov tlink, koji mi konstantno javlja da
> je funkcija _main u modulu WINMAIN nedefinisana, iako je ima?
Ovo mi se desilo baš danas. Ispalo je da sam u projektu greškom za glavni
fajl kliknuo na "Exclude from link" umesto na "Exclude debug info". Inače, ta
j dijalog se dobija kada u projekt prozoru udariš Ctrl-O
windows.353dgrbic,
:: Kako da zadovoljim Borlandov tlink, koji mi konstantno
:: javlja da je funkcija _main u modulu WINMAIN
:: nedefinisana, iako je ima?
Probaj da deklarises main kao _cdecl, ili dodaj u opcije za kompajler -p-
(use C calling convention).
Za Win. programe je default _pascal deklaracija, a main mora da bude
_cdecl.
Grba
windows.354.braca,
Znali neko da mi objasni funkcij MakeProcInstance(HANDLE,FARPROC);
Imam 10ak prozora na ekrana a kad na pritisak na dugme otvorim dialogbox
sve radi ok jedno 5-6 puta a onda mi javi čuveno " ... stop responding ..."
U dialog funkciji nema ničeg problematičnog ako nije u pitanju WM_PAINT
ali on ima samo jedan TextOut(...); ....
HELP !
windows.355dekiper,
Ovako je teško utvrditi problem... Daj deo source-a koji pravi gluposti pa da
vidimo!
Pozdrav, Deki
windows.356bigbrada,
Da li bi mi neko mogao reći koji je TPW ekvivalent
za ovo:
...
SwapVectors;
Exec (...)
SwapVectors;
...
Brada.
windows.357feniks,
Da li je moguće prilikom štampanja preusmeriti
sve u file umesto u printer, pa potom to štampati
iz DOS-a na nekom drugom računaru koji je vezan za
recimo HP Laserski printer? Poželjno bi bilo da to
može sa COPY/B .... Ako ne može tako, koji software
mi je potreban?
SP
windows.358dejanr,
>> Da li je moguće prilikom štampanja preusmeriti
>> sve u file umesto u printer...
Trebalo bi da je moguće. Kaži da hoćeš da instaliraš još jedan printer,
i onda kada pita za lokaciju umesto LPT1 stavi fajl. Posle će da te
pita za ime fajla kod svakog štampanja.
windows.359feniks,
Hvala, baš ću danas da pokušam tako...
windows.360jovca.car,
/* Da li je moguće prilikom štampanja preusmeriti
/* sve u file umesto u printer, pa potom to štampati
U Control Panel - Printers odabereš printer, klikneš na Connect i odabereš
FILE:. Kad budeš posle štampao, pitaće te za ime fajla.
Ili to, ili svaki put pri štampanju u Printer Setupu označiš Print to file.