Archív konference Delphi

Zpět na výběr roku archívu nebo přejít na fulltextové vyhledávání v konferenci.

Velk� disky a integer

[*] Tomas Bradle <tomas(zv)cobra(tec)cz> - 4.3.1999 16:07:01

Cau,
Delphi 4, lepe receno Int64 to resi.

Tomas
tomas(zv)cobra(tec)cz


-----P=F9vodn=ED zpr=E1va-----
Od: Zden=ECk Moravec <zmo(zv)telecom(tec)cz>
Komu: Konference Delphi <delphi-l(zv)fwd(tec)cz>
Datum: 4. b=F8ezna 1999 15:55
P=F8edm=ECt: Velk=E9 disky a integer


Zdravim vsechny.
Neresili jste uz nekdo, prosim, problem se ziskavanim udaju o velikosti
disku, poctu clusteru, poctu volnych clusteru atd. pro format FAT32 a vel=
ke
disky ? Mam pocit, ze dobre nefunguji funkce DiskSize a DiskFree z Delphi
(vraceji velikost v integer - pretece to), ale bohuzel ani funkce Windows
API (ted nevim presne zpameti - asi GetVolumeInfo) vraci spatne velikost
clusteru. Mozna je to tim, ze FAT32 jede spise na sectory nez na clustery=
,
ale API predpoklada hlavni jednotku cluster.
Neexistuje neco, co by tyto rozpory resilo ? (deje se na Windows 98, 95, =
NT
nevim - ty asi FAT32 nepodporuji).
Dekuji za odpovedi.

Zden=ECk Moravec zmo(zv)telecom(tec)cz

Connection is busy

[*] Pavol Griga <paly(zv)sct.sk> - 4.3.1999 16:21:21

Nevie mi niekto poradit, preco mi MS SQL 6.5 hlasi chybovu
hlasku:

Key violation.
General SQL error.
[Microsoft][ODBC SQL Server Driver]Connection is busy with results
for another hstmt.

P.S. hlasi to vtedy, ked pouzivam ODBC pristup, ked pouzivam NATIVE pristup
tak ziadny problem

a ako ju odstranit.

za dobru radu vopred vdaka

Pavol Griga


MS SQL;pole > 32k

[*] Leopold Grepl <Grepl(zv)melzer(tec)cz> - 4.3.1999 16:23:59

Mel bych jeden dotaz tykajici se ukladani a nacitani blobu > 32kB do MS SQL 7.0 v Delphi 4. Pouzil jsem v databazi typ TEXT a IMAGE a ani v jednom to nejde. Do databaze to ukladam pomoci instrukce INSERT a parametru typu ftblob. Kdyz chci vlozit blob > 32kB, tak mi to server oreze na 32kB a ja uz nevim co s tim.(v helpu jsem to nenasel)

Dekuji za kazdou odpoved
Leopold Grepl
Melzer s.r.o.

Registry a WinNT

[*] Patrik Tesar <Administrator(zv)rosoft.sk> - 4.3.1999 16:26:54

Chcem pisat pomocou TRegistry pocas prace uzivatela, ktory nie je
administrator
Zaujimave je, ze InstallShit zapise vsetko bez problemov...

Tu je ukazka, ako to zapisujem, co robim zle?

reg:=Tregistry.Create;
reg.RootKey:=HKEY_CLASSES_ROOT;
ExpertKey := '\WordPad.Document.1\CLSID';
reg.CreateKey(ExpertKey);
reg.CloseKey;
if reg.KeyExists(ExpertKey) then begin
try
if Reg.OpenKey(ExpertKey, false) then
reg.WriteBinaryData('CL',r,sizeof(r));
finally
Reg.Free;
end;
end;

Vyhodi mi Error

Pri Win95 s IE mi to tiez nerobi dobrotu!!

Destruktor?

[*] Lubo Fule <fule(zv)sct.sk> - 4.3.1999 16:37:36

Presne tak, az na to, ze v Delphi nemozes na objekt volat dispose, ale musis
volat destructor a ten sa postara aj o uvolnenie instancie objektu.

> -----Original Message-----
> From: owner-delphi-l(zv)fwd(tec)cz [mailto:viktor.lostak(zv)chmi(tec)cz] On
> Behalf Of Viktor Lostak
> Sent: Thursday, March 04, 1999 1:40 PM
> To: 'delphi-l(zv)fwd(tec)cz'
> Subject: RE: Destruktor?
>
> Myslis tim, ze kdyz vytvorim lokalni objekt v nejake metode, tak
> se pamet pro nej nealokuje na stacku (zasobniku), ale z haldy? To
> musi dost zdrzovat, ne? Ale v C++, kdyz zavolas "delete" (neco
> jako Dispose nebo Free), tak se destruktor taky zavola.
>
> Ale beru to tedy tak, ze se destruktory atutomaticky nevolaji. To je bida.
>
> Nicmene dik. Viktor
>
> V Delphi su objekty vlastne smernikmi na objekty (v C++
> ponimani), takze ich destruktory sa
> automaticky nevolaju - aspon podla mojich vedomosti.
>
> Viktor Lostak wrote:
>
> > Mam dotaz: volaji se v Delphi destruktory automaticky jako v
> C++, nebo ne (jako v Pascalu 7.0)?
> >
> > Viktor
> >
> > Name: WINMAIL.DAT
> > WINMAIL.DAT Type: unspecified type (application/octet-stream)
> > Encoding: x-uuencode
>


begin 666 winmail.dat
M>)\^(B0/`0:0" `$```````!``$``0>0!(zv)`(````X(zv)0```````#F``$((zv) <`
M& ```$E032Y-:6-R;W-O9G0(zv)36%I;"Y.;W1E`#$(`0V ! `"`````(zv)`"``$&
M(zv) ,`#(zv)```,\'`P`$`! `)0````0`%(zv)$!`Y &``0)```J````"P`"``$````+
M`",```````,`)(zv)``````"P`I```````+`"L```````,`+(zv)```````P`V````
M```>`' ``0```! ```!213H(zv)1&5S=')U:W1O<C\``(zv)%Q``$````;`````;YF
M/"VLL2(V[-(I$=*3IP`(zv)KSO9' `&)%H(zv)``(!'0P!````$0```%--5% Z1E5,
M14!30U0N4TL`````"P`!#(zv)````! ``8.`#;^UU1FO(zv)$"`0H.`0```!(zv)`````
M````^:N]N*%(zv)TA&(zv)ZP`02R&F-,* ```+`!\.`0````,`!A!TIZAI`P`'$',#
M```>``(zv)0`0```&4```!04D533D5404LL05I.051/+%I%5D1%3%!(24Y%34]:
M15-.04]"2D5+5%9/3$%41$E34$]312Q!3$5-55-)4U9/3$%41$535%)50U1/
M4D%414Y305!/4U1!4D%!2D]55D],3D5.``````(!"1 !````;00``&D$``#?
M!(zv)``3%I&=:.B?',#``H`<F-P9S$R-38R`/0!]R "IP(`8V(zv)!"L!S970P(%1A
M/F(zv)#<0*#`% #U _W,C.J. ``*(zv)+A80> ( <3XP* !Q,(zv)0T4"(zv)PY0#[2P<')Q
M,(zv)7<`H!]"H#9",(zv)(zv).PEO#C U`H *(zv)6QU8P!0"P-C`$$+8&Z1#A P,S,,8&QN
M`B!290NF(% )<',:4""!`9!K+"!A>B 2X!4;8&\;H'H3$'8(zv)1*!E;'!H:1O(zv)
M901(zv)!QQ(zv)!" ;\6]B:F5K505 =(zv);P805 9 0`<)9O$% ;H6P3$&UU`)#G!" >
M10>0='(8L!P(zv)!<!S' $)\"!S' `>T0&0<LD<`&%J'< (zv)=1Y!&E#/`P`3$ N
M(9%N8R*Q'=3D=2X9=3(T$3(*L0J$#PJ!&4 "T11Q<S$V(*(zv)^("TF<D\%$&<+
M(zv),T3T4T'D"% 9V4F<R3((zv)0LP9FDM,30T`4!<;&DI`PS0*0-B)D%&E0-A.(zv)R#
M8A" ;W<:4 QR+0$`'-(M;$!FT'=D+F,;T%L9,QH0BQ](zv)"W!L'" Z=FD>$$T%
ML"X)`"&1:T 0$&W.:2QA)8,:%"!=`S J,$Y/`Z$DTR900F40(&Q*9B_P9BL"
M(%8MLR!^3"XC),4J,(zv)9(zv)`C JMU1": AP<V1A>1N(zv)32,*P! 0(# T&Z Q.5LU
M,#40.BD(zv)&O!-,FE4JRV *L8G*ZTG,FIU'>'C() JMU)%.ARA(%(MPN8_*!HI
M4#,V`4 92QJ&8R90,#9->7,I4 0(zv)=",'<!Q#:V1Y&]!V>:9T'D %$&T(zv)"0!K
M!T#W`P`=QQT1:AN 'U$08 1Q_QN(zv)&W$P)Q!0(6 2\05 %/#?(B! X1T1!T _
MX'4=\!OB!2&18T/P("AZ87/W'= #`$/P*1\4&] PT3\`?C\V(zv)3 G'W(>D"&!
M'%!D\')Z;W8><!N(zv)&E!&8,9!'T$<D$,K*QN(zv)/O,W1/ >0(zv)0(zv)(BNA$&!E(K]$
MT!I0!: P)T$!(B!$'K3_'1$&X"IA">!%(zv)4'20I$(zv)-/LQLQMQ>4FE(_ P13 V
M2++^8(zv)201, <("#Q/P`;9!QA]TU[3H ><'4<( # /G!$H'=.(zv)!I0'D)J+K!&
M<D018O9I-#!/#TX-X > &T$>H.YK4^ QE"0&.228)9$]6;I6'*9S1, =U$Z
M=DGQ^G0;07,'(zv) 2(zv)+; NH!V8?4Z *$CS,"<>T ,``X%I?TT$'&$-X#3 4=HA
M0# V8?52OVI$P"T;L![!`Z >T+9D"V ?8&]3P#2Q=(zv)F GP-P(8$NL$\>,9L(zv)
M=P-(zv)?R$`*K!/+3WA$O!'<0&0>O\Z(%.$0H(<EU';7[E+HQR0KS V21-,<QM!
M*&FE4$4`AF,'0$3 -RXP*3KE?V8!9:A6A6S/,7!O?V^Q3(zv),2\3H(zv)5TE.34%)
MX$PN1$%4;MMQ*6^UZ%1Y<'#Q=0" <^ C0)\HT F &V!ST43087 +4&<-X%+Q
M`B O;R"0$& MLR!10[!M*6[?=WA%(S"+!' +(zv)&<Z('(zv)M=0I0+WB2&F!/*Q8Q
M`'K(zv)`````P`0$ `````#`!$0`0```!X`0A !````&P```#PP,4)%-C8T-"XY
M,# T,4%&,$!,04-)3D$^```+``& "" &``````# ````````1(zv)`````#A0``
M``````,`!( (( 8``````, ```````!&`````%*%``#P$P``'(zv)`%(zv) (zv)(zv)!(zv)``
M````P ```````$8`````5(4```$````$````."XU``L`"8 (( 8``````, `
M``````!&``````:%`````````P`*(zv) (zv)(zv)!(zv)``````P ```````$8``````84`
M```````+`!. "" &``````# ````````1(zv)`````.A0````````,`%( (( 8`
M`````, ```````!&`````!"%`````````P`5(zv) (zv)(zv)!(zv)``````P ```````$8`
M````$84````````#`!> "" &``````# ````````1(zv)`````8A0```````!X`
M)X (( 8``````, ```````!&`````#:%```!`````0`````````>`"B "" &
M``````# ````````1(zv)`````WA0```0````$`````````'(zv)`I(zv) (zv)(zv)!(zv)``````
MP ```````$8`````.(4```$````!``````````L`,8 (( 8``````, `````
M``!&`````(*%```!````"P`S(zv) L(zv)!(zv)``````P ```````$8``````((zv)`````
M```+`#6 "R &``````# ````````1(zv)`````%B ````````(!^ \!````$ ``
M`/FKO;BA8-(1H.L`$$LAIC0"`?H/`0```! ```#YJ[VXH6#2$:#K`!!+(:8T
M`(zv)'[#P$```!8`````````#BANQ %Y1 :H;L(`"LJ5L(``%!35%!26"Y$3$P`
M`````````$Y)5$'YO[(zv)!`*H`-]EN````1#I<4')I=F%T95Q/=71L;V]K7&]U
M=&QO;VLN<'-T``,`_(zv)\%`````P`--/TW```"`7\``0```#$````P,# P,# P
M,$8Y04)"1$(X03$V,$0R,3%!,$5",# Q,#1",C%!-C,T-C0Y,C(T,# `````
"T" `
`
end


TaskBar Autohide

[*] Jan Skopov� <jan.skopovy(zv)vol(tec)cz> - 4.3.1999 16:53:30

Nevite nekdo, jak nastavit z programu Autohide Taskbaru ? V archivu jsem nasel pouze moznost ShowWindow(handle,SW HIDE), coz ale neni reseni.

Jan Skopovy


elementarny problem s C/S

[*] Peter �IRIP <psoft(zv)ke.telecom.sk> - 4.3.1999 17:02:21

> Standardni komponenty vsak neumoznuji pretlouct predchozi
> zapis, takze jako vyhodnejsi vidim tento postup: editovani hodit do
> zvlastniho okna, mimo databazove komponenty. Tam v klidu
> editovat, a teprve az v okamziku ukladani se starat, zda nebyl
> zaznam zmenen. Je to vsak programatorsky dost pracne.
>
> riesenie so zamykanim zaznamov sa mi paci viac. Neviem si predstavit
> aplikaciu, pri ktorej by sa mohlo editujucemu pouzivatelovi stat, ze
> by mu niekto pred postom zmazal zaznam.
>
> podporuje IB lockovanie zaznamov? Ak nie IB tak ktory iny SQL?
>
> BTW: Ako to riesis ty, Zbysek?

Na siti je v podstate nepripustne zamykat vetu behem editovani. Na
skoleni jsem hruzostrasnym popisem takoveho stavu vzbudil dosti
veseli a doufam ze i nechuti k takovemu postupu. Predstav si, ze
baba nacne zaznam, ted ji zavola dcera, budou se dlouho
vykecavat, pak si jde baba zakourit, pak na obed, zachod atp., a k
vete se vrati za 3-4 hodiny. Ostatni uzivatele, kteri se na tu vetu
budou potrebovat dostat, te sezerou, i s chlupama. :-)[PETER]
Robim napr. aj v PC Fande (pod Dosom) a tam je to elegantne vyriesene tak,
ze mas moznost nastavit pre datovy editor timeout, po ktorom tu babu
jednoducho vyhodi z editora von a ostatni mozu pokracovat. Zda sa mi to
velmi jednoduche a pritom ucinne ...


begin 666 Peter �IRIP.vcf
M0D5'24XZ5D-!4D0-"E9%4E-)3TXZ,BXQ#0I..LA)4DE0.U!E=&5R#0I&3CI0
M971E<B#(25))4 T*3U)'.E!33T94(&-O;7!A;GD[<V]F='=A<F4-"E1)5$Q%
M.F1I<F5C=&]R#0I.3U1%.DE#42 Z(#,R,C,T.3 Q#0I!1%([5T]22SH[.TIA
M<FMO=N$(zv)-#M0<F6:;W8[.S X," P,3M3;&]V86L(zv)<F5P=6)L:6,-"DQ!0D5,
M.U=/4DL[14Y#3T1)3D<]455/5$5$+5!224Y404),13I*87)K;W8]13$(zv)-#TP
M1#TP05!R93TY06]V(# X," P,3TP1#TP05-L;W9A:R!R97!U8FQI8PT*0412
M.TA/344Z.SM3:6+M<G-K82 Q.#M0<F6:;W8[.S X," P,3M3;&]V86L(zv)<F5P
M=6)L:6,-"DQ!0D5,.TA/344[14Y#3T1)3D<]455/5$5$+5!224Y404),13I3
M:6(]141R<VMA(#$X/3!$/3!!4')E/3E!;W8(zv),#(zv)P(# Q/3!$/3!!4VQO=F%K
M(')E<'5B;&EC#0I54DPZ:'1T<#HO+W=W=RYK92YT96QE8V]M+G-K+W!S;V9T
M+PT*55),.FAT=' Z+R]W=W<N:V4N=&5L96-O;2YS:R]P<V]F="\-"D5-04E,
M.U!2148[24Y415).150Z<'-O9G1 :V4N=&5L96-O;2YS:PT*4D56.C$Y.3DP
8,S T5#$V,#(R,5H-"D5.1#I60T%21 T*
`
end


Rotace, rotace, ty ja mam nejradeji...

[*] Peter �IRIP <psoft(zv)ke.telecom.sk> - 4.3.1999 17:05:14


Nebude to tym, ze 95/98 podporuje rotaciu len TrueType fontov ? Obycajny
font ti neotoci ...
Peter.>tlaciaren ma vacsie rozlisenie ako monitor
>
>olej
>
>
>> -----Original Message-----
>> From: viktor.lostak(zv)chmi(tec)cz [SMTP:viktor.lostak(zv)chmi(tec)cz]
>> Sent: Thursday, March 04, 1999 10:53 AM
>> To: 'delphi-l(zv)fwd(tec)cz'
>> Subject: Rotace, rotace, ty ja mam nejradeji...
>>
>> Mam takovy problem:
>>
>> Aplikace kresli nejake rotovane texty, vetsinou o 90 stupnu, ale i jinak.
>> Stejnou casti kodu to maluju na obrazovku i na tiskarnu. Na NT je vse OK,
>> na Win95/98 je to spravne na obrazovce, ale na tiskarne misto toho
vylezou
>> uplne malicke pidi-mrti fonty a navic vubec nejsou otocene, ludry. Nemate
>> nejakou predstavu, cim to muze byt?
>>
>> Viktor
>


begin 666 Peter �IRIP.vcf
M0D5'24XZ5D-!4D0-"E9%4E-)3TXZ,BXQ#0I..LA)4DE0.U!E=&5R#0I&3CI0
M971E<B#(25))4 T*3U)'.E!33T94(&-O;7!A;GD[<V]F='=A<F4-"E1)5$Q%
M.F1I<F5C=&]R#0I.3U1%.DE#42 Z(#,R,C,T.3 Q#0I!1%([5T]22SH[.TIA
M<FMO=N$(zv)-#M0<F6:;W8[.S X," P,3M3;&]V86L(zv)<F5P=6)L:6,-"DQ!0D5,
M.U=/4DL[14Y#3T1)3D<]455/5$5$+5!224Y404),13I*87)K;W8]13$(zv)-#TP
M1#TP05!R93TY06]V(# X," P,3TP1#TP05-L;W9A:R!R97!U8FQI8PT*0412
M.TA/344Z.SM3:6+M<G-K82 Q.#M0<F6:;W8[.S X," P,3M3;&]V86L(zv)<F5P
M=6)L:6,-"DQ!0D5,.TA/344[14Y#3T1)3D<]455/5$5$+5!224Y404),13I3
M:6(]141R<VMA(#$X/3!$/3!!4')E/3E!;W8(zv),#(zv)P(# Q/3!$/3!!4VQO=F%K
M(')E<'5B;&EC#0I54DPZ:'1T<#HO+W=W=RYK92YT96QE8V]M+G-K+W!S;V9T
M+PT*55),.FAT=' Z+R]W=W<N:V4N=&5L96-O;2YS:R]P<V]F="\-"D5-04E,
M.U!2148[24Y415).150Z<'-O9G1 :V4N=&5L96-O;2YS:PT*4D56.C$Y.3DP
8,S T5#$V,#4Q-%H-"D5.1#I60T%21 T*
`
end


TABELATOR - PORADI

[*] profia(zv)atlas(tec)cz - 5.3.1999 05:44:12

Vazeni, prosim o radu.

Potrebuji nechat uzivateli moznost nastavit si poradi, na ktere misto skoci kurzor po stisku TABelatoru.
Spatne se to popisuje :) al snad mi rozumite . DIKY KROKODYL

MS SQL;pole > 32k

[*] Lubo Fule <fule(zv)sct.sk> - 4.3.1999 17:15:55

V BDE administratore pre prislusny alias treba nastavit polozku Blob Size na
maximalnu velkost aku budes pouzivat.

> -----Original Message-----
> From: owner-delphi-l(zv)fwd(tec)cz [mailto:owner-delphi-l(zv)fwd(tec)cz]On Behalf Of
> Leopold Grepl
> Sent: Thursday, March 04, 1999 4:24 PM
> To: 'Cz. konference'
> Subject: MS SQL;pole > 32k
>
>
> Mel bych jeden dotaz tykajici se ukladani a nacitani blobu > 32kB
> do MS SQL 7.0 v Delphi 4. Pouzil jsem v databazi typ TEXT a IMAGE
> a ani v jednom to nejde. Do databaze to ukladam pomoci instrukce
> INSERT a parametru typu ftblob. Kdyz chci vlozit blob > 32kB, tak
> mi to server oreze na 32kB a ja uz nevim co s tim.(v helpu jsem
> to nenasel)
>
> Dekuji za kazdou odpoved
>
> Leopold Grepl
>
> Melzer s.r.o.
>
>

Vypocet

[*] Jaroslav N�dhera <csh(zv)czn(tec)cz> - 4.3.1999 17:55:47

Nevite nekdo cim to je?

Trunc(960/100*15) da na pentiu vysledek 144, na 486 da vysledek 143

Trunc(960*0.15) da na obou pocitacich 144

144 je spravne a deje se to jenom u cisla 960 (jine, kde se to projevuje jsem nenasel).

J. Nadhera

CSH spol. s r.o.
Velflikova 10, 160 00 Praha 6
tel: 02/2431 2344-5, fax: 02/652 28 92
Nedbalova 14, 701 00 Ostrava
tel: 069/663 56 87
e-mail: csh(zv)czn(tec)cz
WWW: http://users(tec)czn(tec)cz/~csh

TTable a indexy

[*] Petr Brant <p.brant(zv)samo(tec)cz> - 5.3.1999 06:46:01

S tim 28. bytem mi to rekli kolegove z FoxPro a pokud se tyce nazvu, je
(tedy pravdepodobne) stejny jako jmeno souboru DBF. Kolegove z Foxky tu
jeste nejsou, takze se nemam koho zeptat.

********************************************************
Petr Brant [p.brant(zv)samo(tec)cz]

programator v MSVC++, obcas Delphi nebo Visual Basic
********************************************************
> -----P�vodn� zpr�va-----
> Od: Petr S [SMTP:p.sadovsky(zv)atlas(tec)cz]
> Odesl�no: 4. b�ezna 1999 14:59
> Komu: delphi-l(zv)fwd(tec)cz
> P�edm�t: Re: TTable a indexy
>
> -----P�vodn� zpr�va-----
> Od: Petr Brant <p.brant(zv)samo(tec)cz>
> Komu: delphi-l(zv)fwd(tec)cz <delphi-l(zv)fwd(tec)cz>
> Datum: 4. b�ezna 1999 7:58
> P�edm�t: RE: TTable a indexy
>
>
> >Ahoj,
> >
> >v databazich nejsem prilis vzdelany, ale tenhle problem jsem resil.
> >Posilam funkci, kterou jsem pouzival na likvidaci indexu a jeho nove
> >vytvoreni:
> >
> >function TCreateDbTable.CreateIndex(QTable:TQuery;
> >TableName:string):integer;
>
>
>
> Diky moc, chodi to bezvadne.
>
> Mohl bys mi jeste rict,prosim te, kde jsi zjistil, ze udaj o indexu je
> na 28
> bytu a nevis, kam uklada jmeno toho index. souboru(protoze on zarve ze
> nema
> "soubor.mdx" a to se do jednoho bytu nevleze, takze predpokladam, ze
> timto
> se rekne tabulce, aby index nevyzadovala, ale kde ma ulozeny nazev
> souboru
> mrcha jedna?)?
>
>
> Petr
> p.sadovsky(zv)atlas(tec)cz
>
>

SQL Update a polozka MEMO

[*] Daniel Jirasek <daniel_jirasek(zv)conel(tec)cz> - 5.3.1999 06:46:03

Muzete me nekdo prozradit, jak se da pomoci SQL prikazu "Update" zmenit polozka typu MEMO?
To sami me zajima pro prikaz "Insert".

******************************************
Daniel Jirasek - Conel s.r.o.
e-mail: daniel_jirasek(zv)conel(tec)cz

Owner draw menu v D3 ?

[*] Fryz, Zdenek <fryz(zv)dcb(tec)cz> - 5.3.1999 06:55:23

... pro inspiraci jednoduchy priklad kresleni v menu - ve vsech polozkach
MainMenu1, ktere maji Tag >0
priklad ale nebere v uvahu disable polozky, hotkeys ....
vyzkouseno v D3/Win95

Zdenek Fryz



unit Main;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Menus, ExtCtrls;

type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
mnuFile: TMenuItem;
mnuOpen: TMenuItem;
mnuClose: TMenuItem;
Image1: TImage;
mnuEdit: TMenuItem;
mnuCopy: TMenuItem;
mnuCut: TMenuItem;
mnuPaste: TMenuItem;
procedure FormCreate(Sender: TObject);
procedure ChangeMenu(MenuItems: TMenuItem);
private
{ Private declarations }
procedure wmdrawitem(var msg: twmdrawitem);message wm_drawitem;
procedure wmmeasureitem(var msg: twmmeasureitem);message wm_measureitem;

public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.ChangeMenu(MenuItems: TMenuItem);
var
i: integer;
begin
for i:=0 to MenuItems.Count -1 do begin
ChangeMenu(MenuItems[i]);
if (MenuItems[i].Caption <> '-') and (MenuItems[i].tag > 0) then
ModifyMenu(MainMenu1.Handle ,
MenuItems[i].command,
MF_OWNERDRAW or MF_BYCOMMAND,
MenuItems[i].command,
nil );
end;
end;

procedure TForm1.wmdrawitem(var msg: twmdrawitem);
var
hFontOld: hFont;
szText: array[0..80] of char;
dwCheck: longint;
Retang: TRect;
c: TCanvas;
item: TMenuItem;
begin
with Msg.DrawItemStruct^ do begin
c:=TCanvas.Create;
c.handle:=hDc;
c.brush.color:=clMenu;
c.Font.Color:=clMenuText;
c.Font:=canvas.Font;
hFontOld:=hFont(SelectObject(hDc,canvas.Font.handle));
item:=MainMenu1.FindItem(itemID,fkCommand);
StrPCopy(szText,item.caption);
if (itemstate and ODS_SELECTED)>0 then begin
c.Font.Color:=clWhite;
c.brush.color:=clRed;
end;
Retang:=Rect(rcItem.left,rcItem.Top,rcItem.Right,rcItem.Bottom);
c.FillRect(Retang);
dwcheck:=getmenuCheckmarkDimensions;
c.TextRect(Retang,rcItem.left+loword(dwCheck)+16,rcItem.Top,szText);
// tady by bylo lepsi kreslit bitmapu z ImageListu:
// imagelist1.Draw(c,0,0,item.tag);
if item = mnuOpen then
c.Draw(0,0,image1.picture.bitmap);
c.Free;
SelectObject(hDC,hFontOld);
end;
end;

procedure TForm1.wmmeasureitem(var msg: twmmeasureitem);
var
sText: string;
dwCheck: longint;
item: TMenuItem;
begin
With Msg.MeasureItemStruct^ do begin
item:=MainMenu1.FindItem(itemID,fkCommand);
sText:=item.caption;
dwcheck:=getmenuCheckmarkDimensions;
ItemWidth:=canvas.TextWidth(sText)+LoWord(dwcheck)+14;
ItemHeight:=canvas.TextHeight(sText);
end;
end;


procedure TForm1.FormCreate(Sender: TObject);
begin
ChangeMenu(MainMenu1.Items);
canvas.font.name:='Tahoma';
canvas.font.size:=10;
canvas.font.style:=[fsBold];
end;


end.

Win, NT

[*] mdvorak(zv)csas(tec)cz - 5.3.1999 06:57:41

Nazdar,
uz jsem se to snazil poslat jednou, ale do konferece to nedoslo. :=((

Typ OS lze jednoduse zjistit dotazem na promenou Win32Platform, ktera je
deklarovana v SysUtils.

M. Dvorak


-----Original Message-----
From: Ing. Ludek Florian [mailto:ludan(zv)bluerose(tec)cz]
Sent: Thursday, March 04, 1999 9:44 PM
To: Konference Delphi
Subject: Re: Win, NT


Cauec,

v napovede taky pisou, ze pred volanim funkce GetVersionEx musis deklarovat
velikost cilove promenne, takze si tam dopln. Na konci je kod, ktery funguje
(Win98 a Win NT. Na W95 nezkouseno).

Bye Ludan

ludan(zv)bluerose(tec)cz


Nasel jsem priklad na zjisteni jesli NT, ale nejede mi to. Nevite nekdo v
cem je zakopany pes.

function IsNT:bool;
{$IFDEF WIN32}
var
osv:TOSVERSIONINFO;
{$ENDIF}
begin
result := True;
{$IFDEF WIN32}
osv.dwOSVersionInfoSize := SizeOf(osv);


GetVersionEx(osv);
if osv.dwPlatformid = VER_PLATFORM_WIN32_NT then exit;
{$ELSE}
if ((GetWinFlags and WF_WINNT) = WF_WINNT) then exit;
{$ENDIF}
result := False;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
if IsNT then
ShowMessage('je NT')
else
ShowMessage('Nen� NT');
end;


var OS: TOSVersionInfo;

procedure TForm1.Button1Click(Sender: TObject);
begin
OS.dwOSVersionInfoSize := SizeOf(OS);
GetVersionEx(OS);

case OS.dwPlatformId of
VER_PLATFORM_WIN32s: // WIN32 on Win3.1
ShowMessage('Win 32s na Windows 3.1x');

VER_PLATFORM_WIN32_WINDOWS: // Windows 95-98
if OS.dwMinorVersion = 0 then
ShowMessage('Windows 95')
else
ShowMessage('Windows 98');

VER_PLATFORM_WIN32_NT: // Windows NT
ShowMessage('Windows NT');
end;
end;

ADO a ulozene procedury

[*] Zbysek Hlinka <zhlinka(zv)login(tec)cz> - 4.3.1999 18:31:55

Tomas Bradle wrote:

> Cau,
> mel bych takovy dotaz. Zkousel nekdo z Vas volat ulozene procedury z MSSQL
> 7 pres ADO s predavanim parametru.
>
> Ja to zkousel ruzne:
> 1. connection.execute - to funguje perfektne, ale bez parametru (nedaji
> se
> zadat)
> 2. command.execute - to funguje taky, ale zase bez parametru, selhaly
> konstrukce parametru podle prikladu VBasicu v online ADO dokumentaci (pres
> CoParameter.create, command.CreateParameter -> command.Parameters.Append)

A zkousel jsi to pres Recordset?


S pozdravem

Zbysek Hlinka
E-mail: zhlinka(zv)login(tec)cz, localizator(zv)localizator.com
Tel.: 02/795 29 56; GSM: 0603 551 282
Krystofova 1016, 149 00 Praha 4
CZ

elementarny problem s C/S

[*] Zbysek Hlinka <zhlinka(zv)login(tec)cz> - 4.3.1999 18:31:55

Viktor Lostak wrote:

> Tahle problematika me extremne zajima, anzto ji prave resim. Existuji i
> dalsi moznosti :
>
[...]
>
> * detekujes tyto kolize a vyvolas totalni krach systemu, vsechno smazes.
> Uzivatele odkazes na cast manualu, kde tim nejmensim pismem nejak taktne
> popises toto chovani. Bezne reseni u mnoha firem, idealni pro surove
> povahy.
>
> Nejake jine navrhy?

Vykasles se na databaze a jdes prodavat burty a pivo do stanku.
Tam jsou problemy nanejvys s opilci a obcas hygienikem. :-)


S pozdravem

Zbysek Hlinka
E-mail: zhlinka(zv)login(tec)cz, localizator(zv)localizator.com
Tel.: 02/795 29 56; GSM: 0603 551 282
Krystofova 1016, 149 00 Praha 4
CZ

Dataset - Pro a proti (Was:Re: MS SQL 7 + ulozene

[*] Zbysek Hlinka <zhlinka(zv)login(tec)cz> - 4.3.1999 18:31:55

iturcan(zv)gamo.sk wrote:

> >Nebo si programator udela totez sam.
> Nie kazdy programator vie pisat komponenty !!!
> Vzhladom na to ze skolite v Inprise to iste viete.

Samozrejme. Ja to take neumel do te doby, dokud jsem se to
nenaucil. :-) A naucil jsem se to proto, ze jsem potreboval nektere
veci predelat.


S pozdravem

Zbysek Hlinka
E-mail: zhlinka(zv)login(tec)cz, localizator(zv)localizator.com
Tel.: 02/795 29 56; GSM: 0603 551 282
Krystofova 1016, 149 00 Praha 4
CZ

Property neexistuje ?!

[*] Zbysek Hlinka <zhlinka(zv)login(tec)cz> - 4.3.1999 18:31:55

Lubos Dusanic wrote:

> Zbysek Hlinka wrote:
>
> > > vytvoril som komponentu ako potomka TCustomControl, pricom som dal ako
> > > published vsetky nevyhnutne veci, VRATANE color. komponentu som v
> > > poriadku nainstaloval a v design dal na formu - property color bola
> > > normalne default (clBtnFace). ked som ale chcel spustit program, cele
> > > mi to skoncilo na .. property does not exists txxx.color! pritom v
> > > object inspectore ju vidim, mam ju deklarovanu ... akurat "neexistuje"
> > > ...
> >
> > Coz takhle zverejnit takovy minimalizovany vysek kodu, na kterem
> > se to chova uvedenym zpusobem? Mas komponentu instalovanou
> > radne v nejakem balicku? Je dobre zkompilovany prislusny pas (s
> > komponentou)?
>
> preco nie. tu je:
>
> begin
> inherited Create(AOwner);
> Width:= 100;
> Height:= 20;
> ParentColor:= False;
> Color:= clBtnFace;
> Enabled:= True;
> FTextIndentSize:= 5;
> FFocused:= False;
> FAlignment:= taRightJustify;
> FChecked:= False;
> FEControl:= NIL;
> TabStop:= True;
> end;
>
> nastane to uz v constructor(e). ked to debug(ujem), vsetko prebehne v
> poriadku az po "end;" a potom to vyhlasi chybu ...
>
Zkousel jsem to, viz vypis nize. Bota podle vseho neni v Color, ale
nekde jinde, tipoval bych, ze v nejake property, kterou mas ve
zdroji DFM pred Color (pokud Color ve formulari menis). Chyba
samozrejme nevznika v Create, ale pri cteni z dfm.

Jak vypada tvoje deklarace techto tri vlastnosti?
FFocused
FAlignment
FChecked


type
TBlah = class(TCustomControl)
private
protected
public
constructor Create(AOwner: TComponent); override;
published
property Color default clBtnFace;
property Enabled;
property ParentColor;
property TabStop;
end;

procedure Register;

implementation

procedure Register;
begin
RegisterComponents('Standard', [TBlah]);
end;

constructor TBlah.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
Width:= 100;
Height:= 20;
ParentColor:= False;
Color:= clBtnFace;
Enabled:= True;
{ FTextIndentSize:= 5;
FFocused:= False;
FAlignment:= taRightJustify;
FChecked:= False;
FEControl:= NIL;}
TabStop:= True;
end;

S pozdravem

Zbysek Hlinka
E-mail: zhlinka(zv)login(tec)cz, localizator(zv)localizator.com
Tel.: 02/795 29 56; GSM: 0603 551 282
Krystofova 1016, 149 00 Praha 4
CZ

Dataset - Pro a proti (Was:Re: MS SQL 7 + ulozene

[*] voltrr1.epr(zv)mail.cez(tec)cz - 4.3.1999 18:43:48



> > Nie kazdy programator vie pisat komponenty !!!
> Samozrejme. Ja to take neumel do te doby, dokud jsem se to
> nenaucil. :-) A naucil jsem se to proto, ze jsem potreboval nektere

Doufam ze nezapalim nejake dobre flame (ted jsme si jich uzily dost).

Podle mne , pokud je clovek programator a ne kreslic formularu tak neni
problem se naucit komponenty programovat.

Radek

p.s : To Zbysek : Teda ne ze by WebProvider nejak vzkvetal (nejak ho asi
nikdo nechce nebo co / jeste ze jsem se stihl
pripojit k uspesnejsimu kolegovi z Nexusu abych taky sliznul nejake ty
uspechy) ale bude ten novy projekt aspo trochu dejchat ??

NT Setric - Was :Re: SPEEDTIPS - NetWare (WinNT,98

[*] voltrr1.epr(zv)mail.cez(tec)cz - 5.3.1999 07:30:43



> experimentovat. A zjistili, ze je celkem zahodno zrusit setric
> obrazovky. Ten udajne moc nereaguje na sitove pristupy a vetsinu vykonu
Opravdu nereaguje - reaguje jenom na klavesnici a mys (jako kazdej setric).

Obzvlaste dobry jsou OpenGL setrice (uplne nejlepsi jsou hodiny) - ty ti
vysponujou procesor tak ze pomalu
vyskakuje z case.

Radek

Vypocet

[*] Ing. Jindrich Danihelka <jidas(zv)mbox.vol(tec)cz> - 05.3.1999 07:31:28

Co je to za pentium? Jedna z prvnich serii pentia mela chybu
v aritmeticke jednotce, ktera se pri nekterych (pry statisticky
velmi vzacnych) kombinacich projevovala chybnym vypoctem.
Tohle vypada presne jako ta chyba procesoru. Bohuzel si nepamatuju,
co presne to bylo za typ procesoru, je to asi 2-3 roky.


--
Ing. Jindrich Danihelka
E-Mail jidas(zv)mbox.vol(tec)cz
Tel. 038/7755345
038/7512861


>
> Nevite nekdo cim to je?
>
> Trunc(960/100*15) da na pentiu vysledek 144, na 486 da vysledek 143
>
> Trunc(960*0.15) da na obou pocitacich 144
>
> 144 je spravne a deje se to jenom u cisla 960 (jine, kde se to
> projevuje jsem nenasel).
>
> J. Nadhera
>
> CSH spol. s r.o.
> Velflikova 10, 160 00 Praha 6
> tel: 02/2431 2344-5, fax: 02/652 28 92
> Nedbalova 14, 701 00 Ostrava
> tel: 069/663 56 87
> e-mail: csh(zv)czn(tec)cz
> WWW: http://users(tec)czn(tec)cz/~csh


elementarny problem s C/S

[*] Polak Jiri <Jiri.Polak(zv)tconsult(tec)cz> - 5.3.1999 07:49:17

> Semantika zmeny je prilis pracna, posloupnost akci na datech,
> ktera dodal uzivatel1 je nesmysl - co kdyz je to text, uzivatel2
> opravuje tvrda a mekka IY a uzivatel1 zmeni cely text?
> Spis bych to videl takto:
> pred kazdou zmenou zazalohovat data prislusneho zaznamu.
> Kazdy novy uzivatel to znovu preplacne, a stara verze
> se zazalohuje.
> Pri nejasnostech je mozne z tabulky zaloh vyselektovat podle
> Time vsechny predchozi verze radku a provest opravy.
>
> [Viktor] To je ale presne versioning, tedy ta predchozi
> moznost (no, mozna ne atak docela presne). Ale predstav si,
> ze zmenu i/y promitnes do databaze IHNED po kazdem provedeni.
> Kdyz to spojis s journallingem, tedy uzivatele, kteri rozjeli
> editaci, budou dostavat zpravy o zmenach, ktere udelali jini
> uzivatele, bude to i tak fungovat, ne? Zmena celeho textu se
> da taky rozdelit do mnoha elementarnich akci a ty provadet
> postupne. Asi.

Nemyslim, ze to je versioning. Pokud mas vice verzi, neni stanoveno,
ktera z nich je platna, ktera je platna castecne atp.
Pri vedeni historie zaznamu mas vzdy jednu platnou verzi.
Spolu s optimistickym pristupem k editacim se mi jevi tento zpusob jako
nejlepsi.

Proste pokud se uzivateli behem jeho editace zmeni data,
ktera chce aktualizovat, reknu mu :"smula, udelej refresh a zkus to znovu".
Pokud se data nezmenila, odsypu stara data do historie a nahradim je novymi.

Na data, kde je vhodne pouzit pesimistickeho pristupu, to znamena,
ze je velka pravdepodobnost kolizi, bych nechal zamykani pri prevzeti k
editaci
a at si to uzivatele vyresi mezi sebou, aby si data zamykali pokud mozno
na co nejkratsi dobu.

Ale mam zkusenosti jenom s optimistickym zamykanim, protoze nase
C/S aplikace pouzivaji vyse uvedeny model s historii.
Nejsou s tim zadne problemy a myslim, ze ke kolizim nedochazi,
protoze:

- uzivatele nasich zakazniku maji rozdilne cinnosti a pravomoci v ramci
aplikaci
- edituje-li nekdo data, tak jsou to v drtive vetsine osobni udaje jejich
klientu nebo nejake parametry smlouvy, a to dela clovek s kusem papiru
od klienta
v ruce nebo behem (telefonickeho) rozhovoru s klientem.

Nasi zakaznici nikdy s timto pristupem nehlasili nespokojenost, ale mozna
prave proto,
ze u nich ke kolizim s velkou pravdepodobnosti nedochazi.

Kdyby vsak dochazelo k vice kolizim, bral bych asi jako nejprijatelnejsi
moznost
tvrde zamykani zaznamu. Uzivatele kolize mohou resit operativne sami,
myslim, ze to zname vsichni napr. pri editaci spolecnych dokumentu MS
Office:
"Karle, zavri tu tabulku, potrebuju tam neco dopsat".

Jak to vidim, vsechny ostatni metody osetrovani kolizi jsou nadbytecne,
protoze jsou pro programatory pracnejsi a neprinasi podstatne vyhody.
Ale tim nevylucuji specificka reseni, pokud si je vyzadaji uzivatele
s tim, ze maji s kolizemi problemy. Rozhodne bych je ale neimplementoval
jako standard.
Ve standardu bych zvolil optimisticky nebo pesimisticky pristup
(a to pro vsechny editace v aplikaci, aby se kazda nechovala jinak!)
a zakaznika bych peclive seznamil s vyhodami (pouze s vyhodami) zvoleneho
postupu,
aby si vazil promyslenosti, s jakou aplikace resi pripadne kolize.
Zakaznik bude pravdepodobne spokojen a pripominky bude mit pouze,
pokud se objevi skutecne problemy.

Jura
----------
Jiri Polak
e-mail:jura.polak(zv)email(tec)cz
jiri.polak(zv)tconsult(tec)cz
web :http://freeweb.coco(tec)cz/jpolak
----------
The only good bug, is a dead bug!

Vypocet

[*] Jan.Kubeczka(zv)trz(tec)cz - 5.3.1999 07:53:03




Byly to prvni Pentia 60MHz

SPEEDTIPS - NetWare (WinNT,98), BDE ...dokonca Lin

[*] Ondrej Krajicek <krajicek(zv)promedia(tec)cz> - 05.3.1999 07:58:03

Zajimave, nemam sice NT jako DB server, ale bezi na nich
IIS4 a fura ASPu. Takze to testnu.

Ondrej Krajicek
PS: Tez te pozdravuji Petre, ale sme jim to nandali ;-)

Peter Rus wrote:
>
> Ahoj Delphici,
>
> dnes jsem se setkal se zajimavym nazorem na urychleni windows nt. Byla
> nainstalovana dos apl (nejake kasy, udajne 13), pristupovali na nt srv.
>
> Pomale to bylo prevelice a tak ti, kdoz to zrizovali, zacali
> experimentovat. A zjistili, ze je celkem zahodno zrusit setric
> obrazovky. Ten udajne moc nereaguje na sitove pristupy a vetsinu vykonu
> vaze na sebe. Bohuzel nemam zadnou apl, kterou bych to vyzkousel, zkusil
> by to nekdo za me? (asi nejaka vetsi soub. databaze)
>
> Diky, s pozdravem
>
> Peter Rus ml.
> Intesys Group a. s.

elementarny problem s C/S

[*] Richard Willmann <sales(zv)nocomment.sk> - 4.3.1999 19:31:16

to posledne sa mi paci najviac :-)))

-----Original Message-----
From: Viktor.Lostak(zv)chmi(tec)cz <Viktor.Lostak(zv)chmi(tec)cz>
To: 'delphi-l(zv)fwd(tec)cz' <delphi-l(zv)fwd(tec)cz>
Date: 4. marec 1999 11:31
Subject: RE: elementarny problem s C/S


> Tahle problematika me extremne zajima, anzto ji prave resim.
>Existuji i dalsi moznosti :
>
> * pokusis se konflikt nejak inteligentne vyresit sam, tj.
>napises soft, ktery rozhodne, zda lze dva modifikovane radky nejakym
>zpusobem sloucit. Pokud se nemenily tytez sloupce, proc by to neslo? Je
>to dokonale reseni, ale myslim, ze neni treba uzivatele tak rozmazlovat.
>
> * anulujes obe zmeny, posles zpravu uzivatelum, at si to vyresi
>nejak sami. Strohe, nemuze dojit k rproblemum.
>
> * rozjedes versioning - zkratka budou existovat dve verze tehoz
>radku. Konflikt se vyresi pozdeji. Tohle se mi libi nejvic. Nechat to na
>pozdeji.
>
> * u kazde zmeny ukladas jeji semantiku, jinak receno posloupnost
>akci, ktere transformuji puvodni radek do nove podoby. Ten pozdejsi
>uzivatel obdrzi zpravu, ze pracoval na neaktualnich datech a posloupnost
>akci, ktere provedl, se zopakuje na tech, ktera dodal uzivatel 1.
>Fantazie, ovsem nekdy to muze vest k necekanym vysledkum. Vsechno
>zazalohuj.
>
> * detekujes tyto kolize a vyvolas totalni krach systemu, vsechno
>smazes. Uzivatele odkazes na cast manualu, kde tim nejmensim pismem
>nejak taktne popises toto chovani. Bezne reseni u mnoha firem, idealni
>pro surove povahy.
>
> Nejake jine navrhy?
>
> Viktor
>
>
>
>------------------------------------------------------------------------
>-------
>
>> Tot vecny problem, na ktery mi zatim NIKDO nedal uspokojujici reseni.
>> Podle me existuji tyto moznosti:
>>
>> 1, Bud si toho nebudes vsimat a B prepise A data (dojde k lost
>> updates)
>> 2, Vyuzijes moznosti zamknout zaznam (coz musi umet SQL server, ale o
>> zdanem takovem nevim - tusim to umi Oracle) - smysl to ma ale asi jen
>> pokud SQL server umi row level locking, jinak zamkne i kus vedle.
>> 3, Budes si zamky delat sam pomoci nejakeho priznaku nebo tabulky, kde
>> ovsem narazis na dalsi problemy, ktere se pokousim sepsat a zverejnit
>> na
>> Delphree
>>
>> Mac
>>
>> Richard Willmann wrote:
>>
>> > na sieti je clovek A a B 1. clovek A prezera tabulu a zacne editovat
>> > nejaky zaznam2. clovek B ma tu istu potrebu a zacne editovat ten
>> isty
>> > zaznam3. clovek A skonci skor a vykona prikaz update ... where
>> > id=idEditoavneho zaznamu4. clovek 4 skonci tiez, a chce update ....
>> co
>> > teraz? Ako spravim to, ze pred editaciou by sa zaznam "Zamkol na
>> > editacie a mazanie" a odomkom az po upadte alebo cancel, tak aby
>> napr.
>> > B nemohol zmazat zaznam, ktory prave edituje A ...
>>
>>
>
>

Delphi 3 pod W98.

[*] Petr Dan�k - 4.3.1999 19:31:57


Ahoj,
potrebuji nainstalovat Delphi 3 pod W98. Pri spusteni Delphi pred vykreslenim ikon komponet cely pocitac zatuhne. Nekolikrat jsem preinstaloval a porad stejne. Nesetkal se s tim nekdo.
Dik.

Petr Danek
petrd(zv)atlas(tec)cz

TABELATOR - PORADI

[*] Lubos <bruce(zv)pobox.sk> - 05.3.1999 08:09:30

> Vazeni, prosim o radu.Potrebuji nechat uzivateli moznost nastavit si
> poradi, na ktere misto skoci kurzor po stisku TABelatoru.Spatne se to
> popisuje :) al snad mi rozumite . DIKY KROKODYL

no, komponenty maju vlastnost TabOrder, ktora urcuje poradie skokov
pre tabelator. Takze ja to vidim tak, ze urobis nejaky dalsi formular,
kde
vymenujes vsetky komponenty na forme a umoznis k nim zadat poradie.
Tot vsjo.

/LH


elementarny problem s C/S

[*] Viktor.Lostak(zv)chmi(tec)cz (Viktor Lostak) - 5.3.1999 08:17:53


-----P�vodn� zpr�va-----
Od: Zbysek Hlinka [SMTP:zhlinka(zv)login(tec)cz]
Odesl�no: 4. b�ezna 1999 18:32
Komu: delphi-l(zv)fwd(tec)cz
P�edm�t: RE: elementarny problem s C/S

Viktor Lostak wrote:

> Tahle problematika me extremne zajima, anzto ji prave resim. Existuji i
> dalsi moznosti :
>
[...]
>
> * detekujes tyto kolize a vyvolas totalni krach systemu, vsechno smazes.
> Uzivatele odkazes na cast manualu, kde tim nejmensim pismem nejak taktne
> popises toto chovani. Bezne reseni u mnoha firem, idealni pro surove
> povahy.
>
> Nejake jine navrhy?

Vykasles se na databaze a jdes prodavat burty a pivo do stanku.
Tam jsou problemy nanejvys s opilci a obcas hygienikem. :-)


S pozdravem

Zbysek Hlinka

[Viktor] Ja jsem asi tri tydny prodaval parek v rohliku. Ne, ze by to bylo
uplne spatne, to zas ne, ale prece jen, tady sedim pekne v teple.

begin 600 WINMAIL.DAT
M>)\^(C0'`0:0" `$```````!``$``0>0!(zv)`(````X(zv)0```````#F``$((zv) <`
M& ```$E032Y-:6-R;W-O9G0(zv)36%I;"Y.;W1E`#$(`0V ! `"`````(zv)`"``$$
MD 8`(zv) $```$````0`````P``, (````+``\.``````(!_P\!````/0``````
M``"!*Q^DOJ,0&9UN`-T!#U0"`````&1E;'!H:2UL0&9W9"YC>(zv)!33510`&1E
M;'!H:2UL0&9W9"YC>(zv)`````>``(P`0````4```!33510`````!X``S !````
M$ ```&1E;'!H:2UL0&9W9"YC>(zv)`#`!4,`0````,`_(zv)\&````'(zv)`!, $````2
M````)V1E;'!H:2UL0&9W9"YC>B<````"`0LP`0```!4```!33510.D1%3%!(
M22U,0$971"Y#6(zv)`````#```Y``````L`0#H!````'(zv)#V7P$````0````9&5L
M<&AI+6Q 9G=D+F-Z``(!]U\!````/0````````"!*Q^DOJ,0&9UN`-T!#U0"
M`````&1E;'!H:2UL0&9W9"YC>(zv)!33510`&1E;'!H:2UL0&9W9"YC>(zv)`````#
M`/U?`0````,`_U\``````(zv)'V#P$````$`````````I%'`02 `0`>````4D4Z
M(&5L96UE;G1A<FYY('!R;V)L96T(zv)<R!#+U,`'(zv)H!!8 #``X```#/!P,`!0`(
M`!$`-0`%`#$!`2" `P`.````SP<#``4`" `1``(`!0#^``$)(zv) $`(0```$(U
M.3DU-T5!0SE$,D0R,3$Y,T$X,# R,$%&,T)$.3%#`#D'`0.0!(zv)`\!P``(0``
M``L``(zv)`!````"P`C```````#`"8```````L`*0```````P`N```````#`#8`
M`````$ `.0#(zv)>29)V&:^`1X`< `!````'(zv)```%)%.B!E;&5M96YT87)N>2!P
M<F]B;&5M(',(zv)0R]3`````(zv)%Q``$````6`````;YFV$D(zv)ZE>9MM+)$=*3J `(zv)
MKSO9' ``'(zv)`># $````%````4TU44 `````>`!\,`0```!8```!V:6MT;W(N
M;&]S=&%K0&-H;6DN8WH````#``80^ OL6 ,`!Q"5`(zv)``'(zv)`($ $```!E````
M+2TM+2U0^59/1$[M6E!2X59!+2TM+2U/1#I:0EE314M(3$E.2T%33510.EI(
M3$E.2T% 3$]'24Y#6D]$15-,X4Y/.C1"^$5:3D$Q.3DY,3(zv)Z,S)+3TU5.D1%
M3%!(22U,0$971 `````"`0D0`0```!4$```1! ``V04``$Q:1G7Y9H$-=P`*
M`0,!]R "I /C`(zv)!C`F(zv)*P'-E=#(S.-4``"H"X6$'(zv)" '$P* \0<3($-%`H,`
M4 +R#U=(zv),"!486(zv)#<0*#,O$.YW!R<1.Q#W\0CQ&1)GT*(zv) C((#L);S(U9C4"
M(zv) J!=6,`4 L#8P,`00M(zv);F<Q,#(Y?PNG"K$*A J$&?("T1'Q<TPQ-QNZ$Z,Q
M-ANZ;-AI,S8;00-(zv)= 60!4 "+1_R4%PG9CEVRP1P"Y G"8 (zv)>A10(-'X,79A
M'_,;5A^$&T,+,8,?A (`:2TQ-#0!0'$?$#$X, % #- D`V)0($]D.(zv)R#8A+(zv)
M6D1B>13P:R!('Q!N`&MA(%M33510J#IZ:":#0 D`9PN \"YC>ET;524R!Y )
M4(DA86YO)7<T+B ,,!$(zv)8#AE>A6(zv)(#$Y8RL`*N X.C,3L"AF2XT#<'4E=P$`
M;'!H(^#(zv);$!F=V0H$2A7($(Y*I!D;2#1'\ E=U)%=#H(zv)+0!E!X ", K ;EQY
M(!]Q`F P," $($,\+U,B#R,:'Q0:ZU9IQ&MT!;%,;W,!D"90[G<?(zv)B5P&VD^
M$O(P(##&'&%T-+ FP!7!97ATB0EP;6X5T'IA:(zv)=PJ&$L( !P>C30(#C0N3#!
M8785T EP`)!M*C#D17(zv)$`'1U.9$`H#95[F0'0 "0-^!O*K U(3F(zv)YS75-J ;
M5%LN/: H13T6;3:(zv)*BSA'Z!K.N 'D73*>3EA:P;P:7H5T"; _'9Y() +8#^!
M'Y '0 ,`_S_(zv).= 4L#% )B ?H"Q .1!^=A3P%+ I<#% `,! ,'/B+C9&57II
M(9 ?H#;QUP1P)K!#(2 JP6- T 5 [0.!=0= 0D%K`0`_D =P^43P96HP03I!
M,, $``> -T9S-5$U070X(zv)#9&<&_?1S$_<A^0.7 4L&\AD ,`O2HP0BJA.(zv),)
M\#F(zv)=3?(zv)NREP%, (zv)(] X43D0:0$`?T$S'W$Q0 AP2=!(62&0:/YY0U<V1(zv)?
M1\$5T#C0.($I%:!V<DW(zv)/QM:5GG_)K I$ >1%/!$\CNP`9%#$?U 46HH\3#"
M.[!$$2I "'#_/Z! 44<P() LX$+1`9 FH)YU*C ;5!,`,3!J<PA(zv)_S#&,+ 5
MH$:10(!1<41P1S"\;&,YH"; ,/!%,2!-X(\GX$K13U Z83HM*1M>YPJ !?!(
MX'ID.=(NX!MI?R8+&UL:$(zv)PR,A8FT#2D73\#,"70#$ 2X ,P&E0S,_D1T2!*
M4H$4\#$P0- YH/LX0&#1>2"P,+-3((zv),(zv)"K'])D%V.A!+4!\05,('P#D0_T Q
M)A! \6.1"0!+``M0.('^<PJP2#$Y$#EA.+!$X6-!/P= -P(%D$]A"?!E$6%D
M^S"P%/!D1P(F0#B!8H ?H/T+4&5#4!QR&E<C5QM%%P$"`&J `````P`0$ ``
M```#`!$0`0````,`(zv)!#_____0 `',. UF"K89KX!0 `(,. UF"K89KX!"P``
M(zv) (zv)(zv)!(zv)``````P ```````$8``````X4````````#``* "" &``````# ````
M````1(zv)`````0A0````````,`!8 (( 8``````, ```````!&`````%*%``#P
M#(zv)``'(zv)`E(zv) (zv)(zv)!(zv)``````P ```````$8`````5(4```$````$````."XP``,`
M)H (( 8``````, ```````!&``````&%````````"P`O(zv) (zv)(zv)!(zv)``````P ``
M`````$8`````#H4````````#`#" "" &``````# ````````1(zv)`````1A0``
M``````,`,H (( 8``````, ```````!&`````!B%````````'(zv)!!(zv) (zv)(zv)!(zv)``
M````P ```````$8`````-H4```$````!`````````!X`0H (( 8``````, `
M``````!&`````#>%```!`````0`````````>`$. "" &``````# ````````
M1(zv)`````XA0```0````$`````````'(zv)`]``$````%````4D4Z( `````#``TT
&_3<``%/2
`
end


rowid

[*] Jaroslav KULHEIM <kulheim(zv)fitness(tec)cz> - 4.3.1999 19:47:57

>Nevis, zda tam neudrzuje taky nejakej rdb$ na celkovy pocet zaznamu
>SELECT count(*), pokud se jde pres vsechny zaznamy na vetsi tabulce
>nejakou chvili trva
>Jaro

O zadnem takovem jsem neslysel.
Ale ani by nam to nepomohlo, pri vyberu s podminkou.
Pro zjisteni poctu zaznamu cele tabulky v nouzi nejvyssi bych pouzil
SELECT gen_id(odberatel_gen, 0)*_puskvorec_constant FROM rdb$database

Holt v generatoru jsou mezery...

Pozn.
rdb$database v Interbase obsahuje vzdy jen 1 zaznam


>
>>Na Interbase existuje rdb$db_key. Napr.:
>>
>>SELECT RDB$DB_KEY FROM CIS_ULIC
>>
>>DB_KEY
>>========
>>00900009
>>0090000A
>>0090000B
>>0090000C

Vypocet

[*] Martin Lasevic <vyvoj(zv)atlascon(tec)cz> - 5.3.1999 08:22:55

Jo, u nas se to deje taky a zapotili jsme se pri reseni az to pekne nebylo.
Jde pravdepodobne o chybu procesoru. Reseni je jedine, vymyslet si vlastni
procedury a funkce na tyto operace.

Martin

-----Puvodni zprava-----
Od: Jaroslav Nadhera [SMTP:csh(zv)czn(tec)cz]
Odeslano: 4.boezna.1999 17:56
Komu: delphi-l(zv)fwd(tec)cz
Poedmit: Vypocet

Nevite nekdo cim to je?

Trunc(960/100*15) da na pentiu vysledek 144, na 486 da vysledek 143

Trunc(960*0.15) da na obou pocitacich 144

144 je spravne a deje se to jenom u cisla 960 (jine, kde se to projevuje
jsem nenasel).

J. Nadhera

CSH spol. s r.o.
Velflikova 10, 160 00 Praha 6
tel: 02/2431 2344-5, fax: 02/652 28 92
Nedbalova 14, 701 00 Ostrava
tel: 069/663 56 87
e-mail: csh(zv)czn(tec)cz
WWW: http://users(tec)czn(tec)cz/~csh

<<Soubor: ATT00003.html>>

Vypocet

[*] Martin Lasevic <vyvoj(zv)atlascon(tec)cz> - 5.3.1999 08:23:59

Neni pravda. Delaji to i vybrane P 266 MMX.

Martin

-----Puvodni zprava-----
Od: Jan.Kubeczka(zv)trz(tec)cz [SMTP:Jan.Kubeczka(zv)trz(tec)cz]
Odeslano: 5.boezna.1999 7:53
Komu: delphi-l(zv)fwd(tec)cz
Poedmit: Re: Vypocet

Byly to prvni Pentia 60MHz

Property neexistuje ?!

[*] Mirun <forcom(zv)telecom(tec)cz> - 4.3.1999 19:55:08

Souhlasim se Zbyskem, problem bude pri nacitani z .dfm.
Tento problem vznika napr. ve chvili, kdy pridas nejakou property do sekc=
e
published, ale jiz mas komponentu na formu a instalovanou v palete. Pak
logicky vznika chaos. Zkus to udelat tak, ze dotycnou komponentu vymazes =
z
formu a das ji tam z palety znovu.

Mirun

-----P=F9vodn=ED zpr=E1va-----
Od: Zbysek Hlinka <zhlinka(zv)login(tec)cz>
Komu: delphi-l(zv)fwd(tec)cz <delphi-l(zv)fwd(tec)cz>
Datum: 4. b=F8ezna 1999 18:48
P=F8edm=ECt: Re: Property neexistuje ?!


Lubos Dusanic wrote:

> Zbysek Hlinka wrote:
>
> > > vytvoril som komponentu ako potomka TCustomControl, pricom som dal =
ako
> > > published vsetky nevyhnutne veci, VRATANE color. komponentu som v
> > > poriadku nainstaloval a v design dal na formu - property color bola
> > > normalne default (clBtnFace). ked som ale chcel spustit program, ce=
le
> > > mi to skoncilo na .. property does not exists txxx.color! pritom v
> > > object inspectore ju vidim, mam ju deklarovanu ... akurat "neexistu=
je"
> > > ...
> >
> > Coz takhle zverejnit takovy minimalizovany vysek kodu, na kterem
> > se to chova uvedenym zpusobem? Mas komponentu instalovanou
> > radne v nejakem balicku? Je dobre zkompilovany prislusny pas (s
> > komponentou)?
>
> preco nie. tu je:
>
> begin
> inherited Create(AOwner);
> Width:=3D 100;
> Height:=3D 20;
> ParentColor:=3D False;
> Color:=3D clBtnFace;
> Enabled:=3D True;
> FTextIndentSize:=3D 5;
> FFocused:=3D False;
> FAlignment:=3D taRightJustify;
> FChecked:=3D False;
> FEControl:=3D NIL;
> TabStop:=3D True;
> end;
>
> nastane to uz v constructor(e). ked to debug(ujem), vsetko prebehne v
> poriadku az po "end;" a potom to vyhlasi chybu ...
>
Zkousel jsem to, viz vypis nize. Bota podle vseho neni v Color, ale
nekde jinde, tipoval bych, ze v nejake property, kterou mas ve
zdroji DFM pred Color (pokud Color ve formulari menis). Chyba
samozrejme nevznika v Create, ale pri cteni z dfm.

Jak vypada tvoje deklarace techto tri vlastnosti?
FFocused
FAlignment
FChecked


type
TBlah =3D class(TCustomControl)
private
protected
public
constructor Create(AOwner: TComponent); override;
published
property Color default clBtnFace;
property Enabled;
property ParentColor;
property TabStop;
end;

procedure Register;

implementation

procedure Register;
begin
RegisterComponents('Standard', [TBlah]);
end;

constructor TBlah.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
Width:=3D 100;
Height:=3D 20;
ParentColor:=3D False;
Color:=3D clBtnFace;
Enabled:=3D True;
{ FTextIndentSize:=3D 5;
FFocused:=3D False;
FAlignment:=3D taRightJustify;
FChecked:=3D False;
FEControl:=3D NIL;}
TabStop:=3D True;
end;

S pozdravem

Zbysek Hlinka
E-mail: zhlinka(zv)login(tec)cz, localizator(zv)localizator.com
Tel.: 02/795 29 56; GSM: 0603 551 282
Krystofova 1016, 149 00 Praha 4
CZ

Property neexistuje ?!

[*] Lubos Dusanic <lubos(zv)iname(tec)com> - 05.3.1999 08:25:30

Mirun wrote:

> Souhlasim se Zbyskem, problem bude pri nacitani z .dfm.
> Tento problem vznika napr. ve chvili, kdy pridas nejakou property do sekce
> published, ale jiz mas komponentu na formu a instalovanou v palete. Pak
> logicky vznika chaos. Zkus to udelat tak, ze dotycnou komponentu vymazes z
> formu a das ji tam z palety znovu.
>

mas pravdu, uz je to ok.

vdaka

--
lubos dusanic

mailto:lubos(zv)iname.com
http://www.geocities.com/SiliconValley/Haven/7613

Delphi 3 pod W98.

[*] Jirka Virt <virt(zv)pepa(tec)cz> - 5.3.1999 08:31:14

Tak to mam naprosto stejny problem.Vyresil jsem to tak,ze jsem nainstaloval
W95.A pak je to O.K.


Jirka Virt

emai: virt(zv)pepa(tec)cz
-----P�vodn� zpr�va-----
Od: Petr Dan�k <petrd(zv)atlas(tec)cz>
Komu: delphi-l(zv)fwd(tec)cz <delphi-l(zv)fwd(tec)cz>
Datum: 4. b�ezna 1999 20:05
P�edm�t: Delphi 3 pod W98.>
>Ahoj,
>potrebuji nainstalovat Delphi 3 pod W98. Pri spusteni Delphi pred
vykreslenim ikon komponet cely pocitac zatuhne. Nekolikrat jsem
preinstaloval a porad stejne. Nesetkal se s tim nekdo.
>Dik.
>
>Petr Danek
>petrd(zv)atlas(tec)cz
>
>

Ovl�dac� panely

[*] Ondrej Krajicek <krajicek(zv)promedia(tec)cz> - 4.3.1999 20:03:56

Do slozky Ovladaci Panely zastupce pridat nejde. Ona to vlastne neni
slozka, ale klasicky control.exe, jak jej zname z Windows 3.11, az na
to, ze obsah vykresli do okna exploreru. Nicmene muzes vytvorit
Control Panel Applet, vice informace ve Win32 SDK helpu pod heslem
CPlApplet.

Ondrej Krajicek

-----P=F9vodn=ED zpr=E1va-----
Od: Milan Fiedler <milanf(zv)rts(tec)cz>
Komu: Konference <delphi-l(zv)fwd(tec)cz>
Datum: 4. b=F8ezna 1999 15:25
P=F8edm=ECt: Ovl=E1dac=ED panely


Potreboval bych do slozky "Ovladaci panely" p=F8idat zastupce, nevite
prosim kde zjistit cestu, nebo kam zaspat. Nemohu to najit mozna
koukam jinam nez mam.


Dekuju

Milan Fiedler
milanf(zv)rts(tec)cz

SPEEDTIP - NetWare, BDE ...

[*] Ondrej Krajicek <krajicek(zv)promedia(tec)cz> - 4.3.1999 20:06:34

Naopak, necht je tvuj strom vecne zeleny, tohle jsem primo potreboval
;-))))))
Ondrej Krajicek

-----P=F9vodn=ED zpr=E1va-----
Od: Radoslav Jalc, ProNet <pronet(zv)ke.telecom.sk>
Komu: Konferencia Delphi <delphi-l(zv)fwd(tec)cz>
Datum: 4. b=F8ezna 1999 16:58
P=F8edm=ECt: SPEEDTIP - NetWare, BDE ...


Mam tu nejaky tip...
Ak mate "multiuser" aplikaciu (BDE,Paradox tabulky) - vsetko na sieti
Netware, tak je to prave pre vaaas...

-------------------------------------------------------------
Client 32 2.5 works well - stay away from 3.0.1 however. You
also need to do some tweaks to get it working right :
Auto Reconnect Level =3D 0
Lock Retries =3D 1
Read Only Compatibility =3D On
Packet Burst =3D Off
Cache Writes =3D Off
File Cache Level =3D 0
Max Cache Size =3D 2048 (assuming a 32meg ram client)

With these settings, I have a Paradox app with 63 hardcore users
(doing
2-3k of inserts/edits).
----------------------------------------------------------------------
------

Dufam, ze som tym nikomu "neublizil" ;-)

S pozdravom
Radoslav Jalc - ProNet development
E-Mail: pronet(zv)ke.telecom.sk | Mobil: +421-905-489364

Odchytavani zprav

[*] Novak Josef <jnovak(zv)anect(tec)cz> - 5.3.1999 08:41:06

Zdravim vsechny, chtel bych se zeptat, snazim se pochopit programovani v
delphi.
Chtel bych pochopit jak muzu ve sve aplikaci v delphi odchytavat zpravy
jinych aplikaci.
Kdzy si preci vytvorim ve sve aplikaci abz odchytavala zpravy napr.:
Application.onMessage := Zpravy
kde Zpravy je definovana jako procedure Zpravy(var Message: TagMsg, Handled:
Boolean);
Tak stejne moje aplikace odchytava jenom zpravy, pro tuto aplikaci.
Muze me to prosim Vas nekdo vysvetlit. Jak to teda ve sve aplikaci
nadefinovat, aby mi to do me aplikace posilalo Msg.message z jine aplikace?
A jeste bych se chtel zeptat jestli musim pro odchytzvani zprav pouzivat
Timer, aby to napr sledovalo kazdou sekundu jestli josu nove zpravy.
Doufam ze jsem se dobre vyjadril.
Dekuji Vsem, kteri mi budou napomocni.
S pozdravem Novak J.

Vypocet

[*] Zbynek Ceska <zbyces(zv)physics.muni(tec)cz> - 5.3.1999 08:47:11

> Co je to za pentium? Jedna z prvnich serii pentia mela chybu
> v aritmeticke jednotce, ktera se pri nekterych (pry statisticky
> velmi vzacnych) kombinacich projevovala chybnym vypoctem.
> Tohle vypada presne jako ta chyba procesoru. Bohuzel si nepamatuju,
> co presne to bylo za typ procesoru, je to asi 2-3 roky.

> > Nevite nekdo cim to je?
> > Trunc(960/100*15) da na pentiu vysledek 144, na 486 da vysledek 143
> > Trunc(960*0.15) da na obou pocitacich 144
> > 144 je spravne a deje se to jenom u cisla 960 (jine, kde se to
> > projevuje jsem nenasel).

Jednou jsem v Chipu nasel zpusob, jak se ta chyba procesoru pozna. Udelal
jsem si programek na jednoduchej vypocet. Muzu poslat programek ( ma par
kil ) nebo i ten vzorec, u kteryho to pry vzdy udela chybu. Ale ten vzorec
budu asi hledat dyl, nevim kde mam zdrojovej soubor. Pouzivam jen exac.

-------------------------------------------------------
zbyces(zv)sci.muni(tec)cz
--------------------------------------------------------
Zbynek Ceska - Faculty of Science - Masaryk University
plasma physics - PhD studies
high technology physics, microwave electronics physics
--------------------------------------------------------


Registry a WinNT

[*] Ales Radikovsky <radik(zv)seznam(tec)cz> - 05.3.1999 08:51:07

> Chcem pisat pomocou TRegistry pocas prace uzivatela, ktory nie je
> administrator
> Zaujimave je, ze InstallShit zapise vsetko bez problemov...
>

Pokud to je s Delphi 3, tak na www.delphi(tec)cz jsem dal odkaz na nejakou
stranku (presne si nepamatuju nazev ale neco jako Delphi & NT) a tam je
unitka, ktera to opravuje.
Mam to ve svem programu a funguje to.

Ales


Delphi 3 pod W98.

[*] Petr Zahradnik <clexpert(zv)clexpert(tec)cz> - 4.3.1999 20:26:55

Puvodni zprava, kterou napsal Petr Dan=ECk dne 4 Mar 99,:

> potrebuji nainstalovat Delphi 3 pod W98. Pri spusteni Delphi pred
> vykreslenim ikon komponet cely pocitac zatuhne. Nekolikrat jsem
> preinstaloval a porad stejne. Nesetkal se s tim nekdo. Dik.

Spise mas videokartu S3 a dela ti to tedy pocet komponent,
Do SYSTEM.INI do sekce [DISPLAY] napis tento radek:

BusThrottle=3Don

A restartuj pocitac...


S pozdravem
Petr Zahradnik, pocitacovy expert

Autorizovany dealer TurboPower Software... knihovny pro Delphi
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
=3D=3D=3D Petr Zahradnik - Computer Laboratory =3D=3D=3D
=3D=3D=3D Obvodova 740/14, PO BOX 15, 400 07 Usti nad Labem 7 =3D=3D=3D
=3D=3D=3D telefon: 047-5500610, telefon/fax: 047-5501627 =3D=3D=3D
=3D=3D=3D mobilni telefon GSM (hotline): 0602-409601 =3D=3D=3D
=3D=3D=3D http://www.clexpert(tec)cz/ clexpert(zv)clexpert(tec)cz =3D=3D=3D
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
ICQ: 21215917, PGP vitano


ADO a ulozene procedury

[*] Tomas Bradle <tomas(zv)cobra(tec)cz> - 4.3.1999 20:39:50

Cau,
zkusil jsem to, tady jsou vysledky:

1) pokud je procedura bez parametru je vse OK (recordset se otevre) - nap=
r.:
rs.Open('tsp_GetTables', adoConnection, adOpenStatic, adLockOptimistic,
adCmdStoredProc);
ale i :
rs.Open('exec tsp_GetTables', adoConnection, adOpenStatic, adLockOptimist=
ic,
adCmdText);

2) tady je ale se dvema parametry - hlasi chybu syntax error :
rs.Open('tsp_RowLock 234, ''Sup''', adoConnection, adOpenStatic,
adLockOptimistic, adCmdStoredProc);

3) opet se dvema parametry, ale adCmdStoredProc - rowset se neotevre
a procedura se neprovede :
rs.Open('exec tsp_RowLock 234, ''Sup''', adoConnection, adOpenStatic,
adLockOptimistic, adCmdText);


procedura tsp_RowLock provadi update... a select...,
ktery vraci. Vyzkouseno pres BDE a TStoredProcedure - vrati Dataset
a procedura se provede.


Tomas
tomas(zv)cobra(tec)cz


-----P=F9vodn=ED zpr=E1va-----
Od: Zbysek Hlinka <zhlinka(zv)login(tec)cz>
Komu: delphi-l(zv)fwd(tec)cz <delphi-l(zv)fwd(tec)cz>
Datum: 4. b=F8ezna 1999 19:24
P=F8edm=ECt: Re: ADO a ulozene procedury


Tomas Bradle wrote:

> Cau,
> mel bych takovy dotaz. Zkousel nekdo z Vas volat ulozene procedury z MS=
SQL
> 7 pres ADO s predavanim parametru.
>
> Ja to zkousel ruzne:
> 1. connection.execute - to funguje perfektne, ale bez parametru (neda=
ji
> se
> zadat)
> 2. command.execute - to funguje taky, ale zase bez parametru, selhaly
> konstrukce parametru podle prikladu VBasicu v online ADO dokumentaci (p=
res
> CoParameter.create, command.CreateParameter -> command.Parameters.Appen=
d)

A zkousel jsi to pres Recordset?


S pozdravem

Zbysek Hlinka
E-mail: zhlinka(zv)login(tec)cz, localizator(zv)localizator.com
Tel.: 02/795 29 56; GSM: 0603 551 282
Krystofova 1016, 149 00 Praha 4
CZ

MDI Form

[*] Jezek Petr, Ing. (DELVINA) <PETR(zv)sevis.sk> - 5.3.1999 09:13:21

Delphi 1:
Mam MDI aplikaci. Pokud mam otevrene nejaky
child form a dam close hlavni aplikace, tak
se zavolaji Close childu (to mam zjistene).
Ale aplikace mi pak spadne.
Pokud, ale ve FormClose hlavniho MDI
poslu WM_Close vsem MDIChild oknum:

for i := MDIChildCount-1 downto 0 do
if MDIChildren[i] is TADEMDIForm then begin
SendMessage(MDIChildren[i].handle, WM_Close,0,0);
end;

(Close se vykona po druhe), je vse OK.
Nevite kde by mohl byt problem?
Zajimave, ze v D4 to projde OK.

+-------------------------------+
| Ing. Petr Jezek |
| Delvina, s.r.o |
| 010 01 Zilina |
+ - - - - - - - - - - - - - - - +
| tel: +421 (89) 624 344 |
| fax: +421 (89) 621 018 |
| email: petr(zv)sevis.sk |
| web: www.delvina.sk |
+-------------------------------+

Owner draw menu v D3 ?

[*] Petr Brant <p.brant(zv)samo(tec)cz> - 5.3.1999 09:14:57

Super, funguje to sqele ... Moc diky.

********************************************************
Petr Brant [p.brant(zv)samo(tec)cz]

programator v MSVC++, obcas Delphi nebo Visual Basic
********************************************************
> -----P�vodn� zpr�va-----
> Od: Fryz, Zdenek [SMTP:fryz(zv)dcb(tec)cz]
> Odesl�no: 5. b�ezna 1999 6:55
> Komu: delphi-l(zv)fwd(tec)cz
> P�edm�t: RE: Owner draw menu v D3 ?
>
> ... pro inspiraci jednoduchy priklad kresleni v menu - ve vsech
> polozkach
> MainMenu1, ktere maji Tag >0
> priklad ale nebere v uvahu disable polozky, hotkeys ....
> vyzkouseno v D3/Win95
>
> Zdenek Fryz
>

PIF

[*] Krayzel Libor <Libor.Krayzel(zv)czech-tv(tec)cz> - 5.3.1999 09:19:55

Zdravim,

pred casem se tu mam pocit mihla informace, jak vycist z PIF souboru
prikazovy radek.

Vite to nekdo?
Dekuji.==[ eLK(zv) ]===================================================
http://webhost(tec)cz/elka * mailto:libor.krayzel(zv)czech-tv(tec)cz - (069)6201375
http://easypad.fwd(tec)cz * mailto:elka(zv)seznam(tec)cz
============================================================

Delphi 3 pod W98.

[*] Petr Brant <p.brant(zv)samo(tec)cz> - 5.3.1999 09:25:37

Mam W98, D3 Standard a chodi to v pohode. Ale mam 16 MB kartu Riva TNT.
Asi to bude ten problem s S3.

********************************************************
Petr Brant [p.brant(zv)samo(tec)cz]

programator v MSVC++, obcas Delphi nebo Visual Basic
********************************************************
> -----P�vodn� zpr�va-----
> Od: Jirka Virt [SMTP:virt(zv)pepa(tec)cz]
> Odesl�no: 5. b�ezna 1999 8:31
> Komu: delphi-l(zv)fwd(tec)cz
> P�edm�t: Re: Delphi 3 pod W98.
>
> Tak to mam naprosto stejny problem.Vyresil jsem to tak,ze jsem
> nainstaloval
> W95.A pak je to O.K.
>
>
> Jirka Virt
>
> emai: virt(zv)pepa(tec)cz
> -----P�vodn� zpr�va-----
> Od: Petr Dan�k <petrd(zv)atlas(tec)cz>
> Komu: delphi-l(zv)fwd(tec)cz <delphi-l(zv)fwd(tec)cz>
> Datum: 4. b�ezna 1999 20:05
> P�edm�t: Delphi 3 pod W98.
>
>
> >
> >Ahoj,
> >potrebuji nainstalovat Delphi 3 pod W98. Pri spusteni Delphi pred
> vykreslenim ikon komponet cely pocitac zatuhne. Nekolikrat jsem
> preinstaloval a porad stejne. Nesetkal se s tim nekdo.
> >Dik.
> >
> >Petr Danek
> >petrd(zv)atlas(tec)cz
> >
> >

Hlaska: Invalid BLOB handle in record buffer

[*] Pavel Bare� <atoll(zv)telecom(tec)cz> - 5.3.1999 09:50:52

Toto je zpr�va ve form�tu MIME obsahuj�c�n�kolik ��st�.

Dekuji opravdu pomuze zmena na blob, domnivla jsem se, ze varchar bude v tomto pripade lepsi. Otazkou vsak je, proc se vsechno chova korektne
pouze pri pouziti Locate vznikne chyba.

Jeste jeden s tim souvisejici dotaz:

Jak pomoci SQL presunout data z varchar do blob ?
zkusil jsem
update faktury set dodaky =(select dodaky from faktury2 where faktury2.cis fakt=faktury.cis fakt)
ale to Error conversion from string "BLOB"

Pavel Bare�
Atoll s.r.o.
www.atoll(tec)cz

-----P�vodn� zpr�va-----
Od: Jaro <jaro(zv)sinea(tec)cz>
Komu: delphi-l(zv)fwd(tec)cz <delphi-l(zv)fwd(tec)cz>
Datum: 5. b�ezna 1999 0:24
P�edm�t: Re: Hlaska: Invalid BLOB handle in record buffer


Asi by bylo lepsi predelat ten varchar(2000) na blob sub type text
Ale zkus jeste tohle.
Z toho datasetu zcela vyhod polozku varchar(2000) a vsechny ostatni velke polozky, ktere primo nezobrazujes pomoci gridu
(ty ostatni vyjmenujes za SELECT namisto hvezdicky) a zaloz si jeste jeden TQuery, ktery pripoj do relace s tim prvnim.
V druhem TQuery bude odkaz jen na jediny zaznam pomoci konstrukce WHERE id = :id
Jeste je dobre pred prikazem Locate nastavit vazbu datasource (relacni) na nil a teprve az po nalezeni zaznamu ji
priradit opet na datasource pripojeneho k tomu prvnimu TQuery.
Nejenom, ze to nebude hlasit chybu, ale znacne se ti to zrychli zejmena pri vetsim mnozstvi dat.
Uvedom si, ze naplneny zaznam Varchar(2000) znamena 2 kB a jiz pro pouhych tisic radku jsou z toho dva MB!
To je obrovsky dataset a nalezeni zaznamu uprostred nebo ke konci bude trvat hodne dlouho, protoze dojde
k postupnemu dotazeni celeho objemu dat.
Muj navrh to resi tak, ze se listuje malym objemem dat jen tech sloupcu, ktere zobrazuji v gridu a zbytek dotahnu az
pro jeden konkretni zaznam na kterem se zastavi ukazatel, coz jsou maximalne jen ty 2KB. Podle teto konstrukce
muze byt skok na posledni zaznam az radove rychlejsi.
---------
Pokud pouziju DBMemo na zobrazeni VARCHAR(2000) z tabulky na IB dostanu po nalezeni zaznamu pomoci LOCATE hlasku
Invalid BLOB handle in record buffer

Nevite nekdo jak to odstranit ??

Pavel Bares
Atoll s.r.o.
www.atoll(tec)cz

elementarny problem s C/S

[*] Zden�k Moravec <zmo(zv)telecom(tec)cz> - 5.3.1999 10:02:21

Ja osobne preferuji nasledujici reseni, ktere je myslim i velmi jednoduche
na realizaci:
v pripade, ze nektery uzivatel zacne prohlizet data s moznosti editace, pro
vsechny ostatni dany zaznam zamknu, povolim pouze cteni a pri pokusu o zmenu
vypisu hlasku, ze data jiz upravuje uzivatel XY (babka z tretiho patra
napr.). Je to reseni stejen nepovedene jako vsechny ostatni (krome prodeje
burtu), ale je dobre vysvetlitelne uzivatelum (na rozdil od nekolika verzi
zaznamu) a jak jsem jiz psal celkem jednoduche pro realizaci.

Zden�k Moravec zmo(zv)telecom(tec)cz
>> Semantika zmeny je prilis pracna, posloupnost akci na datech,
>> ktera dodal uzivatel1 je nesmysl - co kdyz je to text, uzivatel2
>> opravuje tvrda a mekka IY a uzivatel1 zmeni cely text?
>> Spis bych to videl takto:
>> pred kazdou zmenou zazalohovat data prislusneho zaznamu.
>> Kazdy novy uzivatel to znovu preplacne, a stara verze
>> se zazalohuje.
>> Pri nejasnostech je mozne z tabulky zaloh vyselektovat podle
>> Time vsechny predchozi verze radku a provest opravy.
>>

Vypocet

[*] Zden�k Moravec <zmo(zv)telecom(tec)cz> - 5.3.1999 10:06:15

Ja mam jine reseni - nepouzivat Trunc, ale Round - to skutecne zaokrouhli,
ne orizne.

Zden�k Moravec zmo(zv)telecom(tec)cz


>Jo, u nas se to deje taky a zapotili jsme se pri reseni az to pekne nebylo.
>Jde pravdepodobne o chybu procesoru. Reseni je jedine, vymyslet si vlastni
>procedury a funkce na tyto operace.
>
>Trunc(960/100*15) da na pentiu vysledek 144, na 486 da vysledek 143
>
>Trunc(960*0.15) da na obou pocitacich 144
>
>144 je spravne a deje se to jenom u cisla 960 (jine, kde se to projevuje
>jsem nenasel).
>

SPEEDTIPS - NetWare (WinNT,98), BDE ...dokonca Lin

[*] Radoslav Jalc, ProNet <pronet(zv)ke.telecom.sk> - 4.3.1999 21:43:59

>Naopak, necht je tvuj strom vecne zeleny, tohle jsem primo potreboval
>;-))))))
>Ondrej Krajicek
>

Som rad, ze som aspon niekomu "ustedril" .. :-)

Prosim vsetkych, ak mate podobne "SPEEDTIPS" aj pre Windows NT resp. Win9x siet, prosim zverejnite to.

Ak by mal niekto zaujem o moje nastavenie BDE a WinNT siete rad poskytnem formou sukromneho mailu.
Myslim si, ze NTcka dokazu chodit aspon tak rychlo ako Netware ....

Ozaj, skusal niekto rozchodit zdielanie suborov na Linuxe. Mam na mysli Linux ako server a Win9x ako stanice s BDE.

Vdaka

Majte sa ... a prispejte

Radoslav Jalc - ProNet development
E-Mail: pronet(zv)ke.telecom.sk | Mobil: +421-905-489364

Dataset - Pro a proti (Was:Re: MS SQL 7 + ulozene

[*] Robert Kindl <rob(zv)optimal(tec)cz> - 5.3.1999 10:24:34

> > >Co se tyka cached updates, to umi ADO jako takove, neni treba to
> > >hloupe obchazet.
> > Jak velkou kontrolu nad tim jak se zmeny aplikuji mam?
> > (proste je to na urovni Post, UpdateSQL nebo OnUpdateRecord?).
> Urcite lepsi nez ve stavajicich komponentach. Pro ukazku vypis


Dobra, uvidime jestli je to pravda.

Rob

klavesove zkratky menu

[*] Mirun <forcom(zv)telecom(tec)cz> - 4.3.1999 21:54:35

Udelej to jednoduse tak, ze pred spustenim "toho jineho" formulare vymaz
shortcuty, a po zavreni je zase nastav zpatky... V pripade ze je "ten jin=
y"
formular modal, tak to neni problem.

Mirun

-----P=F9vodn=ED zpr=E1va-----
Od: Fryz, Zdenek <fryz(zv)dcb(tec)cz>
Komu: delphi-l(zv)fwd(tec)cz <delphi-l(zv)fwd(tec)cz>
Datum: 4. b=F8ezna 1999 10:06
P=F8edm=ECt: klavesove zkratky menu


>ahoj
>
>mam nasledujici problem:
>
>V hlavnim formulari (SDI aplikace) mam menu a v nem polozku "Vlozit" s
>vlastnosti ShortCut =3D "Shift+Ins", k teto polozce
>menu mam pripojenou proceduru, ktera vklada text ze schranky do aktivnih=
o
>RichEditu na hlavnim formulari.
>Jestlize z hlavniho formulare otevru jiny formular, na kterem mam napr.
Edit
>a stisknu "Shift+Ins", text ze schranky se
>nevlozi do aktivniho Editu, ale do RichEditu na hlavnim formulari =3D pr=
ovede
>se procedura polozky menu na hlavnim formulari.
>
>nevi nekdo jak uvedeny problem odstranit ?
>
>diky za pripadne odpovedi
>
>
>Zdenek Fryz
>
>
>

Vypocet

[*] Robert Kindl <rob(zv)optimal(tec)cz> - 5.3.1999 10:30:38

>Jo, u nas se to deje taky a zapotili jsme se pri reseni az to pekne nebylo.
>Jde pravdepodobne o chybu procesoru. Reseni je jedine, vymyslet si vlastni
>procedury a funkce na tyto operace.


Coz takhle v Project/Options/Compiler/Code Generation zaskrtnou Pentium-safe
FDIV?

Navic podle puvodni zpravy J. Nadhery:
> Trunc(960/100*15) da na pentiu vysledek 144, na 486 da vysledek 143
> Trunc(960*0.15) da na obou pocitacich 144
> 144 je spravne a deje se to jenom u cisla 960 (jine, kde se to projevuje
jsem nenasel).

Takze spatne pry pocita 486 a ne Pentium...

Rob

TaskBar AutoHide

[*] Jan Skopov� <jan.skopovy(zv)vol(tec)cz> - 4.3.1999 22:17:40

Nevite nekdo, jak nastavit z programu Autohide Taskbaru ? V archivu jsem nasel pouze moznost ShowWindow(handle,SW HIDE), coz ale neni reseni.

Jan Skopovy


Destruktor?

[*] Viktor.Lostak(zv)chmi(tec)cz (Viktor Lostak) - 5.3.1999 10:49:11

Automaticky sa nevolaju, ale nie je to ani celkom tak ako v P 7.0. Ked
totiz v Delphi zavolas destruktor najakeho objektu, tak sa z pamate uvolni
cely objekt, nie iba VMT.
V P 7.0 sa dala deklarovat (var o:TMyObjekt) priamo instancia objektu a
constructor vytvoril len VMT (ak mal objekt virtualne metody). Destructor
zase VMT uvolnil. Ked sa v P 7.0 zadeklaroval smernik na objekt (var
po:^TMyObjekt), tak bolo treba najprv vytvorit instaciu objektu a potom
zavolat constructor. Pred uvolnenim instancie sa zase musel volat
destructor. V delphi sa neda deklarovat priamo instancia objektu.
Deklaracia var o:TMyObject je len deklaraciou smernika na dany typ objektu
tak ako v P 7.0 var o:^TMyObject. Na rozdiel od P 7.0 v D netreba
explicitne vytvarat instanciu objektu pomocou new ako P 7.0, ale staci
zavolat constructor a ten uz rovno vytvori instanciu objektu aj VMT a vrati
adresu objektu (o:=TMyObject.Create). Rovnako destructor v D uvolni nielen
VMT ale aj instanciu objektu, teda o.destroy uvolni s pamati VMT aj samotny
objekt.
Neviem ci je to uplne presne ako som napisal, ale tak nejako to chapem ja.

Lubo.

[Viktor] Mno, jak to mam rict... Ja jsem ti fakt hodne vdecny za snahu a
nemyslim to zle... Ale to, co pises, to jsou vazne bludy.
Konstruktor nikdy zadnou VMT nevytvari, ta se dela uz pri prekladu a
konstruktor (krome jineho) nastavuje ve vyhrazene pameti pointer na VMT,
cimz se fakticky vytvori instance objektu. ja vim presne, jak to chodi v
BP.

Jde mi o to, jestli musim volat destruktor explicitne ja sam, nebo jestli
to za mne udela jazyk. Tedy jestli kdyz opoustim proceduru, zavola
destruktory pro lokalni instance a jestli kdyz rusim objekt v pameti,
zavola sam destruktor.

To se da zodpovedet patrne tim, jestli lze ve tride deklarovat vic
destruktoru nez jeden nebo destruktory s parametry. Pokud ano, pak nevim,
jak by se mohly volat automaticky.

begin 600 WINMAIL.DAT
M>)\^((zv)X)`0:0" `$```````!``$``0>0!(zv)`(````X(zv)0```````#F``$((zv) <`
M& ```$E032Y-:6-R;W-O9G0(zv)36%I;"Y.;W1E`#$(`0V ! `"`````(zv)`"``$$
MD 8`(zv) $```$````0`````P``, (````+``\.``````(!_P\!````/0``````
M``"!*Q^DOJ,0&9UN`-T!#U0"`````&1E;'!H:2UL0&9W9"YC>(zv)!33510`&1E
M;'!H:2UL0&9W9"YC>(zv)`````>``(P`0````4```!33510`````!X``S !````
M$ ```&1E;'!H:2UL0&9W9"YC>(zv)`#`!4,`0````,`_(zv)\&````'(zv)`!, $````2
M````)V1E;'!H:2UL0&9W9"YC>B<````"`0LP`0```!4```!33510.D1%3%!(
M22U,0$971"Y#6(zv)`````#```Y``````L`0#H!````'(zv)#V7P$````0````9&5L
M<&AI+6Q 9G=D+F-Z``(!]U\!````/0````````"!*Q^DOJ,0&9UN`-T!#U0"
M`````&1E;'!H:2UL0&9W9"YC>(zv)!33510`&1E;'!H:2UL0&9W9"YC>(zv)`````#
M`/U?`0````,`_U\``````(zv)'V#P$````$`````````I%'`02 `0`0````4D4Z
M($1E<W1R=6MT;W(_`&<%`06 `P`.````SP<#``4`"(zv)`Q``L`!0`I`0$(zv)(zv) ,`
M#(zv)```,\'`P`%``H`*P`E``4`/0$!"8 !`"$```!!-#5#140V-T1!1#)$,C$Q
M.3-!.# P,C!!1C-"1#DQ0P!*!P$#D 8`J (zv)``"$````+``(``0````L`(P``
M`````P`F```````+`"D```````,`+(zv)```````P`V``````! `#D`T!BK:^UF
MO(zv)$>`' ``0````P```!$97-T<G5K=&]R/P`"`7$``0```" ````!OF8K;#>W
M!<U TAH1TI.D`""O.]D<``)JDR `+>./(!X`'(zv)P!````!0```%--5% `````
M'(zv)`?# $````6````=FEK=&]R+FQO<W1A:T!C:&UI+F-Z`````P`&$#Q$/^D#
M``<0^04``!X`"! !````90```$%55$]-051)0TM94T%.159/3$%*52Q!3$5.
M245*151/04Y)0T5,2T]-5$%+04M/5E W,$M%1%1/5$E:5D1%3%!(25I!5D],
M05-$15-44E5+5$]23D%*04M%2$]/0DI%2U15+%0``````(zv)$)$ $```".!0``
MB(zv)4``-$(``!,6D9UZ1(zv)JS(zv),`"(zv)!R8W!G,3(U-C(`] 'W( *G`(zv)!C: $*P'-E
M=# (zv)5&$^: -Q`H,`4 /4#_<R,ZHX```J`N%A!X (zv)!Q/C`H '$R!#10*##E /
MM+!P<G$R!=P"(zv)'T*(zv)-D(R" ["6\.,#4"(zv) J!#'5C`% +`VQI,S8M`4!C`$$+
M8&X.$# SUC,*H -(zv)= 60= NF$R 4=70#<70-X&MY($!S82!N978&\&'P:G4L
M( = $Q #`!,0'FH3$!N0'/ #`"!C9<QL:P-P':!A:QSP'E `('8(zv)4" W+C"X
M+B!+"8 =H1O0>A\!DD0>,'!H'(zv)!Z81R"(zv)P0(zv)`0!S=')U:QN0*P7 $N!J'J!E
M$, (zv);_YB'8 AL!S1'I(<,2 (zv)"K#[&[$3$'4<(zv)1WT'! BE!S(zv)B1U":6(<0%9-
M5!^ VPJB"H!6'R0<(F0'0"<AER+ "V #8'8;P" H* "!!<!O.E1->4\BHWXI
M(Z '(01(zv))9 `(zv) &0;OYC!S BAASP'A "("%R&L#Q!;%V>70<(zv) 40`R =$/\#
MH"7A*# >H0# `R BE!\`^FD`('4'0!Q(zv)+1 08 1P_'DI'X (zv)8"M'(- 04"R3
M_20D;!^$'#$?%2#!)Y<#(/9S!X $H&D>L!+(zv)+58H0_IP*)!>*+(zv)C! ;A'< A
M(zv)/YE);$B`13P'Q KU05 *=/_*C JT"IX- `;D2#%!4 K&?T?(zv)% )<204"? '
M<"G'$Q#S(V(OPFUU$% #(#BD(53_.70FD $`((,<,R= )XHI;_\BE2[B)[(W
M,3$A*&H:P!UR?RQB)Y0W,0A(zv),H8UTB<Q;O$<$'1Y<"IG'IU!930VFQK 'X!.
M'$ #8'ID") _+4$?P$85(% <436497C_"U -X#; +D$KTD$!-M4J(?\W:#0`
M!& %H"K0'& 'X![2_Q\S'.0W$SA_(<(<0!J(zv)`Z#V=2 (zv))^%N'O$KY$K/*M%^
M:BR3,2%*D1X`,= )<'/5-V(zv)H*) ]1NA#"7 CX?\NT0(zv)`3_ >TCRH2,,D)1U!
M/RQF'0)1T5"_(P$^,F\N_2%3;QP0)"4$(".S'(zv)!2`_]1X!PP!&!*`"3&)A8'
MP"W0[F4><$W1'81U"U N013PMP>0+D$>TG,>81+(zv)< 0`_P= '.0>DAQ(zv)(B$U
M<1W $!$V<%U1(B N)C0F-$QUYP;(zv)8: 9Y#(T$3)AR0PCLQIU$(!;5C+(zv)(<%=
M`S#Z8(zv)% :1" `S 9YP$P!=#_4 `<X"(A':(`P!YP!1!'4>EH0"!*'$!J$% >
M<1X`[F8>H 5 $,!D2A(%(zv)42!-R#0'" 2X&(zv)JTAQ(zv);7EN<QE 'G$=P'H=$&A"
M0?](zv)`F<A!: CH 0`!Y C`1W ]VBP0W$H`'HN00HQ+K!AI?Y+*R0AM#+(zv)+K Q
MLE `*M#W+*(<84I3:2,"'" 3$#V!WQQ 3Z$_(5YB)[%D*M(>4/EO&"AK`V$=
M80N (E$I0%,2X"GQ=G4=(zv)79*(FC]01!Z"?!>41+Q4I$T``N _QJ(zv)(>(ETFR1
M!W (zv)("_1:3+_&^-0/1,00#<B("W!'G!>=)]G-Q 0!' >`!\00E!AJ_Y*`0`M
M$!X`8,)G,2%A&4#_.](ZD3Q*(;-)F7J!6[$E0=\UL&UA?C1KDAQ ;2Y!;E"C
M<>(B('IY:Q^ 5 F [QP0?B5OT2 (zv);S0`._ ;T/]ZTDP(zv)"8 (<!S1(-0A21P0
M^QIQ+%!O1 `D4GEG:)&#R?\AD'ZR+69V58676[$A26&K_E1?`7&Q(W$$<#0`
M=9 !`+\_`1O !* =D0=P?(zv)=L=A"[=8(A(zv)&E]82>9+=!C(4G_3%((zv)(!V `0`#
MH($SABI:LO]!$"YQAK YL8<P;E =T6<A;PJP8%)ZL6<T8AP1+E%O]F(zv)DL4XD
M81N(8: 9H % QV+7&G<4<7,Q-B8T%C$"`)H````#`! 0``````,`$1 !````
M`P" $/____] ``<PT%R[I.QFO(zv)% ``(zv)PT%R[I.QFO(zv)$+``" "" &``````#
M````````1(zv)`````#A0````````,``H (( 8``````, ```````!&`````!"%
M`````````P`%(zv) (zv)(zv)!(zv)``````P ```````$8`````4H4``/ .```>`"6 "" &
M``````# ````````1(zv)````!4A0```0````0````X+C ``P`F(zv) (zv)(zv)!(zv)``````
MP ```````$8``````84````````+`"^ "" &``````# ````````1(zv)`````.
MA0````````,`,( (( 8``````, ```````!&`````!&%`````````P`R(zv) (zv)(zv)
M!(zv)``````P ```````$8`````&(4````````>`$& "" &``````# ````````
M1(zv)`````VA0```0````$`````````'(zv)!"(zv) (zv)(zv)!(zv)``````P ```````$8`````
M-X4```$````!`````````!X`0X (( 8``````, ```````!&`````#B%```!
I`````0`````````>`#T``0````4```!213H(zv)``````,`#33]-P``ATJ%
`
end


SPEEDTIPS - NetWare (WinNT,98), BDE ...dokonca Lin

[*] Peter Rus <peterrus(zv)intesys(tec)cz> - 04.3.1999 22:25:12

Ahoj Delphici,

dnes jsem se setkal se zajimavym nazorem na urychleni windows nt. Byla
nainstalovana dos apl (nejake kasy, udajne 13), pristupovali na nt srv.

Pomale to bylo prevelice a tak ti, kdoz to zrizovali, zacali
experimentovat. A zjistili, ze je celkem zahodno zrusit setric
obrazovky. Ten udajne moc nereaguje na sitove pristupy a vetsinu vykonu
vaze na sebe. Bohuzel nemam zadnou apl, kterou bych to vyzkousel, zkusil
by to nekdo za me? (asi nejaka vetsi soub. databaze)

Diky, s pozdravem

Peter Rus ml.
Intesys Group a. s.

FindClose, DeleteFile

[*] Jezek Petr, Ing. (DELVINA) <PETR(zv)sevis.sk> - 5.3.1999 10:55:52

V Delphi 1 jsou definovany tyto funkce.
Pozil jsme je a vse je OK. Ale po skompilovani
v D4 mi hlasi chybu. Kdyz jsem to prosel, tak
jsem zjistil, ze chyba je v tom, ze tyto funkce
jsou i v API, kde maji jine typy parametru.
Jak mam prekladaci rict, aby pouzil ty Delphacke?

+-------------------------------+
| Ing. Petr Jezek |
| Delvina, s.r.o |
| 010 01 Zilina |
+ - - - - - - - - - - - - - - - +
| tel: +421 (89) 624 344 |
| fax: +421 (89) 621 018 |
| email: petr(zv)sevis.sk |
| web: www.delvina.sk |
+-------------------------------+

Rotace II: Ovlada� vrac� �der

[*] Viktor.Lostak(zv)chmi(tec)cz (Viktor Lostak) - 5.3.1999 11:04:55

V�era jsem se tu ptal na probl�m s rotuj�c�mi fonty. Mezit�m jsem zjistil
dal�� v�ci:

Probl�m se objevuje jen p�i tisku na HP LJ 4. Kdy� nem�m za�krtnuto na
ovlada�i "Tiskni texty jako grafiku", tisk je stra�n�. rapat� p�smena,
fonty nerotuj�, hnus. Kdy� to za�krtnu, je v�e OK. Ale i kdy� to za�krtnut�
nen�, podobn� tisky t�eba z Wordu nebo Excelu jsou OK. M�m podez�en�, �e
tyhle programy n�jak to "Tiskni texty jako grafiku" nastavuj� samy nebo co.
Nev�te o tom n�kdo n�co?

Viktor

begin 600 WINMAIL.DAT
M>)\^((zv)(*`0:0" `$```````!``$``0>0!(zv)`(````X(zv)0```````#F``$((zv) <`
M& ```$E032Y-:6-R;W-O9G0(zv)36%I;"Y.;W1E`#$(`0V ! `"`````(zv)`"``$$
MD 8`(zv) $```$````0`````P``, (````+``\.``````(!_P\!````/0``````
M``"!*Q^DOJ,0&9UN`-T!#U0"`````&1E;'!H:2UL0&9W9"YC>(zv)!33510`&1E
M;'!H:2UL0&9W9"YC>(zv)`````>``(P`0````4```!33510`````!X``S !````
M$ ```&1E;'!H:2UL0&9W9"YC>(zv)`#`!4,`0````,`_(zv)\&````'(zv)`!, $````2
M````)V1E;'!H:2UL0&9W9"YC>B<````"`0LP`0```!4```!33510.D1%3%!(
M22U,0$971"Y#6(zv)`````#```Y``````L`0#H!````'(zv)#V7P$````0````9&5L
M<&AI+6Q 9G=D+F-Z``(!]U\!````/0````````"!*Q^DOJ,0&9UN`-T!#U0"
M`````&1E;'!H:2UL0&9W9"YC>(zv)!33510`&1E;'!H:2UL0&9W9"YC>(zv)`````#
M`/U?`0````,`_U\``````(zv)'V#P$````$`````````I%'`02 `0`>````4F]T
M86-E($E).B!/=FQA9&'H('9R86/M(/ID97(`MPL!!8 #``X```#/!P,`!0`+
M``0`-P`%`"D!`2" `P`.````SP<#``4`"P`!`"(`!0`1`0$)(zv) $`(0```#!%
M-41%1#8W1$%$,D0R,3$Y,T$X,# R,$%&,T)$.3%#`$L'`0.0!(zv)!<!0``(0``
M``L``(zv)`!````"P`C```````#`"8```````L`*0```````P`N```````#`#8`
M`````$ `.0#0"[^>[V:^`1X`< `!````'(zv)```%)O=&%C92!)23H(zv)3W9L861A
MZ"!V<F%C[2#Z9&5R`````(zv)%Q``$````6`````;YF[YZX9^U=$M+:$=*3J `(zv)
MKSO9' ``'(zv)`># $````%````4TU44 `````>`!\,`0```!8```!V:6MT;W(N
M;&]S=&%K0&-H;6DN8WH````#``80>7FT9(zv),`!Q"*`0``'(zv)`($ $```!E````
M5NA%4D%*4T5-4T5455!404Q.05!23T),Z4U34D]454KM0^U-249/3E19345:
M253M34I314U:2DE35$E,1$%,N>U6[$-).E!23T),Z4U314]"2D5654I%2D5.
M4/A)5$E32U5.00`````"`0D0`0```#L"```W`(zv)``% ,``$Q:1G7$_.G\TP`*
M`0HS-(zv)'H( *D`^,)`(zv)!C: K <V5T,E0S. ``*(zv)+A80> ($<'$P* !Q,(zv)0T4"
M(zv)'T3"H (R" ["6\R-36S`H *(zv)75C`% +`V,`08$+8&YG,3 R.0NF0"!67"=E
M. 20820(zv):A!0;2 04"!T_'4(zv)!3 1\1$`%_ #8 E!M1;(zv).1>!( -(zv)%]!J%M%&
M9 #(zv)&;%M:2 "$GG"+(zv)7097II=!GS%T34>FH$`'0#$60'0!;0)#EA&:((zv)=A;1
M8V/<:3H*H(zv)J$"H!0&)D1,/$8H&IE=AF $3 ?4 .(zv),G 6T&8X&D <$'-K`Q?(zv)
M&%%(4"!,2B!B-!JP2V1Y'($1,&Z[%W 6T3$;L1RQ'*!K`""0;G5T;QA";W8+
M8/<<4!;2&D B!V (zv)D ,`%\!\97(zv):D!= (O C8 G 8>1F:2"(zv)(BP(zv)8Q^Q%Y#>
M=!<(zv)'((+D" (zv)9!JP%R#;"K ;$C$?\(zv)F <P> $0!?)B :8R(!&5<F(&(zv)C,'/_
M(7(zv)C42*I)B ?D1T1'* 1,&1/2QJP06P1,!I :[\JOR,3&-(B`2=!*(zv))P!'!_
M&* O0B\`('(E,!L1(#!EHF(7,'H(zv)5P6P9""QPS$0(V!%>&-E"D 70?L(8"RS
M32)$+[$:X##3+T5S(<(7L7EH+1$8(zv)26A;?\I41TB)5$K$B1_)8(zv)801P`]F$?
M<1S#<S6S,>(%H!JP^P? '1)D-S ?("L1%X U\Z<M8"-A'2-O/QV:5B7(zv)O2-0
M<A5A`4 =HQ)A`#XP``,`$! ``````P`1$ `````#`( 0_____T `!S"(zv)0<,F
M[V:^`4 `"#"(zv)0<,F[V:^`0L``( (( 8``````, ```````!&``````.%````
M`````P`"(zv) (zv)(zv)!(zv)``````P ```````$8`````$(4````````#``6 "" &````
M``# ````````1(zv)````!2A0``\ X``!X`)8 (( 8``````, ```````!&````
M`%2%```!````! ```#(zv)N, `#`": "" &``````# ````````1(zv)`````!A0``
M``````L`+X (( 8``````, ```````!&``````Z%`````````P`P(zv) (zv)(zv)!(zv)``
M````P ```````$8`````$84````````#`#* "" &``````# ````````1(zv)``
M```8A0```````!X`08 (( 8``````, ```````!&`````#:%```!`````0``
M```````>`$* "" &``````# ````````1(zv)`````WA0```0````$`````````
M'(zv)!#(zv) (zv)(zv)!(zv)``````P ```````$8`````.(4```$````!`````````!X`/0`!
5`````0`````````#``TT_3<``($K
`
end


Vypocet

[*] Martin Lasevic <vyvoj(zv)atlascon(tec)cz> - 5.3.1999 11:12:18

Jo to je taky pravda, ale ne vzdy se to da pouzit. Co kdyz zrovna potrebuji pouze celou cast a ne zaokrouhlovat?
Martin

-----Puvodni zprava-----
Od: Zdenik Moravec [SMTP:zmo(zv)telecom(tec)cz]
Odeslano: 5.boezna.1999 10:06
Komu: delphi-l(zv)fwd(tec)cz
Poedmit: Re: Vypocet

Ja mam jine reseni - nepouzivat Trunc, ale Round - to skutecne zaokrouhli,
ne orizne.

Zdenik Moravec zmo(zv)telecom(tec)cz


>Jo, u nas se to deje taky a zapotili jsme se pri reseni az to pekne nebylo.
>Jde pravdepodobne o chybu procesoru. Reseni je jedine, vymyslet si vlastni
>procedury a funkce na tyto operace.
>
>Trunc(960/100*15) da na pentiu vysledek 144, na 486 da vysledek 143
>
>Trunc(960*0.15) da na obou pocitacich 144
>
>144 je spravne a deje se to jenom u cisla 960 (jine, kde se to projevuje
>jsem nenasel).
>

Vypocet

[*] Polak Jiri <Jiri.Polak(zv)tconsult(tec)cz> - 5.3.1999 11:15:30



> -----Original Message-----
> From: Zden�k Moravec [mailto:zmo(zv)telecom(tec)cz]
> Sent: Friday, March 05, 1999 10:06 AM
> To: delphi-l(zv)fwd(tec)cz
> Subject: Re: Vypocet
>
>
> Ja mam jine reseni - nepouzivat Trunc, ale Round - to
> skutecne zaokrouhli,
> ne orizne.

Nevis, o cem mluvis. Kdo rikal ze chce zaokrouhlovat?
Predpokladam, ze ten, kdo pouzije Trunc chce orezavat.

Ja mam jine reseni:
Zkus nejdrive nasobit: Trunc((960*15)/100).

Myslim, ze rozuzleni je pomerne jednoduche, a nehledejte
chybu ve spatne funkci procesoru :-)))

> >Trunc(960/100*15) da na pentiu vysledek 144, na 486 da vysledek 143
> >
> >Trunc(960*0.15) da na obou pocitacich 144

960 * 0.15 = 144 presne
Co se stane, kdyz vydelime 960 cislem 100?
V dekadicke soustave to je 9.6
Ve dvojkove soustave to bude 1001.nejakaperiodanechcesemipocitat
Procesor samozrejme pracuje ve dvojkove soustave a tak tu
periodu zaokrouhli. Tim se - v nasem pripade 9.6 o neco zmensi
a po vynasobeni 15 ziskame vysledek o neco malo mensi nez 144.
A Trunc z toho cisla je samozrejme 143.

Rozdilne vysledky jsou zpusobene asi jinou implementaci realnych cisel,
ktera jsou ulozena s jinou presnosti (snad - neznam architekturu obou
procesoru),
na jednom se cislo zaokrouhli nahoru, na druhem dolu.

Jura
----------
Jiri Polak
e-mail:jura.polak(zv)email(tec)cz
jiri.polak(zv)tconsult(tec)cz
web :http://freeweb.coco(tec)cz/jpolak
----------
The only good bug, is a dead bug!

Odchytavani zprav

[*] Tomas Balusek <tpplus(zv)zasova(tec)cz> - 5.3.1999 11:22:26

Nevim jestli jsem to spravne pochopil, nicmene posilani a odchytavani zprav
funguje "uplne normalne " asi takhle:
posles zpravu pomoci
SendMessage(Handle, wm_Akce, 0, 0)
kde wm_akce je globalne zadefinovana const wm_Akce=wm_User+1000 (napriklad)
Handle je handle odesilatele
Zprava by mela byt platna v celem systemu, tzn. ze ji muzes odchytit kde
xcesh

Pak tam, kde chesh zpravu odchytit, nadeklarujes "odchytavaci" proceduru
(napr. v private declarations)

procedure WMAkce(var Msg:TMessage);
message wm_Akce;
No a osetreni je v tehle procedure - napr. pomoci Msg.WParam muzes
kontrolovat, jestli ti ji posila ten kdo chcesh.

BTW, existuje jeste PostMessage. SendMessage se vraci az po vykonani,
PostMessage posle zpravu a hned se vrati ...

Bye T.B
>Chtel bych pochopit jak muzu ve sve aplikaci v delphi odchytavat zpravy
>jinych aplikaci.
>Kdzy si preci vytvorim ve sve aplikaci abz odchytavala zpravy napr.:
>Application.onMessage := Zpravy
>kde Zpravy je definovana jako procedure Zpravy(var Message: TagMsg,
Handled:
>Boolean);
>Tak stejne moje aplikace odchytava jenom zpravy, pro tuto aplikaci.
>Muze me to prosim Vas nekdo vysvetlit. Jak to teda ve sve aplikaci
>nadefinovat, aby mi to do me aplikace posilalo Msg.message z jine aplikace?

elementarny problem s C/S

[*] Zbysek Hlinka <zhlinka(zv)login(tec)cz> - 5.3.1999 11:24:25

Viliam Mlich wrote:

> > zapis, takze jako vyhodnejsi vidim tento postup: editovani hodit do
> > zvlastniho okna, mimo databazove komponenty. Tam v klidu editovat, a
> > teprve az v okamziku ukladani se starat, zda nebyl zaznam zmenen. Je to
> > vsak programatorsky dost pracne.
>
> Keby db-komponenta mala vlastnost CrcOfCurrentRecord, tak je to
> zalezitost 2 riadkov: jedneho odlozenia pred editom a jedneho IFu pred
> POSTom. Nikde nie je povedane, ze CRC musi mat prave 32 bitov, kludne moze
> byt dlhy ako cely zaznam.

Uz nekolik dni premyslim o tom, jak by se to dalo elegantne vyresit
primo v komponente. Verim, ze me jeste neco napadne. Nebo
nekoho jineho... :-) Vtip muze byt v tom, ze zaznam neni jednolity
proud dat, ale v TDataSet je to pole PCharu, v ADO je to primo pole
Fieldu. A to jsme u jednoho zaznamu. Kdyz se zpracovava vice
zaznamu v davce, je to horsi.

> Zaujimava je aj varianta, ked aplikacia pred editaciou rekordu poznaci do
> neho id-klienta. Potom ostatni mozu byt vystrihani, ze pripadna editacia
> by nemusela dopadnut dobre (ale bola by povolena) a pri restarte klienta
> po pripadnej havarii by sa dali zabudnute znacky lahko hromadne odstranit.
> Ale to je vlastne princip 'lock' chapany menej zavazne.

To by mohlo byt sice reseni, ale ma to take sve zaludnosti.


S pozdravem

Zbysek Hlinka
E-mail: zhlinka(zv)login(tec)cz, localizator(zv)localizator.com
Tel.: 02/795 29 56; GSM: 0603 551 282
Krystofova 1016, 149 00 Praha 4
CZ


Dataset - Pro a proti (Was:Re: MS SQL 7 + ulozene

[*] Zbysek Hlinka <zhlinka(zv)login(tec)cz> - 5.3.1999 11:24:24

voltrr1.epr(zv)mail.cez(tec)cz wrote:

> p.s : To Zbysek : Teda ne ze by WebProvider nejak vzkvetal (nejak ho asi
> nikdo nechce nebo co / jeste ze jsem se stihl pripojit k uspesnejsimu
> kolegovi z Nexusu abych taky sliznul nejake ty uspechy) ale bude ten novy
> projekt aspo trochu dejchat ??
>
Vzhledem k tomu, ze databazova problematika se dotyka docela
sirokeho poctu lidi, jsem pevne presvedcen o tom, ze bude.


S pozdravem

Zbysek Hlinka
E-mail: zhlinka(zv)login(tec)cz, localizator(zv)localizator.com
Tel.: 02/795 29 56; GSM: 0603 551 282
Krystofova 1016, 149 00 Praha 4
CZ


Borland + JEDI

[*] kelleon(zv)nnsk.sk - 5.3.1999 11:37:42

http://www.borland.com/techvoyage/jediinitiative.html


Vypocet

[*] Martin Lasevic <vyvoj(zv)atlascon(tec)cz> - 5.3.1999 11:54:26

Zkus nejdrive nasobit: Trunc((960*15)/100).
Je to blbe, kdyz vlastni procesor popira bazalni pravidla matematickych operaci. Predstava,
ze bych mel u kazdeho vypoctu premyslet, jak to zaonacit, aby to pocitalo dobre, mne , uprimne receno privadi do vyvrtek.

(960*15)/100 by melo byt stejne jako 960*15/100 nebo 960*(15/100) nebo 960/100*15
Martin


-----Puvodni zprava-----
Od: Polak Jiri [SMTP:Jiri.Polak(zv)tconsult(tec)cz]
Odeslano: 5.boezna.1999 11:16
Komu: 'delphi-l(zv)fwd(tec)cz'
Poedmit: RE: Vypocet

Zkus nejdrive nasobit: Trunc((960*15)/100).
Je to blbe, kdyz vlastni procesor popira bazalni pravidla matematickych operaci. Predstava,
ze bych mel u kazdeho vypoctu premyslet, jak to zaonacit, aby to pocitalo dobre, mne , uprimne receno privadi do vyvrtek.

(960*15)/100 by melo byt stejne jako 960*15/100 nebo 960*(15/100) nebo 960/100*15
Martin

> -----Original Message-----
> From: Zdenik Moravec [mailto:zmo(zv)telecom(tec)cz]
> Sent: Friday, March 05, 1999 10:06 AM
> To: delphi-l(zv)fwd(tec)cz
> Subject: Re: Vypocet
>
>
> Ja mam jine reseni - nepouzivat Trunc, ale Round - to
> skutecne zaokrouhli,
> ne orizne.

Nevis, o cem mluvis. Kdo rikal ze chce zaokrouhlovat?
Predpokladam, ze ten, kdo pouzije Trunc chce orezavat.

Ja mam jine reseni:
Zkus nejdrive nasobit: Trunc((960*15)/100).

Myslim, ze rozuzleni je pomerne jednoduche, a nehledejte
chybu ve spatne funkci procesoru :-)))

> >Trunc(960/100*15) da na pentiu vysledek 144, na 486 da vysledek 143
> >
> >Trunc(960*0.15) da na obou pocitacich 144

960 * 0.15 = 144 presne
Co se stane, kdyz vydelime 960 cislem 100?
V dekadicke soustave to je 9.6
Ve dvojkove soustave to bude 1001.nejakaperiodanechcesemipocitat
Procesor samozrejme pracuje ve dvojkove soustave a tak tu
periodu zaokrouhli. Tim se - v nasem pripade 9.6 o neco zmensi
a po vynasobeni 15 ziskame vysledek o neco malo mensi nez 144.
A Trunc z toho cisla je samozrejme 143.

Rozdilne vysledky jsou zpusobene asi jinou implementaci realnych cisel,
ktera jsou ulozena s jinou presnosti (snad - neznam architekturu obou
procesoru),
na jednom se cislo zaokrouhli nahoru, na druhem dolu.

Jura
----------
Jiri Polak
e-mail:jura.polak(zv)email(tec)cz
jiri.polak(zv)tconsult(tec)cz
web :http://freeweb.coco(tec)cz/jpolak
----------
The only good bug, is a dead bug!

FindClose, DeleteFile

[*] Bene� Jaroslav <JBenes(zv)cpoj(tec)cz> - 5.3.1999 12:10:31

Zkus dat pred ne specifikaci modulu, myslim Sysutils.Deletefile Jaro B.

> -----P�vodn� zpr�va-----
> Od: Jezek Petr, Ing. (DELVINA) [SMTP:PETR(zv)sevis.sk]
> Odesl�no: 5. b�ezna 1999 10:56
> Komu: 'delphi-l(zv)fwd(tec)cz'
> P�edm�t: FindClose, DeleteFile
>
> V Delphi 1 jsou definovany tyto funkce.
> Pozil jsme je a vse je OK. Ale po skompilovani
> v D4 mi hlasi chybu. Kdyz jsem to prosel, tak
> jsem zjistil, ze chyba je v tom, ze tyto funkce
> jsou i v API, kde maji jine typy parametru.
> Jak mam prekladaci rict, aby pouzil ty Delphacke?
>
> +-------------------------------+
> | Ing. Petr Jezek |
> | Delvina, s.r.o |
> | 010 01 Zilina |
> + - - - - - - - - - - - - - - - +
> | tel: +421 (89) 624 344 |
> | fax: +421 (89) 621 018 |
> | email: petr(zv)sevis.sk |
> | web: www.delvina.sk |
> +-------------------------------+

Re[2]: Odchytavani zprav

[*] LuborK(zv)tnet(tec)cz (Kolar Lubor) - 05.3.1999 12:29:21

Dne Fri, 5 Mar 1999 11:22:26 +0100 Tomas Balusek napsal:

> Nevim jestli jsem to spravne pochopil, nicmene posilani a odchytavani zprav
> funguje "uplne normalne " asi takhle:
Obavam se, ze jde o hooking - cili odchytavani vsech zprav jednou
aplikaci. Uz se to tu x-krat probiralo, je to myslim funce SetMsgHooxEx

Lubor bIRDIE Kolar
====================
GSM Phone: +420-603-410019
ICQ: 18587772


FindClose, DeleteFile

[*] Martin Bodlak <vyvoj(zv)atlascon(tec)cz> - 05.3.1999 12:49:51

Jezek Petr, Ing. (DELVINA) wrote:
>
> V Delphi 1 jsou definovany tyto funkce.
> Pozil jsme je a vse je OK. Ale po skompilovani
> v D4 mi hlasi chybu. Kdyz jsem to prosel, tak
> jsem zjistil, ze chyba je v tom, ze tyto funkce
> jsou i v API, kde maji jine typy parametru.
> Jak mam prekladaci rict, aby pouzil ty Delphacke?
>
jmeno funkce se musi napsat takto:
<jmeno unity ve ktere je funkce definovana>.<jmeno funkce>

--
Hezky den!
______________________________________________
Martin Bodlak, ATLAS consulting, spol. s r. o.
Corporate: http://www.atlascon(tec)cz, vyvoj(zv)atlascon(tec)cz
Private : http://members.xoom.com/bodlak, martin.bodlak(zv)iname.com
Tel. 069-6616432 (office), 0603-490135 (private)

FindClose, DeleteFile

[*] Martin Bodlak <vyvoj(zv)atlascon(tec)cz> - 05.3.1999 12:49:21

Jezek Petr, Ing. (DELVINA) wrote:
>
> V Delphi 1 jsou definovany tyto funkce.
> Pozil jsme je a vse je OK. Ale po skompilovani
> v D4 mi hlasi chybu. Kdyz jsem to prosel, tak
> jsem zjistil, ze chyba je v tom, ze tyto funkce
> jsou i v API, kde maji jine typy parametru.
> Jak mam prekladaci rict, aby pouzil ty Delphacke?
>
jmeno funkce se musi napsat takto:
<jmeno unity ve ktere je funkce definovana>.<jmeno funkce>

--
Hezky den!
______________________________________________
Martin Bodlak, ATLAS consulting, spol. s r. o.
Corporate: http://www.atlascon(tec)cz, vyvoj(zv)atlascon(tec)cz
Private : http://members.xoom.com/bodlak, martin.bodlak(zv)iname.com
Tel. 069-6616432 (office), 0603-490135 (private)QUIT


funkce POS nad textem v Memo

[*] jdanek(zv)fnbrno(tec)cz - 5.3.1999 14:12:49


Ahojte,

Je mozne najit v textu polozky DBMEMO podretezec nejakou funkci
jako je pro bezne stringy funkce POS nebo musim POS aplikovat
na jednotlive radky DBMEMO?

Jozka
jdanek(zv)fnbrno(tec)cz

Rotace II: Ovlada� vrac� �der

[*] Ing. Jaroslav K�e�ek - 5.3.1999 13:14:26

Myslim, ze se tyhle programy s tim neparaj a sypou to do tiskarny vzdy jako
grafiku. Mozna jedina vyjimka je, kdyz do Wordu se natahne soubor typu TXT
a ne DOC. To nevim.

Jaroslav Krecek

-----P�vodn� zpr�va-----
Od: Viktor Lostak <Viktor.Lostak(zv)chmi(tec)cz>
Komu: 'delphi-l(zv)fwd(tec)cz' <delphi-l(zv)fwd(tec)cz>
Datum: 5. b�ezna 1999 11:34
P�edm�t: Rotace II: Ovlada� vrac� �der


>V�era jsem se tu ptal na probl�m s rotuj�c�mi fonty. Mezit�m jsem zjistil
>dal�� v�ci:
>
>Probl�m se objevuje jen p�i tisku na HP LJ 4. Kdy� nem�m za�krtnuto na
>ovlada�i "Tiskni texty jako grafiku", tisk je stra�n�. rapat� p�smena,
>fonty nerotuj�, hnus. Kdy� to za�krtnu, je v�e OK. Ale i kdy� to za�krtnut�
>nen�, podobn� tisky t�eba z Wordu nebo Excelu jsou OK. M�m podez�en�, �e
>tyhle programy n�jak to "Tiskni texty jako grafiku" nastavuj� samy nebo co.
>Nev�te o tom n�kdo n�co?
>
>Viktor
>
>

Vypocet

[*] Ing. Jaroslav K�e�ek - 5.3.1999 13:20:51

To prece neni nijak zvlastni. Proste ve svete pocitacu je omezena presnost
vysledku a mezivysledku, zrovna tak jako je omezena velikost cisel. Viz.
odpoved p. Polaka.

A premyslet se nad tim taky moc nemusi. Staci si zazit pravidlo, ze je
potreba nejdriv cislo zvetsovat a pak teprve delit. Samozrejme za
predpokladu, ze ti behem vypoctu nepretece.

Jaroslav Krecek

-----P�vodn� zpr�va-----
Od: Martin Lasevic <vyvoj(zv)atlascon(tec)cz>
Komu: 'delphi-l(zv)fwd(tec)cz' <delphi-l(zv)fwd(tec)cz>
Datum: 5. b�ezna 1999 12:18
P�edm�t: RE: Vypocet


>Zkus nejdrive nasobit: Trunc((960*15)/100).
>Je to blbe, kdyz vlastni procesor popira bazalni pravidla matematickych
operaci. Predstava,
>ze bych mel u kazdeho vypoctu premyslet, jak to zaonacit, aby to pocitalo
dobre, mne , uprimne receno privadi do vyvrtek.
>
>(960*15)/100 by melo byt stejne jako 960*15/100 nebo 960*(15/100) nebo
960/100*15
> Martin
>
>

Destruktor?

[*] Lubo Fule <fule(zv)sct.sk> - 5.3.1999 13:50:31

Tak sorry, poviem to jednoducho, destructor treba volat explicitne. Objekt v
D moze mat viac destructorov. Diki za opravu co sa tyka VMT, teraz mi je to
jasne, zrejme som to nechapal celkom spravne. Kazdopadne, pokial sa dobre
pamatam, v BP nebolo treba volat constructor ani destructor pokial objekt
neobsahoval virt. metody. V D treba volat constructor a destructor vzdy,
pretoze premenna typu objekt resp. class je len ukazovatelom. Ako som uz
napisal, v D constructor vracia adresu vytvoreneho objektu, teda syntax
volania constructora je trochu ina ako v BP.

L.

> -----Original Message-----
> From: owner-delphi-l(zv)fwd(tec)cz [mailto:viktor.lostak(zv)chmi(tec)cz] On
> Behalf Of Viktor Lostak
> Sent: Friday, March 05, 1999 10:49 AM
> To: 'delphi-l(zv)fwd(tec)cz'
> Subject: RE: Destruktor?
>
> Automaticky sa nevolaju, ale nie je to ani celkom tak ako v P
> 7.0. Ked totiz v Delphi zavolas destruktor najakeho objektu, tak
> sa z pamate uvolni cely objekt, nie iba VMT.
> V P 7.0 sa dala deklarovat (var o:TMyObjekt) priamo instancia
> objektu a constructor vytvoril len VMT (ak mal objekt virtualne
> metody). Destructor zase VMT uvolnil. Ked sa v P 7.0 zadeklaroval
> smernik na objekt (var po:^TMyObjekt), tak bolo treba najprv
> vytvorit instaciu objektu a potom zavolat constructor. Pred
> uvolnenim instancie sa zase musel volat destructor. V delphi sa
> neda deklarovat priamo instancia objektu. Deklaracia var
> o:TMyObject je len deklaraciou smernika na dany typ objektu tak
> ako v P 7.0 var o:^TMyObject. Na rozdiel od P 7.0 v D netreba
> explicitne vytvarat instanciu objektu pomocou new ako P 7.0, ale
> staci zavolat constructor a ten uz rovno vytvori instanciu
> objektu aj VMT a vrati adresu objektu (o:=TMyObject.Create).
> Rovnako destructor v D uvolni nielen VMT ale aj instanciu
> objektu, teda o.destroy uvolni s pamati VMT aj samotny objekt.
> Neviem ci je to uplne presne ako som napisal, ale tak nejako to chapem ja.
>
> Lubo.
>
> [Viktor] Mno, jak to mam rict... Ja jsem ti fakt hodne vdecny za
> snahu a nemyslim to zle... Ale to, co pises, to jsou vazne bludy.
> Konstruktor nikdy zadnou VMT nevytvari, ta se dela uz pri
> prekladu a konstruktor (krome jineho) nastavuje ve vyhrazene
> pameti pointer na VMT, cimz se fakticky vytvori instance objektu.
> ja vim presne, jak to chodi v BP.
>
> Jde mi o to, jestli musim volat destruktor explicitne ja sam,
> nebo jestli to za mne udela jazyk. Tedy jestli kdyz opoustim
> proceduru, zavola destruktory pro lokalni instance a jestli kdyz
> rusim objekt v pameti, zavola sam destruktor.
>
> To se da zodpovedet patrne tim, jestli lze ve tride deklarovat
> vic destruktoru nez jeden nebo destruktory s parametry. Pokud
> ano, pak nevim, jak by se mohly volat automaticky.


begin 666 winmail.dat
M>)\^(A\,`0:0" `$```````!``$``0>0!(zv)`(````X(zv)0```````#F``$((zv) <`
M& ```$E032Y-:6-R;W-O9G0(zv)36%I;"Y.;W1E`#$(`0V ! `"`````(zv)`"``$&
M(zv) ,`#(zv)```,\'`P`%``T`,(zv)````4`((zv)$!`Y &`&0,```J````"P`"``$````+
M`",```````,`)(zv)``````"P`I```````+`"L```````,`+(zv)```````P`V````
M```>`' ``0````P```!$97-T<G5K=&]R/P`"`7$``0```"4````!OF8K;#>W
M!<U TAH1TI.D`""O.]D<``)JDR `+>./( `&-UP(zv)`````(zv)$=# $````1````
M4TU44#I&54Q%0%-#5"Y32P`````+``$.`````$ `!(zv)X`3 6N!F>^`0(!"(zv)X!
M````& ````````#YJ[VXH6#2$:#K`!!+(:8TPH ```L`'PX!`````P`&$,5/
MEJ<#``<0= (zv)``!X`"! !````90```%1!2U-/4E)9+%!/5DE%351/2D5$3D]$
M54-(3RQ$15-44E5#5$]25%)%0D%63TQ!5$584$Q)0TE43D5/0DI%2U161$U/
M6D5-051624%#1$535%)50U1/4D]61$E+25I!3U!2058``````(zv)$)$ $```#(
M!P``Q <``&\-``!,6D9U9S0DF ,`"(zv)!R8W!G,3(U-C(`] 'W( *G`(zv)!C: $*
MP'-E=# (zv)5&$^: -Q`H,`4 /4#_<R,ZHX```J`N%A!X (zv)!Q/C`H '$R!#10*#
M#E /M+!P<G$R!=P"(zv)'T*(zv)-D(R" ["6\.,#4"(zv) J!;'5C`% +`V,`00M(zv);I$.
M$# S,PQ(zv);&X"($9E"Z80D6L(zv)<P6P<D!Y+"!P;W8(D&U(zv)('1O(&H)(zv)!HP9(\8
ML!# &Y !`'-T<ABP!QP(zv)!< =0&5B82!V90;P805 97(zv)+4 W(zv):4)T&E N($]B
M'%!KH05 =B!$( 1(zv)>A,0=P# 'Y$',&,="1O 'R!$H&EK:2!Z'(zv)!O%/!P879U
M( 6(zv)&S >`'1$>6L>`%9-5!N0='D$D&%Z'^ AX!Q0'!-AUG,:4!N0>(zv)EP:A,!
M&T ?' ,:4! 1"K #(&-E;%IK)8%S(D(?`DLCT&3](C!A'' DT1NP(= 3T2+1
M_2>(zv)8(zv)EP&Z 2\!Y0$O ;D/D?L$)0)=$&X1PP'<H%H/\`(zv)!U&`' AX!T9*#4H
MX!]C[QI0*. BT!# =A/1&] `(*<?( > '"!D>1\(zv)5A_!]RJ/*Y8="G8GD!N"
M"7 <(+<(zv)$3)A!X!N$N B\7 B(zv).\M90EP)N ?(&,+8 01)#'2; GP('4C('HN
M02.(zv)M0D`;1\(zv)02:(zv))6-U(^!]$N!P! `'0"FB'] K2G8_(E >T!X`)] T,2*
M=GF^=!X(zv)"7 :4!# +55U(X*29!X`<WD",&%X'A/_`P`>`"M)'(zv)`D,(zv)-(zv)$! B
M(zv).\+(zv)#C1-E$IPBX*H(zv)J$"H#F3#X(zv)&80R-!$R/DD9,0,"T11Q<S$V(#X(zv):BU!
M(zv)D\%$&<]80,(zv)37,'D"+09V5!(zv)SXX"S!FX&DM,30T`4 >L$03JPS01!-B05%&
M`V$Z#(.28A" ;W<:4'(M`0`(;'!H0_!L0&9WZ&0N8R/(zv)6QDS&A (zv),;L#$!P(zv)
M.AO0'X %L"X)`/L=,!L00! 0) !'<4"3&A3L(%T#,$5 3P.A/D-!8-9".> '
M0&8?,&9&$B- ^4C#($Q),SXU14(&8 (PVT7'18!I.M ;(zv)4T*P! 0R" P-1N0
M,3E0(% `2# Z-%! 04U->52K2)!%UB=&O2=->G4?4>,=<$7'4D4Z'\ =(TC2
MYC]#*AZP,S8!0!E+&H9S06!+1D%U'" (zv)00W(zv):^YY(L(:4!XB:CJ!!T 3$/\#
M`!,0)#0L`B9U25$]E2GP\4M&-RXP)U$)(zv)!P166#_(^ ?L4;#(?$>((zv)0(zv)'11,
MP_L2X"20:SGL&Q%+1B+1(^#[*3,3$'4>(5N$6: M9!N0_5K2:1WQ(U$?($M&
M+W I\.]=82B3!T Q,FL+8"%A'E&.*"Y0!<!(D%1->1]$OBDR40<P!& ]44E!
M;CBR_TM&.B4Q(3?+.7,#$34B(U'?9N ;$0# +4<NDG4'0$J1^TM&+O0I(9$=
M*"(`$%!KP_UBM&Q=E"+17*)E(zv)B(`9D?_`R%AA(zv)> !* AP#;A+59F\_D;L#I>
M9VAA%"HY8!$4\/\?L$M&:P4%0&B#'M SIFH"WQNP62%>U2LK'R!0"7%+-W]B
MLPGP!W!H=R518(zv)%O<FW^=1!0+G$>,QT8+U)&M"+"_TM&&E ZT69):!\Z)6Z2
M9F+_.*-G`FDG9U8=<#3F9D0XH>\(8'*V=(zv))EX6Y9H#-Q:9=_83I<9F6"9P1T
M9AUP'R!._QX``V GD B0+4%=T(C%'\'_&E =Q$M&'H(zv)Y4X*Q=X5HT?]X&!NP
M!& %H"* &E 'X#VB_V5C6G1A=W?2>2\P]".(zv)-4&_(^ A81HP:O:-^6DO:FO#
M7QX!C<$AX#CU::8H2) ]_8F80PEP-<%N(zv)4M&" `G(/\]HC%:'\%BM5K1:Y9:
MDI8!TY1O.AUO+AT3;UF(zv)8K7_!" I,R'(zv)EC.6$"+0!& >\+]C5F2H!\ ;TY&!
M)#1U"U#_2I$R822Q/9,E<C;W6I)<(O\:4& Q*F$<,"8"&_$DD#XE_5AH3%00
MGM _'Z=7#")!4>Y;3*1*P(zv)% :4QQ5TH%T/\:,!N08#$<$(zv)# ' `%$(H!>:V
M($H\H1!0' $AX&;_&Q %0!# )^$>$ 6!AK$B`8]A=Q+(zv)/3%9TFUY<QZP[1P#
M>C4(zv)K8)!I5(<X2*A_S<1!Y C(zv)1PQ&T Y02/02I'W"C$O,4M&2RM47\0AP"\P
MOW%B&C B(zv)&O26?&-(zv)VEA$O\;,!,01K$>`#;!(zv)-%+-S)AGV9A'* Q(2:(zv)M/(zv)H
M:P-A_UKQ"X YX6?P$N!)02)P)#'Z=HU2:"/!.<&X:!+QEL&_&[ +(zv)".A<S(C
M4Q[0;2/(zv)_V^!KG)9<Y/M$Q"!YTM&))#_('$<`*/$K'<<P8J(zv)/=I8:/Y*`0`C
M\J82K'$=(1ZP?0+_>\%]>DS#C,G!X:#A&Y!_6.\&X,6VL5(>`&U*D;00M\+M
M))!Z(Q ?(%0)(zv)%F(zv)Q<7_M;$CX"(P"& =,'O!N'(zv)]$/\)(zv) AP.H%>Y%]96:#-
MH340_RA ;5' *3RBR_A+1AU0QE+_;):]-<XWH.%?6</O49"W<_]B`01P&[$)
M(zv)!!(zv)*2$=0$J1^\SAQ:=L(!&[\1U 3Q"WDO]F9W:7#>!?68^"(^ <434Q_\E3
MSLJ?XB)0+O$;<'IA*$!_M!"'V*Q2"K"EHL(1K'1BLUFA("%O:&-!'B1A61B_
M/B! HJAH0/0^-!8Q`./(zv)`P`0$ `````#`!$0`0```!X`0A !````&P```#PP
M,4)%-C9&-2Y#1C,R,T8W,$!,04-)3D$^```+``& "" &``````# ````````
M1(zv)`````#A0````````,`!( (( 8``````, ```````!&`````%*%``#P$P``
M'(zv)`%(zv) (zv)(zv)!(zv)``````P ```````$8`````5(4```$````$````."XU``L`"8 (
M( 8``````, ```````!&``````:%`````````P`*(zv) (zv)(zv)!(zv)``````P ``````
M`$8``````84````````+`!. "" &``````# ````````1(zv)`````.A0``````
M``,`%( (( 8``````, ```````!&`````!"%`````````P`5(zv) (zv)(zv)!(zv)``````
MP ```````$8`````$84````````#`!> "" &``````# ````````1(zv)`````8
MA0```````!X`)X (( 8``````, ```````!&`````#:%```!`````0``````
M```>`"B "" &``````# ````````1(zv)`````WA0```0````$`````````'(zv)`I
M(zv) (zv)(zv)!(zv)``````P ```````$8`````.(4```$````!``````````L`,8 (( 8`
M`````, ```````!&`````(*%```!````"P`S(zv) L(zv)!(zv)``````P ```````$8`
M`````((zv)````````+`#6 "R &``````# ````````1(zv)`````%B ````````(!
M^ \!````$ ```/FKO;BA8-(1H.L`$$LAIC0"`?H/`0```! ```#YJ[VXH6#2
M$:#K`!!+(:8T`(zv)'[#P$```!8`````````#BANQ %Y1 :H;L(`"LJ5L(``%!3
M5%!26"Y$3$P``````````$Y)5$'YO[(zv)!`*H`-]EN````1#I<4')I=F%T95Q/
M=71L;V]K7&]U=&QO;VLN<'-T``,`_(zv)\%`````P`--/TW```"`7\``0```#$`
M```P,# P,# P,$8Y04)"1$(X03$V,$0R,3%!,$5",# Q,#1",C%!-C,T,C0Y
+13(T,# `````ZG4`
`
end


Vypocet

[*] Martin Lasevic <vyvoj(zv)atlascon(tec)cz> - 5.3.1999 13:53:38

Presnost, to je o necem jinem. Ale pokud se toto deje na 90% pocitacu
spravne a na zbylych 10% spatne, tak to asi neni chyba presnosti vysledku
ci mezivysledku.

Kdyz se dela databazova aplikace, kdy na presnosti vysledku velmi zalezi,
tak to dokaze celkem neprijemne zamichat kartami.
Martin

-----Puvodni zprava-----
Od: Ing. Jaroslav Koeeek [SMTP:grafex(zv)iol(tec)cz]
Odeslano: 5.boezna.1999 13:21
Komu: delphi-l(zv)fwd(tec)cz
Poedmit: Re: Vypocet

To prece neni nijak zvlastni. Proste ve svete pocitacu je omezena presnost
vysledku a mezivysledku, zrovna tak jako je omezena velikost cisel. Viz.
odpoved p. Polaka.

A premyslet se nad tim taky moc nemusi. Staci si zazit pravidlo, ze je
potreba nejdriv cislo zvetsovat a pak teprve delit. Samozrejme za
predpokladu, ze ti behem vypoctu nepretece.

Jaroslav Krecek

-----Puvodni zprava-----
Od: Martin Lasevic <vyvoj(zv)atlascon(tec)cz>
Komu: 'delphi-l(zv)fwd(tec)cz' <delphi-l(zv)fwd(tec)cz>
Datum: 5. boezna 1999 12:18
Poedmit: RE: Vypocet


>Zkus nejdrive nasobit: Trunc((960*15)/100).
>Je to blbe, kdyz vlastni procesor popira bazalni pravidla matematickych
operaci. Predstava,
>ze bych mel u kazdeho vypoctu premyslet, jak to zaonacit, aby to pocitalo
dobre, mne , uprimne receno privadi do vyvrtek.
>
>(960*15)/100 by melo byt stejne jako 960*15/100 nebo 960*(15/100) nebo
960/100*15
> Martin
>
>

MDI Aplikace

[*] Greissler Ronald <greissler(zv)cbnet(tec)cz> - 5.3.1999 14:01:31

Kdysi jsem to zkousel a vzdal, protoze se to urputne branilo.

Rony
/*********************/
GREISSLER(zv)CBNET.CZ
Prerov
/*********************/

> -----P�vodn� zpr�va-----
> Od: Radek KALA [SMTP:DELPHI(zv)betacontrol(tec)cz]
> Odesl�no: 4. b�ezna 1999 14:10
> Komu: delphi-l(zv)fwd(tec)cz
> P�edm�t: MDI Aplikace
>
> Hi,
>
> Potreboval bych poradit, zda nahodou nekdo nevite jak na pracovni
> plochu hlavniho okna MDI aplikace nakreslit doprostred nejaky
> obrazek.
> Zkousel jsem nastavit Bruch, ale to nefunguje u MDI,
> potom jsem zkousel kreslit normalne pomoci canvas.moveto .... a
> to u MDI taky nefunguje
> No a nakonec jsem to vyresil tak, ze jsem tam placnul panel coz
> bylo zdanlive v poradku, ale ten panel byl jakoby "stayOnTop" a
> vsechny MDIChild okna byly pod nim.
>
> Prosim poradte, pokud to teda vlastne jde.
>

MDI Form

[*] Jan �ebel�k <honza(zv)haes(tec)cz> - 5.3.1999 14:09:02

MDI Aplikace (i v Delphi 1) zavira (stejne jako SDI Aplikace) dcerinne formulare korektne.
Musis mit nekde vlastni problem (OnClose, OnDestroy a pod.).
Nekde se asi odvolavas na objekt, ktery uz neexistuje (z tveho popisu problemu se to neda urcit).

Honza
=========================================
= HAES - RNDr. Jan Sebelik
= http://www.haes(tec)cz
= Skolici a konzultacni stredisko pro Delphi a Win32
= Vojtiskova 206
= 507 81 Lazne Belohrad
= tel. 0434 692 931
=========================================
----------
> Odes�latel: Jezek Petr, Ing. (DELVINA) <PETR(zv)sevis.sk>
> Komu: 'delphi-l(zv)fwd(tec)cz'
> P�edm�t: MDI Form
> Datum: 5. b�ezna 1999 9:13
>
> Delphi 1:
> Mam MDI aplikaci. Pokud mam otevrene nejaky
> child form a dam close hlavni aplikace, tak
> se zavolaji Close childu (to mam zjistene).
> Ale aplikace mi pak spadne.
> Pokud, ale ve FormClose hlavniho MDI
> poslu WM_Close vsem MDIChild oknum:
>
> for i := MDIChildCount-1 downto 0 do
> if MDIChildren[i] is TADEMDIForm then begin
> SendMessage(MDIChildren[i].handle, WM_Close,0,0);
> end;
>
> (Close se vykona po druhe), je vse OK.
> Nevite kde by mohl byt problem?
> Zajimave, ze v D4 to projde OK.
>
> +-------------------------------+
> | Ing. Petr Jezek |
> | Delvina, s.r.o |
> | 010 01 Zilina |
> + - - - - - - - - - - - - - - - +
> | tel: +421 (89) 624 344 |
> | fax: +421 (89) 621 018 |
> | email: petr(zv)sevis.sk |
> | web: www.delvina.sk |
> +-------------------------------+

Vypocet

[*] Zden�k Moravec <zmo(zv)telecom(tec)cz> - 5.3.1999 14:12:32

>> Ja mam jine reseni - nepouzivat Trunc, ale Round - to
>> skutecne zaokrouhli,
>> ne orizne.

>Nevis, o cem mluvis. Kdo rikal ze chce zaokrouhlovat?
>Predpokladam, ze ten, kdo pouzije Trunc chce orezavat.

>Ja mam jine reseni:
>Zkus nejdrive nasobit: Trunc((960*15)/100).[ZMO]
Ujistuji Te, ze vim, o cem mluvim. Pokud se nekdo divi tomu, ze pri
zaokrouhlovaci chybe a naslednem oriznuti cele desetinne casti vysledek
ujede o 1, pak nejlepsi reseni je zaokrouhlovat a ne orezavat. Ale myslim,
ze jsi na to sam upozornil v dalsi casti sveho dopisu, takze jsi
pravdepodobne zjistil sam, ze na zacatku nevis, o cem mluvis.


Zden�k Moravec zmo(zv)telecom(tec)cz

Odchytavani zprav

[*] Jan �ebel�k <honza(zv)haes(tec)cz> - 5.3.1999 14:15:38

Tvoje aplikace odchytava jenom ty zpravy, ktere jsou ji urcene.
Tedy ty, ktere jsou PostMessage nebo SendMessage poslany na jeji Handle.

Na odchytavani zprav pro jine aplikace existuje nejaky Hook, ale to uz je carovani ve WinAPI (viz http://www.haes(tec)cz), samo Delphi (resp. komponenty VCL) na to pripraveny nejsou.

Honza Sebelik
=========================================
= HAES - RNDr. Jan Sebelik
= http://www.haes(tec)cz
= Skolici a konzultacni stredisko pro Delphi a Win32
= Vojtiskova 206
= 507 81 Lazne Belohrad
= tel. 0434 692 931
=========================================
----------
> Odes�latel: Novak Josef <jnovak(zv)anect(tec)cz>
> Komu: 'delphi-l(zv)fwd(tec)cz'
> P�edm�t: Odchytavani zprav
> Datum: 5. b�ezna 1999 8:41
>
> Zdravim vsechny, chtel bych se zeptat, snazim se pochopit programovani v
> delphi.
> Chtel bych pochopit jak muzu ve sve aplikaci v delphi odchytavat zpravy
> jinych aplikaci.
> Kdzy si preci vytvorim ve sve aplikaci abz odchytavala zpravy napr.:
> Application.onMessage := Zpravy
> kde Zpravy je definovana jako procedure Zpravy(var Message: TagMsg, Handled:
> Boolean);
> Tak stejne moje aplikace odchytava jenom zpravy, pro tuto aplikaci.
> Muze me to prosim Vas nekdo vysvetlit. Jak to teda ve sve aplikaci
> nadefinovat, aby mi to do me aplikace posilalo Msg.message z jine aplikace?
> A jeste bych se chtel zeptat jestli musim pro odchytzvani zprav pouzivat
> Timer, aby to napr sledovalo kazdou sekundu jestli josu nove zpravy.
> Doufam ze jsem se dobre vyjadril.
> Dekuji Vsem, kteri mi budou napomocni.
> S pozdravem Novak J.

Vypocet

[*] Zden�k Moravec <zmo(zv)telecom(tec)cz> - 5.3.1999 14:20:11


>Jo to je taky pravda, ale ne vzdy se to da pouzit. Co kdyz zrovna potrebuji
pouze celou cast a ne zaokrouhlovat?
> Martin


Ale vzdyt ja jenom tvrdim, ze pomoci Round lze omezit moznost vzniku
zaokrouhlovaci chyby. Na toto tema by se toho dalo jeste hodne napsat.
Problem je skutecne v tom, ze pocitac pouziva dvojkovou soustavu a v ni se
holt nektera cisla zaokrouhluji jinak nez cekame (zejmena u realnych cisel s
nekonecnym rozvojem, coz jsou casto vysledky po nejakem deleni).

Zden�k Moravec zmo(zv)telecom(tec)cz

POP server

[*] muher(zv)csas(tec)cz - 5.3.1999 14:39:42

Ahoj vsem,

Mate nekdo zkusenosti s programovanim (jednoducheho) POP serveru?

TTable a indexy

[*] Zdenek Drvota <drvota(zv)zds(tec)cz> - 5.3.1999 14:41:13

> From: Petr Brant <p.brant(zv)samo(tec)cz>
> S tim 28. bytem mi to rekli kolegove z FoxPro a pokud se tyce nazvu, je
> (tedy pravdepodobne) stejny jako jmeno souboru DBF. Kolegove z Foxky tu
> jeste nejsou, takze se nemam koho zeptat.
Muzu potvrdit, ona ta informace o 28.bytu se nikde moc
oficialne nesirila, ale funguje to.
Pokud jde o nazev CDX, ma stejny jako DBF (az na priponu),
pak se tomu rika Structural index, a automaticky se otevira
(narozdil od jinych CDX) pro otevreni DBF prikazem USE.
Tento soubor musi byt ulozen na stejnem miste (slozka/adresar)
jako DBF!

>
> ********************************************************
> Petr Brant [p.brant(zv)samo(tec)cz]
>
> programator v MSVC++, obcas Delphi nebo Visual Basic
> ********************************************************
>
>
>
> > -----P�vodn� zpr�va-----
> > Od: Petr S [SMTP:p.sadovsky(zv)atlas(tec)cz]
> > Odesl�no: 4. b�ezna 1999 14:59
> > Komu: delphi-l(zv)fwd(tec)cz
> > P�edm�t: Re: TTable a indexy
> >
> > -----P�vodn� zpr�va-----
> > Od: Petr Brant <p.brant(zv)samo(tec)cz>
> > Komu: delphi-l(zv)fwd(tec)cz <delphi-l(zv)fwd(tec)cz>
> > Datum: 4. b�ezna 1999 7:58
> > P�edm�t: RE: TTable a indexy
> >
> >
> > >Ahoj,
> > >
> > >v databazich nejsem prilis vzdelany, ale tenhle problem jsem resil.
> > >Posilam funkci, kterou jsem pouzival na likvidaci indexu a jeho nove
> > >vytvoreni:
> > >
> > >function TCreateDbTable.CreateIndex(QTable:TQuery;
> > >TableName:string):integer;
> >
> >
> >
> > Diky moc, chodi to bezvadne.
> >
> > Mohl bys mi jeste rict,prosim te, kde jsi zjistil, ze udaj o indexu je
> > na 28
> > bytu a nevis, kam uklada jmeno toho index. souboru(protoze on zarve ze
> > nema
> > "soubor.mdx" a to se do jednoho bytu nevleze, takze predpokladam, ze
> > timto
> > se rekne tabulce, aby index nevyzadovala, ale kde ma ulozeny nazev
> > souboru
> > mrcha jedna?)?
> >
> >
> > Petr
> > p.sadovsky(zv)atlas(tec)cz
> >
> >
>
>
-----------------------------------------------
Ing. Zdenek Drvota e-mail:drvota(zv)zds(tec)cz
director
ZDS, spol. s r.o.
Hronovicka 708 tel:+420-40-6613756
530 02 Pardubice fax:+420-40-6613756
Czech Republic http://www.zds(tec)cz
e-mail:info(zv)zds(tec)cz
Internet proti monopolu http://www.bojkot(tec)cz


NT Setric - Was :Re: SPEEDTIPS - NetWare (WinNT,98

[*] Zdenek Drvota <drvota(zv)zds(tec)cz> - 5.3.1999 14:41:13

Ahoj,
v tehle souvislosti...
nevite nahodou, kde a jak se nastavi setric
pro Windows NT server (5 beta 2), ktery
se ma spustit, kdyz neni prihlasen zadny
uzivatel (na obrazovce je jen vyzva k prihlaseni)?
Kdyz nastavim setric u administratora,
u nej funguje, ale v prihlasovaci obrazovce je stale
ten box s M$ reklamou ;-)
Jsem slepy, nemuzu to nikde najit.
> From: voltrr1.epr(zv)mail.cez(tec)cz
> > experimentovat. A zjistili, ze je celkem zahodno zrusit setric
> > obrazovky. Ten udajne moc nereaguje na sitove pristupy a vetsinu vykonu
> Opravdu nereaguje - reaguje jenom na klavesnici a mys (jako kazdej setric).
>
> Obzvlaste dobry jsou OpenGL setrice (uplne nejlepsi jsou hodiny) - ty ti
> vysponujou procesor tak ze pomalu
> vyskakuje z case.
>
> Radek
>
>
>
>
-----------------------------------------------
Ing. Zdenek Drvota e-mail:drvota(zv)zds(tec)cz
director
ZDS, spol. s r.o.
Hronovicka 708 tel:+420-40-6613756
530 02 Pardubice fax:+420-40-6613756
Czech Republic http://www.zds(tec)cz
e-mail:info(zv)zds(tec)cz
Internet proti monopolu http://www.bojkot(tec)cz


Ukryti programu

[*] Zdenek Drvota <drvota(zv)zds(tec)cz> - 5.3.1999 14:41:13

Ahoj,
vidim, ze je o tento problem pomerne zajem,
takze mohu nabidnut jiz zminenou komponentu Stealth,
ale az se dostanu ke svemu domacimu Spocitaci, tady
ji u sebe nemam :-(
Asi bude nejlepsi, kdyz to vystavim na nasem webu,
potom poslu info, kde presne si ji muzete stahnout.
Nerad bych byl ukamenovan, ze posilam prilohy do
konference :-)))

> From: Viktor.Lostak(zv)chmi(tec)cz (Viktor Lostak)
> To by me taky zajimalo, takze rady poslete do konference, budu vam vdecny a poslu vam sveho noveho vira. Viktor
>
> Ahoj vsichni...
> ...chtel bych totalne ukryt bezici program, tj. nejen schovat ikonu s tasbaru,
> ale aby program nebyl ani v TaskMangeru (po Ctrl-Alt-Del).
> Vite jak na to...
> ...nekdo to vi urcite, protoze se tu o tom uz psalo, v archivu konference
> jsem bohuzel uspesny nebyl a ani ve sve poste jsem to nenasel.
>
> Diky...
> ...Dobra
>
> (ShowWindow(Handle, SW_SHOW) necha zaznam v TaskListu a taky, pokud se objevi
> MessageDlg tak i behem toho, co je tento dialog na obrazovce se objevi ikona
> aplikace na taskbaru)
>
>
-----------------------------------------------
Ing. Zdenek Drvota e-mail:drvota(zv)zds(tec)cz
director
ZDS, spol. s r.o.
Hronovicka 708 tel:+420-40-6613756
530 02 Pardubice fax:+420-40-6613756
Czech Republic http://www.zds(tec)cz
e-mail:info(zv)zds(tec)cz
Internet proti monopolu http://www.bojkot(tec)cz


SPEEDTIPS - NetWare (WinNT,98), BDE ...dokonca Lin

[*] RWM Komplex <rwmkom(zv)mnet(tec)cz> - 5.3.1999 15:21:17

> experimentovat. A zjistili, ze je celkem zahodno zrusit setric
> obrazovky. Ten udajne moc nereaguje na sitove pristupy a
> vetsinu vykonu
> vaze na sebe. Bohuzel nemam zadnou apl, kterou bych to

OPEN GL setric (napr. 3D trubky) pri behu zbasti 60% vykonu NT pausalne.
Udaj z res.kitu od Microsoftu.
Radim

Vypocet

[*] Jano Richter <jano(zv)karol.adlerka.schools.sk> - 5.3.1999 14:22:33


1. Nebolo by od veci povedat si, o vypocet coho vlastne
ide (financie, fyzika, ...) a ake naroky na presnost te-
da su.

2. Vie niekto odpovedat na otazku, ci okamih 24:00:00,0
resp. 0:00:00,0 na prelome rokov 1998/99 patril este do
roku 1998 alebo uz do 1999?
Nasa tema "Vypocet" je totiz z podobneho sudka.
Podobne: netrapi vas, ze funkcia random vracia nieco
z intervalu <0,1), t.j. 0 tam patri ale 1 uz nie - mna
to teda netrapi.
A este iny priklad "ynteligentnej" otazky: Uhadnite
realne cislo z intervalu napr. 0 az 1000. (Existuju to-
tiz mnoziny konecne, mnoziny nekonecne a spocitatelne
(napr. cele cisla) a mnoziny nekonecne a nespocitatel-
ne (napr. realne cisla) ).

3. Ja som kedysi v podobnych situaciach pouzival fintu
vysledok:=funkcia(vypocet+drobnost), kde
funkcia je trunc, round apod. (podla okolnosti),
vypocet je napriklad ono 960/100*15,
a drobnost je napr. 0.001 alebo podobne.> Je to blbe, kdyz vlastni procesor popira bazalni pravidla
> matematickych operaci.
> Predstava, ze bych mel u kazdeho vypoctu premyslet, jak to
> zaonacit, aby to pocitalo dobre, mne, uprimne receno privadi
> do vyvrtek.

Bohuzial, asi to tak naozaj bude, ak su cielom naozaj dovery-
hodne vysledky.

> (960*15)/100 by melo byt stejne jako 960*15/100 nebo
> 960*(15/100) nebo 960/100*15.

Ano, ale ten stroj to nevie. On je len strasne rychly blbec,
ktory vykonava male drobne kroky podla programu v strojovom
kode - o sirsich suvislostiach nema ani paru.

Vela zdaru. Jano
.

Registry a WinNT

[*] Patrik Tesar <Administrator(zv)rosoft.sk> - 5.3.1999 15:27:21



> -----P�vodn� zpr�va-----
> Od: Ales Radikovsky [SMTP:radik(zv)seznam(tec)cz]
> Odesl�no: 5. marec 1999 8:51
> Komu: delphi-l(zv)fwd(tec)cz
> P�edm�t: Re: Registry a WinNT
>
> > Chcem pisat pomocou TRegistry pocas prace uzivatela, ktory nie je
> > administrator
> > Zaujimave je, ze InstallShit zapise vsetko bez problemov...
> >
>
> Pokud to je s Delphi 3, tak na www.delphi(tec)cz jsem dal odkaz na nejakou
> stranku (presne si nepamatuju nazev ale neco jako Delphi & NT) a tam
> je
> unitka, ktera to opravuje.
> Mam to ve svem programu a funguje to.
>
> Ales
[Administrator]

Je to D4.

Vypocet

[*] Polak Jiri <Jiri.Polak(zv)tconsult(tec)cz> - 5.3.1999 15:38:06


> To prece neni nijak zvlastni. Proste ve svete pocitacu je
> omezena presnost
> vysledku a mezivysledku, zrovna tak jako je omezena velikost
> cisel. Viz.
> odpoved p. Polaka.
>
> A premyslet se nad tim taky moc nemusi. Staci si zazit pravidlo, ze je
> potreba nejdriv cislo zvetsovat a pak teprve delit. Samozrejme za
> predpokladu, ze ti behem vypoctu nepretece.
>

Tak jsem to rozhodne nemyslel, zadne pravidlo neexistuje.
V kazde situaci je treba zvazit pro a proti.
Tady nahodou bylo lepsi nejdriv nasobit a potom delit,
protoze v tomto konkretnim pripade to vedlo
k minimalizaci zaokrouhlovaci chyby v mezivysledku.
Muzu ale dat priklad, kde bude vhodnejsi nejdrive delit.
Znamena to, ze v kazde situaci se musi programator rozhodnout
na zaklade dobreho uvazeni.

Ten priklad:

12345678987654 * 12345678978999885 / 5555555
Tady bychom ztraceli presnost tim, ze by se pocet platnych
cislic po nasobeni nevesel do realneho typu (podle helpu
ma extend 19-20 cislic) a presnejsi bude to nejdriv
podelit a potom az vynasobit.

Jura
----------
Jiri Polak
e-mail:jura.polak(zv)email(tec)cz
jiri.polak(zv)tconsult(tec)cz
web :http://freeweb.coco(tec)cz/jpolak
----------
The only good bug, is a dead bug!

MS Access databaze z Delphi

[*] Karel Kral <kral(zv)purus(tec)cz> - 05.3.1999 15:57:29

Potreboval bych pristupovat z Delphi k databazim MS Access. Muzete me
obecne nakopnout, jak na to?
Zatim jsem skoncil (pri pokusu otevrit *.mdb z Database desktop) na
Cannot load an IDAPI service Library ...\DAO\DAO3032.DLL. Ale ovladace
MS Access mam nainstalovane, jenze verze 3.50.
--
______________________________________________________
Karel Kral, informatik
Purus, s.r.o., Cezavy 627, 664 56 Blucina
Tel: 05/47235000, 0602/552432, Fax: 05/47231203
E-Mail: mailto:kral(zv)purus(tec)cz, WWW: http://www.purus(tec)cz
______________________________________________________


Rotace II: Ovlada� vrac� �der

[*] Martin Tichacek <martin_t(zv)mrp(tec)cz> - 5.3.1999 16:18:33

Ok. Ale proc, kdyz to msword tiskne cele jako grafiku, staci zmenit
tiskarnu a rozsype se vse, co si clovek nasklada. (na mysli mam
soubory rekneme - 20-30 stranek s obrazkama a jinyma kravinama). Pro
kazdou tiskarnu maji jine fonty a jine ptakovinky. vicemene nejsme
schopni ukecat dokument aby vypadal vsude stejne. :-( Podle mne, kdyz
chytim neco jako grafiku, uz s tim tiskarna zadnou chlivarnu udelat
nemuze. Nebo ze by? Tak. (zase provozuju offtopic).

(princip MS WysiwyNG je mi asi jasny.... funguje to presne :-)

Mti.

-----P�vodn� zpr�va-----
Od: Ing. Jaroslav K�e�ek <grafex(zv)iol(tec)cz>

Myslim, ze se tyhle programy s tim neparaj a sypou to do tiskarny vzdy
jako
grafiku. Mozna jedina vyjimka je, kdyz do Wordu se natahne soubor
typu TXT
a ne DOC. To nevim.
-----P�vodn� zpr�va-----
Od: Viktor Lostak <Viktor.Lostak(zv)chmi(tec)cz>>V�era jsem se tu ptal na probl�m s rotuj�c�mi fonty. Mezit�m jsem
zjistil
>dal�� v�ci:
>
>Probl�m se objevuje jen p�i tisku na HP LJ 4. Kdy� nem�m za�krtnuto
na
>ovlada�i "Tiskni texty jako grafiku", tisk je stra�n�. rapat�
p�smena,
>fonty nerotuj�, hnus. Kdy� to za�krtnu, je v�e OK. Ale i kdy� to
za�krtnut�
>nen�, podobn� tisky t�eba z Wordu nebo Excelu jsou OK. M�m podez�en�,
�e
>tyhle programy n�jak to "Tiskni texty jako grafiku" nastavuj� samy
nebo co.
>Nev�te o tom n�kdo n�co?
>
>Viktor

Problem PageControl

[*] Lubos <bruce(zv)pobox.sk> - 05.3.1999 16:28:29

Caute Delfinci !

Zasa vas pootravujem s primitivnou chybou.
Pouzivam CB 3.0.
Ide o to , ze ked si vygenerujem v PageControl zalozky
tak mi nejdu potom zmazat.
Nerozumiem tomu. Ked nacitavam dalsi subor, tak ich potrebujem
vymazat a vygenerovat nanovo. A pri mazani mi to vzdy padne
a napise "List index out of bounds (1)" namiesto tej jednotky
dava niekedy do zatvoriek ine cislo.

Takto si vytvorim zalozky
for (int i = 0; i < pocetstran; i++)
{
TTabSheet *pPage = new TTabSheet(PageControl1);
pPage->PageControl = PageControl1;
pPage->Caption = AnsiString("Strana") + IntToStr(i+1);
pPage->Name = AnsiString("ts") + pPage->Caption;

}
A takto ich mazem
for (int i=0; i<pocetstran; i++)
{
delete PageControl1->Pages[i];
}

vdaka.

/LH


Generator v MS SQL

[*] Jan �ebel�k <honza(zv)haes(tec)cz> - 5.3.1999 16:38:36

Insertuji z Delphi novy zaznam do SQL tabulky s automaticky generovanym klicem.

Pouziji-li generator v InterBase, dostanu chybu "Record/Key Deleted".
Na pricinu i reseni jsem uz prisel.

Ted jsme byli nuceni pracovat s MS SQL.
Pouzili jsme pro tento ucel typ Identity a ocekavali jsme stejny problem.

Problem nastal, ale jiny:
Radek v Gridu zustal bez nove hodnoty (stoji tam kurzor).
Zato pri refresh se objevi novy radek na konci, stary (bez hodnoty) nekdy zmizi, nekdy ne.

Resil jste to nekdo?

Honza
=========================================
= HAES - RNDr. Jan Sebelik
= http://www.haes(tec)cz
= Skolici a konzultacni stredisko pro Delphi a Win32
= Vojtiskova 206
= 507 81 Lazne Belohrad
= tel. 0434 692 931
=========================================

Seznam instalovanych modemu Win95

[*] Karel Kral <kral(zv)purus(tec)cz> - 05.3.1999 16:43:53

Muzete me poradit, jak bych z registru ziskal seznam nainstalovanych
modemu, tak, jak ho vidim v Ovladaci panely -> Modemy?
--
______________________________________________________
Karel Kral, informatik
Purus, s.r.o., Cezavy 627, 664 56 Blucina
Tel: 05/47235000, 0602/552432, Fax: 05/47231203
E-Mail: mailto:kral(zv)purus(tec)cz, WWW: http://www.purus(tec)cz
______________________________________________________


funkce POS nad textem v Memo

[*] Jan �ebel�k <honza(zv)haes(tec)cz> - 5.3.1999 16:43:14

DBMemo.Lines.Text je typu string.
Jednotlive radky jsou tam oddeleny #13#10 nebo tak nejak.

Honza
=========================================
= HAES - RNDr. Jan Sebelik
= http://www.haes(tec)cz
= Skolici a konzultacni stredisko pro Delphi a Win32
= Vojtiskova 206
= 507 81 Lazne Belohrad
= tel. 0434 692 931
=========================================
----------
> Odes�latel: jdanek(zv)fnbrno(tec)cz
> Komu: delphi-l(zv)fwd(tec)cz
> P�edm�t: funkce POS nad textem v Memo
> Datum: 5. b�ezna 1999 13:12
>
>
> Ahojte,
>
> Je mozne najit v textu polozky DBMEMO podretezec nejakou funkci
> jako je pro bezne stringy funkce POS nebo musim POS aplikovat
> na jednotlive radky DBMEMO?
>
> Jozka
> jdanek(zv)fnbrno(tec)cz


Odchytavani zprav

[*] Zbysek Hlinka <zhlinka(zv)login(tec)cz> - 5.3.1999 17:09:22

Novak Josef wrote:

> Zdravim vsechny, chtel bych se zeptat, snazim se pochopit programovani v
> delphi. Chtel bych pochopit jak muzu ve sve aplikaci v delphi odchytavat
> zpravy jinych aplikaci. Kdzy si preci vytvorim ve sve aplikaci abz
> odchytavala zpravy napr.: Application.onMessage := Zpravy kde Zpravy je
> definovana jako procedure Zpravy(var Message: TagMsg, Handled: Boolean);
> Tak stejne moje aplikace odchytava jenom zpravy, pro tuto aplikaci. Muze
> me to prosim Vas nekdo vysvetlit. Jak to teda ve sve aplikaci nadefinovat,
> aby mi to do me aplikace posilalo Msg.message z jine aplikace? A jeste
> bych se chtel zeptat jestli musim pro odchytzvani zprav pouzivat Timer,
> aby to napr sledovalo kazdou sekundu jestli josu nove zpravy. Doufam ze
> jsem se dobre vyjadril. Dekuji Vsem, kteri mi budou napomocni. S pozdravem
> Novak J.
>
V Delphi jsou dva zpusoby odchytavani (a posilani) zprav. Jedna
vede pred Handle (viz SendMessage, PostMessage), takze trida,
ve ktere chces takovu zpravu chytit, musi mit Handle (zpravidla
potomek TWinControl). Odchytne se tak, ze napises specialni
metodu, napr:
procedure WMLButtonDown(var Message: TWMLButtonDown);
message WM_LBUTTONDOWN;

odchytne zpravu, ktera je vyslana pri kliknuti na leve tlacitko mysi.

Vnitrni (delphacke) predavani zprav mezi objekty pak zajistuje
funkce TControl.Perform.


S pozdravem

Zbysek Hlinka
E-mail: zhlinka(zv)login(tec)cz, localizator(zv)localizator.com
Tel.: 02/795 29 56; GSM: 0603 551 282
Krystofova 1016, 149 00 Praha 4
CZ


MDI Aplikace

[*] Miloslav Skacel <kastner(zv)infos(tec)cz> - 5.3.1999 18:08:36

>> Od: Radek KALA [SMTP:DELPHI(zv)betacontrol(tec)cz]
>> Komu: delphi-l(zv)fwd(tec)cz
>> Potreboval bych poradit, zda nahodou nekdo nevite jak na pracovni
>> plochu hlavniho okna MDI aplikace nakreslit doprostred nejaky
>> obrazek.

Potrebujes kreslit do okna 'Client' (ne do MDIFrame), ktere ma na svedomi
blazinec
kolem MDI. Bylo to nekde v UDDF...


procedure TfmMain.MDIWndProc(var prmMsg:TMessage);
var R: TRect;
//TileIt
//
procedure TileIt(prmDC:hDC);
var wrkX,wrkY:integer;
begin
with imBkgFace do begin
wrkY:=0;
while wrkY < R.Bottom do begin
wrkX:=0;
while wrkX < R.Right do begin
BitBlt(longint(prmDC),wrkX,wrkY,Width,Height,
Canvas.Handle,0,0,SRCCOPY);
Inc(wrkX,Width);
end;
Inc(wrkY,Height);
end;
end;
end;{TileIt}
begin
with prmMsg do begin
if(Msg=WM_ERASEBKGND)then begin
Windows.GetClientRect(ClientHandle,R);
case BkgFace of
bfTile:
TileIt(wParam);
bfCenter: begin
CallWindowProc(MDIDefProc,ClientHandle,Msg,wParam,lParam);
with imBkgFace do
BitBlt(wParam,
Max(0,(R.Right-R.Left-Width)div 2),
Max(0,(R.Bottom-R.Top-Height)div 2),Width,Height,
Canvas.Handle,0,0,SRCCOPY);
end;
bfStretch: with imBkgFace do
StretchBlt(wParam,
0,0,R.Right-R.Left,R.Bottom-R.Top,
Canvas.Handle,
0,0,Width,Height,
SRCCOPY);
bfEmpty:
CallWindowProc(MDIDefProc,ClientHandle,Msg,wParam,lParam);
end;
Result:=1;
end
else
Result:=CallWindowProc(MDIDefProc,ClientHandle,Msg,wParam,lParam);
end;
end;{MDIWndProc}

procedure TfmMain.FreeMDIHookWndProc;
begin
SetWindowLong(ClientHandle,GWL_WNDPROC,longint(MDIDefProc));
Forms.FreeObjectInstance(MDIInstance);
MDIInstance:=nil;
MDIDefProc:=nil;
end;{FreeMDIHookWndProc}

procedure TfmMain.SetMDIHookWndProc;
begin
MDIInstance:=MakeObjectInstance(MDIWndProc); //create wrapper

MDIDefProc:=pointer(SetWindowLong(ClientHandle,GWL_WNDPROC,longint(MDIInstance))
);
end;{SetMDIHookWndProc}

S pozdravem
Miloslav Skacel
info(zv)stereo(tec)cz
www.stereo(tec)cz

elementarny problem s C/S

[*] Jaro <jaro(zv)sinea(tec)cz> - 5.3.1999 19:41:27

> Zaujimava je aj varianta, ked aplikacia pred editaciou rekordu poznaci do
> neho id-klienta. Potom ostatni mozu byt vystrihani, ze pripadna editacia
> by nemusela dopadnut dobre (ale bola by povolena) a pri restarte klienta
> po pripadnej havarii by sa dali zabudnute znacky lahko hromadne odstranit.
> Ale to je vlastne princip 'lock' chapany menej zavazne.

To by mohlo byt sice reseni, ale ma to take sve zaludnosti.

------------

To ano. Minimalne to narazi na problem, ze se mohu pod stejnym "id-klienta"
prihlasit z ruznych stanic, takze to vlastne nic neresi
Jaro

Vypocet

[*] Bohuslav Svancara <softprojekt(zv)bosnet(tec)cz> - 5.3.1999 10:53:30 -0800

Coz takhle otestovat na tomto prikladu funkci parametru "Pentium-Safe FDIV" na zalozce Project Options - Compiler?

Bohuslav �vancara
softprojekt(zv)bosnet(tec)cz

Trunc(960/100*15) da na pentiu vysledek 144, na 486 da vysledek 143

Trunc(960*0.15) da na obou pocitacich 144

144 je spravne a deje se to jenom u cisla 960 (jine, kde se to projevuje jsem nenasel).

Hlaska: Invalid BLOB handle in record buffer

[*] Jaro <jaro(zv)sinea(tec)cz> - 5.3.1999 19:55:10

1.
Problem je asi ve zpusobu natahovyna "bufferu". Pri Locate se postupne dotahuji dalsi data ze serveru a
v urcitych momentech se to asi zahlti. Na mensi tabulce by ti to mozna nevzniklo. Takovahle chyby, ktere ovsem vznikaji nahodne jsou nejhorsi. Proto je to lepe udelat jinak.
2.
Bud si udelej jednoduchou ulezenou proceduru a pokud by to ani tak neslo, tak
to asi budes muset udelat pres klienta: tedy nacitat a zase ukladat to po radku
treba nejak takto:
with query1 do
while not eof
edit
cis fakt1.value := cis fakt.value;
next
end

takto zajisti konverzi delphi.
Jeste bych to radeji uzavrel cele do transakce.

Zvedava otazka? Jestli jsem pochopil cis fakt je cislo faktury. To bude cislo faktury memo?
Jaro
---------

Dekuji opravdu pomuze zmena na blob, domnivla jsem se, ze varchar bude v tomto pripade lepsi. Otazkou vsak je, proc se vsechno chova korektne

pouze pri pouziti Locate vznikne chyba.

Jeste jeden s tim souvisejici dotaz:

Jak pomoci SQL presunout data z varchar do blob ?
zkusil jsem
update faktury set dodaky =(select dodaky from faktury2 where faktury2.cis fakt=faktury.cis fakt)
ale to Error conversion from string "BLOB"

Pavel Bares
Atoll s.r.o.
www.atoll(tec)cz

-----Puvodni zprava-----
Od: Jaro <jaro(zv)sinea(tec)cz>
Komu: delphi-l(zv)fwd(tec)cz <delphi-l(zv)fwd(tec)cz>
Datum: 5. brezna 1999 0:24
Predmet: Re: Hlaska: Invalid BLOB handle in record buffer


Asi by bylo lepsi predelat ten varchar(2000) na blob sub type text
Ale zkus jeste tohle.
Z toho datasetu zcela vyhod polozku varchar(2000) a vsechny ostatni velke polozky, ktere primo nezobrazujes pomoci gridu
(ty ostatni vyjmenujes za SELECT namisto hvezdicky) a zaloz si jeste jeden TQuery, ktery pripoj do relace s tim prvnim.
V druhem TQuery bude odkaz jen na jediny zaznam pomoci konstrukce WHERE id = :id
Jeste je dobre pred prikazem Locate nastavit vazbu datasource (relacni) na nil a teprve az po nalezeni zaznamu ji
priradit opet na datasource pripojeneho k tomu prvnimu TQuery.
Nejenom, ze to nebude hlasit chybu, ale znacne se ti to zrychli zejmena pri vetsim mnozstvi dat.
Uvedom si, ze naplneny zaznam Varchar(2000) znamena 2 kB a jiz pro pouhych tisic radku jsou z toho dva MB!
To je obrovsky dataset a nalezeni zaznamu uprostred nebo ke konci bude trvat hodne dlouho, protoze dojde
k postupnemu dotazeni celeho objemu dat.
Muj navrh to resi tak, ze se listuje malym objemem dat jen tech sloupcu, ktere zobrazuji v gridu a zbytek dotahnu az
pro jeden konkretni zaznam na kterem se zastavi ukazatel, coz jsou maximalne jen ty 2KB. Podle teto konstrukce
muze byt skok na posledni zaznam az radove rychlejsi.
---------
Pokud pouziju DBMemo na zobrazeni VARCHAR(2000) z tabulky na IB dostanu po nalezeni zaznamu pomoci LOCATE hlasku
Invalid BLOB handle in record buffer

Nevite nekdo jak to odstranit ??

Pavel Bares
Atoll s.r.o.
www.atoll(tec)cz

Dataset - Pro a proti (Was:Re: MS SQL 7 + ulozene

[*] Zbysek Hlinka <zhlinka(zv)login(tec)cz> - 5.3.1999 07:32:18

Robert Kindl wrote:

> >Co se tyka cached updates, to umi ADO jako takove, neni treba to
> >hloupe obchazet.
>
> Jak velkou kontrolu nad tim jak se zmeny aplikuji mam?
> (proste je to na urovni Post, UpdateSQL nebo OnUpdateRecord?).

Urcite lepsi nez ve stavajicich komponentach. Pro ukazku vypis
nekterych metod a vlastnosti z klicovych komponent, z
ADODB_TLB.pas (nektere veci jsem kvuli mistu vyhazel!):

Tohle je o pripojeni k databazi (tedy neco jako TDatabase):

_Connection15 = interface(_ADO)
procedure Close; safecall;
function Execute(const CommandText: WideString; out
RecordsAffected: OleVariant;
Options: Integer): _Recordset; safecall;
function BeginTrans: Integer; safecall;
procedure CommitTrans; safecall;
procedure RollbackTrans; safecall;
procedure Open(const ConnectionString: WideString; const
UserID: WideString;
const Password: WideString; Options: Integer);
safecall;
function OpenSchema(Schema: SchemaEnum; Restrictions:
OleVariant; SchemaID: OleVariant): _Recordset; safecall;
property ConnectionString: WideString read
Get_ConnectionString write Set_ConnectionString;
property CommandTimeout: Integer read Get_CommandTimeout
write Set_CommandTimeout;
property ConnectionTimeout: Integer read
Get_ConnectionTimeout write Set_ConnectionTimeout;
property Version: WideString read Get_Version;
property Errors: Errors read Get_Errors;
property DefaultDatabase: WideString read
Get_DefaultDatabase write Set_DefaultDatabase;
property IsolationLevel: IsolationLevelEnum read
Get_IsolationLevel write Set_IsolationLevel;
property Attributes: Integer read Get_Attributes write
Set_Attributes;
property CursorLocation: CursorLocationEnum read
Get_CursorLocation write Set_CursorLocation;
property Mode: ConnectModeEnum read Get_Mode write
Set_Mode;
property Provider: WideString read Get_Provider write
Set_Provider;
property State: Integer read Get_State;
end;


Tohle je o praci s tabulkami, tedy neco jako TTable, TQuery,
TStoredProc dohromady:

_Recordset15 = interface(_ADO)
procedure AddNew(FieldList: OleVariant; Values: OleVariant);
safecall;
procedure CancelUpdate; safecall;
procedure Close; safecall;
procedure Delete(AffectRecords: AffectEnum); safecall;
function GetRows(Rows: Integer; Start: OleVariant; Fields:
OleVariant): OleVariant; safecall;
procedure Move(NumRecords: Integer; Start: OleVariant);
safecall;
procedure MoveNext; safecall;
procedure MovePrevious; safecall;
procedure MoveFirst; safecall;
procedure MoveLast; safecall;
procedure Open(Source: OleVariant; ActiveConnection:
OleVariant; CursorType: CursorTypeEnum;
LockType: LockTypeEnum; Options: Integer); safecall;
procedure Requery(Options: Integer); safecall;
procedure _xResync(AffectRecords: AffectEnum); safecall;
procedure Update(Fields: OleVariant; Values: OleVariant);
safecall;
function _xClone: _Recordset; safecall;
procedure UpdateBatch(AffectRecords: AffectEnum); safecall;
procedure CancelBatch(AffectRecords: AffectEnum); safecall;
function NextRecordset(out RecordsAffected: OleVariant):
_Recordset; safecall;
function Supports(CursorOptions: CursorOptionEnum):
WordBool; safecall;
procedure Find(const Criteria: WideString; SkipRecords: Integer;
SearchDirection: SearchDirectionEnum; Start:
OleVariant); safecall;
property AbsolutePosition: PositionEnum read
Get_AbsolutePosition write Set_AbsolutePosition;
property BOF: WordBool read Get_BOF;
property Bookmark: OleVariant read Get_Bookmark write
Set_Bookmark;
property CacheSize: Integer read Get_CacheSize write
Set_CacheSize;
property CursorType: CursorTypeEnum read Get_CursorType
write Set_CursorType;
property EOF: WordBool read Get_EOF;
property Fields: Fields read Get_Fields;
property LockType: LockTypeEnum read Get_LockType write
Set_LockType;
property MaxRecords: Integer read Get_MaxRecords write
Set_MaxRecords;
property RecordCount: Integer read Get_RecordCount;
property AbsolutePage: PositionEnum read Get_AbsolutePage
write Set_AbsolutePage;
property EditMode: EditModeEnum read Get_EditMode;
property Filter: OleVariant read Get_Filter write Set_Filter;
property PageCount: Integer read Get_PageCount;
property PageSize: Integer read Get_PageSize write
Set_PageSize;
property Sort: WideString read Get_Sort write Set_Sort;
property Status: Integer read Get_Status;
property State: Integer read Get_State;
property CursorLocation: CursorLocationEnum read
Get_CursorLocation write Set_CursorLocation;
property Collect[Index: OleVariant]: OleVariant read Get_Collect
write Set_Collect;
property MarshalOptions: MarshalOptionsEnum read
Get_MarshalOptions write Set_MarshalOptions;
end;

Vypada to dobre, coz?

> >V kazdem pripade nebude mozne pouzit stavajici TDatabase,
> >TQuery a TTable, tato cast by se musela tak jako tak predelat.
> >Pouziti komponent tedy bude spise vhodne pro nove aplikace.
>
> Idealnim pripadem jsem myslel nahrada jedna ku jedna zvlaste u TQuery
> nejlepe se zachovanim stavajici definice SQL, fieldu. Nebo staci aby to
> alespon moc nebolelo... Proto take ten "tlak" na dedice TDataSetu.

To by nemusel byt problem - melo by stacit zachovat nazvy fieldu,
a pak jen prehazet predky u komponent. To je vse ve fazi zrodu,
takze tomu zatim nic nebrani. Projekt jsem uz vyhlasil, jaks taks
to funguje (zatim pouze read).
>
> Pod BDE kdyz jsem dal TQuery1.Open a pote TQuery2.Open
> tak v okamziku TQuery2.Open to muselo dokoncit TQuery1.
> Proste aby slo otevrit vice "nezavislych connection" na server
> ktere se navzajem neovlivnuji, ALE!!! pokud delam ApplyUpdates
> takovych dvou query tak to musi byt pres jeden connection (nejlepe
> nejaky dalsi) kvuli transakci.

Tak to zatim nevim, je treba nastudovat dokumentaci k ADO.

> >Nebo chces, aby nad jednou tabulkou bylo mozne otevrit vice
> >samostatnych Query?
>
> O tom jsem psal v souvislosti s automatickym promitanim zmen
> z jedne Query do druhe (proste aby to presne vedelo odkud ktera data
> jsou). Ale to neni treba umet hned (a mozna je to uplna blbost).

Koukal jsem ze tam je Resync, ktery by IMHO mohl umet i takove
veci, jako obnovit aktualni zaznam, a tedy i zjistit vlozeny
autoincrement (ve stavajicihc komponentach je tohle na provaz).


S pozdravem

Zbysek Hlinka
E-mail: zhlinka(zv)login(tec)cz, localizator(zv)localizator.com
Tel.: 02/795 29 56; GSM: 0603 551 282
Krystofova 1016, 149 00 Praha 4
CZ

elementarny problem s C/S

[*] Jaro <jaro(zv)sinea(tec)cz> - 5.3.1999 20:02:16

Ma to jeden velkej hacek. Pokud si zrovna ta babka z tretiho patra nejde
koupit ke me ty burty
a jeste neprosmeji dalsi obchody aniz by ukoncila editaci. V takovem pripade
mohou byt blokovany vsechny dalsi transakce joduci prez zamcene zaznamy.
Takovy system se brzo zablokuje a ani nemusi byt nasazen na nekolika
desitkach pocitacich. Ja zamky po celou dobu editace zasadne nepouzivam.
Jaro
>Ja osobne preferuji nasledujici reseni, ktere je myslim i velmi jednoduche
>na realizaci:
>v pripade, ze nektery uzivatel zacne prohlizet data s moznosti editace, pro
>vsechny ostatni dany zaznam zamknu, povolim pouze cteni a pri pokusu o
zmenu
>vypisu hlasku, ze data jiz upravuje uzivatel XY (babka z tretiho patra
>napr.). Je to reseni stejen nepovedene jako vsechny ostatni (krome prodeje
>burtu), ale je dobre vysvetlitelne uzivatelum (na rozdil od nekolika verzi
>zaznamu) a jak jsem jiz psal celkem jednoduche pro realizaci.
>
>Zden�k Moravec zmo(zv)telecom(tec)cz
>
>
>>> Semantika zmeny je prilis pracna, posloupnost akci na datech,
>>> ktera dodal uzivatel1 je nesmysl - co kdyz je to text, uzivatel2
>>> opravuje tvrda a mekka IY a uzivatel1 zmeni cely text?
>>> Spis bych to videl takto:
>>> pred kazdou zmenou zazalohovat data prislusneho zaznamu.
>>> Kazdy novy uzivatel to znovu preplacne, a stara verze
>>> se zazalohuje.
>>> Pri nejasnostech je mozne z tabulky zaloh vyselektovat podle
>>> Time vsechny predchozi verze radku a provest opravy.
>>>
>
>

Delphi 3 pod W98.

[*] Petr Dan�k - 5.3.1999 20:40:44

Bylo to tou S3.
Dik

Petr Danek
petrd(zv)atlas(tec)cz


>> potrebuji nainstalovat Delphi 3 pod W98. Pri spusteni Delphi pred
>> vykreslenim ikon komponet cely pocitac zatuhne. Nekolikrat jsem
>> preinstaloval a porad stejne. Nesetkal se s tim nekdo. Dik.

>Spise mas videokartu S3 a dela ti to tedy pocet komponent,
>Do SYSTEM.INI do sekce [DISPLAY] napis tento radek:

>BusThrottle=on


Tray

[*] brcko(zv)pobox.sk (Ing. Brcko) - 5.3.1999 21:17:07

Myslim ze to uz bolo ale ja to nie som schopny nejak zvladnut.
Pouzivam RxTrayIcon. Problem je ze neviem ako aplikaciu minimalizovat do tray-u a ako ju s tadial vytiahnut. Podla tohto navodu:

Shell_NotifyIcon(NIM_ADD,(zv)NotifyData);
ShowWindow(Wnd,sw_Hide);

to sice mozno chodi ale este sa mi to nepodarilo rozchodit pretoze mi na NotifiData vzdy hlasi "Unknown identifier" a ani sa mi nepodarilo zistit v ktorej unite sa nachadza.

A preto prosim tych skusenejsich aby mi pomohli s problemom ako takym celkovo. ( Step by Step ).

Vdaka

____________________________________
P. S. V. P. U.
http://www.pobox.sk/

Vypocet

[*] Erik Salaj <erik(zv)dodo.sk> - 5.3.1999 22:47:00

>Navic podle puvodni zpravy J. Nadhery:
>> Trunc(960/100*15) da na pentiu vysledek 144, na 486 da vysledek 143
>> Trunc(960*0.15) da na obou pocitacich 144
>> 144 je spravne a deje se to jenom u cisla 960 (jine, kde se to projevuje
>jsem nenasel).
>
>Takze spatne pry pocita 486 a ne Pentium...


Nie je to 486SX (bez koprocesora)? Mohlo by so snad suvisiet so softwarovym
emulatorom.

Erik Salaj
erik(zv)dodo.sk


Odchytavani zprav

[*] Petr Vones <pvones(zv)mbox.vol(tec)cz> - 05.3.1999 22:52:36

Novak Josef wrote:
>
> Zdravim vsechny, chtel bych se zeptat, snazim se pochopit programovani v
> delphi.
> Chtel bych pochopit jak muzu ve sve aplikaci v delphi odchytavat zpravy
> jinych aplikaci.
> Kdzy si preci vytvorim ve sve aplikaci abz odchytavala zpravy napr.:
> Application.onMessage := Zpravy
> kde Zpravy je definovana jako procedure Zpravy(var Message: TagMsg, Handled:
> Boolean);
> Tak stejne moje aplikace odchytava jenom zpravy, pro tuto aplikaci.
> Muze me to prosim Vas nekdo vysvetlit. Jak to teda ve sve aplikaci
> nadefinovat, aby mi to do me aplikace posilalo Msg.message z jine aplikace?
> A jeste bych se chtel zeptat jestli musim pro odchytzvani zprav pouzivat
> Timer, aby to napr sledovalo kazdou sekundu jestli josu nove zpravy.
> Doufam ze jsem se dobre vyjadril.

Ahoj,

Kazda aplikace ma svoji frontu zprav, takze neni mozne v jedne aplikaci cist
zpravy z jine. Muzes to ale resit pomoci hook funkci, viz Win32 API help,
funkce SetWindowsHookEx apod...

--

Internet proti monopolu. Petr Vones, amatersky programator
* http://www.bojkot(tec)cz *
************************

funkce POS nad textem v Memo

[*] Petr Vones <pvones(zv)mbox.vol(tec)cz> - 05.3.1999 22:52:16

jdanek(zv)fnbrno(tec)cz wrote:
>
> Ahojte,
>
> Je mozne najit v textu polozky DBMEMO podretezec nejakou funkci
> jako je pro bezne stringy funkce POS nebo musim POS aplikovat
> na jednotlive radky DBMEMO?

Ahoj,

Funkci Pos() muzes pouzit na jakykoli string, tedy i na text Memo.
Ten ziskas napriklad volanim TMemo.Lines.Text, takze to pak bude
vypadat takto:

procedure TForm1.Button1Click(Sender: TObject);
var
X: Integer;
begin
X := Pos('Memo1', Memo1.Lines.Text);

ShowMessageFmt('%d', [X]);
end;

--

Internet proti monopolu. Petr Vones, amatersky programator
* http://www.bojkot(tec)cz *
************************

obnova zmazanych zaznamov

[*] Petr Vones <pvones(zv)mbox.vol(tec)cz> - 05.3.1999 22:53:16

iturcan(zv)gamo.sk wrote:
>
> Hi ,
>
> Pre zmenu mam jednu otazocku:
>
> Jestvuje nejaka moznost , ako obnovit v Access tabulke zaznamy ktore su
> zmazane, predpokladam ze
> access si zmazanu vetu oznaci priznakom a potom ju pri packtable zrusi z
> DB. Cize hladam moznost ako priznak odstranit.

Ahoj,

vypada to, ze v Accessu to nepujde (alespon podle BDE), u funkce DbiDeleteRecord
je poznamka:
Access: After a record is deleted and committed, it cannot be recalled.

a u DbiUndeleteRecord:
Paradox, Access: This function is not supported with Paradox and Access tables.

--

Internet proti monopolu. Petr Vones, amatersky programator
* http://www.bojkot(tec)cz *
************************

Resource Workshop

[*] Petr Vones <pvones(zv)mbox.vol(tec)cz> - 05.3.1999 22:53:04

HAJDUK Slavo wrote:
>
> Hi all.
>
> Zhanam nejaky slusny resource editor nieco ako Resource Workshop,
> ktory bol sucastou Borland Pascalu 7.0.

Ahoj,

To je nas vic :-) Pokud vim, tak posledni samostatny Resource Workshop byl
verze 4.5 a lze jej snad i samostatne dokoupit. Co jsem jej ale videl, tak
vypadal ponekud zastarale. Obavam se, ze v tomto nam jiz Borland prilis
nepomuze :-(

--

Internet proti monopolu. Petr Vones, amatersky programator
* http://www.bojkot(tec)cz *
************************

klavesove zkratky menu

[*] Petr Vones <pvones(zv)mbox.vol(tec)cz> - 05.3.1999 23:13:56

"Fryz, Zdenek" wrote:
> V hlavnim formulari (SDI aplikace) mam menu a v nem polozku "Vlozit" s
> vlastnosti ShortCut = "Shift+Ins", k teto polozce
> menu mam pripojenou proceduru, ktera vklada text ze schranky do aktivniho
> RichEditu na hlavnim formulari.
> Jestlize z hlavniho formulare otevru jiny formular, na kterem mam napr. Edit
> a stisknu "Shift+Ins", text ze schranky se
> nevlozi do aktivniho Editu, ale do RichEditu na hlavnim formulari = provede
> se procedura polozky menu na hlavnim formulari.
>
> nevi nekdo jak uvedeny problem odstranit ?

Ahoj,

Kombinace klaves Shift+Ins funguje v RichEditu i jinych ovl.prvcich primo,
takze by to slo vyresit tak, ze tu polozku z menu uplne odstranis. Pokud
mas D4, tak tam by jsi to jeste mohl vyresit pomoci ActionListu.

--

Internet proti monopolu. Petr Vones, amatersky programator
* http://www.bojkot(tec)cz *
************************

Destruktor?

[*] Petr Medek <xmedekp(zv)sun.felk.cvut(tec)cz> - 5.3.1999 23:13:59

>Jde mi o to, jestli musim volat destruktor explicitne ja sam, nebo jestli
>to za mne udela jazyk. Tedy jestli kdyz opoustim proceduru, zavola
>destruktory pro lokalni instance a jestli kdyz rusim objekt v pameti,
>zavola sam destruktor.
>
>To se da zodpovedet patrne tim, jestli lze ve tride deklarovat vic
>destruktoru nez jeden nebo destruktory s parametry. Pokud ano, pak nevim,
>jak by se mohly volat automaticky.
>


Ostatne neni nic jednodussiho, nez si dat do destructoru ShowMessage, prip.
pouzit Overseer.

Petr Medek


funkce POS nad textem v Memo

[*] Petr Medek <xmedekp(zv)sun.felk.cvut(tec)cz> - 5.3.1999 23:19:16

Zkus aplikovat funkci Pos na DBMemo.Lines.Text (tusim D3+).

Petr Medek

-----P�vodn� zpr�va-----
Od: jdanek(zv)fnbrno(tec)cz <jdanek(zv)fnbrno(tec)cz>
Komu: delphi-l(zv)fwd(tec)cz <delphi-l(zv)fwd(tec)cz>
Datum: 5. b�ezna 1999 14:25
P�edm�t: funkce POS nad textem v Memo


>
>Ahojte,
>
> Je mozne najit v textu polozky DBMEMO podretezec nejakou funkci
>jako je pro bezne stringy funkce POS nebo musim POS aplikovat
>na jednotlive radky DBMEMO?
>
> Jozka
> jdanek(zv)fnbrno(tec)cz
>
>

MDI Aplikace

[*] Petr Vones <pvones(zv)mbox.vol(tec)cz> - 05.3.1999 23:33:05

Radek KALA wrote:
>
> Hi,
>
> Potreboval bych poradit, zda nahodou nekdo nevite jak na pracovni
> plochu hlavniho okna MDI aplikace nakreslit doprostred nejaky
> obrazek.
> Zkousel jsem nastavit Bruch, ale to nefunguje u MDI,
> potom jsem zkousel kreslit normalne pomoci canvas.moveto .... a
> to u MDI taky nefunguje

Ahoj,

Toto je jiz klasicky problem, MDI aplikace maji totiz trochu jine chovani,
pouzivaji jeste skryte klientske "okno". Zkusil jsem to nejak resit, mohlo
by to jit napriklad takhle. Bylo by mozne to jeste zjednodusit, kdyby metoda
TCustomForm.ClientWndProc byla virtualni a v protected sekci, ale bohuzel...
Vykreslovani se provadi v metode PaintMDIClient, misto Canvas pouzijes
ClientCanvas.

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, ToolWin, StdCtrls, ExtCtrls;

type
TMainForm = class(TForm)
ToolBar1: TToolBar;
ToolButton1: TToolButton;
procedure ToolButton1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
ClientCanvas: TControlCanvas;
ClientWndInstance: TFarProc;
OldClientWndProc: Pointer;
procedure ClientWndProc(var Message: TMessage);
procedure PaintMDIClient;
public
{ Public declarations }
end;

var
MainForm: TMainForm;

implementation

uses Unit2;

{$R *.DFM}

procedure TMainForm.ToolButton1Click(Sender: TObject);
begin
TChildForm.Create(Application).Show;
end;


procedure TMainForm.ClientWndProc(var Message: TMessage);

procedure DoPaint;
var
DC: HDC;
PS: TPaintStruct;
begin
DC := TWMPaint(Message).DC;
if DC = 0 then DC := BeginPaint(ClientHandle, PS);
try
ClientCanvas.Lock;
try
ClientCanvas.Handle := DC;
try
PaintMDIClient;
finally
ClientCanvas.Handle := 0;
end;
finally
ClientCanvas.Unlock;
end;
finally
if TWMPaint(Message).DC = 0 then EndPaint(ClientHandle, PS);
end;
end;

begin
with Message do
case Msg of
WM_PAINT:
begin
DoPaint;
Result := 1;
end;
else
Result := CallWindowProc(OldClientWndProc, ClientHandle, Msg, WParam, LParam);
end;
end;

procedure TMainForm.FormCreate(Sender: TObject);
begin
if FormStyle = fsMDIForm then
begin
ClientWndInstance := MakeObjectInstance(ClientWndProc);
OldClientWndProc := Pointer(SetWindowLong(ClientHandle, GWL_WNDPROC, Integer(ClientWndInstance)));
ClientCanvas := TControlCanvas.Create;
ClientCanvas.Control := Self;
end;
end;

procedure TMainForm.FormDestroy(Sender: TObject);
begin
if FormStyle = fsMDIForm then
begin
SetWindowLong(ClientHandle, GWL_WNDPROC, Integer(OldClientWndProc));
FreeObjectInstance(ClientWndInstance);
ClientCanvas.Free;
end;
end;

procedure TMainForm.PaintMDIClient;
begin
with ClientCanvas do
begin
Brush.Color := clYellow;
Rectangle(10, 10, 100, 100);
end;
end;

end.

--

Internet proti monopolu. Petr Vones, amatersky programator
* http://www.bojkot(tec)cz *
************************

Pomozte mi s errorem v aplikaci

[*] Petr Vones <pvones(zv)mbox.vol(tec)cz> - 05.3.1999 23:38:12

"Pavel M." wrote:
>
> Pokosim se prevest text z Ansi do Latin 2.
> Mam tabulka (Table1) na ktere je nastaven jazyk ISO Latin 2.
> Kdyz zavolam DbiAnsiToNative tak to zarve error Acces violatin in
> BANTAM.DLL.
> Netusim co s tim resp. nejak tu funkci na prevod kodovani neumim pouzivat.

Ahoj,

Napriklad takhle:

procedure TForm1.Button1Click(Sender: TObject);
var
pDesc: pLDDesc;
Loss: LongBool;
Len: Integer;
Source, Dest: String;
begin
Source := 'Text';

Len := Length(Source);
SetLength(Dest, Len); // <- Tohle ti tam chybelo, musis alokovat pamet pro retezec
Check(DbiGetLDObj(Table1.Handle, Pointer(pDesc)));
Check(DbiAnsiToNative(Pointer(pDesc), PChar(Dest), PChar(Source), Len, Loss));

ShowMessage(Dest);
end;

--

Internet proti monopolu. Petr Vones, amatersky programator
* http://www.bojkot(tec)cz *
************************

elementarny problem s C/S

[*] Petr Vones <pvones(zv)mbox.vol(tec)cz> - 05.3.1999 23:39:23

Jaro wrote:
>
> >
> > Nejake jine navrhy?
>
> Vykasles se na databaze a jdes prodavat burty a pivo do stanku.
> Tam jsou problemy nanejvys s opilci a obcas hygienikem. :-)
> ----------------
> Taky me to uz parkrat napadlo, ale zatim jsem k tomu nenasel odvahu.

Tohle me napada pomerne casto, na prodavani burtu a piva u stanku bych asi
taky odvahu nenasel, ale zacit s necim naprosto odlisnym by mozna nebylo
od veci. Zvlaste kdyz se clovek na cely tenhle pocitacovy svet podiva trochu
s odstupem .... :-)

--

Internet proti monopolu. Petr Vones, amatersky programator
* http://www.bojkot(tec)cz *
************************

Form.BorderStyle:= bsNone;

[*] brcko(zv)pobox.sk (Ing. Brcko) - 6.3.1999 01:43:16

Na hlavnej forme aplikacie nastavim BorderStyle na bsNone.
Ako mozno potom tuto formu chytit mysou a posunut na lubovolne miesto desktopu. (Chcem aby to vyzeralo podobne ako napr. WinAmp).

Vdaka

____________________________________
P. S. V. P. U.
http://www.pobox.sk/

POP server

[*] Dalibor Toman <dtoman(zv)fortech(tec)cz> - 5.3.1999 15:36:02

>Mate nekdo zkusenosti s programovanim (jednoducheho) POP serveru?

ano

:-)

Zdravi
D. Toman


Form.BorderStyle:= bsNone;

[*] Petr Brant <p.brant(zv)samo(tec)cz> - 6.3.1999 11:39:32

Ahoj,

posilam ukazku z meho archivu:


type
TForm1 = class(TForm)
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
procedure WMNCHitTest(var M: TWMNCHitTest); message wm_NCHitTest;
end;

var
Form1: TForm1;

implementation
{$R *.DFM}

procedure TForm1.WMNCHitTest(var M: TWMNCHitTest);
begin
inherited; { call the inherited message handler }
if M.Result = htClient then { is the click in the client area? }
M.Result := htCaption; { if so, make Windows think it's }
{ on the caption bar. }
end;
> -----P�vodn� zpr�va-----
> Od: brcko(zv)pobox.sk [SMTP:brcko(zv)pobox.sk]
> Odesl�no: 6. b�ezna 1999 1:43
> Komu: delphi-l(zv)fwd(tec)cz
> P�edm�t: Form.BorderStyle:= bsNone;
>
> Na hlavnej forme aplikacie nastavim BorderStyle na bsNone.
> Ako mozno potom tuto formu chytit mysou a posunut na lubovolne miesto
> desktopu. (Chcem aby to vyzeralo podobne ako napr. WinAmp).
>
> Vdaka
>
> ____________________________________
> P. S. V. P. U.
> http://www.pobox.sk/

radek v DBGridu

[*] Matej Prochazka <harnod(zv)atlas(tec)cz> - 06.3.1999 12:09:27

Ahoj,
mam problem s DBGridem....
Potreboval bych vykreslit cely radek jinou barvou, pokud je pole v
sestem sloupci vyplneno...
Zkusil jsem tohle:
if Column[6].Field.asString = '' then
(Sender as TDBGrid).Canvas.Brush.Color:= clWhite
else if Column[6].Field.asString <> '' then
(Sender as TDBGrid).Canvas.Brush.Color:= clRed;
ale hazi mi to hlasku, ze Class does not have a default property...
PROC?
Diky moc

--
================================
Matej Prochazka
Programatorsky amater
================================
harnod(zv)atlas(tec)cz
http://www.mujweb(tec)cz/www/harnod/

MS Access databaze z Delphi

[*] Petr Zahradnik <clexpert(zv)clexpert(tec)cz> - 6.3.1999 12:23:39

Puvodni zprava, kterou napsal Karel Kral dne 5 Mar 99,:

> Potreboval bych pristupovat z Delphi k databazim MS Access. Muzete me
> obecne nakopnout, jak na to? Zatim jsem skoncil (pri pokusu otevrit *.mdb
> z Database desktop) na Cannot load an IDAPI service Library
> ...\DAO\DAO3032.DLL. Ale ovladace MS Access mam nainstalovane, jenze verze
> 3.50.

Musis mit instalovany MSJet, resp. DAO, tj. napriklad Access 95/97.
Pak si v BDE Administratoru nastavis dany DAO ovladac - jsou dva
podle verze DAO. No a pak to chodi...


S pozdravem
Petr Zahradnik, pocitacovy expert

Autorizovany dealer TurboPower Software... knihovny pro Delphi
==============================================================
=== Petr Zahradnik - Computer Laboratory ===
=== Obvodova 740/14, PO BOX 15, 400 07 Usti nad Labem 7 ===
=== telefon: 047-5500610, telefon/fax: 047-5501627 ===
=== mobilni telefon GSM (hotline): 0602-409601 ===
=== http://www.clexpert(tec)cz/ clexpert(zv)clexpert(tec)cz ===
==============================================================
ICQ: 21215917, PGP vitano


elementarny problem s C/S

[*] Richard Willmann <sales(zv)nocomment.sk> - 6.3.1999 12:36:58

idealny by bol zamok s moznostou definicie hodnoty time-out po ktorej by sa
automaticky zrusi.

rw

-----Original Message-----
From: Jaro <jaro(zv)sinea(tec)cz>
To: delphi-l(zv)fwd(tec)cz <delphi-l(zv)fwd(tec)cz>
Date: 6. marec 1999 11:08
Subject: Re: elementarny problem s C/S


Ma to jeden velkej hacek. Pokud si zrovna ta babka z tretiho patra nejde
koupit ke me ty burty
a jeste neprosmeji dalsi obchody aniz by ukoncila editaci. V takovem pripade
mohou byt blokovany vsechny dalsi transakce joduci prez zamcene zaznamy.
Takovy system se brzo zablokuje a ani nemusi byt nasazen na nekolika
desitkach pocitacich. Ja zamky po celou dobu editace zasadne nepouzivam.
Jaro
>Ja osobne preferuji nasledujici reseni, ktere je myslim i velmi jednoduche
>na realizaci:
>v pripade, ze nektery uzivatel zacne prohlizet data s moznosti editace, pro
>vsechny ostatni dany zaznam zamknu, povolim pouze cteni a pri pokusu o
zmenu
>vypisu hlasku, ze data jiz upravuje uzivatel XY (babka z tretiho patra
>napr.). Je to reseni stejen nepovedene jako vsechny ostatni (krome prodeje
>burtu), ale je dobre vysvetlitelne uzivatelum (na rozdil od nekolika verzi
>zaznamu) a jak jsem jiz psal celkem jednoduche pro realizaci.
>
>Zden�k Moravec zmo(zv)telecom(tec)cz
>
>
>>> Semantika zmeny je prilis pracna, posloupnost akci na datech,
>>> ktera dodal uzivatel1 je nesmysl - co kdyz je to text, uzivatel2
>>> opravuje tvrda a mekka IY a uzivatel1 zmeni cely text?
>>> Spis bych to videl takto:
>>> pred kazdou zmenou zazalohovat data prislusneho zaznamu.
>>> Kazdy novy uzivatel to znovu preplacne, a stara verze
>>> se zazalohuje.
>>> Pri nejasnostech je mozne z tabulky zaloh vyselektovat podle
>>> Time vsechny predchozi verze radku a provest opravy.
>>>
>
>

Odchytavani zprav

[*] Mgr. Anton�n Blatn� - 6.3.1999 12:03:06 -0000

>Chtel bych pochopit jak muzu ve sve aplikaci v delphi odchytavat zpravy
>jinych aplikaci.


Pokud zpravy nejsou urceny tve aplikaci, tak je pochopiteln� neobdrzis.
Pokud napr. kliknes na uzavreni jedne aplikace, zpravu wm_close, nebo
wm_quit apod. dostane jen ta jedna aplikace a ne vsechny spustene, v
metodach typu sendmessahe, postmessage apod. totiz vystupuje jako parametr
handle okna, kteremu je zprava urcena. Tak jsou windowsy proste navrzeny.
Jedinou vyjimmkou jsou zpravy typu broadcast, ktere prijdou vsem.
Samozrejme to jde obejit. Vsechny zpravy sice jakoby vysilaji aplikace samy
sobe nebo mezi sebou, ale v podstate vsechny "jdou" pres jadro (kernel)
windows, kde jsou fronty zprav. Takze pokud chces odchytavat uplne vsechny
zpravy vsech bezicich oken-aplikaci, musis patrat na nizssi urovni, u jadra
a ne u fronty zprav pouze sve aplikace.

T.

Mgr. Antonin Blatny
blatny(zv)atlas(tec)cz


Odchytavani zprav

[*] Mgr. Anton�n Blatn� - 6.3.1999 12:11:16 -0000



>Nevim jestli jsem to spravne pochopil, nicmene posilani a odchytavani zprav
>funguje "uplne normalne " asi takhle:
>posles zpravu pomoci
>SendMessage(Handle, wm_Akce, 0, 0)
>kde wm_akce je globalne zadefinovana const wm_Akce=wm_User+1000 (napriklad)
>Handle je handle odesilatele
>Zprava by mela byt platna v celem systemu, tzn. ze ji muzes odchytit kde
>xcesh
>

Jak uz jsem psal v odpovedi na puvodni dotaz, toto pochopitelne neni pravda.
To handle, ktere v metodach send(post)message vystupuje, je handle okna,
kteremu je zprava urcena a ne odesilatele. Proc tomu tak je jsem na prikladu
uvedl. Kdyby to bylo handle odeslilatele a ten odesilatel by vyslal zpravu
WM_QUIT, tak by se zavrely vsechny aplikace? Podle toho, co jsi napsal, by
tu zpravu dostaly vsechny okna. To prece ne.
Kdyz uz je treba zaslat nejakou zpravu vsem oknum, pouzije se misto
konkretniho handle typ broadcast, ktery se v jadru zpracuje tak, ze ho
dostanou opravdu vsechny "prijimace" zprav, tedy nejcasteji okna.


T.

Mgr. Antonin Blatny
blatny(zv)atlas(tec)cz


Tvorba napovedy

[*] Dobry den, Slovacko, regionalni noviny <dds(zv)uh(tec)cz> - 6.3.1999 14:24:06

Potrebujete co nejstarsi verzi M$ Wordu. Oni neustale meni format RTF, jak
se jim hodi. Tim nechci rici, ze neexistuje nic lepsiho :)
M. Kucera

Ukryti programu + komponenty

[*] Zdenek Drvota <drvota(zv)zds(tec)cz> - 6.3.1999 14:44:09

Ahoj,
jak jsem slibil, prave predavam komponenty
na nas web, najdete je v casti Download.
Vyzkouseno, funguje, skryje aplikaci i ze seznamu
uloh (ctrl-alt-del).

-----------------------------------------------
Ing. Zdenek Drvota e-mail:drvota(zv)zds(tec)cz
director
ZDS, spol. s r.o.
Hronovicka 708 tel:+420-40-6613756
530 02 Pardubice fax:+420-40-6613756
Czech Republic http://www.zds(tec)cz
e-mail:info(zv)zds(tec)cz
Internet proti monopolu http://www.bojkot(tec)cz


Generator v MS SQL

[*] Zbysek Hlinka <zhlinka(zv)login(tec)cz> - 6.3.1999 17:27:38


> Insertuji z Delphi novy zaznam do SQL tabulky s automaticky generovanym
> klicem.
>
> Ted jsme byli nuceni pracovat s MS SQL.
> Pouzili jsme pro tento ucel typ Identity a ocekavali jsme stejny problem.
>
> Problem nastal, ale jiny:
> Radek v Gridu zustal bez nove hodnoty (stoji tam kurzor).
> Zato pri refresh se objevi novy radek na konci, stary (bez hodnoty) nekdy
> zmizi, nekdy ne.

IMHO je problem v tom, ze autoinkrement (coz je ono identity) se
zaklada az po Post, pricemz stavajici komponenty neumeji udaj
dodatecne zjistit. Na tento (a mnoho jinych) problemu narazim
kazdou chvili, chci je tedy resit pomoci ADO a na DBLib
zapomenout.


S pozdravem

Zbysek Hlinka
E-mail: zhlinka(zv)login(tec)cz, localizator(zv)localizator.com
Tel.: 02/795 29 56; GSM: 0603 551 282
Krystofova 1016, 149 00 Praha 4
CZ


Problem PageControl

[*] Peter �IRIP <psoft(zv)ke.telecom.sk> - 6.3.1999 17:37:56

>Caute Delfinci !
>
>Zasa vas pootravujem s primitivnou chybou.
>Pouzivam CB 3.0.
>Ide o to , ze ked si vygenerujem v PageControl zalozky
>tak mi nejdu potom zmazat.
>Nerozumiem tomu. Ked nacitavam dalsi subor, tak ich potrebujem
>vymazat a vygenerovat nanovo. A pri mazani mi to vzdy padne
>a napise "List index out of bounds (1)" namiesto tej jednotky
>dava niekedy do zatvoriek ine cislo.
>
>Takto si vytvorim zalozky
>for (int i = 0; i < pocetstran; i++)
> {
> TTabSheet *pPage = new TTabSheet(PageControl1);
> pPage->PageControl = PageControl1;
> pPage->Caption = AnsiString("Strana") + IntToStr(i+1);
> pPage->Name = AnsiString("ts") + pPage->Caption;
>
> }
>A takto ich mazem
> for (int i=0; i<pocetstran; i++)

Tu predpokladas, ze pocet stran je horna hranica, pevna. Lenze pocet stran
sa meni prave v tom czkle, lebo ich mazes ...
Zmen cyklus na for (int i=pocetstran; i<0; i--)

> {
> delete PageControl1->Pages[i];
> }
>
>vdaka.
>
>/LH
>
>

elementarny problem s C/S

[*] Petr Zahradnik <clexpert(zv)clexpert(tec)cz> - 6.3.1999 18:06:11

Puvodni zprava, kterou napsal Richard Willmann dne 6 Mar 99,:

> idealny by bol zamok s moznostou definicie hodnoty time-out po ktorej by
> sa automaticky zrusi.

No tak to je pak zamek na nic, kdyz neni na 100%. Rozhodne
si myslim, ze je mnohem lepsi venovat tomu pri navrhu
databaze o nekolik hodin vice, aby zadne zamky potreba
vubec nebyly...


S pozdravem
Petr Zahradnik, pocitacovy expert

Autorizovany dealer TurboPower Software... knihovny pro Delphi
==============================================================
=== Petr Zahradnik - Computer Laboratory ===
=== Obvodova 740/14, PO BOX 15, 400 07 Usti nad Labem 7 ===
=== telefon: 047-5500610, telefon/fax: 047-5501627 ===
=== mobilni telefon GSM (hotline): 0602-409601 ===
=== http://www.clexpert(tec)cz/ clexpert(zv)clexpert(tec)cz ===
==============================================================
ICQ: 21215917, PGP vitano


D4 Professional Upd.Pack #3 obsahuje vytvareni Ser

[*] Petr Vones <pvones(zv)mbox.vol(tec)cz> - 06.3.1999 18:50:31

Ahoj,

Asi pred dvema dny jsem si nainstaloval Update Pack #3. Ted jsem si vsiml, ze
se v Object Repository (File|New) v zalozce New najednou objevily ikony Service
a Service Application. V popisu zmen u tohoto update packu jsem ale o tom nic
nenasel, nicmene jsme to jeste overili s Petrem Zahradnikem a opravdu je to timto
updatem. Kdysi zde probihala diskuze, ze si z nas Inprise dela legraci, protoze
potrebne unity byly soucasti Delphi Prof. jiz od zacatku. Ted to vypada ze uz to
pochopili i oni a tajne to tam doplnili :-)

--

Internet proti monopolu. Petr Vones, amatersky programator
* http://www.bojkot(tec)cz *
************************

Problem PageControl

[*] Petr Vones <pvones(zv)mbox.vol(tec)cz> - 06.3.1999 18:58:23

Lubos wrote:
>
> Caute Delfinci !
>
> Zasa vas pootravujem s primitivnou chybou.
> Pouzivam CB 3.0.
> Ide o to , ze ked si vygenerujem v PageControl zalozky
> tak mi nejdu potom zmazat.
> Nerozumiem tomu. Ked nacitavam dalsi subor, tak ich potrebujem
> vymazat a vygenerovat nanovo. A pri mazani mi to vzdy padne
> a napise "List index out of bounds (1)" namiesto tej jednotky
> dava niekedy do zatvoriek ine cislo.

Ahoj,

Pokud rusis polozky tak musis brat v uvahu ze kazde stranky je odstranena
okamzite a je i snizen celkovy pocet stranek, takze tu smycku musis napsat
opacne:

procedure TForm1.Button1Click(Sender: TObject);
var
I: Integer;
begin
for I := 1 to 10 do
with TTabSheet.Create(PageControl1) do
begin
PageControl := PageControl1;
Caption := Format('Page%d', [I]);
end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
I: Integer;
begin
for I := PageControl1.PageCount - 1 downto 0 do
PageControl1.Pages[I].Free;
end;

--

Internet proti monopolu. Petr Vones, amatersky programator
* http://www.bojkot(tec)cz *
************************

Problem PageControl

[*] Jiri Heinisch <HeiJu(zv)sol(tec)cz> - 6.3.1999 22:10:12

>a napise "List index out of bounds (1)" namiesto tej jednotky
>dava niekedy do zatvoriek ine cislo.
>
>A takto ich mazem
> for (int i=0; i<pocetstran; i++)
> {
> delete PageControl1->Pages[i];


Ahoj

myslim ze by si mel odmazavat od vrsku

v delphi bych na to sel takto

For PageControll1.PageCount-1 downto do
begin

//AKCE

end;

S pozdravem Jiri Heinisch

D4 Professional Upd.Pack #3 obsahuje vytvareni Ser

[*] Mirun <forcom(zv)telecom(tec)cz> - 7.3.1999 01:07:37

To je z toho duvodu, aby nikdo nemohl rict, ze Inprise vydava jen opravene
bugy, ale ze se skutecne jedna o Update :-)))

Mirun

-----P�vodn� zpr�va-----
Od: Petr Vones <pvones(zv)mbox.vol(tec)cz>
Komu: Konference Delphi <delphi-l(zv)fwd(tec)cz>
Datum: 6. b�ezna 1999 19:17
P�edm�t: D4 Professional Upd.Pack #3 obsahuje vytvareni Service


>Ahoj,
>
>Asi pred dvema dny jsem si nainstaloval Update Pack #3. Ted jsem si vsiml,
ze
>se v Object Repository (File|New) v zalozce New najednou objevily ikony
Service
>a Service Application. V popisu zmen u tohoto update packu jsem ale o tom
nic
>nenasel, nicmene jsme to jeste overili s Petrem Zahradnikem a opravdu je to
timto
>updatem. Kdysi zde probihala diskuze, ze si z nas Inprise dela legraci,
protoze
>potrebne unity byly soucasti Delphi Prof. jiz od zacatku. Ted to vypada ze
uz to
>pochopili i oni a tajne to tam doplnili :-)
>
>--
>
>Internet proti monopolu. Petr Vones, amatersky programator
>* http://www.bojkot(tec)cz *
>************************
>
>

Win, NT

[*] Ing. Ludek Florian <ludan(zv)bluerose(tec)cz> - 7.3.1999 07:16:34


Cauec,

>Typ OS lze jednoduse zjistit dotazem na promenou Win32Platform, ktera je
>deklarovana v SysUtils.


Souhlas, ale zase nevis, jestli je to Win95 nebo Win98.

Bye Ludan

Tray

[*] Ondrej Krajicek <krajicek(zv)promedia(tec)cz> - 7.3.1999 10:02:16

NotifyData by mela byt promenna typu NOTIFYICONDATA,ktery by mel byt
definovan v jednotce shellAPI.
ok

-----P�vodn� zpr�va-----
Od: Ing. Brcko <brcko(zv)pobox.sk>
Komu: delphi-l(zv)fwd(tec)cz <delphi-l(zv)fwd(tec)cz>
Datum: 6. b�ezna 1999 10:57
P�edm�t: Tray


>Myslim ze to uz bolo ale ja to nie som schopny nejak zvladnut.
>Pouzivam RxTrayIcon. Problem je ze neviem ako aplikaciu minimalizovat
do tray-u a ako ju s tadial vytiahnut. Podla tohto navodu:
>
> Shell_NotifyIcon(NIM_ADD,(zv)NotifyData);
> ShowWindow(Wnd,sw_Hide);
>
>to sice mozno chodi ale este sa mi to nepodarilo rozchodit pretoze mi
na NotifiData vzdy hlasi "Unknown identifier" a ani sa mi nepodarilo
zistit v ktorej unite sa nachadza.
>
>A preto prosim tych skusenejsich aby mi pomohli s problemom ako takym
celkovo. ( Step by Step ).
>
> Vdaka
>
>____________________________________
>P. S. V. P. U.
>http://www.pobox.sk/
>

Vypocet

[*] Martin Tichacek <martin_t(zv)mrp(tec)cz> - 7.3.1999 10:15:15

Dovoluji si nesouhlasit - chyba pri vypoctech na floatu byla zalesitosti
intelich pentii. AMD tuto chybu nema a vysledek je stejny :-) ... nebo ze
by AMD tak dokonale imitovalo pentia? :-)))))

a nechcu provokovat, ale chyba byla asi jinde, protoze 144 mi vratil
intel200MMX, AMD k6-2 300 i 40MHz 486DLC (cyrix - neco mezi 3 a 496kou bez
kopru)

ke kompilaci pouzito d4 na int 200MMX. tak a co dal ? :-)))
(nebo zalezi na procesoru, na jakem se to kompiluje???)

Mti.

-----P�vodn� zpr�va-----

>>Navic podle puvodni zpravy J. Nadhery:
>>> Trunc(960/100*15) da na pentiu vysledek 144, na 486 da vysledek 143
>>> Trunc(960*0.15) da na obou pocitacich 144
>>> 144 je spravne a deje se to jenom u cisla 960 (jine, kde se to projevuje
>>jsem nenasel).
>>
>>Takze spatne pry pocita 486 a ne Pentium...
>
>
>Nie je to 486SX (bez koprocesora)? Mohlo by so snad suvisiet so softwarovym
>emulatorom.
>
>Erik Salaj
>erik(zv)dodo.sk
>

CHR fonty

[*] Zdenek Petruj <zpetruj(zv)zebra(tec)cz> - 7.3.1999 10:38:51

Je to tady v Delphi asi trochu od veci, ale do jednoho dosovskeho
grafickeho programu potrebuju dostat cestinu. Nekdy asi pred 8 lety jsem
sehnal jeden soubor ceskych fontu pro BGI (format *.chr), ale to je v
kamenickych a ja bych potreboval Win-1250 nevite nekdo o necem ??? Nebo
nemate nekdo konverzni program z truetype fontu do formatu CHR ?

S pozdravem
Zdenek Petruj
____________________________
adress: Zebra systems, s.r.o.
Spartakovcu 3
708 00 Ostrava - Poruba
Czech republic
____________________________
tel./fax.: +420-(0)69-6912961
+420-(0)69-6912963
e-mail: zpetruj(zv)zebra(tec)cz
internet: http://www.zebra(tec)cz

elementarny problem s C/S

[*] Viliam Mlich <vmlich(zv)mbox.vol(tec)cz> - 7.3.1999 13:32:13

Hello Jaro!

>> Zaujimava je aj varianta, ked aplikacia pred editaciou rekordu
>> poznaci do neho id-klienta. Potom ostatni mozu byt vystrihani,
>> ze pripadna editacia

> To ano. Minimalne to narazi na problem, ze se mohu pod stejnym
>"id-klienta" prihlasit z ruznych stanic, takze to vlastne nic neresi


Ked pomenujem v sieti dve stanice rovnako, je z toho dost dobra sranda
uz pri nabiehani systemu :-). Horsi je pripad, ked si uzivatel otvori
na jednom pocitaci druhe okno s tou istou aplikaciou a pri starte by
zrusil vsetky 'zamky' prveho okna. Takze uplne ID by muselo mat zlozky
pocitac,uzivatel, instancia. Ale bolo by to zbytocne, lebo pre
fungovanie staci jeden bit: volno/obsadene, ostatne je len na
urychlenie automatickeho uvolnovania po zatuhnuti aplikacie.

Hlavne by mala mat datova komponenta pre viacnasobny pristup metodu,
ktora by zarucene naraz vykonala:

lock
if CurrentCRC = OldCRC
rewrite
unlock

ale toto sa musi robit na strane serveru. Klient iba posle, ake mal
rekord CRC v case, ked ho on (pred 10 minutami) cital a este posle nove
hodnoty, ktore by tam rad zapisal, ak nedoslo medzitym k modifikacii. O
tych lockoch aplikacia nemusi vediet, su len na to, aby na serveri
mohlo ist viac threadov.

Bye mailto:vmlich(zv)mbox.vol(tec)cz
V.Mlich http://www(tec)czech-web(tec)cz/~vmlich

D4 Professional Upd.Pack #3 obsahuje vytvareni Ser

[*] Zbysek Hlinka <zhlinka(zv)login(tec)cz> - 7.3.1999 17:50:50

Petr Vones wrote:

> Asi pred dvema dny jsem si nainstaloval Update Pack #3. Ted jsem si vsiml,
> ze se v Object Repository (File|New) v zalozce New najednou objevily ikony
> Service a Service Application. V popisu zmen u tohoto update packu jsem
> ale o tom nic nenasel, nicmene jsme to jeste overili s Petrem Zahradnikem
> a opravdu je to timto updatem. Kdysi zde probihala diskuze, ze si z nas
> Inprise dela legraci, protoze potrebne unity byly soucasti Delphi Prof.
> jiz od zacatku. Ted to vypada ze uz to pochopili i oni a tajne to tam
> doplnili :-)

Patrne ticha rakce na moji recenzi v SWN. :-)) Nebo (spis) dostali
po kusni jeste od mnoha dalsich.


S pozdravem

Zbysek Hlinka
E-mail: zhlinka(zv)login(tec)cz, localizator(zv)localizator.com
Tel.: 02/795 29 56; GSM: 0603 551 282
Krystofova 1016, 149 00 Praha 4
CZ


elementarny problem s C/S

[*] Martin Kubecka <martin.kubecka(zv)amenit(tec)cz> - 07.3.1999 18:08:51

To je podle me neresitelne (u vetsiny aplikaci).

Mac

Petr Zahradnik wrote:

> Rozhodne
> si myslim, ze je mnohem lepsi venovat tomu pri navrhu
> databaze o nekolik hodin vice, aby zadne zamky potreba
> vubec nebyly...

--
==============================================================
= Ing. Martin Kubecka - Amenit s.r.o. =
= Na Valech - budova Dytron, 741 01 Novy Jicin =
= telefon/fax: +420 656 706203 mobil: +420 603 265926 =
= http://www.amenit(tec)cz mailto:martin.kubecka(zv)amenit(tec)cz =
= ICQ: 8906773 GSM (SMS): martin.kubecka(zv)sms.paegas(tec)cz =
==============================================================

elementarny problem s C/S

[*] Richard Willmann <sales(zv)nocomment.sk> - 7.3.1999 18:14:29

preco preboha?

pri editovani by sa zaznam zamkol a ak by baba nebola schopna do 30 minut
ukoncit editaciu tak by jej pri naslednom poste system uopzornil ze je krava
a nema sa vykecavat a ma robit. Takymto sposobom by sa dalo vyhnut
zatvrdnutiu celeho systemu.

rw

-----Original Message-----
From: Petr Zahradnik <clexpert(zv)clexpert(tec)cz>
To: delphi-l(zv)fwd(tec)cz <delphi-l(zv)fwd(tec)cz>
Date: 6. marec 1999 18:25
Subject: Re: elementarny problem s C/S


Puvodni zprava, kterou napsal Richard Willmann dne 6 Mar 99,:

> idealny by bol zamok s moznostou definicie hodnoty time-out po ktorej by
> sa automaticky zrusi.

No tak to je pak zamek na nic, kdyz neni na 100%. Rozhodne
si myslim, ze je mnohem lepsi venovat tomu pri navrhu
databaze o nekolik hodin vice, aby zadne zamky potreba
vubec nebyly...


S pozdravem
Petr Zahradnik, pocitacovy expert

Autorizovany dealer TurboPower Software... knihovny pro Delphi
==============================================================
=== Petr Zahradnik - Computer Laboratory ===
=== Obvodova 740/14, PO BOX 15, 400 07 Usti nad Labem 7 ===
=== telefon: 047-5500610, telefon/fax: 047-5501627 ===
=== mobilni telefon GSM (hotline): 0602-409601 ===
=== http://www.clexpert(tec)cz/ clexpert(zv)clexpert(tec)cz ===
==============================================================
ICQ: 21215917, PGP vitano


elementarny problem s C/S

[*] Martin Kubecka <martin.kubecka(zv)amenit(tec)cz> - 07.3.1999 19:29:15

Jan �ebel�k wrote:

> Jsem rad, ze se mnou Martin "v zasade souhlasi" (viz nize).

:-)

> Ma tam sice nejake "ale", jenze to by se nam ta diskuse uz moc rozplizla.
>
> Nejvic se mi libi jeho myslenka osetreni techto problemu na aplikacnim serveru. Tam si s tim mohu opravdu delat, co chci.

Ze jo, me se to taky libi, ale zatim to moc neumim :-(

> Co takhle dokonce poslat aplikacnimu serveru interface na vlastni metody na klientovi, ktere mu "pomohou" problem resit tak, jak si to klient preje.

To nezni spatne.

Ono tu uz vubec padlo nekolik zajimavych napadu. Co se mi libi asi tak nejvice:

Jaro:> 1. Resit predevsim logiku databaze tak, aby pri provozu dochazelo
> k co nejmensimu mnozstvi koliznich situaci.
> V kritickych mistech je mozne zavest historii zaznamu
> 2. Vytvorit system pristupovych prav pro zakladani, zmeny a ruseni zaznamu
> 3. Vyuzit transakce
> 4. Podle charakteru ulohy zvazovat pravdepodobnost vzniku koliznich situaci
> a v konkretnich pripadech zajistit osetreni takoveho stavu. Nejcasteji
> asi oznamenim o zmene a nasledne reseni situace. Casto se to resi
> prostym oznamenim, ze neni mozne zmeny ulozit v pripadech, kdy
> pravdepodobnost vzniku podobne situace je miziva. Pokud by se jednalo
> o nepripustnou ztratu, je mozne zalozit napr. novy zaznam.
> 5. Zamkum bych se pokud mozno vyhybal. Umite si predstavit, jak vytvorit
> docasny zamek na databazi, ktera se ma replikovat?
>

1-3 - souhlas.
4 - neni dostatecne obecne (pokud bychom meli neco obecneho, funkcniho a jednoduse aplikovatelneho / v komponente?/ pak neni problem to pouzivat i na 'jednoduche' situace
5 - tady bych si dovolil objasnit zamky a zamky :-) Jaro IMHO patrne mysli zamky na bazi serveru (tzn. page lock, table lock, row lock), ktere blokuji udaje pro dalsi
transakce atd. V tom pripade je skutecne potreba se jim co nejvice vyhybat (myslim tim pro sitovou editaci udaju), ale zase se to neda vzit tak nejak obecne (zalezi na
situaci). Druhym "typem" je zamek (v podstate nejaky priznak) definujici moznost editace urciteho zaznamu (cili jakoby zamek na strane klienta). Osobne bych ho nejradeji
videl na strane aplikacniho serveru jako 'mezivrstvy' mezi klientem a databazi.

Pak se mi libily postrehy Viktora, ovsem nejsem si jist, ze by nektere z techto reseni bylo to spravne ale nektere by mohly byt v jistych situacich vhodnym resenim.> * pokusis se konflikt nejak inteligentne vyresit sam, tj. napises soft,
> ktery rozhodne, zda lze dva modifikovane radky nejakym zpusobem sloucit.
> Pokud se nemenily tytez sloupce, proc by to neslo? Je to dokonale reseni,
> ale myslim, ze neni treba uzivatele tak rozmazlovat.
>
> * u kazde zmeny ukladas jeji semantiku, jinak receno posloupnost akci,
> ktere transformuji puvodni radek do nove podoby. Ten pozdejsi uzivatel
> obdrzi zpravu, ze pracoval na neaktualnich datech a posloupnost akci, ktere
> provedl, se zopakuje na tech, ktera dodal uzivatel 1. Fantazie, ovsem nekdy
> to muze vest k necekanym vysledkum. Vsechno zazalohuj.
>

Padla samozrejme spousta dalsich zajimavych postrehu.

Pojdme se pokusit nejakym zpusobem definovat principy chovani v siti, ktere by mela mit poradna aplikace. Rad bych, kdyby se nam podarilo dojit k necemu konkretnimu, co by
se dalo opravdu pouzit v praxi a podarilo se to zahrnout do Delphree ADO (nebo DBEasy).

Takze ted vypisu pozadavky na zamykani databaze (vychazim z toho co me trapi a jak to resim nyni) a pojdme to nejak propracovat:

Problemy C/S verze 1.0
=================

1. Zamky

1.1 V jednom casovem okamziku muze provadet editaci pouze jeden uzivatel

Tabulka LOCKS se sloupci:

(nazev - typ - pokec)
id - autoincrement - primarni klic (z principu ;-)
object - string - obsahuje jmeno meneneho objektu (napr. nazev tabulky)
object_id - long integer - obsahuje id radku v editovanem objektu - jednoznacne idetifikuje, ktery zaznam je zamcen
user_id - long integer - jednoznacny identifikator uzivatele (majitele zamku) - ja mam treba vlastni seznam uzivatelu
station - string - jmeno pracovni stanice (pocitace) na kterem je uzivatel (majitel zamku) prihlasen - idealni by byl nejaky jednoznacny identifikator (ale mam pocit, ze v
siti nelze mit dva pocitace se stejnym jmenem - nebo ano?)
time - datetime - cas vytvoreni zamku
status - ??? - pripadny stav zamku (treba priorita, druh atd.) - osobne zatim nepouzivam ;-)
expire - platnost zamku (momentalne nevyuzivam - videl bych to na aplikacni server)

Funkce:

BeforeEdit: zkontroluji zda existuje nejaky radek v tabulce LOCKS pro object a object_id. Pokud existuje, zobrazim hlaseni ze je zaznam prave upravovan uzivatelem user_id
na pocitaci station od casu time. Pokud zamek neexistuje vytvorim zamek pro dany object, object_id, user_id, station, time atd. a umoznim editaci.

(totez pro BeforeDelete)

AfterPost: pokud se nejednalo o Insert (neni nutno zamykat a ani to v principu nelze pro neulozeny zaznam udelat) tak smaze zamek. Pokud jej nenalezne tak jej nekdo patrne
odstranil (zamek) a mela by se nabidnout nejaka moznost jak to resit (??? diskuze ???).

AfterCancel: (totez jako pro AfterPost)

Moznosti:

Rucni odstraneni (sestreleni) zamku - pro narocne nejlepe ve 3D provedeni DOOM like ;-) - zobrazi tabulku LOCKS a umozni urcity zamek odstranit (nebo treba jen zmenit jeho
status - zamek by se odstranil az po ukonceni editece prvotnim majitelem zamku). Toto je nutne pro pripad: kdy si ta baba odbehne k Viktorovi na parek s rohlikem ;-). Mozno
resit i pripadnym casovym vyprsenim platnosti zamku (jako programator bych mel rad moznost volby chovani zamku (casova expirace, rucni smazani(editace) ci oboje atd.- neco
na zpusob volby vlastnosti v komponente)).

Pozadavky:

Asi by bylo fajn, kdyby bylo mozno zadat vice objektu k zamceni (volitelne). Napr. pro pripad SELECTu z vice databazi (pres joiny). Obcas by se mi hodila moznost zamknout
zaznam soucasne i v jine tabulce (aby to co zapisuju, bylo opravdu to co zapisu).

1.2. Editaci smi provadet vice uzivatelu najednou

(jen kratce - doplnim v dalsi verzi :-)

BeforePost: - zkontroluje aktualni data na serveru a pokud zjisti zmeny nabidne reseni (ulozit, zrusit, porovnat zmeny v zavislosti na zmenenych udajich - nastaveni pro
jednotliva pole atd.). Toto asi bude podstatne slozitejsi nez bod 1.

2. Logovani zmen

Pro archivaci provedenych zmen v databazi (INSERT, UPDATE, DELETE). Ono to sice delaji i SQL servery, ale nejak se mi to nezda dvakrat idealni (ovsem je taky mozne, ze to
neumim pouzivat). Tato volba by mela byt volitelna (Log changes: True/False).

Tabulka LOGS se sloupci:

id_log - autoincrement - primarni klic (z principu ;-)
object - string - obsahuje jmeno meneneho objektu (napr. nazev tabulky)
object_id - long integer - obsahuje id radku - jednoznacne idetifikuje zaznam
user_id - long integer - jednoznacny identifikator uzivatele (majitele zamku)
time - datetime - cas a datum operace
typ - integer - typ provedene zmeny (zatim pouzivam jen UPDATE, INSERT, DELETE - zamopnel jsem na neco)
old_value - varchar(3800) - puvodni hodnota
new_value - varchar(3800) - nova hodnota

(old_value, new_value - ten varchar mi pripada nejlepsi - zalezi na typu databaze). Do old_value a new_value zapisuju radek tabulky (hodnoty jednotlivych sloupcu
oddelenych znakem '|' ) cili asi takto: 'Zeleny|Hugo|1|452|Amenit'.

Problemy:

Nejvetsi asi se zaznamem zmenenych udaju:

- omezeni velikosti (pokud by se to nepsalo treba do BLOBu - coz se mi nezda idealni - nebo ano?)
- otazka, zda archivovat je id se souvisejicich tabulek (lookup pole) nebo hodnoty se souvisejicich tabulek ???
- oddelovac '|' taky neni asi uplne idealni (osobne jsem tento znak ale niky nepouzival jako data v databazi)

-------------------- konec ----------------------

Cele bych to videl jako soucast komponenty (nejlepe pro ADO ;-) nebo spise jako pridavne komponenty (chci logovat zmeny - pridam komponentu, chci zamykat - pridam jinou).
Navrhujte - zavrhujte.

Ufffff a hodina casu v trapu ;-)

Ahoj

Mac

--
==============================================================
= Ing. Martin Kubecka - Amenit s.r.o. =
= Na Valech - budova Dytron, 741 01 Novy Jicin =
= telefon/fax: +420 656 706203 mobil: +420 603 265926 =
= http://www.amenit(tec)cz mailto:martin.kubecka(zv)amenit(tec)cz =
= ICQ: 8906773 GSM (SMS): martin.kubecka(zv)sms.paegas(tec)cz =
==============================================================

elementarny problem s C/S

[*] Petr Zahradnik <clexpert(zv)clexpert(tec)cz> - 7.3.1999 19:45:36

Puvodni zprava, kterou napsal Richard Willmann dne 7 Mar 99,:

> preco preboha?

Protoze podle meho nazoru jsou zamky pozustatkem souborovych
databazi. Nekdo muze mit jiny nazor.

> pri editovani by sa zaznam zamkol a ak by baba nebola schopna do 30 minut
> ukoncit editaciu tak by jej pri naslednom poste system uopzornil ze je
> krava a nema sa vykecavat a ma robit. Takymto sposobom by sa dalo vyhnut
> zatvrdnutiu celeho systemu.

Na to ji muze upozornit sam software a nebo to muze sam uvolnit.
Ale prosimte, 30 minut, to je tragedie... kdyz tech bab bude
vic a kazda si zamkne na 30 minut, tak potes pambu... to je pak
prdlajs platne, ze te babe nekdo vynada...


S pozdravem
Petr Zahradnik, pocitacovy expert

Autorizovany dealer TurboPower Software... knihovny pro Delphi
==============================================================
=== Petr Zahradnik - Computer Laboratory ===
=== Obvodova 740/14, PO BOX 15, 400 07 Usti nad Labem 7 ===
=== telefon: 047-5500610, telefon/fax: 047-5501627 ===
=== mobilni telefon GSM (hotline): 0602-409601 ===
=== http://www.clexpert(tec)cz/ clexpert(zv)clexpert(tec)cz ===
==============================================================
ICQ: 21215917, PGP vitano


Pomozte mi s errorem v aplikaci

[*] Ing. Zdenek Sraier <sraierzd(zv)czn(tec)cz> - 7.3.1999 20:27:20

----------
> Odes�latel: Petr Vones <pvones(zv)mbox.vol(tec)cz>
> Datum: 5. b�ezna 1999 23:38
>
> procedure TForm1.Button1Click(Sender: TObject);
> var
> pDesc: pLDDesc;
> Loss: LongBool;
> Len: Integer;
> Source, Dest: String;
> begin
> Source := 'Text';
>
> Len := Length(Source);
> SetLength(Dest, Len); // <- Tohle ti tam chybelo, musis alokovat pamet pro retezec

Tak timhle si me dostal. Proooc tahle ta konstrukce ?
SetLength se pouziva pro nastaveni NOVE delky retezce (nebo pole).
Ty ale nactes stavajici delku retezce a v druhem kroku ji temuz
retezci nastavis.

Vzalo me to tak, ze jsem si otevrel help i dokonce manual !!! :-))).
Nic jsem k tomu ale nenasel.
To urcite bude nejake utajene kouzlo. Prosim vysvetli.

S pozdravem Zdenek

--------------------------------------- E-Mail -------------------------
| Zdenek Sraier | sraierzd(zv)czn(tec)cz (jednou denne) |
| o__o | zdenek.sraier(zv)sms.paegas(tec)cz (max 160 zn. kdykoliv) |
| ( o o) |--------------------- WWW --------------------------|
| (. .) | http://users(tec)czn(tec)cz/~sraierzd/ |
------------------------------------------------------------------------
| WWW Stranky Potapecske (SP) HTTP://www.byll(tec)cz/scuba/ |
------------------------------------------------------------------------


elementarny problem s C/S

[*] Richard Willmann <sales(zv)nocomment.sk> - 7.3.1999 21:07:27

ked tak nad tym rozmyslam, mas pravdu.

rw
-----Original Message-----
From: Petr Zahradnik <clexpert(zv)clexpert(tec)cz>
To: delphi-l(zv)fwd(tec)cz <delphi-l(zv)fwd(tec)cz>
Date: 7. marec 1999 20:01
Subject: Re: elementarny problem s C/S


Puvodni zprava, kterou napsal Richard Willmann dne 7 Mar 99,:

> preco preboha?

Protoze podle meho nazoru jsou zamky pozustatkem souborovych
databazi. Nekdo muze mit jiny nazor.

> pri editovani by sa zaznam zamkol a ak by baba nebola schopna do 30 minut
> ukoncit editaciu tak by jej pri naslednom poste system uopzornil ze je
> krava a nema sa vykecavat a ma robit. Takymto sposobom by sa dalo vyhnut
> zatvrdnutiu celeho systemu.

Na to ji muze upozornit sam software a nebo to muze sam uvolnit.
Ale prosimte, 30 minut, to je tragedie... kdyz tech bab bude
vic a kazda si zamkne na 30 minut, tak potes pambu... to je pak
prdlajs platne, ze te babe nekdo vynada...


S pozdravem
Petr Zahradnik, pocitacovy expert

Autorizovany dealer TurboPower Software... knihovny pro Delphi
==============================================================
=== Petr Zahradnik - Computer Laboratory ===
=== Obvodova 740/14, PO BOX 15, 400 07 Usti nad Labem 7 ===
=== telefon: 047-5500610, telefon/fax: 047-5501627 ===
=== mobilni telefon GSM (hotline): 0602-409601 ===
=== http://www.clexpert(tec)cz/ clexpert(zv)clexpert(tec)cz ===
==============================================================
ICQ: 21215917, PGP vitano


Seznam instalovanych modemu Win95

[*] Petr Vones <pvones(zv)mbox.vol(tec)cz> - 07.3.1999 22:52:08

Karel Kral wrote:
>
> Muzete me poradit, jak bych z registru ziskal seznam nainstalovanych
> modemu, tak, jak ho vidim v Ovladaci panely -> Modemy?
> --

Ahoj,

Tady je cast kodu kde se ziskava seznam dostupnych TAPI zarizeni. Delphi
stale neobsahuje konverze hlavickovych souboru TAPI, takze si jej musis
stahnout napriklad z Delphi-Jedi (http://www.delphi-jedi.org).

uses Tapi;

{$R *.DFM}

procedure TempCallback(hDevice, dwMsg, dwCallbackInstance,
dwParam1, dwParam2, dwParam3: DWORD); stdcall;
begin
end;

procedure TForm1.BuildTapiDevicesCombo;
var
LA: HLineApp;
I, NumDevs, TapiVersion: Integer;
ExtId: TLineExtensionID;
LineDevCaps: LPLineDevCaps;
LineCapsSize: Integer;
Name: String;
begin
LineCapsSize := 16384; // to by melo stacit....
with TapiDeviceCombo.Items do
begin
BeginUpdate;
try
Clear;
GetMem(LineDevCaps, LineCapsSize);
try
if lineInitialize((zv)LA, HInstance, TempCallback, nil, (zv)NumDevs) >= 0 then
for I := 0 to NumDevs - 1 do
if lineNegotiateAPIVersion(LA, I, $00010000, $10000000, (zv)TapiVersion, (zv)ExtId) = 0 then
begin
FillChar(LineDevCaps^, LineCapsSize, 0);
LineDevCaps^.dwTotalSize := LineCapsSize;
if lineGetDevCaps(LA, I, TapiVersion, 0, LineDevCaps) <> LINEERR_STRUCTURETOOSMALL then
with LineDevCaps^ do
SetString(Name, PChar(LineDevCaps) + dwLineNameOffset, dwLineNameSize);
Add(Name);
end;
lineShutDown(LA);
finally
FreeMem(LineDevCaps, LineCapsSize);
end;
finally
EndUpdate;
end;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
BuildTapiDevicesCombo;
TapiDeviceCombo.ItemIndex := 0;
end;

--

Internet proti monopolu. Petr Vones, amatersky programator
* http://www.bojkot(tec)cz *
************************

elementarny problem s C/S

[*] Mirun <forcom(zv)telecom(tec)cz> - 7.3.1999 23:52:57

Ahoj,
delsi dobu sleduji se zaujetim Vas "thread" o zamcich. Mohl by mi nekdo
uvest jediny rozumny duvod z praxe,proc jakykoliv zaznam zamykat ?
(nemyslim tim aby jste mi vysvetlovali teorii a proc se to dela, ale chci
znat Vas konkretni pripad v praxi, ktery nema reseni bez pouziti uzamceni)
Diky
Mirun

-----P�vodn� zpr�va-----
Od: Martin Kubecka <martin.kubecka(zv)amenit(tec)cz>
Komu: delphi-l(zv)fwd(tec)cz <delphi-l(zv)fwd(tec)cz>
Datum: 7. b�ezna 1999 19:36
P�edm�t: Re: elementarny problem s C/S


Jan �ebel�k wrote:

> Jsem rad, ze se mnou Martin "v zasade souhlasi" (viz nize).

:-)

> Ma tam sice nejake "ale", jenze to by se nam ta diskuse uz moc rozplizla.
>
> Nejvic se mi libi jeho myslenka osetreni techto problemu na aplikacnim
serveru. Tam si s tim mohu opravdu delat, co chci.

Ze jo, me se to taky libi, ale zatim to moc neumim :-(

> Co takhle dokonce poslat aplikacnimu serveru interface na vlastni metody
na klientovi, ktere mu "pomohou" problem resit tak, jak si to klient preje.

To nezni spatne.

Ono tu uz vubec padlo nekolik zajimavych napadu. Co se mi libi asi tak
nejvice:

Jaro:> 1. Resit predevsim logiku databaze tak, aby pri provozu dochazelo
> k co nejmensimu mnozstvi koliznich situaci.
> V kritickych mistech je mozne zavest historii zaznamu
> 2. Vytvorit system pristupovych prav pro zakladani, zmeny a ruseni zaznamu
> 3. Vyuzit transakce
> 4. Podle charakteru ulohy zvazovat pravdepodobnost vzniku koliznich
situaci
> a v konkretnich pripadech zajistit osetreni takoveho stavu. Nejcasteji
> asi oznamenim o zmene a nasledne reseni situace. Casto se to resi
> prostym oznamenim, ze neni mozne zmeny ulozit v pripadech, kdy
> pravdepodobnost vzniku podobne situace je miziva. Pokud by se jednalo
> o nepripustnou ztratu, je mozne zalozit napr. novy zaznam.
> 5. Zamkum bych se pokud mozno vyhybal. Umite si predstavit, jak vytvorit
> docasny zamek na databazi, ktera se ma replikovat?
>

1-3 - souhlas.
4 - neni dostatecne obecne (pokud bychom meli neco obecneho, funkcniho a
jednoduse aplikovatelneho / v komponente?/ pak neni problem to pouzivat i na
'jednoduche' situace
5 - tady bych si dovolil objasnit zamky a zamky :-) Jaro IMHO patrne mysli
zamky na bazi serveru (tzn. page lock, table lock, row lock), ktere blokuji
udaje pro dalsi
transakce atd. V tom pripade je skutecne potreba se jim co nejvice vyhybat
(myslim tim pro sitovou editaci udaju), ale zase se to neda vzit tak nejak
obecne (zalezi na
situaci). Druhym "typem" je zamek (v podstate nejaky priznak) definujici
moznost editace urciteho zaznamu (cili jakoby zamek na strane klienta).
Osobne bych ho nejradeji
videl na strane aplikacniho serveru jako 'mezivrstvy' mezi klientem a
databazi.

Pak se mi libily postrehy Viktora, ovsem nejsem si jist, ze by nektere z
techto reseni bylo to spravne ale nektere by mohly byt v jistych situacich
vhodnym resenim.> * pokusis se konflikt nejak inteligentne vyresit sam, tj. napises soft,
> ktery rozhodne, zda lze dva modifikovane radky nejakym zpusobem sloucit.
> Pokud se nemenily tytez sloupce, proc by to neslo? Je to dokonale reseni,
> ale myslim, ze neni treba uzivatele tak rozmazlovat.
>
> * u kazde zmeny ukladas jeji semantiku, jinak receno posloupnost akci,
> ktere transformuji puvodni radek do nove podoby. Ten pozdejsi uzivatel
> obdrzi zpravu, ze pracoval na neaktualnich datech a posloupnost akci,
ktere
> provedl, se zopakuje na tech, ktera dodal uzivatel 1. Fantazie, ovsem
nekdy
> to muze vest k necekanym vysledkum. Vsechno zazalohuj.
>

Padla samozrejme spousta dalsich zajimavych postrehu.

Pojdme se pokusit nejakym zpusobem definovat principy chovani v siti, ktere
by mela mit poradna aplikace. Rad bych, kdyby se nam podarilo dojit k necemu
konkretnimu, co by
se dalo opravdu pouzit v praxi a podarilo se to zahrnout do Delphree ADO
(nebo DBEasy).

Takze ted vypisu pozadavky na zamykani databaze (vychazim z toho co me trapi
a jak to resim nyni) a pojdme to nejak propracovat:

Problemy C/S verze 1.0
=================

1. Zamky

1.1 V jednom casovem okamziku muze provadet editaci pouze jeden uzivatel

Tabulka LOCKS se sloupci:

(nazev - typ - pokec)
id - autoincrement - primarni klic (z principu ;-)
object - string - obsahuje jmeno meneneho objektu (napr. nazev tabulky)
object_id - long integer - obsahuje id radku v editovanem objektu -
jednoznacne idetifikuje, ktery zaznam je zamcen
user_id - long integer - jednoznacny identifikator uzivatele (majitele
zamku) - ja mam treba vlastni seznam uzivatelu
station - string - jmeno pracovni stanice (pocitace) na kterem je uzivatel
(majitel zamku) prihlasen - idealni by byl nejaky jednoznacny identifikator
(ale mam pocit, ze v
siti nelze mit dva pocitace se stejnym jmenem - nebo ano?)
time - datetime - cas vytvoreni zamku
status - ??? - pripadny stav zamku (treba priorita, druh atd.) - osobne
zatim nepouzivam ;-)
expire - platnost zamku (momentalne nevyuzivam - videl bych to na aplikacni
server)

Funkce:

BeforeEdit: zkontroluji zda existuje nejaky radek v tabulce LOCKS pro object
a object_id. Pokud existuje, zobrazim hlaseni ze je zaznam prave upravovan
uzivatelem user_id
na pocitaci station od casu time. Pokud zamek neexistuje vytvorim zamek pro
dany object, object_id, user_id, station, time atd. a umoznim editaci.

(totez pro BeforeDelete)

AfterPost: pokud se nejednalo o Insert (neni nutno zamykat a ani to v
principu nelze pro neulozeny zaznam udelat) tak smaze zamek. Pokud jej
nenalezne tak jej nekdo patrne
odstranil (zamek) a mela by se nabidnout nejaka moznost jak to resit (???
diskuze ???).

AfterCancel: (totez jako pro AfterPost)

Moznosti:

Rucni odstraneni (sestreleni) zamku - pro narocne nejlepe ve 3D provedeni
DOOM like ;-) - zobrazi tabulku LOCKS a umozni urcity zamek odstranit (nebo
treba jen zmenit jeho
status - zamek by se odstranil az po ukonceni editece prvotnim majitelem
zamku). Toto je nutne pro pripad: kdy si ta baba odbehne k Viktorovi na
parek s rohlikem ;-). Mozno
resit i pripadnym casovym vyprsenim platnosti zamku (jako programator bych
mel rad moznost volby chovani zamku (casova expirace, rucni smazani(editace)
ci oboje atd.- neco
na zpusob volby vlastnosti v komponente)).

Pozadavky:

Asi by bylo fajn, kdyby bylo mozno zadat vice objektu k zamceni (volitelne).
Napr. pro pripad SELECTu z vice databazi (pres joiny). Obcas by se mi hodila
moznost zamknout
zaznam soucasne i v jine tabulce (aby to co zapisuju, bylo opravdu to co
zapisu).

1.2. Editaci smi provadet vice uzivatelu najednou

(jen kratce - doplnim v dalsi verzi :-)

BeforePost: - zkontroluje aktualni data na serveru a pokud zjisti zmeny
nabidne reseni (ulozit, zrusit, porovnat zmeny v zavislosti na zmenenych
udajich - nastaveni pro
jednotliva pole atd.). Toto asi bude podstatne slozitejsi nez bod 1.

2. Logovani zmen

Pro archivaci provedenych zmen v databazi (INSERT, UPDATE, DELETE). Ono to
sice delaji i SQL servery, ale nejak se mi to nezda dvakrat idealni (ovsem
je taky mozne, ze to
neumim pouzivat). Tato volba by mela byt volitelna (Log changes:
True/False).

Tabulka LOGS se sloupci:

id_log - autoincrement - primarni klic (z principu ;-)
object - string - obsahuje jmeno meneneho objektu (napr. nazev tabulky)
object_id - long integer - obsahuje id radku - jednoznacne idetifikuje
zaznam
user_id - long integer - jednoznacny identifikator uzivatele (majitele
zamku)
time - datetime - cas a datum operace
typ - integer - typ provedene zmeny (zatim pouzivam jen UPDATE, INSERT,
DELETE - zamopnel jsem na neco)
old_value - varchar(3800) - puvodni hodnota
new_value - varchar(3800) - nova hodnota

(old_value, new_value - ten varchar mi pripada nejlepsi - zalezi na typu
databaze). Do old_value a new_value zapisuju radek tabulky (hodnoty
jednotlivych sloupcu
oddelenych znakem '|' ) cili asi takto: 'Zeleny|Hugo|1|452|Amenit'.

Problemy:

Nejvetsi asi se zaznamem zmenenych udaju:

- omezeni velikosti (pokud by se to nepsalo treba do BLOBu - coz se mi nezda
idealni - nebo ano?)
- otazka, zda archivovat je id se souvisejicich tabulek (lookup pole) nebo
hodnoty se souvisejicich tabulek ???
- oddelovac '|' taky neni asi uplne idealni (osobne jsem tento znak ale niky
nepouzival jako data v databazi)

-------------------- konec ----------------------

Cele bych to videl jako soucast komponenty (nejlepe pro ADO ;-) nebo spise
jako pridavne komponenty (chci logovat zmeny - pridam komponentu, chci
zamykat - pridam jinou).
Navrhujte - zavrhujte.

Ufffff a hodina casu v trapu ;-)

Ahoj

Mac

--
==============================================================
= Ing. Martin Kubecka - Amenit s.r.o. =
= Na Valech - budova Dytron, 741 01 Novy Jicin =
= telefon/fax: +420 656 706203 mobil: +420 603 265926 =
= http://www.amenit(tec)cz mailto:martin.kubecka(zv)amenit(tec)cz =
= ICQ: 8906773 GSM (SMS): martin.kubecka(zv)sms.paegas(tec)cz =
==============================================================

elementarny problem s C/S

[*] Jaro <jaro(zv)sinea(tec)cz> - 8.3.1999 00:45:36

>pri editovani by sa zaznam zamkol a ak by baba nebola schopna do 30 minut
>ukoncit editaciu tak by jej pri naslednom poste system uopzornil ze je
krava
>a nema sa vykecavat a ma robit. Takymto sposobom by sa dalo vyhnut
>zatvrdnutiu celeho systemu.
----------------------
URCITE NEDALO !!! I nekolik minut muze byt nepripustne dlouha doba!
Nevymyslejte hlouposti.

Vzdyt i muj jmenovec Jara CIMRMAN, prukopnik slepych
ulicek, prece jiz davno zjistil, ze tudy cesta opravdu nevede. Kdyz na sve
prvni CimrBazi zkousel poprve scitat pocty pivniku v Cechach, zjistil, ze
tato cesta k cili nevede, protoze zadny poradny cesky pivnik
nevydrzi byt 30 minut strizlivy! Mimochodem, to vite, ze i tenhle jeho
genialni vynalez mu ukradli? Nejakej pan Oracle nebo tak nejak se jmenoval.
Nechte si od Jary poradit a pustte zamky z hlavy.

Ale vazne.
Kdy je ktery cas kratky a kdy dlouhy. Tohle nic neresi. Nekdy je minuta
dlouho a nekdy nestaci ani pul hodiny. Vazne si nekdo mysli, ze by program
mohl fungovat na vetsim poctu stanic, kdyby tam byly takovehle zamky?
K omylu casto dochazi chybnou predstavou, ze je blokovan jen ten jediny
zaznam a ze pravdepodobnost, ze dva klienti budou chtit pracovat na jednom
zaznamu, je mala a tudiz zamky vlastne nicemu nevadi. Jenze programy
byvaji trochu slozitejsi. Vezmeme jednoduchy priklad. Mejme sklad a skladove
karty. Na sklade se udrzuje aktualni stav zasoby a pocita se prumerna cena.
Z toho duvodu se vzdy po ulozeni prijmoveho nebo vydajoveho dokladu spusti
ulozena procedura, ktera pro vsechny skladove karty pouzite na vytvorenem
dokladu vypocita aktualni stav zasob a zapise je do techto karet. Kdyz
narazi na zamek, ma moznost cekat nebo vyhlasit chybu. V prvnim pripade by
ulozeni jednoho prijmoveho dokladu mohlo trvat cele hodiny, ve druhem
pripade by to s velkou pravdepodobnosti stale hlasilo chybu. Nektere
transakce jdou proste a jednoduse napric databazi a zamky jsou zde
vylouceny.
Proc nejsou na Interbazi zamky? Nekdo to vidi jako nedostatek. Ja ne.
Pouziti zamku je prece velmi snadne, tak proc si lamat hlavu s logikou a
integritou databaze. Hodne programatoru k tomu snadno sklouzne, zejmena
tech, kteri prechazeji od souboru. V souborech to mnohdy je nutnosti,
protoze tam zcela chybi transakce, prvky integrity, trigry a pod. Casto se
divim jak nekteri programatori namisto, aby se zajimali o efektivni a mocne
prostredky databazovych stroju, tak hledaji sve oblibene zamky. Kdysi jsem
programoval ve FoxPro a bez zamku jsem neudelal ani ranu. Take mi to chvili
trvalo, tak vim o cem pisu. Ted zamky nepotrebuji k nicemu. Mozna se najdou
situace s jejich opodstatnenim. Ja nerikam, ze se nemohou nikdy pouzit, ale
rozhodne by se nemely pouzivat tam, kde se to da zaridit bez nich. To je
urcite vetsina pripadu.
Jaro.>preco preboha?
>
>pri editovani by sa zaznam zamkol a ak by baba nebola schopna do 30 minut
>ukoncit editaciu tak by jej pri naslednom poste system uopzornil ze je
krava
>a nema sa vykecavat a ma robit. Takymto sposobom by sa dalo vyhnut
>zatvrdnutiu celeho systemu.
>
>rw
>
>-----Original Message-----
>From: Petr Zahradnik <clexpert(zv)clexpert(tec)cz>
>To: delphi-l(zv)fwd(tec)cz <delphi-l(zv)fwd(tec)cz>
>Date: 6. marec 1999 18:25
>Subject: Re: elementarny problem s C/S
>
>
>Puvodni zprava, kterou napsal Richard Willmann dne 6 Mar 99,:
>
>> idealny by bol zamok s moznostou definicie hodnoty time-out po ktorej by
>> sa automaticky zrusi.
>
>No tak to je pak zamek na nic, kdyz neni na 100%. Rozhodne
>si myslim, ze je mnohem lepsi venovat tomu pri navrhu
>databaze o nekolik hodin vice, aby zadne zamky potreba
>vubec nebyly...
>
>
>S pozdravem
> Petr Zahradnik, pocitacovy expert
>
>Autorizovany dealer TurboPower Software... knihovny pro Delphi
>==============================================================
>=== Petr Zahradnik - Computer Laboratory ===
>=== Obvodova 740/14, PO BOX 15, 400 07 Usti nad Labem 7 ===
>=== telefon: 047-5500610, telefon/fax: 047-5501627 ===
>=== mobilni telefon GSM (hotline): 0602-409601 ===
>=== http://www.clexpert(tec)cz/ clexpert(zv)clexpert(tec)cz ===
>==============================================================
>ICQ: 21215917, PGP vitano
>

Memo1

elementarny problem s C/S

[*] Jaro <jaro(zv)sinea(tec)cz> - 8.3.1999 00:47:49

A proc myslis. Ja to vyresil (u vetsiny aplikaci)
Jaro


>To je podle me neresitelne (u vetsiny aplikaci).
>Mac
>
>Petr Zahradnik wrote:
>
>> Rozhodne
>> si myslim, ze je mnohem lepsi venovat tomu pri navrhu
>> databaze o nekolik hodin vice, aby zadne zamky potreba
>> vubec nebyly...
>
>--
>==============================================================
>= Ing. Martin Kubecka - Amenit s.r.o. =
>= Na Valech - budova Dytron, 741 01 Novy Jicin =
>= telefon/fax: +420 656 706203 mobil: +420 603 265926 =
>= http://www.amenit(tec)cz mailto:martin.kubecka(zv)amenit(tec)cz =
>= ICQ: 8906773 GSM (SMS): martin.kubecka(zv)sms.paegas(tec)cz =
>==============================================================
>
>

elementarny problem s C/S

[*] Petr Zahradnik <clexpert(zv)clexpert(tec)cz> - 8.3.1999 01:09:58

Puvodni zprava, kterou napsal Martin Kubecka dne 7 Mar 99,:

> > Rozhodne
> > si myslim, ze je mnohem lepsi venovat tomu pri navrhu
> > databaze o nekolik hodin vice, aby zadne zamky potreba
> > vubec nebyly...
>
> To je podle me neresitelne (u vetsiny aplikaci).

To ale podle meho nazoru rozhodne neni pravda.


S pozdravem
Petr Zahradnik, pocitacovy expert

Autorizovany dealer TurboPower Software... knihovny pro Delphi
==============================================================
=== Petr Zahradnik - Computer Laboratory ===
=== Obvodova 740/14, PO BOX 15, 400 07 Usti nad Labem 7 ===
=== telefon: 047-5500610, telefon/fax: 047-5501627 ===
=== mobilni telefon GSM (hotline): 0602-409601 ===
=== http://www.clexpert(tec)cz/ clexpert(zv)clexpert(tec)cz ===
==============================================================
ICQ: 21215917, PGP vitano


D4 a Sybase ASA 6.0

[*] Adrian Hollay <ahollay(zv)hotmail(tec)com> - 08.3.1999 01:26:01 pst

Zdravim vsetkych.

Da sa nejako pomocou nativneho SQL Links drivera pre
SYBASE napojit na Sybase Adaptive Server Anywhere 6.0??
Stretol sa s tym niekto, alebo o tom niekto pocul??
Novy Anywhere je podla mojho nazoru daleko lepsi ako
InterBase 5.0, no napojil som sa na neho len cez ODBC.
Dakujem.

Adrian Hollay

______________________________________________________
Get Your Private, Free Email at http://www.hotmail.com


Prosba - kdo mate pmail a nemazete prispevky

[*] Slavek Rydval <rk(zv)atrey.karlin.mff.cuni(tec)cz> - 7.3.1999 17:27:57

Preji vsem pekneho dne,

mam prosbu na ty, kteri pouzivaji pmaila a nemazou prispevky
z konference. Pokazil se mi diky ramecku soubor na disku a
poteboval bych zaslat v exportovane podobe prispevky od
19. unora 1999 do 7. brezna 1999 vcetne. Byl bych velmi vdecen,
kdyby se mi nekdo ozval, ze je mi ochoten prispevky zaslat.

Dekuji

Slavek


----------------------------------------------------------------------------
http://atrey.karlin.mff.cuni(tec)cz/~rk
----------------------------------------------------------------------------

elementarny problem s C/S

[*] Polak Jiri <Jiri.Polak(zv)tconsult(tec)cz> - 8.3.1999 07:06:30


> -----Original Message-----
> From: Mirun [mailto:forcom(zv)telecom(tec)cz]
> Sent: Sunday, March 07, 1999 11:53 PM
> To: delphi-l(zv)fwd(tec)cz
> Subject: Re: elementarny problem s C/S
>
>
> Ahoj,
> delsi dobu sleduji se zaujetim Vas "thread" o zamcich. Mohl
> by mi nekdo
> uvest jediny rozumny duvod z praxe,proc jakykoliv zaznam zamykat ?
> (nemyslim tim aby jste mi vysvetlovali teorii a proc se to
> dela, ale chci
> znat Vas konkretni pripad v praxi, ktery nema reseni bez
> pouziti uzamceni)
> Diky
> Mirun

Nejen urcity zaznam, nekdy je potreba zamykat treba celou tabulku
nebo databazi. Tam, kde je potreba udelat zamek, je mozne zpravidla
vymyslet jine reseni, ale nema to cenu. Zamek je nejjednodussi
moznosti, jak zablokovat moznost zmenit data obecne, tedy
jak pro aplikaci, tak pro uzivatele s nejakym online nastrojem
pro provadeni SQL. Nebo - jak bys bez zamku resil docasnou nemoznost
updatovat nejaky zaznam uzivatelem, ktery jej normalne updatovat muze?
To nedokazes. Musel bys tam nasadit trigger, ktery by se rozhodoval na
zaklade
nejakeho semaforu nebo vymyslet nejake jine kostrbate reseni.

Dale - v diskusi padl nazor, ze zamykani zaznamu je pozustatek
souborovych databazi. To je asi pravda, ale neznamena to,
ze uz tento mechanismus neni aktualni. Napriklad transakce si vyrabi
zamky. Bez teto moznosti by byly nanic.

A s transakci je i ten priklad v praxi:

//prevod x penez z uctu a na uctu b:
starttransaction
a := a - x; //ucet a musi byt zamcen
b := b + x; //ucet b musi byt zamcen
//dalsi akce souvisejici s prevodem -
// - ulozeni informace o (financni transakci)
//do nejakeho protokolu, penezniho deniku atp.
commit

Jura
----------
Jiri Polak
e-mail:jura.polak(zv)email(tec)cz
jiri.polak(zv)tconsult(tec)cz
web :http://freeweb.coco(tec)cz/jpolak
----------
The only good bug, is a dead bug!

© Delphi.cz, program netcode.cz, 2008-9.