Archív konference Delphi
Zpět na výběr roku archívu nebo přejít na fulltextové vyhledávání v konferenci.
CodeGear
[*] Erik Salaj <winsoft(zv)netkosice.sk> - 15.10.2006 18:27:41
tak ako som predpokladal, zaujemca o vyvojove nastroje Borlandu sa nenasiel:
http://www.borland.com/us/company/news/press_releases/2006/11_14_06_borland_forming_codegear.html
Erik Salaj
CodeGear
[*] Ondrej Kelle <o.kelle(zv)digitalpublishing.de> - 15.10.2006 18:41:42
> zaujemca o vyvojove nastroje Borlandu sa nenasiel
_Prijatelny_ zaujemca - splnajuci stanovene kriteria.
Pokial viem, podla vyhlaseni Borlandu prebehli rokovania s viacerymi
zaujemcami.
HTH
TOndrej
CodeGear
[*] Radek Cervinka <radek.cervinka(zv)technodat(tec)cz> - 16.10.2006 12:48:53
Erik Salaj napsal(a):
> tak ako som predpokladal, zaujemca o vyvojove nastroje Borlandu sa nenasiel:
>
> http://www.borland.com/us/company/news/press_releases/2006/11_14_06_borland_forming_codegear.html
>
> Erik Salaj
>
>
>
no a co?
viz.
http://bdn.borland.com/article/33817
Q: Will CodeGear maintain its existing product roadmaps?
A: Absolutely. CodeGear is committed to executing on the existing 3-year roadmaps that have been previously communicated to customers.
Tak misto toho aby to nekomu prodali, tak maji vlastni spolecnost. Maji kapital, maji know how, maji licence, maji lidi.
R.
Muze byt soucasne na jednom pocitaci Firebird 2.0
[*] Martin Pavera <martin.pavera(zv)gmail(tec)com> - 16.10.2006 15:37:03
Zdravim *,
na pocitaci (WindowsXP) mam naistalovan Firebird 1.5.3 a ted potrebuji
mit pro testovani soucasne nainstalovan i Firebird 2.0.
Potreboval bych poradit, zda jdou nainstalovat dva FB v ruznych verzich
na stejny pocitac ? A jestli ano, tak jak ?
Dekuji za radu
Martin Pavera
Muze byt soucasne na jednom pocitaci Firebird 2.0
[*] OnDraG <gebakonf(zv)centrum(tec)cz> - 16.10.2006 16:05:05
Navod je v ReleaseNotes k FB2.0
OnDraG
Martin Pavera napsal(a):
> na pocitaci (WindowsXP) mam naistalovan Firebird 1.5.3 a ted potrebuji
> mit pro testovani soucasne nainstalovan i Firebird 2.0.
> Potreboval bych poradit, zda jdou nainstalovat dva FB v ruznych verzich
> na stejny pocitac ? A jestli ano, tak jak ?
dynamicka pole a pointry na ne
[*] Petr Fischer <petr.fischer(zv)praguesoft(tec)cz> - 16.10.2006 17:33:12
Overil sem si predpoklad, zaridim se podle toho.
Diky vsem! pf
Ondrej Kelle p+AO0BYQ-e v +AQw-t 16. 11. 2006 v 16:51 +-0100:
> > var
> > pole: array of integer;
> > begin
> > SetLength(pole, 10);
> > pole[0] := 123;
> > ...
> > result := (zv)pole;
> > end.
> >
> > Neni to nahodou tak, ze jakmile vyskocim z funkce (promenna "pole"
> > prestane referencovat pole integeru) tak se mi uvolni z pameti a ten
> > pointer je mi na nic?
>
> Ano, lokalne premenne typu dynamicke pole, rovnako ako string, su
> automaticky uvolnene pri ukonceni procedury. Ten pointer je potom v kontexte
> volajucej procedury neplatny.
>
> HTH
> TOndrej
>
>
>
dynamicka pole a pointry na ne
[*] Ondrej Kelle <o.kelle(zv)digitalpublishing.de> - 16.10.2006 16:51:09
> var
> pole: array of integer;
> begin
> SetLength(pole, 10);
> pole[0] := 123;
> ...
> result := (zv)pole;
> end.
>
> Neni to nahodou tak, ze jakmile vyskocim z funkce (promenna "pole"
> prestane referencovat pole integeru) tak se mi uvolni z pameti a ten
> pointer je mi na nic?
Ano, lokalne premenne typu dynamicke pole, rovnako ako string, su
automaticky uvolnene pri ukonceni procedury. Ten pointer je potom v kontexte
volajucej procedury neplatny.
HTH
TOndrej
dynamicka pole a pointry na ne
[*] delphin(zv)post(tec)cz - 16.10.2006 16:47:08
> po letech zas musim neco podelat v Delphi 5 a narazil jsem na problem
> ohledne dynamickych poli (array of integer apod.).
>
> Jestli se dobre pamatuju, tak s temito poli se pracuje podobne jako se
> stringy, to znamena, ze dokud je pole drzeno referenci v nejake
> promenne, je v pameti a pokud ho referencovat prestanu, uvolni se z
> pameti samo (zadne free neni treba).
>
> Situace: naalokuji si dynamicke pole do promenne:
>
> ...
> var
> pole: array of integer;
> begin
> SetLength(pole, 10);
> pole[0] := 123;
> ...
>
> pak si vezmu pointer na to pole, vratim ho a vyskocim z metody:
>
> ...
> result := (zv)pole;
> end.
>
> Neni to nahodou tak, ze jakmile vyskocim z funkce (promenna "pole"
> prestane referencovat pole integeru) tak se mi uvolni z pameti a ten
> pointer je mi na nic? Takhle se mi to chova (nebo mam aspon ten dojem) a
> potrebuji to overit.
Jakmile promenna pole prestane byt potrebna, Delphi samo dynamicke pole
zlikviduje a pointer je tedy neplatny. Zkuste to takhle:
type TMojePole = array of integer;
function F(...):TMojePole;
begin
SetLength(Result,10);
Result[0]:=123;
end;
pravo zapisu v adresari
[*] Dan <xfojtik(zv)centrum(tec)cz> - 16.10.2006 16:11:06
Nejak koukam do helpu a nemuzu najit... Jak zjistim, jestli mam v danem
adresari pravo vytvaret a menit soubory?
Dan
dynamicka pole a pointry na ne
[*] Petr Fischer <petr.fischer(zv)praguesoft(tec)cz> - 16.10.2006 16:39:08
Zdravim,
po letech zas musim neco podelat v Delphi 5 a narazil jsem na problem
ohledne dynamickych poli (array of integer apod.).
Jestli se dobre pamatuju, tak s temito poli se pracuje podobne jako se
stringy, to znamena, ze dokud je pole drzeno referenci v nejake
promenne, je v pameti a pokud ho referencovat prestanu, uvolni se z
pameti samo (zadne free neni treba).
Situace: naalokuji si dynamicke pole do promenne:
...
var
pole: array of integer;
begin
SetLength(pole, 10);
pole[0] := 123;
...
pak si vezmu pointer na to pole, vratim ho a vyskocim z metody:
...
result := (zv)pole;
end.
Neni to nahodou tak, ze jakmile vyskocim z funkce (promenna "pole"
prestane referencovat pole integeru) tak se mi uvolni z pameti a ten
pointer je mi na nic? Takhle se mi to chova (nebo mam aspon ten dojem) a
potrebuji to overit.
Diky moc za nakopnuti, Petr Fischer
Muze byt soucasne na jednom pocitaci Firebird 2.0
[*] Karel Klimes <klimes(zv)unicontrols-tramex(tec)cz> - 16.10.2006 16:43:08
Ahoj, takova kacirska myslenka (ja ji v techto pripadech
implementuju). Pouzit VMWare nainstalovat si jednu instanci XP + FB a
spojim to pres TCPIP (VMWare to umoznuje). Ma to dve vyhody. Jedna je,
ze mate stale nachystany jedny "cisty" XP (ci vice) na testovani a
druha je "cistota" vaseho systemu.
kchodl
16.11.06, petr palicka <palicka.petr(zv)seznam(tec)cz>:
> Ahoj,
>
> Martin Pavera napsal(a):
> > Potreboval bych poradit, zda jdou nainstalovat dva FB v ruznych verzich
> > na stejny pocitac ? A jestli ano, tak jak ?
>
> ja to resim napkopirovanim embeded verze FB 2.0 do slozky s vyvijenou
> aplikaci a prejmenovanim fbembeded.dll na gds32.dll. pouzivam komponenty
> IBX a vse funguje OK.
> na pocitaci mi nadale bezi FB 1.5.3 a pod nim si testuju 2. instalaci
> aplikace, zda jsem nepouzil neco, co jeste 1.5.3 neumi a s cim by
> zakaznik, ktery jeste nema FB 2.0 mel problem.
> nezapomen, ze FB 2.0 pouziva jinou ODS, takze asi neni idealni,
> stridat server nad jednou a tou samou databazi.
>
> Peca
>
>
>
Muze byt soucasne na jednom pocitaci Firebird 2.0
[*] petr palicka <palicka.petr(zv)seznam(tec)cz> - 16.10.2006 16:11:06
Ahoj,
Martin Pavera napsal(a):
> Potreboval bych poradit, zda jdou nainstalovat dva FB v ruznych verzich
> na stejny pocitac ? A jestli ano, tak jak ?
ja to resim napkopirovanim embeded verze FB 2.0 do slozky s vyvijenou
aplikaci a prejmenovanim fbembeded.dll na gds32.dll. pouzivam komponenty
IBX a vse funguje OK.
na pocitaci mi nadale bezi FB 1.5.3 a pod nim si testuju 2. instalaci
aplikace, zda jsem nepouzil neco, co jeste 1.5.3 neumi a s cim by
zakaznik, ktery jeste nema FB 2.0 mel problem.
nezapomen, ze FB 2.0 pouziva jinou ODS, takze asi neni idealni,
stridat server nad jednou a tou samou databazi.
Peca
Jmeno z HWND okna
[*] fremensTech <fremenstech(zv)gmail(tec)com> - 18.10.2006 16:41:07
Dd,
jde nejak z ukazatele na okno
var hw:HWND;
hw:=GetForegroundWindow;
ziskat jmeno aplikace? Nebo cestu k exe, jmeno procesu..
proste neco, co jednoznacne identifikuje aplikaci.
Popripade naopak: vypsat si vsechny procesy a ke kazdemu
zjistit vsechny jeho okna?
Staci me nakopnout spravnym smerem ;)
dik
d
pravo zapisu v adresari
[*] Dan <xfojtik(zv)centrum(tec)cz> - 20.10.2006 08:59:54
Nikdo se neozval, nejspis to zapadlo. Tak se jeste jednou pripominam:
Nevite, kde bych mel kouknout? Hledam zpusob, jak zjistit, jestli mam v
danem adresari pravo vytvaret a menit soubory.
Dan
-----Original Message-----
From: delphi-l-owner(zv)clexpert(tec)cz [mailto:delphi-l-owner(zv)clexpert(tec)cz] On
Behalf Of Dan
Sent: Thursday, November 16, 2006 4:11 PM
To: delphi-l(zv)clexpert(tec)cz
Subject: pravo zapisu v adresari
Nejak koukam do helpu a nemuzu najit... Jak zjistim, jestli mam v danem
adresari pravo vytvaret a menit soubory?
Dan
Kouzelne komponenty pro databazovou aplikaci?
[*] Martin Radvansky <delphiconf(zv)radvansky(tec)net> - 20.10.2006 08:35:50
Dobry den,
TK> Tech duvodu je vic, jednim z nich je razeni dle urcite znakove sady, nevim jak je to v
TK> ClientDataSet reseno, jestli je na to nejaka udalost a tam si to osefuju.
TK> Navic vetsina serveru velice rychle vraci prvnich X zaznamu ale muze chvili trvat nez doda
TK> vsechny protoze jede po indexu a vraci jen tolik kolik po nem chcete.
TK> Navic serveru je celkem jedno ma-li setridit 500 zaznamu z 500 v tabulce,
No ale v tom se nijak nepru, ano mam tabulku s 500 zaznamy a ja ji
setridim na serveru a vratim, ale co v pripade ze tech 500 zaznamu
neni jen tabulka ale vysledek nejakeho rozsahleho at uz agregacniho
nebo spojovaciho dotazu. Pak tady mate rezii s tim ze chcete po
serveru stejna data jen jinak setridena, toto je mrhani vykonem, pokud
tu data uz mate na stanici a uzivatel si tam zbesile klika
na zahlavi, protoze zrovna neco nemuze najit.
TK> problem nastava
TK> jen v pripade ze se jedna o napr. 500 zaznamu z 100 000 a vic, jenze v tu chvili mate
TK> problem i na klientu a myslim ze ani v dnesni dobe jeste nejsou pameti nevycerpatelne,
TK> protoze, co kdyz nedostanete 500 ale 50 000 a vic zaznamu?
Ano samozrejme pamet neni nevycerpatelna, ale v tomto pripade tu mate
dost spatny navrh, kdyz klientovi vratite 50k zaznamu, to neni
vhodne. Takze tech 50k zaznamu stejne resite nejakym strankovanim,
protoze si nedovedu presdstavit, ze kazdym stiskem zahlavi gridu mu
poslete na stanici 50k zaznamu pouze jinak setridenych.
I kdyz i tech 50k zaznamu by IMHO nemusel byt az tak velky pametovy
problem, ale urcite to neni to prave orechove.
--
S pozdravem,
Martin Radvansky
Kouzelne komponenty pro databazovou aplikaci?
[*] Tomas Krejzek <tomas.krejzek(zv)kpsys(tec)cz> - 20.10.2006 01:05:21
Tech duvodu je vic, jednim z nich je razeni dle urcite znakove sady, nevim jak je to v
ClientDataSet reseno, jestli je na to nejaka udalost a tam si to osefuju.
Navic vetsina serveru velice rychle vraci prvnich X zaznamu ale muze chvili trvat nez doda
vsechny protoze jede po indexu a vraci jen tolik kolik po nem chcete.
Navic serveru je celkem jedno ma-li setridit 500 zaznamu z 500 v tabulce, problem nastava
jen v pripade ze se jedna o napr. 500 zaznamu z 100 000 a vic, jenze v tu chvili mate
problem i na klientu a myslim ze ani v dnesni dobe jeste nejsou pameti nevycerpatelne,
protoze, co kdyz nedostanete 500 ale 50 000 a vic zaznamu?
Tom
Martin Radvansky napsal(a):
> Dobry den,
> 19. listopadu 2006, 23:37:14, napsal jste:
>
> TK> No ja taky novym dotazem, myslim ze to neni nic proti nicemu, jednak je nas system pomerne
> TK> dynamicky, takze co platilo pred 5 minutami nemusi platit ted, a hlavne slusna komponenta
> TK> nenacita z databaze vic nez musi, takze pokud mate select ktery ma jako vysledek 500
> TK> zaznamu, tak na klientovi jich v 1. momentu mate tak cca 20 - 50 ktery jsou zobrazeny v
> TK> DBGridu, tahat i ten zbytek jen kvuli tomu ze to potom bude rychlejsi kdyz nekdo zmeni
> TK> poradi se mi zda jako zbytecne zdrzovani.
>
> No ja, ale stale nevim kde je problem. Porad se mi zda ze systemoveho
> hlediska to co pisete jako vykonove nevhodne. Berte to takhle,
> samozrejme ze kazdy zna zakladni poucky o SQL a to minimalizaci
> prenosu dat po siti. Nicmene v dobe 1G siti a vykonu stanice
> srovnatelnem se serverem, bych si jiz s timto nazorem dovolil
> polemizovat a prakticka reseni ukazuji, ze je vyhodne rozlozit zatez
> systemu do casti takovych, ze "nechme praci strojum" a server at nam
> vrati zakladni (minimalni) mnozinu dat takovou, ktera je uzivatelem
> vyzadovana, ale praci nad touto mnozinou dat provadejme prave jiz v
> rezii lokalni stanice.
>
> V pripade, ze se tady bavime o stovkach zaznamu, tak neni co resit,
> metody poskytovane ClientDataSet jsou prave to ze ten clovek muze nad
> skupinou dat zurive klikat a pritom to neovlivnuje zadnym zpusobem
> server, to je IMHO ocekavany a zadouci efekt. Proc bych napriklad mel
> nechat server setridit techto 500 radku, kdyz to mam temer okamzite
> provedeno v ramci stanice?
>
> Samozrejme, je treba zohlednit tu dynamicnost systemu, ale v podstate
> rezim snapshotu je urcite snesitelny, ale to zalezi na konkretnich
> datech a pozadavcich, to se tady muzeme prit jak se nam to bude libit
> dlouho
>
>
Kouzelne komponenty pro databazovou aplikaci?
[*] Martin Radvansky <delphiconf(zv)radvansky(tec)net> - 20.10.2006 00:31:17
Dobry den,
19. listopadu 2006, 23:37:14, napsal jste:
TK> No ja taky novym dotazem, myslim ze to neni nic proti nicemu, jednak je nas system pomerne
TK> dynamicky, takze co platilo pred 5 minutami nemusi platit ted, a hlavne slusna komponenta
TK> nenacita z databaze vic nez musi, takze pokud mate select ktery ma jako vysledek 500
TK> zaznamu, tak na klientovi jich v 1. momentu mate tak cca 20 - 50 ktery jsou zobrazeny v
TK> DBGridu, tahat i ten zbytek jen kvuli tomu ze to potom bude rychlejsi kdyz nekdo zmeni
TK> poradi se mi zda jako zbytecne zdrzovani.
No ja, ale stale nevim kde je problem. Porad se mi zda ze systemoveho
hlediska to co pisete jako vykonove nevhodne. Berte to takhle,
samozrejme ze kazdy zna zakladni poucky o SQL a to minimalizaci
prenosu dat po siti. Nicmene v dobe 1G siti a vykonu stanice
srovnatelnem se serverem, bych si jiz s timto nazorem dovolil
polemizovat a prakticka reseni ukazuji, ze je vyhodne rozlozit zatez
systemu do casti takovych, ze "nechme praci strojum" a server at nam
vrati zakladni (minimalni) mnozinu dat takovou, ktera je uzivatelem
vyzadovana, ale praci nad touto mnozinou dat provadejme prave jiz v
rezii lokalni stanice.
V pripade, ze se tady bavime o stovkach zaznamu, tak neni co resit,
metody poskytovane ClientDataSet jsou prave to ze ten clovek muze nad
skupinou dat zurive klikat a pritom to neovlivnuje zadnym zpusobem
server, to je IMHO ocekavany a zadouci efekt. Proc bych napriklad mel
nechat server setridit techto 500 radku, kdyz to mam temer okamzite
provedeno v ramci stanice?
Samozrejme, je treba zohlednit tu dynamicnost systemu, ale v podstate
rezim snapshotu je urcite snesitelny, ale to zalezi na konkretnich
datech a pozadavcich, to se tady muzeme prit jak se nam to bude libit
dlouho
--
S pozdravem,
Martin Radvansky
Kouzelne komponenty pro databazovou aplikaci?
[*] Tomas Krejzek <tomas.krejzek(zv)kpsys(tec)cz> - 19.10.2006 23:37:14
>
> No Vy jste nepopsal zpusob prace, predpokladem tady bylo to , ze
> napred omezite nejakou skupinu dat tu dostanete na klienta do gridu a
> na klientovi si uz ridite to trideni (klikanim), coz je podstatne rychlejsi nez
> polozit opet puvodni dotaz na data a pouze doplnit ORDER BY
>
> JS> Je tady problem, ze mnozina zobrazenych vet v gridu bude po kazde zmene
> JS> serazeni (kliknuti na nadpis v gridu) jina!
> Nejak nerozumim tomuto. To jako klient vidi data (faktury od 1.1 do
> 31.1.) pouze zmeni trideni (podle data splatnosti)a najednou vidi jina
> data? Nejaky divoky navrh databaze ne?
>
No ja taky novym dotazem, myslim ze to neni nic proti nicemu, jednak je nas system pomerne
dynamicky, takze co platilo pred 5 minutami nemusi platit ted, a hlavne slusna komponenta
nenacita z databaze vic nez musi, takze pokud mate select ktery ma jako vysledek 500
zaznamu, tak na klientovi jich v 1. momentu mate tak cca 20 - 50 ktery jsou zobrazeny v
DBGridu, tahat i ten zbytek jen kvuli tomu ze to potom bude rychlejsi kdyz nekdo zmeni
poradi se mi zda jako zbytecne zdrzovani.
Tom
Kouzelne komponenty pro databazovou aplikaci?
[*] Slavomir Skopalik <skopalik(zv)elektlabs(tec)cz> - 19.10.2006 22:51:10
Nejak tomu nerozumim.
Pokud nactu 5 vet, tak radim 5 vet, pokud nactu 3 vetu, tak radim 3 vety,
pokud jich bude 10000, tak jich bude 10000, ale jak to souvisi s tim, kolik
je jich videt to fakt nevim. Jakou vyhodu ma SQL proti setrideni v
Clientdatasetu
fakt nevim, nevidim zde totiz zadny rozdil.
PS: TClientdataSet je memory table, tj. nacte vsechna data a pak s nema pracuje
(ne ze by to jiny dataset delal zasadne jinak, ale ....).
Slavek
>
> Vysvetlim na malem prikladu.
> Je 5 vet v databazi, 3 vety prave zobrazene ve viditelne
> casti gridu, pocatecni serazeni je podle udaje Jmeno: Jmeno CisloBot
> -------------------------
> Franta 29 nezobrazena, je pred viditelnou casti gridu
> Jarda 25 zobrazena
> Lojza 30 zobrazena, na tehle aktualni vete mam najety
> kurzor v dbgridu
> Pepa 35 zobrazena
> Zbynek 31 nezobrazena, je za viditelnou casti gridu
>
> A ted nastavim serazeni podle CisloBot:
> Jmeno CisloBot
> -------------------------
> Jarda 25 nezobrazena, je pred viditelnou casti gridu
> Franta 29 zobrazena
> Lojza 30 zobrazena, na tehle aktualni vete mam najety
> kurzor v dbgridu
> Zbynek 31 zobrazena
> Pepa 35 nezobrazena, je za viditelnou casti gridu
>
> Kolem aktualni vety se mi po serazeni objevily jine vety, nez pred
> serazenim.
Access violation v CryptDecryptMessage
[*] Petr Langer <p.langer(zv)nexnet(tec)cz> - 19.10.2006 22:05:07
Ahoj,
nedari se mi prijit na to, proc mi funkce, ze ktere posilam fragment,
vyhazuje na druhem volani CryptDecryptMessage:
CryptDecryptMessage((zv)CDMP, pbMessage, cbMessage, (zv)decryptedText[1],
(zv)size, nil);
vyjimku access violation.
Prvni volani pro zjisteni delky funguje, akorat mne mate, ze mi to vraci
vyssi pocet bajtu nez mela puvodni kryptovana zprava...
---------------------------------------------------
size := sizeof(CRYPT_DECRYPT_MESSAGE_PARA);
FillChar(CDMP, size, 0);
CDMP.cbSize := size;
CDMP.dwMsgAndCertEncodingType := PKCS_7_ASN_ENCODING or
X509_ASN_ENCODING;
CDMP.cCertStore := 1;
CDMP.rghCertStore := Store;
size := 0;
pbMessage := (zv)encryptedText[1];
cbMessage := length(encryptedText);
if (CryptDecryptMessage((zv)CDMP, pbMessage, cbMessage, nil,
(zv)size, nil)) then
begin
result := true;
if (size > 0) then
begin
SetLength(decryptedText, size);
FillChar(decryptedText[1], size, 0);
CryptDecryptMessage((zv)CDMP, pbMessage, cbMessage,
(zv)decryptedText[1], (zv)size, nil);
end;
end;
---------------------------------------------------
Muze nekdo pripadne poskytnout funkcni parove volani CryptEncryptMessage
a CryptDecryptMessage?
Jeste druha vec, mam v SystemStore ulozeny certifikat vyzadujici heslo
pri pouziti, nejak mi ho ale nezobrazuje.
Diky,
Petr Langer
Kouzelne komponenty pro databazovou aplikaci?
[*] Jiri Sladek <sladek(zv)czhops(tec)cz> - 19.10.2006 21:49:06
> JS> 2. Razeni pomoci ORDER BY, prasarna...
> JS> Aktualni veta bude stejna, ale vety okolo budou nejpis jine.
> JS> Kdyby se jednalo o pevnou mnozinu 20 vet, tak by bylo jasne, ze razeni
> na
> JS> klientovi je lepsi.
>
MR> No Vy jste nepopsal zpusob prace, predpokladem tady bylo to , ze
MR> napred omezite nejakou skupinu dat tu dostanete na klienta do gridu a
MR> na klientovi si uz ridite to trideni (klikanim), coz je podstatne
rychlejsi nez
MR> polozit opet puvodni dotaz na data a pouze doplnit ORDER BY
Zpusob prace jsem nepopsal, protoze nechci uzivatele moc omezovat.
Hledam takove reseni, ktere bude rozumne fungovat, i kdyz uzivatel nevybere
predem nejakou malou skupinu dat.
> JS> Je tady problem, ze mnozina zobrazenych vet v gridu bude po kazde
> zmene
> JS> serazeni (kliknuti na nadpis v gridu) jina!
MR> Nejak nerozumim tomuto. To jako klient vidi data (faktury od 1.1 do
MR> 31.1.) pouze zmeni trideni (podle data splatnosti)a najednou vidi jina
MR> data? Nejaky divoky navrh databaze ne?
Vysvetlim na malem prikladu.
Je 5 vet v databazi, 3 vety prave zobrazene ve viditelne casti gridu,
pocatecni serazeni je podle udaje Jmeno:
Jmeno CisloBot
-------------------------
Franta 29 nezobrazena, je pred viditelnou casti gridu
Jarda 25 zobrazena
Lojza 30 zobrazena, na tehle aktualni vete mam najety kurzor v dbgridu
Pepa 35 zobrazena
Zbynek 31 nezobrazena, je za viditelnou casti gridu
A ted nastavim serazeni podle CisloBot:
Jmeno CisloBot
-------------------------
Jarda 25 nezobrazena, je pred viditelnou casti gridu
Franta 29 zobrazena
Lojza 30 zobrazena, na tehle aktualni vete mam najety kurzor v dbgridu
Zbynek 31 zobrazena
Pepa 35 nezobrazena, je za viditelnou casti gridu
Kolem aktualni vety se mi po serazeni objevily jine vety, nez pred
serazenim.
Jiri Sladek
MR> S pozdravem,
MR> Martin Radvansky
Kouzelne komponenty pro databazovou aplikaci?
[*] Slavomir Skopalik <skopalik(zv)elektlabs(tec)cz> - 19.10.2006 21:15:04
> 1. Muzete(muzes) upresnit, ktere moje pozadavky se daji
> splnit pomoci toho
> TClientDataSet + upraveneho DbGrid?
> Ten upraveny DbGrid by se dal nejak ziskat?
Trideni a filtrace. Neco mame naprogramovano, ale neni
to urceno k prodeji (zadna dokumentace).
Vyroba takoveho gridu (a mozna bude i nejaky open source)
je celkem jednoducha zalezitost, neco jako tohle:
procedure TCustomDBSortGridD5.TitleClick(Column: TColumn);
var
iName, f,df,cif: string;
begin
inherited;
if not (DataSource.DataSet is TClientDataSet) then exit;
TClientDataSet(DataSource.DataSet).IndexDefs.Update;
case SelectedSortState of
1: iName := 'i'+Column.FieldName+'Desc';
2: iName := 'i'+Column.FieldName+'Asc';
else IName :='DEFAULT_ORDER';
end;
if SelectedSortState in [1,2] then begin
f:=Column.FieldName;
if SelectedSortState = 1 then df := f;
if Assigned(FOnSortGetFieldsEvent)then
FOnSortGetFieldsEvent(self,Column,SelectedSortState,f,df,cif);
end;
try
TClientDataSet(DataSource.DataSet).IndexDefs.Find(iName);
except
TClientDataSet(DataSource.DataSet).AddIndex(iName,f , [], df, cif);
end;
TClientDataSet(DataSource.DataSet).IndexName := iName;
end;
Slavek
Kouzelne komponenty pro databazovou aplikaci?
[*] Martin Radvansky <delphiconf(zv)radvansky(tec)net> - 19.10.2006 20:23:00
Dobry den,
JS> 2. Razeni pomoci ORDER BY, prasarna...
JS> Aktualni veta bude stejna, ale vety okolo budou nejpis jine.
JS> Kdyby se jednalo o pevnou mnozinu 20 vet, tak by bylo jasne, ze razeni na
JS> klientovi je lepsi.
No Vy jste nepopsal zpusob prace, predpokladem tady bylo to , ze
napred omezite nejakou skupinu dat tu dostanete na klienta do gridu a
na klientovi si uz ridite to trideni (klikanim), coz je podstatne rychlejsi nez
polozit opet puvodni dotaz na data a pouze doplnit ORDER BY
JS> Je tady problem, ze mnozina zobrazenych vet v gridu bude po kazde zmene
JS> serazeni (kliknuti na nadpis v gridu) jina!
Nejak nerozumim tomuto. To jako klient vidi data (faktury od 1.1 do
31.1.) pouze zmeni trideni (podle data splatnosti)a najednou vidi jina
data? Nejaky divoky navrh databaze ne?
--
S pozdravem,
Martin Radvansky
Kouzelne komponenty pro databazovou aplikaci?
[*] Jiri Sladek <sladek(zv)czhops(tec)cz> - 19.10.2006 20:04:59
Diky za odezvu.
1. Muzete(muzes) upresnit, ktere moje pozadavky se daji splnit pomoci toho
TClientDataSet + upraveneho DbGrid?
Ten upraveny DbGrid by se dal nejak ziskat?
2. Razeni pomoci ORDER BY, prasarna...
Je tady problem, ze mnozina zobrazenych vet v gridu bude po kazde zmene
serazeni (kliknuti na nadpis v gridu) jina!
Aktualni veta bude stejna, ale vety okolo budou nejpis jine.
Kdyby se jednalo o pevnou mnozinu 20 vet, tak by bylo jasne, ze razeni na
klientovi je lepsi.
J.S.
----- Original Message -----
From: "Slavomir Skopalik" <skopalik(zv)elektlabs(tec)cz>
To: <delphi-l(zv)clexpert(tec)cz>
Sent: Sunday, November 19, 2006 1:24 PM
Subject: Re: Kouzelne komponenty pro databazovou aplikaci?
Tohle umi (s mirnou nadstavbou) TClientDataSet.
Uz mnoho let ho pro tyto ucely pouzivame (+ upraveny DbGrid).
Slavek
PS: Radit zaznamy pomoci ORDER BY je desna prasarna (zvlaste, kdyz je na to
komponeta,
co to setridi na klientovi),
neni vetsi pozitek, nez si nechat seradit 20 radku na vystupu
polozenim dotazu, ktery zabere na serveru nekolik strojovych sekund
(agregovane dotazy, napriklad statistika za minuly rok).
Slavek
>
> * Moznost setrideni vet v dbgridu poklikanim na nadpis
> sloupce. Komponenta by asi musela nejak automaticky
> modifikovat puvodni SQL dotaz - pridavat prislusne ORDER BY.
> Kurzor by mel zustat na puvodni vete - nepreskocit na zacatek
> souboru. Ze serveru by se melo prenaset jen minimalni
> mnozstvi dat, nutne pro refresh vet zobrazenych v dbgridu.
> Take by byla moznost setrideni podle vice sloupcu.
>
> * Moznost filtrace - dva zpusoby zadani filtru:
> jednoduchy filtr QueryByExample pro zacatecniky
> pokrocily filtr - moznost libovolnych podminek jako v SQL dotazu
>
> * Editovatelnost dat i pri zapnutem trideni a/nebo filtraci.
>
> * Moznost exportu do formatu XLS, vcetne spusteni Excelu na
> vytvoreny soubor.
Tisk z xml nebo html
[*] lelicek(zv)volny(tec)cz - 19.10.2006 14:18:34
Ahoj,
nemate nejaky napad na knihovnu, kterou by slo tiskout
sestavy vytvorene v html nebo xml (css).
Mam vytvoreny generator a doposud se vyuzival vyhradne
ve spojeni s IE, nyni je pozadavek primo na tisk.
Pavel
--
Pokerova manie - 6 freerollovych turnaju o 5000 USD! http://im.impact.as/sign/betway/
Kouzelne komponenty pro databazovou aplikaci?
[*] Slavomir Skopalik <skopalik(zv)elektlabs(tec)cz> - 19.10.2006 13:24:31
Tohle umi (s mirnou nadstavbou) TClientDataSet.
Uz mnoho let ho pro tyto ucely pouzivame (+ upraveny DbGrid).
Slavek
PS: Radit zaznamy pomoci ORDER BY je desna prasarna (zvlaste, kdyz je na to
komponeta,
co to setridi na klientovi),
neni vetsi pozitek, nez si nechat seradit 20 radku na vystupu
polozenim dotazu, ktery zabere na serveru nekolik strojovych sekund
(agregovane dotazy, napriklad statistika za minuly rok).
Slavek
>
> * Moznost setrideni vet v dbgridu poklikanim na nadpis
> sloupce. Komponenta by asi musela nejak automaticky
> modifikovat puvodni SQL dotaz - pridavat prislusne ORDER BY.
> Kurzor by mel zustat na puvodni vete - nepreskocit na zacatek
> souboru. Ze serveru by se melo prenaset jen minimalni
> mnozstvi dat, nutne pro refresh vet zobrazenych v dbgridu.
> Take by byla moznost setrideni podle vice sloupcu.
>
> * Moznost filtrace - dva zpusoby zadani filtru:
> jednoduchy filtr QueryByExample pro zacatecniky
> pokrocily filtr - moznost libovolnych podminek jako v SQL dotazu
>
> * Editovatelnost dat i pri zapnutem trideni a/nebo filtraci.
>
> * Moznost exportu do formatu XLS, vcetne spusteni Excelu na
> vytvoreny soubor.
Kouzelne komponenty pro databazovou aplikaci?
[*] Martin Burle <mburle2(zv)volny(tec)cz> - 19.10.2006 12:24:27
> Shanim kouzelne komponenty pro snadne vytvoreni databazove aplikace.
> Ty komponenty jsem pracovne nazval TMagicQuery a TMagicEdit. Pokusim se
popsat jejich funkcnost.
...pekna pohadka, uz mi tam chybi na konci snad jen kouzelne slovicko "free"
;). Jak to popisujes, tak to asi neni ani tak o komponente, jako o nejakem
design wizardu. Na tvem miste bych se nezdrzoval ani hledanim, ani psanim
neceho takoveho, ale zauvazoval bych radeji o nejake hierarchii dedicnych
formularu s rozumnou mirou spolecne funkcionality v predcich + vhodne
komponenty nebo lepe jejich vlastni odvozeniny se zabudovanym univerzalnim
resenim funkci, ktere popisujes. Na jejich zaklade pak muzes pro kazdou db
agendu relativne snadno a rychle postavit uzivatelsky formular.
Martin
Kouzelne komponenty pro databazovou aplikaci?
[*] Jiri Sladek <sladek(zv)czhops(tec)cz> - 19.10.2006 11:54:25
Zdravim konferenci, mam trochu sileny dotaz.
Shanim kouzelne komponenty pro snadne vytvoreni databazove aplikace.
Ty komponenty jsem pracovne nazval TMagicQuery a TMagicEdit. Pokusim se popsat jejich funkcnost.
Programator by vytvoril SQL dotaz v komponente TMagicQuery.
K tomuto TMagicQuery by pripojil TMagicEdit.
TMagicEdit by automaticky vytvoril strankovy editacni formular, nejspis nejak takhle:
Jmeno: DbEditJmeno
Prijmeni: DbEditPrijmeni
...
Programator by mohl tento strankovy editacni formular upravit. Mohl by zmenit popisky, tabelatorove poradi a umisteni editacnich komponent. Mohl by pridat dalsi komponenty nebo zmenit jejich typ (obycejny dbedit -> combo...).
Tak by se dala jednoduse vytvorit mala databazova aplikace. Ale to neni vse, protoze kouzelna komponenta by automaticky poskytla spoustu moznosti i uzivateli:
* Moznost prepnuti do radkoveho zobrazeni (dbgrid), kde by se popisky pouzily jako nadpisy sloupcu.
* Moznost upravy dbgridu uzivatelem (zmena sirky a poradi sloupcu).
* Moznost setrideni vet v dbgridu poklikanim na nadpis sloupce. Komponenta by asi musela nejak automaticky modifikovat puvodni SQL dotaz - pridavat prislusne ORDER BY. Kurzor by mel zustat na puvodni vete - nepreskocit na zacatek souboru. Ze serveru by se melo prenaset jen minimalni mnozstvi dat, nutne pro refresh vet zobrazenych v dbgridu. Take by byla moznost setrideni podle vice sloupcu.
* Moznost filtrace - dva zpusoby zadani filtru:
jednoduchy filtr QueryByExample pro zacatecniky
pokrocily filtr - moznost libovolnych podminek jako v SQL dotazu
* Moznost ulozeni konfigurace editoru - sloupce, trideni, filtr. Moznost ulozeni 'jako vychozi'. Moznost ulozeni 'pro jednoho uzivatele' nebo 'pro vsechny'.
* Editovatelnost dat i pri zapnutem trideni a/nebo filtraci.
* Moznost vyrobit rychlou sestavu - opis vet, tak jak jsou zobrazeny v gridu.
* Moznost exportu do formatu XLS, vcetne spusteni Excelu na vytvoreny soubor.
* Moznost vytvoreni pokrocilych uzivatelskych sestav. Vcetne moznosti ulozeni jako 'soukroma sestava uzivatele' nebo jako 'verejna sestava pristupna vsem uzivatelum'.
A protoze kouzelne komponenty jsou opravdu mocne, tak by umely take:
* Editovatelnost udaju, ktere jsou ulozeny v dalsich tabulkach s vazbou 1:1.
* Moznost propojeni dvou nebo vice kouzelnych komponent, cimz by se vytvoril editor hlavicka + radky (a treba pod-radky, pod-pod-radky atd).
To by zatim stacilo a tesim se na vase nasmerovani, kde se ty komponenty daji sehnat.
Jiri Sladek
sladek zavinac czhops(tec)cz
Kouzelne komponenty pro databazovou aplikaci?
[*] Slavomir Skopalik <skopalik(zv)elektlabs(tec)cz> - 20.10.2006 10:16:00
Prakticky se na klienta zaznamu musi vzdy stahnout vsechny,
jak jinak chcete pak udelat online filtraci (pisete text a grid
okamzite omezuje zobrazene zaznamy).
Nebo zakazete klientovi pouziti klavesy END (skok na konec) ?
Pokud posilate na klienta vice jak cca 1000 zaznamu, tak je nekde
chyba, protoze v takto rozsahlem datasetu se nikdo nevyzna.
Slavek
PS: Pro prohledavani historie samozrejme pouziji SQL dotaz
s indexy, nebudu si stahovat celou DB na klienta.
> Tech duvodu je vic, jednim z nich je razeni dle urcite
> znakove sady, nevim jak je to v
> ClientDataSet reseno, jestli je na to nejaka udalost a tam si
> to osefuju. Navic vetsina serveru velice rychle vraci prvnich
> X zaznamu ale muze chvili trvat nez doda
> vsechny protoze jede po indexu a vraci jen tolik kolik po nem
> chcete. Navic serveru je celkem jedno ma-li setridit 500
> zaznamu z 500 v tabulce, problem nastava
> jen v pripade ze se jedna o napr. 500 zaznamu z 100 000 a
> vic, jenze v tu chvili mate
> problem i na klientu a myslim ze ani v dnesni dobe jeste
> nejsou pameti nevycerpatelne,
> protoze, co kdyz nedostanete 500 ale 50 000 a vic zaznamu?
Jmeno z HWND okna
[*] Ondrej Kelle <o.kelle(zv)digitalpublishing.de> - 20.10.2006 10:26:01
> jde nejak z ukazatele na okno
>
> var hw:HWND;
> hw:=GetForegroundWindow;
>
> ziskat jmeno aplikace? Nebo cestu k exe, jmeno procesu..
Malo by to ist pomocou GetWindowThreadProcessId, OpenProcess,
GetModuleFileNameEx.
HTH
TOndrej
D7/FB: invalid request handle
[*] Kalhous <kalhous(zv)eu(tec)cz> - 20.10.2006 09:55:58
Nedari se mi najit v dokumentaci co znamena chybova zprava (FB 1.5)
"invalid request handle"
ktera se mi vraci z IBSQL pri pokusu o provedeni celkem banalniho SQL prikazu typu
SELECT ID FROM T1 ...
Nevite nekdo o co jde? Dik.
Z.Kalhous
Tisk z xml nebo html
[*] vlko <vlko(zv)zilina(tec)net> - 20.10.2006 09:55:58
lelicek(zv)volny(tec)cz wrote:
> Ahoj,
>
> nemate nejaky napad na knihovnu, kterou by slo tiskout
> sestavy vytvorene v html nebo xml (css).
> Mam vytvoreny generator a doposud se vyuzival vyhradne
> ve spojeni s IE, nyni je pozadavek primo na tisk.
>
> Pavel
Pouzit komponentu WebBrowser na zalozke internet, co je
vlastne activex a priamo pouziva IE nainstalovany na
lokalnom pocitaci. Zobraz v nom dany obsah a programovo
vyvolaj print
(http://delphi.about.com/cs/adptips2004/a/bltip0504_5.htm)
vlko
--
--------------
mail: vlko(zv)zilina.net
web: http://vlko.zilina.net
OT - nabidka prace
[*] Maixner Adam <adam.maixner(zv)pvt(tec)cz> - 20.10.2006 12:58:11
Zdravim,
na trvaly pracovni pomer hledam programatora z Pardubic a okoli, pozaduji alespon zakladni znalosti Delphi nebo C#, zajimava vyvojarska prace.
Odpovedi na soukromy mail amx(zv)volny(tec)cz <mailto:amx(zv)volny(tec)cz> , nebo na tel. +420 776 200 765.
S pozdravem,
Adam Maixner.
OT - nabidka prace
[*] Slavomir Skopalik <skopalik(zv)elektlabs(tec)cz> - 20.10.2006 13:26:13
Navrhuji, aby u podobnych nabidek, ktere se prezentuji v teto konferenci byly
povine tyto udaje:
- Kdo to nabizi (Osoba a firma, jelikoz takto to vypada, ze programatora hleda
PVT).
- O jakou praci se jedna
- Kde bude vykonavana (zpusob prace)
- Co je nabidnuto (zajimava prace je tezko uchopitelny pojem)
- Co se vyzaduje
+ nejake dalsi detaily, ktere z tohoto udelaji seriozni nabidku.
Slavek
> na trvaly pracovni pomer hledam programatora z Pardubic a
> okoli, pozaduji alespon zakladni znalosti Delphi nebo C#,
> zajimava vyvojarska prace.
>
> Odpovedi na soukromy mail amx(zv)volny(tec)cz <mailto:amx(zv)volny(tec)cz>
> , nebo na tel. +420 776 200 765.
Kouzelne komponenty pro databazovou aplikaci?
[*] lelicek(zv)volny(tec)cz - 20.10.2006 14:16:16
Od: "Tomas Krejzek" <tomas.krejzek(zv)kpsys(tec)cz>
> Tech duvodu je vic, jednim z nich je razeni dle urcite
> znakove sady, nevim jak je to v
> ClientDataSet reseno, jestli je na to nejaka udalost
> a tam si to osefuju.
> Navic vetsina serveru velice rychle vraci prvnich X
> zaznamu ale muze chvili trvat nez doda
> vsechny protoze jede po indexu a vraci jen tolik kolik
> po nem chcete.
> Navic serveru je celkem jedno ma-li setridit 500 zaznamu
> z 500 v tabulce, problem nastava
> jen v pripade ze se jedna o napr. 500 zaznamu z 100
> 000 a vic, jenze v tu chvili mate
> problem i na klientu a myslim ze ani v dnesni dobe
> jeste nejsou pameti nevycerpatelne,
> protoze, co kdyz nedostanete 500 ale 50 000 a vic zaznamu?
No to neni tak uplne pravda, rezie s udrzovanim cursoru do recordsetu
SQL server neco stoji a to nebyva malo.
Pri trideni musi server nejprve data setridit ( a vytahnuot data ze sloupcu,
pokud neexistuje index) a potom dotahnout zbyvajici sloupce.
Pavel
--
KRALOVNA LETENEK nejnizsi ceny letenek.
http://im.impact.as/sign/kralovna/
LDAP server
[*] Ludek <konference(zv)sales(tec)cz> - 21.10.2006 00:34:57
Zdravim,
Nevite nekdo o komponente nebo zdrojaku LDAP serveru. Klientu jsem nasem
mraky ale server se mi nedari najit. Hodilo by se mi totiz, aby moje
aplikace mohla vystupovat v siti jako LDAP server a na zklade poslaneho
jmena a hesla overit uzivatele. Priznam, se, ze je to zatim ve fazi
myslenky, a ze jsem LDAP protokol zatim nestudyroval, ale to overovani by mi
stacilo a ani by ten server nemusel vice umet. Ma smysl se do toho poustet ?
Dik za pripadne nakopnuti :)
Ludek
P.S nemusi to nutne byt free
Chybove hlasenie po odinstalovani Interbase
[*] Ivan Dulgerov <idulgerov(zv)stonline.sk> - 20.10.2006 19:22:36
Zdravim
>> can't format message 13:96 -- mesage file c:\Pogram
>> Files\Borland\InterBase/interbase.msg not found unvailable database
>
> Ahoj, skus rucne zmazat gds32.dll zo systemoveho adresara, zrejme tam
> zostala aj po instalacii.
*Vyhodil som gds32.dll zo systemoveho adresara, odinstaloval som firebird a
*znovu ho nainstaloval a .... bingo ;-) uz to slape.
*Dik
S pozdravom
Ivan Dulgerov
Delphi5 Prof+ SP1, Delphi 4 St, Win XP Porf. + SP1, Win98 SE
mail : idulgerov(zv)stonline.sk
ICQ : 190698607
Chybove hlasenie po odinstalovani Interbase
[*] Ondrej Kelle <o.kelle(zv)digitalpublishing.de> - 20.10.2006 18:46:34
> can't format message 13:96 -- mesage file c:\Pogram
> Files\Borland\InterBase/interbase.msg not found unvailable database
Ahoj, skus rucne zmazat gds32.dll zo systemoveho adresara, zrejme tam
zostala aj po instalacii.
HTH
TOndrej
Chybove hlasenie po odinstalovani Interbase
[*] Ivan Dulgerov <idulgerov(zv)stonline.sk> - 20.10.2006 18:40:33
Zdravim.
Neviem ci je to celkom OT ale stala sa mi jedna neprijemnost.
Skusal som asi 1 mesiac Turbo Delphi , po odinstalovani
programu som odinstaloval aj Interbase 7.0 a natiahol som
si znovu Firebird 1.5.3, ktory bezne pouzivam.
Od toho casu nemozem zaboha otvorit niajaku databazu
v programe IbExpert. Kazdy pokus o spravu ci manipulaciu
s databazou skonci chybovou hlaskou :
can't format message 13:96 -- mesage file c:\Pogram
Files\Borland\InterBase/interbase.msg not found unvailable database
Otazka je jasna: co s tym. Server mam spusteny, aplikacia pisana pre
firebird bezi len v embeded,
a nemozem pouzivat IbExperta.
Najprv som si myslel, ze nieco zostalo zapisane v registroch, tak som
preliezol som uz vsetky registre - vysledok nula bodov ;-(.
Viete mi niekto poradit co s tym?
S pozdravom
Ivan Dulgerov
Delphi5 Prof+ SP1, Delphi 4 St, Win XP Porf. + SP1, Win98 SE
mail : idulgerov(zv)stonline.sk
ICQ : 190698607
pravo zapisu v adresari
[*] Milan Tomes <delphi(zv)haida(tec)cz> - 21.10.2006 07:47:24
Na NTFS file systemu ?
S pozdravem
Milan Tomes
Dan napsal(a):
> Nejak koukam do helpu a nemuzu najit... Jak zjistim, jestli mam v danem
> adresari pravo vytvaret a menit soubory?
>
pravo zapisu v adresari
[*] Dan <xfojtik(zv)centrum(tec)cz> - 21.10.2006 08:31:27
Omlouvam se za neuplnou informaci :0) Ano, na NTFS systemu.
Dan
-----Original Message-----
Na NTFS file systemu ?
> Nejak koukam do helpu a nemuzu najit... Jak zjistim, jestli mam v danem
> adresari pravo vytvaret a menit soubory?
COM a provoz na terminalovem serveru
[*] Milan Tomes <delphi(zv)haida(tec)cz> - 21.10.2006 07:47:24
Zdravim konferencniky,
potreboval bych poradit s tim co a kde mam nastavit v pripade provozu
aplikaci na terminalovem serveru.
Problem je takovy, ze pri spusteni na standardnim PC (tj. neterminalovy
pristup, ale lokalni spusteni) vse funguje tak jak ma, ale v pripade
spusteni na terminalu nejde aplikaci spustit kvuli nemoznosti spusteni
COM serveru, ktery je pro funkci vyzadovan. Navratove kody hlasi chybu,
ze cesta k serveru nebyla nalezena, nicmene to jsem kontroloval zepredu
i zezadu a cesta je uvedena spravne (tedy COM server je spravne
zaregistrovan). Napada me nutnost jakesi konfigurace DCOM, ale absolutne
netusim proc, co a kde.
Je nekdo schopen poradit ??? Potrebuji to opravdu akutne.
Diky
S pozdravem
Milan Tomes
Kodovanie stringov v Delphi
[*] Roland Turcan <konf(zv)rotursoft.sk> - 21.10.2006 08:41:28
Hello All!
Aku kodovu stranku pouzivaju delphi komponenty, lebo ked ulozim nejake
retazce do clipboardu a vlozim ich napr. do Excelu, tak nie vsetky
znaky su v pohode.
Skusam som OemToStr() a StrToOem() ale mi to nepomaha.
Dakujem.
--
Best regards, TRoland
http://exekutor.rotursoft.sk
Kodovanie stringov v Delphi
[*] Pavel Malinsky <malinsky(zv)pmcom(tec)cz> - 21.10.2006 08:47:29
> -----Original Message-----
> From: delphi-l-owner(zv)clexpert(tec)cz
> [mailto:delphi-l-owner(zv)clexpert(tec)cz] On Behalf Of Roland Turcan
>
> Hello All!
Ahoj,
> Aku kodovu stranku pouzivaju delphi komponenty, lebo ked ulozim nejake
> retazce do clipboardu a vlozim ich napr. do Excelu, tak nie vsetky
> znaky su v pohode.
Zadnou konevrzi nedelam, jen mi to funguje tak, ze pokud neco pastnu do
excelu
tak sou zmrsene nektere znaky s diakritikou, a to v pripade, ze mam zapnutou
EN klavesnici :). Pokud mam CS funguje to dobre.
PM
Backup MDB, zaloha directory
[*] Venca Zaruba <zaruba(zv)elastoform(tec)cz> - 21.10.2006 08:57:30
Ahoj,
Mam pripojenou mdb pomoci ADO. Jak mohu provest zalohu (cely soubor na flashdriver ) bez toho,
abych musel odpojit pripojeni a mel pri tom zajisteno korektni ulozeni i v pripade otevreneho recordu?
Nemate nekdo zmaknuty backup celeho adresare (jen zmeny)
jako thread s malou prioritou, ktery lze kdykoliv prerusit?
PS: Z jineho soudku. Zacal jsem si hrat s web kamerou.
Pouzivam na to TJcWebCam z jvcl. Vse je OK, jen se chci
zeptat jestli neco onacejsiho.
D7 PRO, XP
Prijemny zbytek dne
Vasek Zaruba
8^)
Kodovanie stringov v Delphi
[*] Roland Turcan <konf(zv)rotursoft.sk> - 21.10.2006 09:57:37
<<< 21.11.2006 08:47 - Pavel Malinsky "malinsky(zv)pmcom(tec)cz" >>>
>> Aku kodovu stranku pouzivaju delphi komponenty, lebo ked ulozim nejake
>> retazce do clipboardu a vlozim ich napr. do Excelu, tak nie vsetky
>> znaky su v pohode.
PM> Zadnou konevrzi nedelam, jen mi to funguje tak, ze pokud neco pastnu do
PM> excelu
PM> tak sou zmrsene nektere znaky s diakritikou, a to v pripade, ze mam zapnutou
PM> EN klavesnici :). Pokud mam CS funguje to dobre.
Dakujem za odpoved. Ja som si len teraz tiez uvedomil, ze vlastne u
zakaznikov mi to funguje bez problemov a iba ja mam vlastne ten
problem. S tym prepinanim klavesnice mas svatu pravdu. Tiez pouzivam
ako default EN a ked som prepol na SK tak je to OK.
Dakujem.
PS: Mas nejaky napad ako toto obist, osetrit?
--
Best regards, TRoland
http://exekutor.rotursoft.sk
pravo zapisu v adresari
[*] Dan <xfojtik(zv)centrum(tec)cz> - 21.10.2006 08:43:28
Kdyz nad tim premyslim... Jakou funkci zjistim o jaky file system jde?
Dan
-----Original Message-----
Na NTFS file systemu ?
Dan napsal(a):
> Nejak koukam do helpu a nemuzu najit... Jak zjistim, jestli mam v danem
> adresari pravo vytvaret a menit soubory?
LDAP server
[*] aldik(zv)quick(tec)cz - 21.10.2006 10:07:38
http://www.openldap.org/software/ je tam i sdk,
A.
>> Zdravim,
>> Nevite nekdo o komponente nebo zdrojaku LDAP serveru. Klientu
>> jsem nasem
>> mraky ale server se mi nedari najit. Hodilo by se mi totiz, aby moje
>> aplikace mohla vystupovat v siti jako LDAP server a na zklade
>> poslaneho
>> jmena a hesla overit uzivatele. Priznam, se, ze je to zatim ve fazi
>> myslenky, a ze jsem LDAP protokol zatim nestudyroval, ale to
>> overovani by mi
>> stacilo a ani by ten server nemusel vice umet. Ma smysl se do
>> toho poustet ?
>>
>
>
>
>
Kodovanie stringov v Delphi
[*] Ladislav Fitz <ladislav.fitz(zv)kodytek(tec)cz> - 21.10.2006 10:23:39
> PS: Mas nejaky napad ako toto obist, osetrit?
me se osvedcilo:
procedure Clipboard_Text (const txt : string);
var locale : string; lc : cardinal;
procedure SetText (format : word; text : string);
var data : tHandle; dataptr : pointer; size : longint;
begin
text:=text+#0;
size:=length(text);
data:=GlobalAlloc (GMEM_MOVEABLE+GMEM_DDESHARE,size);
try
dataptr:=GlobalLock(data);
try
Move (text[1],dataptr^,Size);
SetClipboardData (format,data);
finally
GlobalUnlock (data);
end;
except
GlobalFree (data);
end;
end;
begin
lc:=GetUserDefaultLCID;
locale:=IntToStr (lc);
Clipboard.Open;
try
EmptyClipboard;
SetText (CF_TEXT,txt);
SetText (CF_LOCALE,locale);
finally
Clipboard.Close;
end;
end;
pravo zapisu v adresari
[*] Milan TomeL? <delphi(zv)haida(tec)cz> - 21.10.2006 09:49:36
Tohle je cela unita, ktera resi zjisteni pristupovych prav k polozce v
registru a k souboru / adresari.
Obecna funkce GetNTAccessRights dokaze vratit vsechna prava ke vsem
objektum (viz. parametr pObjectName API funkce GetNamedSecurityInfo) -
dalsi dve funkce prevadeji vstupni parametry a navratovou hodnotu do
"srozumitelnejsi" podoby.
S pozdravem
Milan Tomes
unit G3NTSecurity;
{$Include Defines.inc}
interface
uses
Windows;
const
//Ace types
ACCESS_ALLOWED_ACE_TYPE = $0;
ACCESS_DENIED_ACE_TYPE = $1;
SYSTEM_AUDIT_ACE_TYPE = $2;
SYSTEM_ALARM_ACE_TYPE = $3;
ACCESS_ALLOWED_COMPOUND_ACE_TYPE = $4;
ACCESS_ALLOWED_OBJECT_ACE_TYPE = $5;
ACCESS_DENIED_OBJECT_ACE_TYPE = $6;
SYSTEM_AUDIT_OBJECT_ACE_TYPE = $7;
SYSTEM_ALARM_OBJECT_ACE_TYPE = $8;
type
{$Z4}
SE_OBJECT_TYPE = (
SE_UNKNOWN_OBJECT_TYPE,
SE_FILE_OBJECT,
SE_SERVICE,
SE_PRINTER,
SE_REGISTRY_KEY,
SE_LMSHARE,
SE_KERNEL_OBJECT,
SE_WINDOW_OBJECT,
SE_DS_OBJECT,
SE_DS_OBJECT_ALL,
SE_PROVIDER_DEFINED_OBJECT,
SE_WMIGUID_OBJECT
);
{$Z1}
PPSID = ^PSID;
PTokenUser = ^_TOKEN_USER;
_TOKEN_USER = record
User: TSIDAndAttributes;
end;
TAceHeader = packed record
AceFlags: Byte;
AceSize: Word;
end;
TAccessAllowedAce = packed record
Header: TAceHeader;
Mask: ACCESS_MASK;
SidStart: DWORD;
end;
TAccessDeniedAce = packed record
Header: TAceHeader;
Mask: ACCESS_MASK;
SidStart: DWORD;
end;
TSystemAuditAce = packed record
Header: TAceHeader;
Mask: ACCESS_MASK;
SidStart: DWORD;
end;
TSystemAlarmAce = packed record
Header: TAceHeader;
Mask: ACCESS_MASK;
SidStart: DWORD;
end;
TAccessAllowedCompoundAce = packed record
Header: TAceHeader;
Mask: ACCESS_MASK;
Flags: DWORD;
ObjectType: TGUID;
InheritedObjectType: TGUID;
SidStart: DWORD;
end;
TAccessAllowedObjectAce = packed record
Header: TAceHeader;
Mask: ACCESS_MASK;
Flags: DWORD;
ObjectType: TGUID;
InheritedObjectType: TGUID;
SidStart: DWORD;
end;
TAccessDeniedObjectAce = packed record
Header: TAceHeader;
Mask: ACCESS_MASK;
Flags: DWORD;
ObjectType: TGUID;
InheritedObjectType: TGUID;
SidStart: DWORD;
end;
TSystemAuditObjectAce = packed record
Header: TAceHeader;
Mask: ACCESS_MASK;
Flags: DWORD;
ObjectType: TGUID;
InheritedObjectType: TGUID;
SidStart: DWORD;
end;
TSystemAlarmObjectAce = packed record
Header: TAceHeader;
Mask: ACCESS_MASK;
Flags: DWORD;
ObjectType: TGUID;
InheritedObjectType: TGUID;
SidStart: DWORD;
end;
TAce = packed record
case AceType: Byte of
ACCESS_ALLOWED_ACE_TYPE: (AccessAllowedAce: TAccessAllowedAce);
ACCESS_DENIED_ACE_TYPE: (AccessDeniedAce: TAccessDeniedAce);
SYSTEM_AUDIT_ACE_TYPE: (SystemAuditAce: TSystemAuditAce);
SYSTEM_ALARM_ACE_TYPE: (SystemAlarmAce: TSystemAlarmAce);
ACCESS_ALLOWED_COMPOUND_ACE_TYPE: (AccessAllowedCompoundAce:
TAccessAllowedCompoundAce);
ACCESS_ALLOWED_OBJECT_ACE_TYPE: (AccessAllowedObjectAce:
TAccessAllowedObjectAce);
ACCESS_DENIED_OBJECT_ACE_TYPE: (AccessDeniedObjectAce:
TAccessDeniedObjectAce);
SYSTEM_AUDIT_OBJECT_ACE_TYPE: (SystemAuditObjectAce: TSystemAuditObjectAce);
SYSTEM_ALARM_OBJECT_ACE_TYPE: (SystemAlarmObjectAce: TSystemAlarmObjectAce);
end;
PAce = ^TAce;
TGetNamedSecurityInfoProc = function(pObjectName: PAnsiChar; ObjectType:
SE_OBJECT_TYPE; SecurityInfo: SECURITY_INFORMATION; ppsidOwner,
ppsidGroup: PPSID; ppDacl, ppSacl: PACL; var ppSecurityDescriptor:
PSECURITY_DESCRIPTOR): DWORD; stdcall; {use localfree to release
ppSecurityDescriptor}
TFileAccessRight = (arAll, arRead, arWrite, arExecute, arDelete,
arChangePermissions, arTakeOwnership);
TFileAccessRights = set of TFileAccessRight;
const
FILE_READ_DATA = $0001; // file & pipe
FILE_LIST_DIRECTORY = $0001; // directory
FILE_WRITE_DATA = $0002; // file & pipe
FILE_ADD_FILE = $0002; // directory
FILE_APPEND_DATA = $0004; // file
FILE_ADD_SUBDIRECTORY = $0004; // directory
FILE_CREATE_PIPE_INSTANCE = $0004; // named pipe
FILE_READ_EA = $0008; // file & directory
FILE_READ_PROPERTIES = FILE_READ_EA;
FILE_WRITE_EA = $0010; // file & directory
FILE_WRITE_PROPERTIES = FILE_WRITE_EA;
FILE_EXECUTE = $0020; // file
FILE_TRAVERSE = $0020; // directory
FILE_DELETE_CHILD = $0040; // directory
FILE_READ_ATTRIBUTES = $0080; // all
FILE_WRITE_ATTRIBUTES = $0100; // all
FILE_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED or SYNCHRONIZE or $1FF);
FILE_GENERIC_READ = (STANDARD_RIGHTS_READ or FILE_READ_DATA or
FILE_READ_ATTRIBUTES or FILE_READ_EA or SYNCHRONIZE);
FILE_GENERIC_WRITE = (STANDARD_RIGHTS_WRITE or FILE_WRITE_DATA or
FILE_WRITE_ATTRIBUTES or FILE_WRITE_EA or FILE_APPEND_DATA or SYNCHRONIZE);
FILE_GENERIC_EXECUTE = (STANDARD_RIGHTS_EXECUTE or FILE_READ_ATTRIBUTES
or FILE_EXECUTE or SYNCHRONIZE);
function RegAccessRights(ARootKey: HKEY; AKey: string): TFileAccessRights;
function DirAccessRights(ADir: string): TFileAccessRights;
function GetNTAccessRights(AObject: PChar; AObjectType: SE_OBJECT_TYPE):
ACCESS_MASK;
implementation
uses
SysUtils,
JclSysInfo, JclSecurity, JclSysUtils,
G3Types;
function RegAccessRights(ARootKey: HKEY; AKey: string): TFileAccessRights;
var
ObjectName: string;
Mask: ACCESS_MASK;
begin
case ARootKey of
HKEY_CLASSES_ROOT: ObjectName := 'CLASSES_ROOT' +- iff(AKey[1] = '\', '',
'\') +- AKey;
HKEY_CURRENT_USER: ObjectName := 'CURRENT_USER' +- iff(AKey[1] = '\', '',
'\') +- AKey;
HKEY_LOCAL_MACHINE: ObjectName := 'MACHINE' +- iff(AKey[1] = '\', '',
'\') +- AKey;
HKEY_USERS: ObjectName := 'USERS' +- iff(AKey[1] = '\', '', '\') +- AKey;
end;
Mask := GetNTAccessRights(PChar(ObjectName), SE_REGISTRY_KEY);
Result := [];
if Mask = KEY_ALL_ACCESS then
Result := [arAll, arRead, arWrite, arDelete, arChangePermissions,
arTakeOwnership]
else
begin
if (Mask and KEY_READ) = KEY_READ then
Result := Result +- [arRead];
if (Mask and KEY_WRITE) = KEY_WRITE then
Result := Result +- [arWrite];
if (Mask and _DELETE) = _DELETE then
Result := Result +- [arDelete];
if (Mask and WRITE_DAC) = WRITE_DAC then
Result := Result +- [arChangePermissions];
if (Mask and WRITE_OWNER) = WRITE_OWNER then
Result := Result +- [arTakeOwnership];
end;
end;
function DirAccessRights(ADir: string): TFileAccessRights;
var
Mask: ACCESS_MASK;
begin
Mask := GetNTAccessRights(PChar(ADir), SE_FILE_OBJECT);
Result := [];
if Mask = FILE_ALL_ACCESS then
Result := [arAll, arRead, arWrite, arExecute, arDelete,
arChangePermissions, arTakeOwnership]
else
begin
if (Mask and FILE_GENERIC_READ) = FILE_GENERIC_READ then
Result := Result +- [arRead];
if (Mask and FILE_GENERIC_WRITE) = FILE_GENERIC_WRITE then
Result := Result +- [arWrite];
if (Mask and FILE_GENERIC_EXECUTE) = FILE_GENERIC_EXECUTE then
Result := Result +- [arExecute];
if (Mask and _DELETE) = _DELETE then
Result := Result +- [arDelete];
if (Mask and WRITE_DAC) = WRITE_DAC then
Result := Result +- [arChangePermissions];
if (Mask and WRITE_OWNER) = WRITE_OWNER then
Result := Result +- [arTakeOwnership];
end;
end;
function GetNTAccessRights(AObject: PChar; AObjectType: SE_OBJECT_TYPE):
ACCESS_MASK;
var
SD: Pointer;
DACL: PACL;
Err: Cardinal;
GetNamedSecurityInfo: TGetNamedSecurityInfoProc;
DllHnd: HModule;
HaveToken: boolean;
Token: THandle;
BufferLength: DWORD;
GroupsTokenInfo: PTokenGroups;
UserTokenInfo: PTokenUser;
Ace: PAce;
AceIndex: word;
AceSid: PSid;
RelatedAce: boolean;
i: cardinal;
begin
Result := $FFFFFFFF;
DllHnd := 0;
UserTokenInfo := nil;
GroupsTokenInfo := nil;
HaveToken := false;
if isWinNT then
begin
try
Result := 0;
//Dynamicky nalinkuj potrebne funkce
DllHnd := LoadLibrary('ADVAPI32.DLL');
if DllHnd = 0 then
raise EG3OSError.Create('Nelze na+AQ0A7Q-st knihovnu AdvApi32.dll !!!');
(zv)GetNamedSecurityInfo := GetProcAddress(DllHnd, 'GetNamedSecurityInfoA');
//Zjisti token
HaveToken := OpenProcessToken(GetCurrentProcess, TOKEN_QUERY, Token);
//Zjisti SID vlastnika procesu
if not GetTokenInformation(Token, TokenUser, nil, 0, BufferLength) then
begin
Err := GetLastError;
if Err <> ERROR_INSUFFICIENT_BUFFER then
raise EG3OSError.CreateCode('Nastala chyba p+AVk-i zji+AWEBZQ-ov+AOE-n+AO0- p+AVkA7Q-stupov+AP0-ch
pr+AOE-v k objektu ' +- AObject +- ' (GetTokenInformation - user SID buffer
length) !!!', Err);
end;
UserTokenInfo := PTokenUser(AllocMem(BufferLength));
if not GetTokenInformation(Token, TokenUser, UserTokenInfo,
BufferLength, BufferLength) then
raise EG3OSError.Create('Nastala chyba p+AVk-i zji+AWEBZQ-ov+AOE-n+AO0- p+AVkA7Q-stupov+AP0-ch pr+AOE-v
k objektu ' +- AObject +- ' (GetTokenInformation - user SID) !!!');
//Zjisti SIDy skupin, do kterych vlastnik procesu patri
if not GetTokenInformation(Token, TokenGroups, nil, 0, BufferLength) then
begin
Err := GetLastError;
if Err <> ERROR_INSUFFICIENT_BUFFER then
raise EG3OSError.CreateCode('Nastala chyba p+AVk-i zji+AWEBZQ-ov+AOE-n+AO0- p+AVkA7Q-stupov+AP0-ch
pr+AOE-v k objektu ' +- AObject +- ' (GetTokenInformation - groups buffer
length) !!!', Err);
end;
GroupsTokenInfo := PTokenGroups(AllocMem(BufferLength));
if not GetTokenInformation(Token, TokenGroups, GroupsTokenInfo,
BufferLength, BufferLength) then
raise EG3OSError.Create('Nastala chyba p+AVk-i zji+AWEBZQ-ov+AOE-n+AO0- p+AVkA7Q-stupov+AP0-ch pr+AOE-v
k objektu ' +- AObject +- ' (GetTokenInformation - groups) !!!');
//Zjisti DACL pro pozadovany prostredek
Err := GetNamedSecurityInfo(AObject, AObjectType,
DACL_SECURITY_INFORMATION, nil, nil, (zv)DACL, nil, SD);
if Err <> ERROR_SUCCESS then
raise EG3OSError.CreateCode('Nastala chyba p+AVk-i zji+AWEBZQ-ov+AOE-n+AO0- p+AVkA7Q-stupov+AP0-ch
pr+AOE-v k objektu ' +- AObject +- ' (GetNamedSecurityInfo) !!!', Err)
else
begin
if DACL = nil then //Null DACL - nesmi byt
if AObjectType = SE_FILE_OBJECT then //Pokud se pozaduje DACL souboru -
na souborovem systemu FAT se ACL nevraci
begin
result := $FFFFFFFF;
exit;
end
else
raise EG3OSError.CreateCode('Nastala chyba p+AVk-i zji+AWEBZQ-ov+AOE-n+AO0- p+AVkA7Q-stupov+AP0-ch
pr+AOE-v k objektu ' +- AObject +- ' (GetNamedSecurityInfo - Dacl = nil) !!!',
Err);
if not IsValidAcl(DACL^) then
raise EG3OSError.Create('Nastala chyba p+AVk-i zji+AWEBZQ-ov+AOE-n+AO0- p+AVkA7Q-stupov+AP0-ch pr+AOE-v
k objektu ' +- AObject +- ' (IsValidAcl) !!!');
for AceIndex := 0 to Pred(DACL^.AceCount) do
begin
GetAce(DACL^, AceIndex, Pointer(Ace));
AceSid := PSid((zv)Ace.AccessAllowedAce.SidStart);
RelatedAce := false;
if EqualSid(AceSid, UserTokenInfo^.User.Sid) then
RelatedAce := true
else
begin
for i := 0 to Pred(GroupsTokenInfo^.GroupCount) do
begin
{$IFOPT R+-}
{$DEFINE RANGECHECKS_ON}
{$ENDIF}
{$RANGECHECKS OFF} // Groups is an array [0..0] of TSIDAndAttributes,
ignore ERangeError
if EqualSid(AceSid, GroupsTokenInfo^.Groups[i].Sid) then
begin
RelatedAce := true;
break;
end;
{$IFDEF RANGECHECKS_ON}
{$RANGECHECKS ON}
{$UNDEF RANGECHECKS_ON}
{$ENDIF}
end;
end;
if RelatedAce then
begin
case Ace^.AceType of
ACCESS_ALLOWED_ACE_TYPE: Result := Result or Ace^.AccessAllowedAce.Mask;
ACCESS_DENIED_ACE_TYPE: Result := Result or Ace^.AccessDeniedAce.Mask;
end;
end;
end;
end;
finally
if HaveToken then
CloseHandle(Token);
if SD <> nil then
LocalFree(Cardinal(SD));
if DllHnd <> 0 then
FreeLibrary(DllHnd);
if UserTokenInfo <> nil then
FreeMem(UserTokenInfo);
if GroupsTokenInfo <> nil then
FreeMem(GroupsTokenInfo);
end;
end;
end;
end.
Dan napsal(a):
> Omlouvam se za neuplnou informaci :0) Ano, na NTFS systemu.
>
> Dan
>
> -----Original Message-----
> Na NTFS file systemu ?
>
>
>> Nejak koukam do helpu a nemuzu najit... Jak zjistim, jestli mam v danem
>> adresari pravo vytvaret a menit soubory?
>>
>
>
>
>
pravo zapisu v adresari
[*] Milan Tomes <delphi(zv)haida(tec)cz> - 21.10.2006 10:39:40
No uprimne receno nevim, ale te funkci je to jedno :)
S pozdravem
Milan Tomes
Dan napsal(a):
> Kdyz nad tim premyslim... Jakou funkci zjistim o jaky file system jde?
>
> Na NTFS file systemu ?
>
> Dan napsal(a):
>
>> Nejak koukam do helpu a nemuzu najit... Jak zjistim, jestli mam v danem
>> adresari pravo vytvaret a menit soubory?
>>
LDAP server
[*] campulka <campulka(zv)czas(tec)cz> - 21.10.2006 09:47:36
OpenLDAP?
> -----Original Message-----
>
> Zdravim,
> Nevite nekdo o komponente nebo zdrojaku LDAP serveru. Klientu
> jsem nasem
> mraky ale server se mi nedari najit. Hodilo by se mi totiz, aby moje
> aplikace mohla vystupovat v siti jako LDAP server a na zklade
> poslaneho
> jmena a hesla overit uzivatele. Priznam, se, ze je to zatim ve fazi
> myslenky, a ze jsem LDAP protokol zatim nestudyroval, ale to
> overovani by mi
> stacilo a ani by ten server nemusel vice umet. Ma smysl se do
> toho poustet ?
>
OT: fulltext konference
[*] MUDr. Patrik Valenta <valentapat(zv)volny(tec)cz> - 21.10.2006 09:59:37
dobry den, muzu se optat kde lze v soucasne dobe hledat v konferenci?
http://www.delphi(tec)cz/hledani.asp mi nak nefunguje.
s pozdr. valik
zjisteni povolene maximalizace aktivniho okna
[*] Ing. Pavel Spisar <pajastudio(zv)wo(tec)cz> - 21.10.2006 12:31:48
Ahoj,
pomoci nize uvedenoho kodu dokazu zjistit stav aktivniho okna
a pripadne jej maximalizovat
Ma to ovsem jednu vadu, maximalizuji se i okna, ktera jinak
normalne (pres systemove menu, mysi) nejdou - nemaji to povolene.
Moje prosba zni jak, dokazu zjistit zda ma okno povolenou maximalizaci?
// kod ---------------------
var
cisloh:integer;
stav:TWINDOWPLACEMENT;
begin
cisloh:=GetForegroundWindow;
stav.Length:=SizeOf(TWindowPlacement);
GetWindowPlacement(cisloh,(zv)stav);
case Msg.HotKey of
1:begin//maximalizace
if stav.showCmd=SW_SHOWMAXIMIZED then stav.showCmd:=SW_RESTORE
else stav.showCmd:=SW_SHOWMAXIMIZED;
SetWindowPlacement(cisloh,(zv)stav);
end;
// kod konec ---------------------
Mockrat dekuji za pomoc,
Pavel
pravo zapisu v adresari
[*] vlko <vlko(zv)zilina(tec)net> - 21.10.2006 13:13:50
Milan Tomes wrote:
> No uprimne receno nevim, ale te funkci je to jedno :)
>
> S pozdravem
>
> Milan Tomes
>
> Dan napsal(a):
>> Kdyz nad tim premyslim... Jakou funkci zjistim o jaky file system jde?
No jedno jej to nie je pravomoci sa daju nastavit iba na
ntfs suborovom systeme.
vlko
--
--------------
mail: vlko(zv)zilina.net
web: http://vlko.zilina.net
Vycisteni DBF tabulek od smazanych zaznamu
[*] Tomas Bihary <delphi(zv)st-software(tec)com> - 21.10.2006 13:57:54
Zdravim!
potreboval bych "sesypat" DBF tabulku, neboli ji vycistit od smazanych
zaznamu, ktere ale stale zabiraji misto v souboru.
S pozdravem a dik za kazdy napad ...
Radek
Vycisteni DBF tabulek od smazanych zaznamu
[*] Ondrej Kelle <o.kelle(zv)digitalpublishing.de> - 21.10.2006 14:05:54
> potreboval bych "sesypat" DBF tabulku, neboli ji vycistit od
> smazanych zaznamu, ktere ale stale zabiraji misto v souboru.
Ak pouzivas BDE, mozes zavolat DbiPackTable:
http://www.delphirss.com/bde.html
HTH
TOndrej
pravo zapisu v adresari
[*] Milan Tomes <delphi(zv)haida(tec)cz> - 21.10.2006 13:23:51
Ano - prava se daji nastavit pouze na NTFS, ale to nic nemeni na tom, ze
te funkci je to jedno.
Ona totiz predpoklada, ze pokud se zadaji (z s hackem, dlouhe a :)) ACL
pro soubor a zaroven zadne ACL neexistuji, tak jsem na filesystemu,
ktery ACL nepodporuje. Da se rici, ze neexistuje soubor, ktery by pri
podpore ACL na urovni filesystemu zadna prava nemel, protoze jinak by
tento soubor nemohl cist ani jeho vlastnik (on by vlastne zadneho
vlastnika nemel :))
vlko napsal(a):
> Milan Tomes wrote:
>
>> No uprimne receno nevim, ale te funkci je to jedno :)
>>
>> S pozdravem
>>
>> Milan Tomes
>>
>> Dan napsal(a):
>>
>>> Kdyz nad tim premyslim... Jakou funkci zjistim o jaky file system jde?
>>>
>
> No jedno jej to nie je pravomoci sa daju nastavit iba na
> ntfs suborovom systeme.
>
zjisteni povolene maximalizace aktivniho okna
[*] Ing. Pavel Spisar <pajastudio(zv)wo(tec)cz> - 21.10.2006 13:59:54
Ale jak to lze zjistit u cizi aplikace?
----- Original Message -----
From: "Vaclav Halik" <spravasd(zv)suz.cvut(tec)cz>
To: <delphi-l(zv)clexpert(tec)cz>
Sent: Tuesday, November 21, 2006 1:19 PM
Subject: Re: zjisteni povolene maximalizace aktivniho okna
> Zdravim,
>
>> Moje prosba zni jak, dokazu zjistit zda ma okno povolenou maximalizaci?
>>
>
> Form.BorderIcons
>
>
> Vaclav Halik
Nezobrazuje se popup menu
[*] Petr Berek <sojokl(zv)seznam(tec)cz> - 22.10.2006 08:17:08
Aha, diky, uz to funguje. Ja jsem si myslel, ze kdyz ji pridam do toho popup
menu, tak ji muzu zrusit.
Petr
On 11/22/06, Milan Tomes <delphi(zv)haida(tec)cz> wrote:
>
> No jako prvni bych zkusil odstranit radek "mi.Free". Vzdyt ty vytvoris
> polozku menu, kterou vzapeti zase zrusis :)
> Popup menu bez polozek se nezobrazuje...
>
> S pozdravem
>
> Milan Tomes
Pouziti DCC32.exe
[*] Karel Rys <delphi(zv)zas-me(tec)cz> - 22.10.2006 07:45:06
Dobry den,
rad bych pouzil DCC32 pro hromadnou kompilaci s ruzne nastavenymi "Conditional defines" pro
podminene preklady. Da se DCC32 nejak vnutit, aby vsechny ostatni parametry z Project Options
prevzalo z konfiguracniho souboru projektu? Pokud ano, jde pak pri spousteni DCC32 nejak potlacit
nektery ze symbolu Conditional defines, ktere jsou zapsane v tom konfiguracnim souboru? (Typicky
tam mam "Debug" a uz to vidim, jak to zapomenu v Delphi vyhodit pred tim, nez spustim tu davku...)
Jsou pri pouziti DCC32 nejaka uskali, muze to neco udelat jinak nez primo Delphi?
Diky, Karel Rys
Nezobrazuje se popup menu
[*] Milan Tomes <delphi(zv)haida(tec)cz> - 22.10.2006 07:23:04
No jako prvni bych zkusil odstranit radek "mi.Free". Vzdyt ty vytvoris
polozku menu, kterou vzapeti zase zrusis :)
Popup menu bez polozek se nezobrazuje...
S pozdravem
Milan Tomes
Petr Berek napsal(a):
> mam tabulku TStringGrid a potrebuju na ni zobrazit popup menu. Problem je v
> tom, ze to vsechno(formular, tabulku a popup menu) vytvarim az za behu
> programu.
>
> pm:=TPopupMenu.Create(nahled); //nahled je TForm
> nastavPopUpMenu(pm);
> tabulka:=TStringGrid.Create(nahled);//vytvoreni tabulky
> tabulka.PopupMenu:=pm;
>
> procedure TPrevodZnaku.nastavPopUpMenu(var menu:TPopupMenu);
> var mi:TMenuItem;
> begin
> mi:=TMenuItem.Create(nahled);//nahled je TForm
> //misto nahled jsem tam zkousel dat i promennou menu, vysledek byl stejny
> mi.Caption:='Pridat';
> mi.Tag:=1;
> menu.Items.Add(mi);
> mi.Free;
> end;
>
Nezobrazuje se popup menu
[*] Petr Berek <sojokl(zv)seznam(tec)cz> - 22.10.2006 07:17:04
Zdravim,
mam tabulku TStringGrid a potrebuju na ni zobrazit popup menu. Problem je v
tom, ze to vsechno(formular, tabulku a popup menu) vytvarim az za behu
programu.
pm:=TPopupMenu.Create(nahled); //nahled je TForm
nastavPopUpMenu(pm);
tabulka:=TStringGrid.Create(nahled);//vytvoreni tabulky
tabulka.PopupMenu:=pm;
procedure TPrevodZnaku.nastavPopUpMenu(var menu:TPopupMenu);
var mi:TMenuItem;
begin
mi:=TMenuItem.Create(nahled);//nahled je TForm
//misto nahled jsem tam zkousel dat i promennou menu, vysledek byl stejny
mi.Caption:='Pridat';
mi.Tag:=1;
menu.Items.Add(mi);
mi.Free;
end;
Takze kdyz tohle napisu, tak se mi to popup menu nechce zobrazit. Zkousel
jsem ho i ruzne nastavit na tlacita AutoPopup, ale nic.Nevite nekdo proc?
Diky,
Petr
OT: Hledate praci v DELPHI?
[*] Urbanova Hana - DEKTRADE <hana.urbanova(zv)dektrade(tec)cz> - 21.10.2006 22:36:29
Pokud byste radi vyvijeli informacni system pro nejvetsi obchodni
firmu se stavebnim materialem v CR, nevahejte nas kontaktovat pres
stranky http://www.dektrade(tec)cz nebo emailem -kariera(zv)dektrade(tec)cz
<mailto:kariera(zv)dektrade(tec)cz>.
Hledame kolegu/ kolegyni do soucasneho tymu 4 programatoru.
Nabizime zajimavou praci v prijemnem kolektivu a neformalnim prostredi.
Popis pozice naleznete na strankach:
http://www.dektrade(tec)cz/zamestnani/inzerat-dektrade.php?pozice=VR-6-00021
Dotazy vam rada zodpovim na tel. 731 544 999.
Hana Urbanova
DEKTRADE a.s.
Master-Detail DbGrid
[*] Pavel Malinsky <malinsky(zv)pmcom(tec)cz> - 21.10.2006 20:00:18
> -----Original Message-----
> From: delphi-l-owner(zv)clexpert(tec)cz
> [mailto:delphi-l-owner(zv)clexpert(tec)cz] On Behalf Of Ivan Dulgerov
Ahoj,
> > nechci osidit (ale je to jednoduche). Napoveda je u TField.Lookup.
> *Noo, eee, predstavujem si to asi takto :
>
> *V DbGride je napr. 5 riadkov.
> *V dbgride sa pri riadku ktory ma nejaky "detail' zobrazi
> nejake znamienko
> *napr +, po kliknuti na toto sa rozbali "detail uroven" , v ktorej
> *su napr. 3 riadku . No a na riadku cislo dva je opat
> zobrazene nejake "
> +",
> *ktore po kliknuti zobrazi dalsiu uroven "detail" prisluchajucu k nemu
:) www.devexpress.com
Zatim naprosto spokojen.
>
> *Sialene ? ;-)
Rozhodne ne.
PM
Master-Detail DbGrid
[*] Ivan Dulgerov <idulgerov(zv)stonline.sk> - 21.10.2006 19:44:17
> Myslis pouziti jednoduche vypocitane polozky? Kdyz pomineme moznost
> pouziti
> SQL komponent TQuery, TADOQuery apod., lze v komponentach TTable,
> TADOTable,
> ... pouzi vypocitanou polozku. Ta se vytvari ve Fields Editoru, ktery
> vyvolas pravym tlacitkem na komponente "table" a je tu mozne vytvorit
> jednak
> pojmenovat polozky zadane tabulky (takze namisto Table.Fields[i].AsString
> pouzivas TableFName_i.AsString), jednak vytvorit vypocitane polozky
> ruznych
> typu, v danem pripade typu LookUp Field. Pokusy necham na tobe, o to te
> nechci osidit (ale je to jednoduche). Napoveda je u TField.Lookup.
*Noo, eee, predstavujem si to asi takto :
*V DbGride je napr. 5 riadkov.
*V dbgride sa pri riadku ktory ma nejaky "detail' zobrazi nejake znamienko
*napr +, po kliknuti na toto sa rozbali "detail uroven" , v ktorej
*su napr. 3 riadku . No a na riadku cislo dva je opat zobrazene nejake "
+",
*ktore po kliknuti zobrazi dalsiu uroven "detail" prisluchajucu k nemu
*Sialene ? ;-)
*Takuto komponentu som fakt videl pre intraweb, volalo sa to
*tusim "TDetailDGgrid" ,alebo tak nejako. No, a ja by som potreboval
*nieco podobne vycarovat aj pre klasicku aplikaciu.
S pozdravom
Ivan Dulgerov
Delphi5 Prof+ SP1, Delphi 4 St, Win XP Porf. + SP1, Win98 SE
mail : idulgerov(zv)stonline.sk
ICQ : 190698607
Master-Detail DbGrid
[*] Vlastik Bartos <bartos(zv)spsmvbr(tec)cz> - 21.10.2006 19:24:16
Myslis pouziti jednoduche vypocitane polozky? Kdyz pomineme moznost pouziti
SQL komponent TQuery, TADOQuery apod., lze v komponentach TTable, TADOTable,
... pouzi vypocitanou polozku. Ta se vytvari ve Fields Editoru, ktery
vyvolas pravym tlacitkem na komponente "table" a je tu mozne vytvorit jednak
pojmenovat polozky zadane tabulky (takze namisto Table.Fields[i].AsString
pouzivas TableFName_i.AsString), jednak vytvorit vypocitane polozky ruznych
typu, v danem pripade typu LookUp Field. Pokusy necham na tobe, o to te
nechci osidit (ale je to jednoduche). Napoveda je u TField.Lookup.
V TDBGridu se pak pouzivaji vypocitane polozky stejnym zpusobem, jako
standardni a navic maji nektere zvlastnosti pri editaci.
Vlastik
----- Original Message -----
> Zdravim.
>
> Pred par dnami tu prebehla diskusia o "zazracnej komponente",
> a tak ma napada, ze aj ja by som jednu potreboval ;-)
>
> Potreboval by som nejakym sposobom zobrazit v jednom
> DbGride dve tabulky prepojene ako master-detail.
>
> Existuje na to nejaka komponenta? Pripadne je mozne standardny DbGrid
> nejakym sposobom "znasilnit" do tohoto zobrazenia?
>
>
Master-Detail DbGrid
[*] Ivan Dulgerov <idulgerov(zv)stonline.sk> - 21.10.2006 17:02:06
Zdravim.
Pred par dnami tu prebehla diskusia o "zazracnej komponente",
a tak ma napada, ze aj ja by som jednu potreboval ;-)
Potreboval by som nejakym sposobom zobrazit v jednom
DbGride dve tabulky prepojene ako master-detail.
Existuje na to nejaka komponenta? Pripadne je mozne standardny DbGrid
nejakym sposobom "znasilnit" do tohoto zobrazenia?
Uvitam akykolvek napad.
PS. Raz som videl som raz podobnu komponentu pre webove aplikacie,
dokazala dokonca trojnasobny master-detail, otazka je ci existuje
nieco podobne aj pre klasicke oknove aplikacia.
S pozdravom
Ivan Dulgerov
Delphi5 Prof+ SP1, Delphi 4 St, Win XP Porf. + SP1, Win98 SE
mail : idulgerov(zv)stonline.sk
ICQ : 190698607
Vycisteni DBF tabulek od smazanych zaznamu
[*] Kalhous <kalhous(zv)eu(tec)cz> - 21.10.2006 15:42:01
> > potreboval bych "sesypat" DBF tabulku, neboli ji vycistit od
> > smazanych zaznamu, ktere ale stale zabiraji misto v souboru.
> Ak pouzivas BDE, mozes zavolat DbiPackTable:
> http://www.delphirss.com/bde.html
> TOndrej
Jen pozor na jednu vec. Zni to neuveritelne ale setkal jsem se s aplikaci ve
ktere se record number zaznamu pouzival jako klic pro realizaci vazeb mezi
zaznamy v tabulkach. Takoveto tabulky samozrejme pakovat nelze protoze
pakovanim se zmeni record number zaznamu. Lze ovsem zastrelit autora.
Z.Kalhous
zjisteni povolene maximalizace aktivniho okna
[*] Vaclav Halik <spravasd(zv)suz.cvut(tec)cz> - 21.10.2006 13:19:51
Zdravim,
> Moje prosba zni jak, dokazu zjistit zda ma okno povolenou maximalizaci?
>
Form.BorderIcons
Vaclav Halik
Zeos TZUpdateSQL parametry
[*] jiri(zv)bartonek(tec)cz - 22.10.2006 12:27:28
Zdravim,
nema nekdo pls priklad pouziti TZSqlUpdate komponenty Zeos?
Jedna se mi o tohle:
mam form na nem ZConnection, ZQuery, ZUpdateSQL, DataSource, DBGrid.
ZQuery.Connection -> ZConnection
ZQuery.UpdateObject -> ZUpdateSQL
DataSource.DataSet -> ZQuery
DBGrid.DataSource -> DataSource
ZQuery.SQL := 'Select IdMesto,Mesto,PSC,KdoZapsal,KdyZapsal from Mesta'
ZUpdateSQL.InsertSQL := 'insert Mesta(Mesto,PSC,KdoZapsal,KdyZapsal)
values (:Mesto,:PSC,:KdoZapsal,:KdyZapsal)'
{
Table Mesta:
IdMesto identity not null PK
Mesto char(10) default ('') not null
PSC char(6) default ('') not null
KdoZapsal char(6) default ('') not null
KdyZapsal datetime null
}
Problem mi nastane v pripade insertu, a to ten, ze polozka KdoZapsal je
povinna (not null).
V DBGridu ji nevyplnim a provedu "vyplneni" parametru :KdoZapsal -
procedure Form.ZUpdateSQLBeforeInsertSQL(Sender: TObject);
begin
ZUpdateSQL.Params.ParamByName(KdoZapsal).Value := 'Uziv';
end;
Pokusim se zaznam ulozit ale nastane chyba: 'Fileld (KdoZapsal) must have
a value'.
Pri kontrole co se posila do DB mi SQLProfiler zobrazi:
insert Mesta(Mesto,PSC,KdoZapsal,KdyZapsal)
values ('MeMesto','MePsc',null,null)'
jako by se hodnota dana parametru KdoZapsal nekde vytratila.
ale pokud si necham vypsat
ShowMessage(ZUpdateSQL.Params.ParamByName(KdoZapsal ).Value);
hodnotu kterou sem do parametru ulozil vidim.
Muze mne nekdo pls nasmerovat jak pred ulozenim "vymenit" resp zadat
hodnotu parametru tak aby se pouzila pro danou operaci (napr Insert)?
jedna se o D7 Ent, WinXP SP2, MSSQL 2000
Dik
Jirka
Zeos TZUpdateSQL parametry
[*] Vaclav Halik <spravasd(zv)suz.cvut(tec)cz> - 22.10.2006 17:39:47
Zdravim,
> Pokusim se zaznam ulozit ale nastane chyba: 'Fileld (KdoZapsal) must have
> a value'.
>
> Pri kontrole co se posila do DB mi SQLProfiler zobrazi:
>
> insert Mesta(Mesto,PSC,KdoZapsal,KdyZapsal)
> values ('MeMesto','MePsc',null,null)'
ted sem sbalil notebook, ale asi takto:
Pokud mi neco nuteklo, tak se to chova spravne. Je potreba jit
do Field editoru a nastavit vlastnosti onoho sloupce tak,
aby nevyzadoval nutne zadanou nejakou hodnotu.
Pokud se nepletu je tam jisty problem s parsovanim toho SQL a ono
to proste takto neprojde, protoze v okamziku parsovani tam jeste nemusi
byt nejaka hodnota. Resil jsem to cca pred pul rokem, takze to ted z hlavy
nedam, ale muzu na to pripadne zitra kuknout.
Vaclav Halik
Nastaveni debuggeru
[*] Vlastimil Bartos <bartos(zv)spsmvbr(tec)cz> - 23.10.2006 12:13:04
Vazeni kolegove, zachrante me, prosim!
Pri ladeni programu se mi zdalo, ze jede nejak pomalu. Kdyz jsem chtel zjistit, co se v nem deje, s hruzou jsem objevil, ze bloudi nekde v unite Windows, aniz by vykonaval jakykoliv uzitecny kousek meho (kratkeho, lec pracne napsaneho) kodu.
Program je bezchybne prelozen a pouziva jen unity SysUtils, Classes, Controls, Forms, Masks, StdCtrls, ExtCtrls, ComCtrls, IniFiles, StrUtils a FileCtrl.
Pustil jsem si tedy krokovani od zacatku a hned pri prvnim radku Application.Initialize program vleze do unity Windows a tam tise neco vykonava (napr. nekolikrat vola GetLocaleInfo a podobne funkce). Po nekolika stovkach kroku se program prohnal unitami Windows, RichEdit, Mapi, FlatSB, UrlMon, WinInet, RegStr, ShellAPI, ShlObj, WinSpool, CommDlg, Dlgs, Imm, MultiMon, CommCtrl, Messages a ActiveX. Nektere z nich jsem v zivote nepouzil, nektere ani nevim, ze existuji.
Muzete mi rict, co se stalo, co jsem udelal spatne, resp. co udelat, aby se vse vratilo do normalu?
Diky za nakopnuti.
Vlastik
Stisk ESCAPE
[*] mydelphi(zv)seznam(tec)cz - 23.10.2006 12:13:04
Mam okno aplikace. Na nem je pouze komponenta TImage. Potrebuji, aby v
tomto okne pri stisku klavesy Escape se toto okno zavrelo. Nevite jak
odchytit tu klavesu?
Diky
Michal Koss
Stisk ESCAPE
[*] Vaclav Sazima <vaclav.sazima(zv)utilia(tec)cz> - 23.10.2006 12:51:07
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = vk_Escape then close;
end;
a u formu nastavatit KeyPreview na true
Vaclav Sazima
mydelphi(zv)seznam(tec)cz napsal(a):
> Mam okno aplikace. Na nem je pouze komponenta TImage. Potrebuji, aby v
> tomto okne pri stisku klavesy Escape se toto okno zavrelo. Nevite jak
> odchytit tu klavesu?
>
> Diky
> Michal Koss
>
>
>
Stisk ESCAPE
[*] horky(zv)cominn(tec)cz - 23.10.2006 13:09:08
> From: mydelphi(zv)seznam(tec)cz [mailto:mydelphi(zv)seznam(tec)cz]
> Sent: Thursday, November 23, 2006 12:13 PM
> Potrebuji, aby v
> tomto okne pri stisku klavesy Escape se toto okno zavrelo. Nevite jak
> odchytit tu klavesu?
Nepises verzi Delphi, ale na mych D7 si na formu nastavis property KeyPreview na True a obslouzis udalost OnKeyPress na formulari:
procedure ToknoObrazek.FormKeyPress(Sender: TObject; var Key: Char);
begin
{ klavesa ESC }
if (Key = #27) then
Close; { ukoncit }
end;
--
S pozdravem Karel Horky, D7, FB 1.5.2, IBX 7.08, WXP SP2
[mailto:horky(zv)cominn(tec)cz]
Stisk ESCAPE
[*] delphi(zv)mjsoft(tec)cz - 23.10.2006 12:51:07
Na formu nastav "KeyPreview" na True a v udalosti formulare OnKeyPress to
odchytis.
Karel V.> Mam okno aplikace. Na nem je pouze komponenta TImage.
> Potrebuji, aby v tomto okne pri stisku klavesy Escape se toto
> okno zavrelo. Nevite jak odchytit tu klavesu?
Sluzba nemuze cist a ukladat na siti
[*] Michal Mlady <michal.mlady(zv)seznam(tec)cz> - 23.10.2006 14:59:16
Ahoj.
Mam specificky problem v tom, ze mam aplikaci, ktera je schopna bezet jako sluzba nebo jako standartni aplikace.
Ukladam do site soubory a donedavna to slo jak v modu sluzby, tak v modu bezne aplikace.
Posledni dobou se ale deje to, ze kdyz jsem sluzba, nemohu nakopirovat ani precist zadny soubor z UNC cesty
napr.: \\server\data\soubor.txt, nemohu vytvorit soubor ani pomoci FileCreate('\\server\data\soubor.txt'),
v Dest se misto platneho Handle vraci -1... Nefunguje mi ani SaveToFile ze Streamu, kdyz ukladam do stejne
cesty.
Tohle vsechno ale funguje normalne, kdyz je aplikace spustena jako standartni a neni tedy sluzbou.
Pak tomu zadne cteni a ukladani v siti vubec nevadi.
Setkal se nekdo z Vas prosim s podobnym problemem?
Diky za pomoc...
M.
Sluzba nemuze cist a ukladat na siti
[*] Ladislav Stary <stary(zv)ekodat(tec)cz> - 23.10.2006 15:11:17
Podle me za to mohou prava ve Windows. Asi maji Win daleko striktnejsi
pozadavky na sluzbu nez na bezny program.
K zalohovani pouzivam jeden programek, ktery bezi jako sluzba. Kdyz to
bezi pod domenou, tak neni zadny problem,
kdyz jsou pocitace zapojene jen ve skupine, tak to nejede.
Nakonec jsem to vyresil tak, ze na vsech pocitacich je vytvoren
specialni ucet a te sluzbe jsem vnutil, aby se spoustela vzdy pod timto
uctem.
Taky by me zajimalo lepsi reseni.
Ladislav Stary
Michal Mlady napsal(a):
>Ahoj.
>
>Mam specificky problem v tom, ze mam aplikaci, ktera je schopna bezet jako sluzba nebo jako standartni aplikace.
>Ukladam do site soubory a donedavna to slo jak v modu sluzby, tak v modu bezne aplikace.
>
>Posledni dobou se ale deje to, ze kdyz jsem sluzba, nemohu nakopirovat ani precist zadny soubor z UNC cesty
>napr.: \\server\data\soubor.txt, nemohu vytvorit soubor ani pomoci FileCreate('\\server\data\soubor.txt'),
>v Dest se misto platneho Handle vraci -1... Nefunguje mi ani SaveToFile ze Streamu, kdyz ukladam do stejne
>cesty.
>
>Tohle vsechno ale funguje normalne, kdyz je aplikace spustena jako standartni a neni tedy sluzbou.
>Pak tomu zadne cteni a ukladani v siti vubec nevadi.
>
>Setkal se nekdo z Vas prosim s podobnym problemem?
>
>Diky za pomoc...
>
>M.
>
>
Sluzba nemuze cist a ukladat na siti
[*] Ing. Michal Sefcik <mikese(zv)benefitcz(tec)cz> - 23.10.2006 15:09:16
> Mam specificky problem v tom, ze mam aplikaci, ktera je
> schopna bezet jako sluzba nebo jako standartni aplikace.
> Ukladam do site soubory a donedavna to slo jak v modu sluzby,
> tak v modu bezne aplikace.
Pod jakym uctem Ti sluzba bezi? Asi ne pod stejnym, pod jakym spoustis aplikaci? Problem bych videl v pravech.
Michal Sefcik
Sluzba nemuze cist a ukladat na siti
[*] Michal Mlady <michal.mlady(zv)seznam(tec)cz> - 23.10.2006 15:25:18
> Pod jakym uctem Ti sluzba bezi? Asi ne pod stejnym, pod jakym spoustis
> aplikaci? Problem bych videl v pravech.
To jsem si myslel taky, ale bezi to pod systemovym uctem a nemyslim si ted
tedy, ze by to melo mit problem s pravy...
Jinak ta sluzba bezi umyslne v modu Interactive - aby mohla na prostredky
aktualne prihlaseneho uzivatele.
Zde je kod spusteni sluzby... Mozna tam neco neni OK... Proto to posilam k
nahlednuti.
function StartService: Boolean;
var
Mgr, Svc: Integer;
UserName, ServiceStartName: string;
Config: Pointer;
Size: DWord;
begin
Result := False;
Mgr := OpenSCManager(nil, nil, SC_MANAGER_ALL_ACCESS);
if Mgr <> 0 then
begin
Svc := OpenService(Mgr, PChar(SServiceName), SERVICE_ALL_ACCESS);
Result := Svc <> 0;
if Result then
begin
QueryServiceConfig(Svc, nil, 0, Size);
Config := AllocMem(Size);
try
QueryServiceConfig(Svc, Config, Size, Size);
ServiceStartName :=
PQueryServiceConfig(Config)^.lpServiceStartName;
if CompareText(ServiceStartName, 'LocalSystem') = 0 then
ServiceStartName := 'SYSTEM';
finally
Dispose(Config);
end;
CloseServiceHandle(Svc);
end;
CloseServiceHandle(Mgr);
end;
if Result then
begin
Size := 256;
SetLength(UserName, Size);
GetUserName(PChar(UserName), Size);
SetLength(UserName, StrLen(PChar(UserName)));
Result := CompareText(UserName, ServiceStartName) = 0;
end;
end;
Sluzba nemuze cist a ukladat na siti
[*] delphin(zv)post(tec)cz - 23.10.2006 15:35:19
>> Pod jakym uctem Ti sluzba bezi? Asi ne pod stejnym, pod jakym spoustis
>> aplikaci? Problem bych videl v pravech.
>
> To jsem si myslel taky, ale bezi to pod systemovym uctem a nemyslim si ted
> tedy, ze by to melo mit problem s pravy...
Jiste ze to ma problem s pravy na serveru, kdyz to bezi pod systemovym
uctem.
Pod jakym uzivatelskym uctem proces bezi se lze snadno presvedcit:
Spravce uloh - Procesy - Zobrazit - Vybrat sloupce - Uzivatelske jmeno
Sluzba nemuze cist a ukladat na siti
[*] Michal Mlady <michal.mlady(zv)seznam(tec)cz> - 23.10.2006 15:47:20
> Jiste ze to ma problem s pravy na serveru, kdyz to bezi pod systemovym
> uctem.
> Pod jakym uzivatelskym uctem proces bezi se lze snadno presvedcit:
> Spravce uloh - Procesy - Zobrazit - Vybrat sloupce - Uzivatelske jmeno
Ja tam mam SYSTEM...
Asi se v tom motam, ale kdyz to nahazuji a chci aby sluzba bezela uz pred
prihlasovacim dialogem, tak je snad nutne, aby to bezelo pod SYSTEMovym
uctem.
Zeptam se jinak - je mozne sluzbu spustit i pod prihlasenym uzivatelem, tak
aby ji ani on sam pak nemohl zastavit? Pokud by ji mohl sestrelit, ztraci
pro mne ta sluzba vyznam.
Sluzba nemuze cist a ukladat na siti
[*] vlko <vlko(zv)zilina(tec)net> - 23.10.2006 15:59:20
Michal Mlady wrote:
>> Jiste ze to ma problem s pravy na serveru, kdyz to bezi pod systemovym
>> uctem.
>> Pod jakym uzivatelskym uctem proces bezi se lze snadno presvedcit:
>> Spravce uloh - Procesy - Zobrazit - Vybrat sloupce - Uzivatelske jmeno
>
> Ja tam mam SYSTEM...
SYSTEM ucet vatsinou ma plne pravomoci len na lokalnom
stroji, bolo by preto vhodnejsie spustit sluzbu pod nejakym
administratorskym uctom.
> Asi se v tom motam, ale kdyz to nahazuji a chci aby sluzba bezela uz pred
> prihlasovacim dialogem, tak je snad nutne, aby to bezelo pod SYSTEMovym
> uctem.
To nie je nutne, sluzby by mali byt spustane pri starte,
teda aj pred prihlasovacim dialogom, po prihlasovacom
dialoge su spustene startup (run/runonce z registrov)
> Zeptam se jinak - je mozne sluzbu spustit i pod prihlasenym uzivatelem, tak
> aby ji ani on sam pak nemohl zastavit? Pokud by ji mohl sestrelit, ztraci
> pro mne ta sluzba vyznam.
Sluzbu je mozne pustit pod lubovolnym uzivatelom, napriklad
administratorskym uctov a na tak by nemal ziadny uzivatel
pravo ju zostrelit, nastavit pod akym uctom sa ma sluzba
spustat je jednoduche, v Administrative tools spustite
Services, najdete vasu konkretnu sluzbu, right click (teda
properties) a v zalozke Log On kliknete na this account a
nastavite potrebny ucet.
vlko
PS: Interact with desktop sa pouziva iba vtedy ak
potrebujete zobrazovat nejake formulare.
--
--------------
mail: vlko(zv)zilina.net
web: http://vlko.zilina.net
Sluzba nemuze cist a ukladat na siti
[*] Milan Kajnar <mkajnar(zv)mikesoft(tec)cz> - 23.10.2006 16:11:22
Aha, poslal jsem mail a toto cetl az potom...
Upravim to tedy na toho Administratora uz pri prvotni instalaci.
Tak nejak jsem na to dosel pred chvili i ja...
Snad to zabere...
Diky...
----- Original Message -----
From: "vlko" <vlko(zv)zilina.net>
To: <delphi-l(zv)clexpert(tec)cz>
Sent: Thursday, November 23, 2006 3:59 PM
Subject: Re: Sluzba nemuze cist a ukladat na siti
> Michal Mlady wrote:
>>> Jiste ze to ma problem s pravy na serveru, kdyz to bezi pod systemovym
>>> uctem.
>>> Pod jakym uzivatelskym uctem proces bezi se lze snadno presvedcit:
>>> Spravce uloh - Procesy - Zobrazit - Vybrat sloupce - Uzivatelske jmeno
>>
>> Ja tam mam SYSTEM...
>
> SYSTEM ucet vatsinou ma plne pravomoci len na lokalnom
> stroji, bolo by preto vhodnejsie spustit sluzbu pod nejakym
> administratorskym uctom.
>
>> Asi se v tom motam, ale kdyz to nahazuji a chci aby sluzba bezela uz pred
>> prihlasovacim dialogem, tak je snad nutne, aby to bezelo pod SYSTEMovym
>> uctem.
>
> To nie je nutne, sluzby by mali byt spustane pri starte,
> teda aj pred prihlasovacim dialogom, po prihlasovacom
> dialoge su spustene startup (run/runonce z registrov)
>
>> Zeptam se jinak - je mozne sluzbu spustit i pod prihlasenym uzivatelem,
>> tak
>> aby ji ani on sam pak nemohl zastavit? Pokud by ji mohl sestrelit, ztraci
>> pro mne ta sluzba vyznam.
>
> Sluzbu je mozne pustit pod lubovolnym uzivatelom, napriklad
> administratorskym uctov a na tak by nemal ziadny uzivatel
> pravo ju zostrelit, nastavit pod akym uctom sa ma sluzba
> spustat je jednoduche, v Administrative tools spustite
> Services, najdete vasu konkretnu sluzbu, right click (teda
> properties) a v zalozke Log On kliknete na this account a
> nastavite potrebny ucet.
>
> vlko
>
> PS: Interact with desktop sa pouziva iba vtedy ak
> potrebujete zobrazovat nejake formulare.
>
> --
>
> --------------
> mail: vlko(zv)zilina.net
> web: http://vlko.zilina.net
>
>
>
Sluzba nemuze cist a ukladat na siti
[*] Michal Mlady <michal.mlady(zv)seznam(tec)cz> - 23.10.2006 16:07:21
Upravil jsem si spousteci kod pro tu sluzbu tak, aby function StartService:
Boolean; vracela true
pro libovolneho uzivatele a nastavil jsem ji na druhe zalozce v manazeru
sluzeb tak, aby byla
spustena pod stejnym uzivatelskym uctem jako je aktualne prihlaseny
uzivatel.
Sluzba pak v poradku nabehla... Ale muj dalsi dotaz je - jak to zaridim
programove,
kdyz pri automaticke vzdalene instalaci sluzby neznam nikoho z moznych
uzivatelu a jejich hesla,
tedy udaje, ktere jsou nutne pro spusteni sluzby pod jejich uctem?
Vzdalene pres WMI vlezu na PC jako administrator, v jeho kontextu provedu
instalaci sluzby
a spustim ji... Sluzbu jsem doted spoustel pod SYSTEM.
Mozna bych ji mohl inicializovat tak, aby byla spoustena pod uctem
administratora jehoz
v te chvili znam vcetne hesla... Pak bych pri instalaci volal exe sluzby s
/install /login=xxx /pass=xxx
a mohl bych provest zapis techto hodnot pro spousteni sluzby do registru.
Ale ucet SYSTEM je prece nad vsemi uzivateli a mel by mit nejvyssi prava i
pro praci se siti.
Obavam se, ze problem je nekde jinde... Ale kde?
Sluzba nemuze cist a ukladat na siti
[*] Milan Kajnar <mkajnar(zv)mikesoft(tec)cz> - 23.10.2006 16:15:22
Mam u svych sluzeb podobny problem... Obcas se vyplati tu neco cist...
Nedavno jsem to hledal taky...
Sluzba nemuze cist a ukladat na siti
[*] Michal Mlady <michal.mlady(zv)seznam(tec)cz> - 23.10.2006 17:31:27
>Ladislav Stary napsal:
> Nakonec jsem to vyresil tak, ze na vsech pocitacich je vytvoren
> specialni ucet a te sluzbe jsem vnutil, aby se spoustela vzdy pod timto
> uctem.
Vnutil jsi to na kazdem PC zvlast, nebo na to mas nejaky nastroj?
Pokud vim v registrech lze zadat u sluzby uzivatele, ale ne heslo...
To jde asi zadat pouze v ServiceManageru...
Navic v situaci i kdyby to slo jinak staci, aby se Administrator nejak
zapomnel, nebo si planovite zmeni heslo a ty sluzby priste nenabehnou...
Myslim, ze toto nema Microsoft moc "administratorsky" namysleno...
Prikaz RunAs pro spusteni exe pod jinym uctem je taky pekne nanic,
nejde zavolat pro sluzbu a nejde tam dopredu zadat heslo...
Proto bude asi lepsi, nechat sluzbu pod LocalSystem a pro odkladani
souboru na sit volat externi exe - ktere se spusti pod beznym uzivatelem
bez nutnosti pracovat s hesly...
Ale tak jako vsechno ostatni co je od Mikisoftu to asi tak jednoduche
nebude, mam podezreni, ze kdyz chci ze sluzby spustit jine exe, tak to
automaticky pobezi take v kontextu uctu sluzby. A pokud to budu chtit
udelat pres CreateProcess - tak to login a password k uctu stejne budu
potrebovat...
Sluzba nemuze cist a ukladat na siti
[*] Ladislav Stary <stary(zv)ekodat(tec)cz> - 24.10.2006 06:54:19
Nastavil jsem specialniho uzivatele na vsech pocitacich a nezadal jsem
zadne heslo.
Mozna by ho stacilo strcit do jine skupiny (treba Backup operators), aby
se pomoci nej nedalo
prihlasit.
Ladislav Stary
Michal Mlady napsal(a):
>>Ladislav Stary napsal:
>>
>>
>Vnutil jsi to na kazdem PC zvlast, nebo na to mas nejaky nastroj?
>Pokud vim v registrech lze zadat u sluzby uzivatele, ale ne heslo...
>To jde asi zadat pouze v ServiceManageru...
>Navic v situaci i kdyby to slo jinak staci, aby se Administrator nejak
>zapomnel, nebo si planovite zmeni heslo a ty sluzby priste nenabehnou...
>Myslim, ze toto nema Microsoft moc "administratorsky" namysleno...
>
>
>
Jedna instance app. jak zobrazit hlavni okno
[*] Milan Tomes <delphi(zv)haida(tec)cz> - 24.10.2006 08:44:26
No my pouzivame tuto funkci a vse funguje:
function SetForegroundWindow98(const Wnd: HWND): Boolean;
var
ForeThreadID, NewThreadID: DWORD;
begin
if GetForegroundWindow <> Wnd then
begin
ForeThreadID := GetWindowThreadProcessId(GetForegroundWindow, nil);
NewThreadID := GetWindowThreadProcessId(Wnd, nil);
if ForeThreadID <> NewThreadID then
begin
AttachThreadInput(ForeThreadID, NewThreadID, True);
Result := SetForegroundWindow(Wnd);
AttachThreadInput(ForeThreadID, NewThreadID, False);
if Result then
Result := SetForegroundWindow(Wnd);
end
else
Result := SetForegroundWindow(Wnd);
end
else
Result := True;
end;
S pozdravem
Milan Tomes
Miloslav Pojsl napsal(a):
> Ahoj, zdravim vsechny. Mam dotaz. Potrebuji aplikaci, kterou lze spustit jen jednou a pokud se spousti podruhe, tak zavolat pudni instanci a tu ukazat na popredi obrazovky.
> Funguje to, ale pokud jsou pred moji aplikaci zobrazena okna jinych programu, tak po spusteni dalsi instance se hlavni okno nezobrazi na popredi, ale jeho ikona v liste jen blika, jako ze je aktivni. Ja bych ale potreboval, aby bylo okno viditelne
Jedna instance app. jak zobrazit hlavni okno
[*] Miloslav Pojsl <mpojsl(zv)seznam(tec)cz> - 24.10.2006 08:32:25
Ahoj, zdravim vsechny. Mam dotaz. Potrebuji aplikaci, kterou lze spustit jen jednou a pokud se spousti podruhe, tak zavolat pudni instanci a tu ukazat na popredi obrazovky.
V projektu mam:
begin
CreateMutex(nil, false, AppName);
if GetLastError = ERROR_ALREADY_EXISTS then
begin
SendMessage(HWND_BROADCAST, RegisterWindowMessage(AppName), 0, 0);
Halt(0);
end;
Application.Initialize;
Application.CreateForm(TFMain, FMain);
Application.Run;
end.
a v soubor pro hlavni formular mam funkci
var
OldWindowProc : Pointer;
NaseZprava : DWord;
function NewWindowProc(WindowHandle : hWnd; TheMessage : LongInt; ParamW : LongInt; ParamL : LongInt) : LongInt stdcall;
begin
if TheMessage = NaseZprava then
begin
SendMessage(Application.handle, WM_SYSCOMMAND, SC_RESTORE, 0);
SetForegroundWindow(Application.Handle);
FMain.InitColors;
FMain.UpDateGrid('');
Result := 0;
exit;
end;
Result := CallWindowProc(OldWindowProc, WindowHandle, TheMessage, ParamW, ParamL);
end;
procedure TFMain.FormCreate(Sender: TObject);
var i,n:integer;
begin NaseZprava := RegisterWindowMessage(AppName);
OldWindowProc := Pointer(SetWindowLong(FMain.Handle, GWL_WNDPROC, LongInt((zv)NewWindowProc)));
......
.....
Funguje to, ale pokud jsou pred moji aplikaci zobrazena okna jinych programu, tak po spusteni dalsi instance se hlavni okno nezobrazi na popredi, ale jeho ikona v liste jen blika, jako ze je aktivni. Ja bych ale potreboval, aby bylo okno viditelne.
Dekuji za napovedu
Zdravi Milos Pojsl
Sluzba nemuze cist a ukladat na siti
[*] Ludek <konference(zv)sales(tec)cz> - 24.10.2006 10:30:33
----- Original Message -----
From: "Michal Mlady" <michal.mlady(zv)seznam(tec)cz>
>
> Posledni dobou se ale deje to, ze kdyz jsem sluzba, nemohu nakopirovat ani
> precist zadny soubor z UNC cesty
> napr.: \\server\data\soubor.txt, nemohu vytvorit soubor ani pomoci
> FileCreate('\\server\data\soubor.txt'),
> v Dest se misto platneho Handle vraci -1... Nefunguje mi ani SaveToFile ze
> Streamu, kdyz ukladam do stejne
> cesty.
Ahoj,
> Posledni dobou
.. no to se musi dit vzdy :)
Ucet system nemuze pouzivat UNC cesty umi jedine lokalni cesty.
Ludek
Sluzba nemuze cist a ukladat na siti
[*] Michal Mlady <michal.mlady(zv)seznam(tec)cz> - 24.10.2006 11:14:36
> Ahoj,
>
>> Posledni dobou
> .. no to se musi dit vzdy :)
>
> Ucet system nemuze pouzivat UNC cesty umi jedine lokalni cesty.
Ahoj...
Asi to tak nebude...
Ono to chodi, pokud v siti neni domena a je to lokalni sit mezi par pc na
stejnem segmentu...
Pockej nemyslis to, ze by stacilo ty cesty mapovat jako lokalni?
Pokud by to vyjadreni cesty nebylo UNC - tak myslis, ze to pojede?
Sluzba nemuze cist a ukladat na siti
[*] delphin(zv)post(tec)cz - 24.10.2006 12:04:40
> Ucet system nemuze pouzivat UNC cesty umi jedine lokalni cesty.
Ucet SYSTEM muze pouzivat UNC cesty stejne tak jako kazdy jiny ucet. Zalezi
pouze na libovuli serveru, zda uctu povoli pristup na server nebo ne.
Cely problem je v tom, ze server ucet SYSTEM z jineho pocitace principu
nemuze autentifikovat, proto aby to chodilo musite na serveru vytvorit
bezpecnostni diru a povolit pristup neautentifikovanym uzivatelum. Napriklad
tak, ze na serveru vytvorite sdileni pro EVERYONE a pro sdilene soubory
nastavite NTFS prava take pro EVERYONE.
Implementacia PKCS #5 - PBKDF2
[*] Roland Turcan <konf(zv)rotursoft.sk> - 27.10.2006 10:39:14
Hello All!
Nemate nahodou niekto kod na implementaciu funkcie PBKDF2 z PKCS #5?
Dakujem.
--
Best regards, TRoland
http://exekutor.rotursoft.sk
Nastaveni hesla uzivatele v domene
[*] Ludek <konference(zv)sales(tec)cz> - 27.10.2006 11:03:16
Zdravim,
Potreboval bych z programu nastavit nove heslo uzivateli v domene aniz bych
znal stare. Tak jako to lze udelat rucne v AD. Nasel jsem zatim ale pouze v
JCL funkci
NetUserChangePassword(domainname, username, oldpassword, newpassword) - tady
ale musim znat stare heslo, coz ja neznam.
Poradite mi prosim ?
Program samozrejme bude bezet primo na radici domeny s prislusnymi pravy
(bude to sluzba)
Ludek ZITA
OT : Delphi developer Brno
[*] Radek Voltr <voltr(zv)eleasoftware(tec)com> - 27.10.2006 11:39:18
Hledam Delphi vyvojare takze pokud mate zajem obratte se na muj mail
Diky
Radek Voltr
Delphi v+AP0-voj+AOEBWQ-/analytik (nadstandardn+AO0- ohodnocen+AO0-)
M+AO0-sto pracovi+AWE-t+ARs-: Brno, Praha
Popis pozice:
+Jcs- anal+AP0-za a v+AP0-voj desktopov+AP0-ch aplikac+AO0- v prost+AVk-ed+AO0- Delphi
+Jcs- pod+AO0-l na v+AP0-voji nov+AP0-ch funkc+AO0- aplikac+AO0- Spyware Terminator a rodiny produkt+AW8- Crawler
Po+AX4-adavky na pracovn+AO0-ka:
+Jcs- podm+AO0-nkou velmi dobr+AOk- znalosti Delphi VCL, znalost Win32API,COM,sockets,WinInet API v+AP0-hodou
+Jcs- komunikativn+AO0- AJ v+AP0-hodou, pasivn+AO0- znalost AJ podm+AO0-nkou
+Jcs- praxe na podobn+AOk- pozici v+AO0-t+AOE-na
+Jcs- schopnost u+AQ0-it se nov+AOk- v+ARs-ci
+Jcs- zodpov+ARs-dn+AP0- p+AVkA7Q-stup
Nab+AO0-z+AO0-me:
+Jcs- perspektivn+AO0- zam+ARs-stn+AOE-n+AO0- v rychle se rozv+AO0-jej+AO0-c+AO0- spole+AQ0-nosti
+Jcs- nadstandardn+AO0- finan+AQ0-n+AO0- ohodnocen+AO0-
+Jcs- p+AVkA7Q-stup k nejnov+ARs-j+AWEA7Q-m HW a SW technologi+AO0-m
+Jcs- tvorba aplikac+AO0- pou+AX4A7Q-van+AP0-ch miliony u+AX4-ivatel+AW8-
+Jcs- voln+AOE- pracovn+AO0- doba, mo+AX4-nost pr+AOE-ce z domu
+Jcs- mo+AX4-nost slu+AX4-ebn+AO0-ch cest a st+AOEBfgDt- v USA na Florid+ARs-
+Jcs- dal+AWEA7Q- zam+ARs-stnaneck+AOk- v+AP0-hody
V p+AVkA7Q-pad+ARs- Va+AWE-eho z+AOE-jmu n+AOE-m pros+AO0-m za+AWE-lete V+AOEBYQ- +AX4-ivotopis spolu s p+AVk-ehledem Va+AWE-ich projekt+AW8-
na uveden+AP0- kontakt. Dal+AWEA7Q- informace o spole+AQ0-nosti najdete na www.xacti.com .
Nahled
[*] Petr Berek <sojokl(zv)seznam(tec)cz> - 27.10.2006 11:41:19
Zdravim,
nevite nekdo o nejake komponente, ktera by umela nahled a tisk z RichEditu?
Sinea asi neni nejlepsi reseni.
Diky,
Petr
D2005
Nahled
[*] Petr Zahradnik <clexpert(zv)clexpert(tec)cz> - 27.10.2006 11:49:19
Puvodni zprava ze dne 27.11.2006 od Petr Berek:
> nevite nekdo o nejake komponente, ktera by umela nahled a tisk z
> RichEditu?
Uz mnoho let sam pouzivam i dodavam toto:
http://www.trichview.com
A vsichni, kdo to maji, jsou happy.
Petr Zahradnik, pocitacovy expert
==========================================================
Petr Zahradnik, Computer Laboratory
web: http://www.clexpert(tec)cz, e-mail: clexpert(zv)clexpert(tec)cz
==========================================================
Nahled
[*] Milan Tomes <delphi(zv)haida(tec)cz> - 27.10.2006 12:03:20
Jen drobne upozorneni - neni to WYSIWYG !!!
S pozdravem
Milan Tomes
Petr Zahradnik napsal(a):
> Puvodni zprava ze dne 27.11.2006 od Petr Berek:
>
>
>> nevite nekdo o nejake komponente, ktera by umela nahled a tisk z
>> RichEditu?
>>
>
> Uz mnoho let sam pouzivam i dodavam toto:
>
> http://www.trichview.com
>
Nahled
[*] Petr Berek <sojokl(zv)seznam(tec)cz> - 27.10.2006 17:17:40
>
> > Uz mnoho let sam pouzivam i dodavam toto:
> >
> > http://www.trichview.com
A neco co je free?
Petr
matematicke operacie z float
[*] Ivan Dulgerov <ivan.dulgerov(zv)sazp.sk> - 28.10.2006 13:07:00
Zdravim.
Dnes som narazil na takuto zaujimavost:
Na servery Oracle mam tabulku, v nej je DataField typu Float.
V nom mam zapisane cislo verzie programu pre automaticky update.
Postup je asi nasledovny : v databaze zistim cislo najnovsej verzie
programu, porovnam ho s cislom verzie v programe, ak je cislo verzie
na servery vyssie, stiahne sa zakaznikovi novsia verzia.
Takze kusok funkcie pre zistenie verzie programu:
function TMainForm.UpdateResult(Nazov_soft: string;
Verzia_soft: double): boolean;
var Serv_ver:double;
begin
///// select filtrujuci najvyssie cislo verzie
....
....
/// Serv_ver aj Verzia_soft je datovy typ Double
if Serv_ver > Verzia_soft then Result := true else
Result :=false;
end;
Az do dnesneho dna vsetko fungovalo OK, dnes mi zacala funkcia
vracat true aj v pripade, ze oba cisla boli rovnake.
Konkretne mal som Serv_ver:=1,0006
Verzia_soft:=1,0006
Po chvilke "laborovania" som funkciu upravil takto:///// select filtrujuci najvyssieho cisla verzie
....
....
/// Serv_ver aj Verzia_soft je datovy typ Double
Serv_ver := FloatToCurr(Serv_ver); /// novo vlozeny riadok
if Serv_ver > Verzia_soft then Result := true else
Result :=false;
Odvtedy funkcia znovu vracia korektne hodnoty.
Otazka znie : PRECO?
--
S pozdravom
Ivan Dulgerov CEI SAZP Programator
Tajovskeho 28
97590 Banska Bystrica
tel: 048 4374144
ICQ : 190698607
mail : ivan.dulgerov(zv)sazp.sk
MSXML - porvnani dvou IXMLDOMNode
[*] Petr Langer <p.langer(zv)nexnet(tec)cz> - 28.10.2006 11:42:55
Ahoj,
nedari se mi prijit na to, jak porovnat dva IXMLDOMNode jestli jsou shodne:
node := idoc.documentElement;
node2 := idoc.documentElement;
b := node = node2;
b vraci false...
Diky,
Petr Langer
Programove prihlaseni na sitovy disk
[*] Ladislav Fitz <ladislav.fitz(zv)kodytek(tec)cz> - 28.10.2006 10:04:48
> potrebuji se prihlasit programove na sitovy disk, ktery se napriklad
> jmenuje
function NETMapping (const aPath : string; aDrive : char; const aUser :
string = ''; const aPassword : string = '') : boolean;
var
nr : tNetResource; d : string; i : longint;
begin
result:=false;
if (ExistDrive (aDrive)) then
exit;
d:=aDrive+':'#0;
fillchar (nr,sizeof(nr),0);
nr.dwScope:=RESOURCE_REMEMBERED;//RESOURCE_CONNECTED;
nr.lpRemoteName:=pChar(aPath);
nr.lpLocalName:=(zv)d[1];
nr.dwType:=RESOURCETYPE_DISK;
nr.dwUsage:=RESOURCEUSAGE_CONNECTABLE;
if (aUser='')
then i:=WNetAddConnection2 (nr,nil,nil,CONNECT_UPDATE_PROFILE)
else i:=WNetAddConnection2
(nr,pChar(aPassword),pChar(aUser),CONNECT_UPDATE_PROFILE);
result:=(i=NO_ERROR);
end;
function NETUnMapping (aDrive : char) : boolean;
var
d : string;
begin
d:=aDrive+':'#0;
result:=(WNetCancelConnection2
((zv)d[1],CONNECT_UPDATE_PROFILE,true)=NO_ERROR);
end;
Programove prihlaseni na sitovy disk
[*] Pavel Zidek <delphi(zv)kopr(tec)cz> - 28.10.2006 09:54:47
Zdravim,
potrebuji se prihlasit programove na sitovy disk, ktery se napriklad jmenuje
\\SEVER\ARCHIVACE
zde programove provedu archivaci dat a nakonec se z disku odhlasim.
Disk je zaheslovany, heslo pochopitelne znam, takze heslo se zada taky
programove - heslo nelze zadavat rucne, protoze archivace probiha
automaticky bez ucasti prosteho uzivatele, ktery heslo nezna.
V "Tento pocitac" sitovy disk neni videt - samozrejme jej lze videt v
nabidce "Cela sit / Sit microsoft..."
Diky Pavel ZIDEK
Programove prihlaseni na sitovy disk
[*] Ladislav Stary <stary(zv)ekodat(tec)cz> - 28.10.2006 10:32:50
Jako jednodussi reseni se da pouzit prikaz net:
net use z: \\server\sdileny_disk heslo /user:uzivatel
heslo - skutecne heslo pro pristup na sdileny disk
uzivatel - jmeno uzivatele (mozno pouzit i uzivatele domeny)
Ladislav Stary
Pavel Zidek napsal(a):
>Zdravim,
>potrebuji se prihlasit programove na sitovy disk, ktery se napriklad jmenuje
>\\SEVER\ARCHIVACE
>zde programove provedu archivaci dat a nakonec se z disku odhlasim.
>Disk je zaheslovany, heslo pochopitelne znam, takze heslo se zada taky
>programove - heslo nelze zadavat rucne, protoze archivace probiha
>automaticky bez ucasti prosteho uzivatele, ktery heslo nezna.
>V "Tento pocitac" sitovy disk neni videt - samozrejme jej lze videt v
>nabidce "Cela sit / Sit microsoft..."
>
>Diky Pavel ZIDEK
>
>
>
Programove prihlaseni na sitovy disk
[*] Jiri Sedivec <jsedivec(zv)gmail(tec)com> - 28.10.2006 10:06:48
Podivej se na API fce WNetAddConnection2 (pripojeni) a WNetCancelConnection2
(odpojeni) - viz knihovna Mpr.DLL ...
Mam to bohuzel napsane v .NETu, takze pro Delphi nemohu slouzit...
Jiri
> Zdravim,
> potrebuji se prihlasit programove na sitovy disk, ktery se napriklad
> jmenuje
> \\SEVER\ARCHIVACE
>
OT: Omluva za text v kodovani, was : Delphi develo
[*] Radek Voltr <voltr(zv)eleasoftware(tec)com> - 27.10.2006 12:05:20
Omlouvam se za poslani textu v narodnim kodovani,
neuvedomil jsem si to pri kopirovani.
jeste jednou sorry
Radek
MSXML - porvnani dvou IXMLDOMNode
[*] MaReK Penguin Olsavsky <orsm(zv)centrum(tec)cz> - 28.10.2006 13:09:00
Petr Langer napsal(a):
> node := idoc.documentElement;
> node2 := idoc.documentElement;
>
> b := node = node2;
>
> b vraci false...
^^^
A jste si jist, ze porovnavate obsah a ne to, zda-li se jedna o stejne
objekty? V tom bude nejspise jadro pudla.
--
- --
MaReK "Penguin" Olsavsky
PHP Voodoo
private mail: orsm(zv)centrum(tec)cz
private web: http://orsm.wz(tec)cz
ICQ#: 160 178 925; MSN: orsm(zv)centrum(tec)cz; Skype: Penguin_007
tel.: +420-603-519-650; +420-775-154-689 (775-1-LINUX)
MSXML - porvnani dvou IXMLDOMNode
[*] Petr Langer <p.langer(zv)nexnet(tec)cz> - 28.10.2006 14:29:06
Ja potraboval prave zjistit, jestli jsou to stejne instance. Ukladal
jsem si nektere nody (resp. jejich pointry) do kolekce a pak jsem je
potreboval porovnat.
Uz jsem to nasel, je potreba porovnavat jejich IUnknown interfacy, tedy
b := (node as IUnknown) = (node2 as IUnknown);
ale diky,
pl
MaReK Penguin Olsavsky wrote:
> Petr Langer napsal(a):
>> node := idoc.documentElement;
>> node2 := idoc.documentElement;
>>
>> b := node = node2;
>>
>> b vraci false...
> ^^^
> A jste si jist, ze porovnavate obsah a ne to, zda-li se jedna o stejne
> objekty? V tom bude nejspise jadro pudla.
Jak na upgrade po internetu
[*] Pepa D. <slozka2005(zv)volny(tec)cz> - 28.10.2006 14:01:04
Pokousim se vymyslet zpusob jak upgradovat aplikaci po internetu ale zatim jsem nic kloudnyho nevymyslel. Muzete mne trochu popostrcit nejakym prikladem, linkem nebo radou jak to resit?
Pepa
matematicke operacie z float
[*] delphin(zv)post(tec)cz - 28.10.2006 13:53:03
> Odvtedy funkcia znovu vracia korektne hodnoty.
> Otazka znie : PRECO?
Nefunguje to proto, ze funkce porovnavani bere v potaz i ty desetinne cisla,
ktere obvykle nejsou videt, ale kdyz se podivate na tech 8 byte double primo
v pameti, uvidite rozdil. Prevodem na Currency jste provedl zaoukrouhleni,
proto to ted funguje.
Pro uchovavani cisla verze zasadne nepouzivejte realne cisla, ale
celociselne, napriklad 32-bitove a vzorec verze*65536+podverze.
Jak na upgrade po internetu
[*] Pavel Malinsky <malinsky(zv)pmcom(tec)cz> - 28.10.2006 14:53:08
> -----Original Message-----
> From: delphi-l-owner(zv)clexpert(tec)cz
> [mailto:delphi-l-owner(zv)clexpert(tec)cz] On Behalf Of Ivan Dulgerov
Ahoj,
> > Pokousim se vymyslet zpusob jak upgradovat aplikaci po
> internetu ale zatim jsem nic kloudnyho nevymyslel. Muzete mne
> >
> *Sice to nepouzivam, ale skusal som to : mxWebUpdate
> *Najdes na www.torry.ru
Nejake prostredky nabizi i InnoSetup.
PM
Jak na upgrade po internetu
[*] Ivan Dulgerov <ivan.dulgerov(zv)sazp.sk> - 28.10.2006 14:39:06
Pepa D. wrote / napisal(a):
> Pokousim se vymyslet zpusob jak upgradovat aplikaci po internetu ale zatim jsem nic kloudnyho nevymyslel. Muzete mne trochu popostrcit nejakym prikladem, linkem nebo radou jak to resit?
> Pepa
>
>
*Sice to nepouzivam, ale skusal som to : mxWebUpdate
*Najdes na www.torry.ru
--
S pozdravom
Ivan Dulgerov CEI SAZP Programator
Tajovskeho 28
97590 Banska Bystrica
tel: 048 4374144
ICQ : 190698607
mail : ivan.dulgerov(zv)sazp.sk
Je videt cursor?
[*] Venca Zaruba <zaruba(zv)elastoform(tec)cz> - 28.10.2006 15:21:09
Ahoj,
Omlouvam se za asi velmi prihlouplou otazku:
V app skryvam cursor pomoci ShowCursor(false). Zjistil jsem, ze kdyz toto zavolam napr "omylem" 5 x,
pak abych cursor zobrazil musim taky 5x zavolat ShowCursor(true).
Prosim, jak zjistim viditelnost cursoru?
Prijemny zbytek dne
Vasek Zaruba
8^)
Jak na upgrade po internetu
[*] Petr Vones <conference(zv)petrvones(tec)net> - 28.10.2006 15:55:12
From: "Pepa D." <slozka2005(zv)volny(tec)cz>
> Pokousim se vymyslet zpusob jak upgradovat aplikaci po internetu ale zatim
> jsem nic kloudnyho nevymyslel. Muzete mne trochu popostrcit nejakym
> prikladem, linkem nebo radou jak to resit?
http://wix.sourceforge.net/ctvision.html
Petr Vones
Jak na upgrade po internetu
[*] Zapletal Martin <zapletal(zv)inoma(tec)cz> - 28.10.2006 15:39:11
mxWebUpdate je dobry. Pouzivam to a je k tomu i demo.
Martin
>> *Sice to nepouzivam, ale skusal som to : mxWebUpdate
>> *Najdes na www.torry.ru
>
> Nejake prostredky nabizi i InnoSetup.
>
> PM
>
>
>
>
OT: Nabidka predani projektu
[*] delphi(zv)dsoft(tec)cz - 28.10.2006 16:01:13
Hledame firmu, ktera je ochotna prevzit softwarovy projekt napsany v Delphi
5.
Prevod prav nabizime bez naroku na odmenu. Zakaznik je z Prahy.
DOTAZI ZASILEJTE na email cadsky(zv)dsoft(tec)cz
S pozdravem Vladislav Cadsky
Jak na upgrade po internetu
[*] Vaclav Halik <spravasd(zv)suz.cvut(tec)cz> - 28.10.2006 15:55:12
Zapletal Martin napsal(a):
> mxWebUpdate je dobry. Pouzivam to a je k tomu i demo.
>
> Martin
JJ, take pouzivam, da se to dost dobre implementovat.
Musel jsem tam ale udelat nekolik zmen, protoze to neumi
jiny port nez 80. Take je to celkem nepouzitelne pokud
chces stahovat jen vybrane soubory z dostupnych, coz
nektere placene updatery umi.
Ja pokazde stahuju jen jeden updatovaci instalator,
tak mi to zas tak nevadi. Jinak spokojenost.
Vaclav Halik
Jak na upgrade po internetu
[*] Venca Zaruba <zaruba(zv)elastoform(tec)cz> - 28.10.2006 15:33:10
> Muzete mne trochu popostrcit nejakym prikladem,
Mam technologickou app, ktera kazdych 10 min dava na ftp data. Pri te
prilezitosti "kouka" po souboru povel,
pomoci ktereho predavam napriklad povel update(verze5.5). Otestuji cislo
verze a je-li treba downlouduji
new55.zip a zavru app. Na stroji je sluzba, ktera nahazuje hlavni app. V
pripade vyskytu new*.zip,
zkopiruje app.exe > app.old a rozbaly balicek s novou verzi pred samotnym
nahozenim app.....
Drevni, ale osvedcene, lze poslat i povel old atd...
Vasek
Jak na upgrade po internetu
[*] mkajnar(zv)mikesoft(tec)cz - 28.10.2006 16:45:16
Je to jednoduche jak facka... Na server si nachystas dva soubory... Exe nebo
dll prejmenovane na neco co zvladne server poslat i pres zvysene zabezpeceni
a musi to byt serveru znamy MIMETYP. Takze treba mojeaplikace.exe zmenis na
mojeaplikace.html... Do jineho souboru (staci zase html) si zaneses verzi te
aplikace.
Soubor s verzi si stahnes ze serveru vzdy jako prvni a porovnas proti
skutecne verzi exe souboru
co mas... Pokud je novejsi na serveru, tak pomoci bezneho kodu pro stazeni
souboru z internetu (WinInet, Synapse ci co) si soubor stahne tva vlastni
aplikace do adresare vedle sebe a sama sebe prejmenuje na mojeaplikace.bak -
to cele za chodu, windows to umoznuje. Smazat ji nemuzes, ale prejmenovat
ano. Potom prejmenujes stazeny soubor na *.exe a uvnitr aplikace zbyva
posledni kroky - shodit sebe sama a zaridit jeste nove nahozeni... To udelas
tak, ze zavolas vykonani ParamStr(0) pres Shell a provedes hned potom
Application.Terminate...
That is all...
Jak na upgrade po internetu
[*] Petr Vones <conference(zv)petrvones(tec)net> - 28.10.2006 22:19:38
From: "Radek Voltr" <voltr(zv)eleasoftware.com>
> Bacha na to ze XP SP 2 oznacuji exace stazene z internetu a ulozene
> na NTFS (je to tak jako alternate data stream) takze pri kazdem spusteni
> prudi bezpecnostnim dotazem.
Predevsim je nutne si uvedomit, ze uzivatel nema (spravne by nemel mit !)
administratorska prava a tim ani pristup do slozky Program Files pro zapis.
Tim padem nemuze pod svym uctem prepsat zadne soubory aplikace. Ve Windows
Vista navic nema stale administratorska prava ani admin (viz UAC), nicmene
Windows Installer 4.0 umi tuto situaci resit.
Petr Vones
Jak na upgrade po internetu
[*] Milan Kajnar <mkajnar(zv)mikesoft(tec)cz> - 28.10.2006 22:39:39
> Taky neni od veci si do souboru s verzi dat md5/crc souboru. Pokud to
> vhodne
> spocitas je mozne to pouzit jako lite verzi digitalniho podpisu ale hlavne
> si neprejmenujes
> sam sebe na .bak a nasledne nehodis jako .exe nejaky zmetek kteremu pulka
> schazi :-)
Presne tak... :-) Zapomnel jsem, ale je to dobry napad...
Jak na upgrade po internetu
[*] Radek Voltr <voltr(zv)eleasoftware(tec)com> - 28.10.2006 21:51:36
Zdar,
Bacha na to ze XP SP 2 oznacuji exace stazene z internetu a ulozene
na NTFS (je to tak jako alternate data stream) takze pri kazdem spusteni
prudi bezpecnostnim dotazem.
Obejit to lze bud smazanim toho streamu nebo lepe zabalenim souboru treba
do CABu ktery neni problem na kazdych windows rozbalit.
Taky neni od veci si do souboru s verzi dat md5/crc souboru. Pokud to vhodne
spocitas je mozne to pouzit jako lite verzi digitalniho podpisu ale hlavne
si neprejmenujes
sam sebe na .bak a nasledne nehodis jako .exe nejaky zmetek kteremu pulka
schazi :-)
Radek
> -----Original Message-----
> From: delphi-l-owner(zv)clexpert(tec)cz
> [mailto:delphi-l-owner(zv)clexpert(tec)cz] On Behalf Of mkajnar(zv)mikesoft(tec)cz
> Sent: Tuesday, November 28, 2006 4:45 PM
> To: delphi-l(zv)clexpert(tec)cz
> Subject: Re: Jak na upgrade po internetu
>
> Je to jednoduche jak facka... Na server si nachystas dva
> soubory... Exe nebo
> dll prejmenovane na neco co zvladne server poslat i pres
> zvysene zabezpeceni
> a musi to byt serveru znamy MIMETYP. Takze treba
> mojeaplikace.exe zmenis na
> mojeaplikace.html... Do jineho souboru (staci zase html) si
> zaneses verzi te
> aplikace.
>
> Soubor s verzi si stahnes ze serveru vzdy jako prvni a porovnas proti
> skutecne verzi exe souboru
> co mas... Pokud je novejsi na serveru, tak pomoci bezneho
> kodu pro stazeni
> souboru z internetu (WinInet, Synapse ci co) si soubor stahne
> tva vlastni
> aplikace do adresare vedle sebe a sama sebe prejmenuje na
> mojeaplikace.bak -
> to cele za chodu, windows to umoznuje. Smazat ji nemuzes, ale
> prejmenovat
> ano. Potom prejmenujes stazeny soubor na *.exe a uvnitr aplikace zbyva
> posledni kroky - shodit sebe sama a zaridit jeste nove
> nahozeni... To udelas
> tak, ze zavolas vykonani ParamStr(0) pres Shell a provedes hned potom
> Application.Terminate...
>
> That is all...
>
>
>
>
>
Jak na upgrade po internetu
[*] Milan Kajnar <mkajnar(zv)mikesoft(tec)cz> - 28.10.2006 22:51:40
> Predevsim je nutne si uvedomit, ze uzivatel nema (spravne by nemel mit !)
> administratorska prava a tim ani pristup do slozky Program Files pro
> zapis.
> Tim padem nemuze pod svym uctem prepsat zadne soubory aplikace. Ve Windows
> Vista navic nema stale administratorska prava ani admin (viz UAC), nicmene
> Windows Installer 4.0 umi tuto situaci resit.
Petr ma pravdu (timto ho zdravim :-)) i kdyz to byva vsude vesele
ignorovano...
Pro upgrade servisu a dll k nemu to asi neni problem, ten prava pro zapis
mit bude
a navic nemusi nutne lezet v Program Files, ale asi to me reseni neni
nejcistejsi
a bude nutne do budoucna lepsi spolehat na ten Windows Installer 4.0
COM a provoz na terminalovem serveru
[*] Radek Voltr <voltr(zv)eleasoftware(tec)com> - 28.10.2006 21:57:36
Vyresil jsi to ?
Mame nekolik COM serveru a pokud si uvedomuju tak normalne na terminal
session jedou
aniz by jsme provozovali nejake extra konfigurace.
Jak inproc tak outproc, jedine co vim ze zlobi jsou virtualni desktopy pod
jednim uctem delane
pres vytvareni novych desktopu ve windows (coz je neco jineho nez terminal
session), tam to
nejak nerozdejchava a rozject se me to nepovedlo.
Zatim
Radek
> -----Original Message-----
> From: delphi-l-owner(zv)clexpert(tec)cz
> [mailto:delphi-l-owner(zv)clexpert(tec)cz] On Behalf Of Milan Tomes
> Sent: Tuesday, November 21, 2006 7:47 AM
> To: delphi-l(zv)clexpert(tec)cz
> Subject: COM a provoz na terminalovem serveru
>
> Zdravim konferencniky,
>
> potreboval bych poradit s tim co a kde mam nastavit v pripade provozu
> aplikaci na terminalovem serveru.
>
> Problem je takovy, ze pri spusteni na standardnim PC (tj.
> neterminalovy
> pristup, ale lokalni spusteni) vse funguje tak jak ma, ale v pripade
> spusteni na terminalu nejde aplikaci spustit kvuli nemoznosti
> spusteni
> COM serveru, ktery je pro funkci vyzadovan. Navratove kody
> hlasi chybu,
> ze cesta k serveru nebyla nalezena, nicmene to jsem
> kontroloval zepredu
> i zezadu a cesta je uvedena spravne (tedy COM server je spravne
> zaregistrovan). Napada me nutnost jakesi konfigurace DCOM,
> ale absolutne
> netusim proc, co a kde.
>
> Je nekdo schopen poradit ??? Potrebuji to opravdu akutne.
>
> Diky
>
> S pozdravem
>
> Milan Tomes
>
>
>
ADMIN: Nabidka predani projektu
[*] Petr Zahradnik <clexpert(zv)clexpert(tec)cz> - 28.10.2006 19:51:28
Puvodni zprava ze dne 28.11.2006 od David Kopecek:
>> DOTAZI ZASILEJTE na email cadsky(zv)dsoft(tec)cz
> nase firma Cyber Stream Technology http://www.cyberstream(tec)cz by mela zajem.
> Muzu se zeptat jaky j duvod presunu projektu od vas pryc?
Ty snad neumis cist cesky, kdyz pise, ze mas "DOTAZI" posilat na jeho
mail a ne do konference???
To je pouze recnicka otazka, na kterou necekam odpoved a uz vubec ne
sem do konference.
Petr Zahradnik, pocitacovy expert
==========================================================
Petr Zahradnik, Computer Laboratory
web: http://www.clexpert(tec)cz, e-mail: clexpert(zv)clexpert(tec)cz
==========================================================
Nabidka predani projektu
[*] David Kopecek <david.kopecek(zv)hacktrack(tec)com> - 28.10.2006 18:07:21
Dobry den,
28. listopadu 2006, 16:01:13, napsal jste:
ddc> Hledame firmu, ktera je ochotna prevzit softwarovy projekt napsany v Delphi
ddc> 5.
ddc> Prevod prav nabizime bez naroku na odmenu. Zakaznik je z Prahy.
ddc> DOTAZI ZASILEJTE na email cadsky(zv)dsoft(tec)cz
ddc> S pozdravem Vladislav Cadsky
nase firma Cyber Stream Technology http://www.cyberstream(tec)cz by mela zajem.
Muzu se zeptat jaky j duvod presunu projektu od vas pryc?
--
S pozdravem,
David
david.kopecek(zv)hacktrack.com
Je videt cursor?
[*] Petr Daricek <petr.daricek(zv)seznam(tec)cz> - 29.10.2006 08:50:20
Ahoj,
nevim jak zjisti jestli je vidett kurzor. Ale pokud mas tento problem tak bych si udelal vlastni funkce ShowCursor a HideCursor, v nich bych si nastavoval nejakou vlstni promenou a podle toho bych se zachoval.
Petr
ADMIN: Nabidka predani projektu
[*] Petr Zahradnik <clexpert(zv)clexpert(tec)cz> - 29.10.2006 10:26:29
Puvodni zprava ze dne 29.11.2006 od standus:
> pracuji v prostredi Borland (C++ i Delphi) a vyvijim nekolik
> projektu. Rad bych se zeptal o jaky projekt z vasich stranek se
> jedna a jaky je duvod predani tohoto projektu. Mel bych pripadny
> zajem nejaky projekt dale bud rozvijet, nebo ho prepracovat podle
> mych predstav coz zalezi na slozitosti toho projektu. Prosim tedy o
> podrobnejsi informace na tento muj email. Dekuji
Pane Boze, vcera tu o tom pisu... Nevim, jak chce prevzit jakykoliv
projekt nekdo, kdo ani neumi precist v poradku tri vety a napsat
spravne e-mail.
Petr Zahradnik, pocitacovy expert
==========================================================
Petr Zahradnik, Computer Laboratory
web: http://www.clexpert(tec)cz, e-mail: clexpert(zv)clexpert(tec)cz
==========================================================
OT: dotaz
[*] ivan <ivan(zv)boucek(tec)cz> - 29.10.2006 11:04:32
Potreboval by som presmerovat konferenciu na inu emailovu adresu ako je
tato, ale som stratil vsetky kontakty, kde by to mohlo byt popisane. Neviete
nahodou niekto, kde /ako by som to mohol presmerovat? Dik. Ivan Kozak
Nahravani zvuku pomoci Audio Component Suite
[*] Jiri Matejka <matejka(zv)stemmark(tec)cz> - 29.10.2006 11:08:32
Zdravim,
resim nasledujici problem: potrebuju nahravat zvuku jdouci na vstup
zvukovky a obcas jej prerusit jinym zvukem (napr. ze souboru neco.wav -
kratke cinknuti v delce cca 1 sec).
Pouzivam na to balik Audio Component Suite 2.2 (D6Prof, WXP SP2), konkretne
komponenty TAudioIn (vstup zvukovky) TWaveIn (vstup ze souboru), TInputList,
ktery spravuje oba tyto vstupy a umoznuje jejich prepinani a TMP3Out pro
zaznam do souboru.
Prepnuti vstupu ze zvukovky na vstup ze souboru (InputList.CurrentInput:=1)
funguje ok, ale problem je v tom, ze vstupni soubor se sice korektne zapise
do vystupniho, ale nahravani se ukonci a nelze zpetne prepnout na vstup ze
zvukovky. Jedine reseni je nastavit WaveIn.Loop na true (vstupni soubor se
zapisuje opakovane stale dokola), potom lze prepnout zpet na zvukovku, ale
nedokazu zajistit, aby se wav zapsal do vystupu pouze jednou, vzdy zalezi na
tom za jak dlouho prepnu zpet na zvukovku, cim dele, tim vickrat se zapise,
coz je nezadouci... Potrebuju docilit toho, aby se tam wav soubor zapsal jen
jednou a opet sem mohl prepnout zpet na vstup ze zvukovky...
za jakekoli napady predem diky
Jiri Matejka
COM a provoz na terminalovem serveru
[*] Milan Tomes <delphi(zv)haida(tec)cz> - 29.10.2006 15:08:50
Bohuzel jsem to nevyresil... Vubec netusim kde je zakopany pes.
V zoufalstvi jsem provedl pokus, ze jsem dany COM server spustil rucne
(parametr -embedding) a pak se to rozjelo. Nicmene pozadavek na
vytvoreni serveru pres CoCreateInstance proste selze (pokud neni server
spusten). Jeste jedna podivnost me zaujala - v syslogu se nepravidelne
objevuji hlasky o stejne chybe (tedy cesta nenalezena) napr. u
out-of-process COM serveru napr. od MS (outlook apod.)
S pozdravem
Milan Tomes
Radek Voltr napsal(a):
> Vyresil jsi to ?
>
> Mame nekolik COM serveru a pokud si uvedomuju tak normalne na terminal
> session jedou
> aniz by jsme provozovali nejake extra konfigurace.
>
>
>> -----Original Message-----
>> From: delphi-l-owner(zv)clexpert(tec)cz
>> [mailto:delphi-l-owner(zv)clexpert(tec)cz] On Behalf Of Milan Tomes
>>
>> potreboval bych poradit s tim co a kde mam nastavit v pripade provozu
>> aplikaci na terminalovem serveru.
>>
>> Problem je takovy, ze pri spusteni na standardnim PC (tj.
>> neterminalovy
>> pristup, ale lokalni spusteni) vse funguje tak jak ma, ale v pripade
>> spusteni na terminalu nejde aplikaci spustit kvuli nemoznosti
>> spusteni
>> COM serveru, ktery je pro funkci vyzadovan. Navratove kody
>> hlasi chybu,
>> ze cesta k serveru nebyla nalezena, nicmene to jsem
Import z textoveho souboru do tabulky Access (mdb)
[*] horky(zv)cominn(tec)cz - 30.10.2006 15:34:29
> From: Miroslav Suchy [mailto:suchy(zv)jplusj(tec)cz]
> Sent: Thursday, November 30, 2006 2:58 PM
> ADOCommandZakazky.CommandText := 'INSERT INTO import SELECT
> * FROM [Text;Database=\moss\server;HDR=YES].[soubor.txt]';
> Lze nejak sdelit, ze se jedna o
> textovy soubor bez hlavicky,
"HDR=YES" bych zmenil na "HDR=NO"
> 2.Nebere jinou priponu nez txt.
"soubor.txt" bych zmenil na "soubor.jina_pripona"
Je to bez zaruky, ADO nepouzivam.
--
S pozdravem Karel Horky, D7, FB 1.5.2, IBX 7.08, WXP SP2
[mailto:horky(zv)cominn(tec)cz]
Import z textoveho souboru do tabulky Access (mdb)
[*] Martin Pisarik <martin.pisarik(zv)seznam(tec)cz> - 30.10.2006 15:34:29
No ja bych to takto nedelal. Nacetl bych soubor, z nej vyrobil SQL dotaz a
ten provedl.
K tomu tvemu prvnimu problemu bych ale mel mozna napad.
[Text;Database=\moss\server;HDR=YES] nahradit za
[Text;Database=\moss\server;HDR=NO], treba to pak nebude vyzadovat tu
hlavicku... Nevim, nikdy jsem to nepouzil.
> Subject: Import z textoveho souboru do tabulky Access (mdb)
>
> Ahoj vsichni,
> v databazove aplikaci pouzivam komponenty ADO a databazi Access.
> Nastala potreba naplnit tabulku daty z textoveho souboru.
> Nekde jsem vystoural nasledujici kod:
> ADOCommandZakazky.CommandText := 'INSERT INTO import SELECT *
> FROM [Text;Database=\moss\server;HDR=YES].[soubor.txt]';
> ADOCommandZakazky.Execute;
>
> To temer funguje az na dve veci.
> 1. Zjevne se predpoklada, ze prvni radka textoveho souboru
> obsahuje hlavicku, ale
--
No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.1.409 / Virus Database: 268.14.19/555 - Release Date: 27.11.2006
Import z textoveho souboru do tabulky Access (mdb)
[*] Jan Sebelik <honza(zv)haes(tec)cz> - 30.10.2006 15:42:29
> ADOCommandZakazky.CommandText := 'INSERT INTO import SELECT *
> FROM [Text;Database=\moss\server;HDR=YES].[soubor.txt]';
> nebo si ji tam pred kazdym nactenim budu muset doplnit ?
Ja s tim nemam zadnou zkusenost.
Jenom me napadlo, co asi znamena to HDR=YES
Co kdyby se tam dalo NO?
> 2.Nebere jinou priponu nez txt.
Divny, soudil bych, ze typ souboru je to prvni "Text" pred "Database".
Pak "soubor.txt" je jmeno a nemelo by mu vadit, kdyby to nebylo ".txt"
Honza
====================================
= RNDr. Jan Sebelik - HAES
= Skolici a konzultacni stredisko pro vyvoj SW
= www.haes(tec)cz
= Vojtiskova 321
= 507 81 Lazne Belohrad
====================================
Import z textoveho souboru do tabulky Access (mdb)
[*] Miroslav Suchy <suchy(zv)jplusj(tec)cz> - 30.10.2006 14:58:26
Ahoj vsichni,
v databazove aplikaci pouzivam komponenty ADO a databazi Access.
Nastala potreba naplnit tabulku daty z textoveho souboru.
Nekde jsem vystoural nasledujici kod:
ADOCommandZakazky.CommandText := 'INSERT INTO import SELECT * FROM [Text;Database=\moss\server;HDR=YES].[soubor.txt]';
ADOCommandZakazky.Execute;
To temer funguje az na dve veci.
1. Zjevne se predpoklada, ze prvni radka textoveho souboru obsahuje hlavicku, ale
soubor, ktery potrebuju nacist, zadnou hlavicku nema. Jsou to rovnou hodnoty a koncim
tedy chybovou hlaskou Prikaz INSERT INTO obsahuje neznamy nazev pole : 06/12345/01-,
coz je hodnota prvniho pole. Lze nejak sdelit, ze se jedna o textovy soubor bez hlavicky,
nebo si ji tam pred kazdym nactenim budu muset doplnit ? (Zpusob vytvareni souboru
nemuzu ovlivnit.)
2.Nebere jinou priponu nez txt. Soubor se jmenuje jinak a opet nevim, zda to lze ovlivnit,
nebo jestli si musim soubor prejmenovat.
A nebo je to cele spatne a mam soubor nacist jinak? Jak?
Diky za radu
Miroslav Suchy
D7 Prof, WXP
Import z textoveho souboru do tabulky Access (mdb)
[*] PCservis Skloform a.s. <pcservis(zv)skloform(tec)cz> - 30.10.2006 15:28:28
ADO nepouzivam, tak zadna moudra davat nemohu, ale v prikazu u definice textaku vidim parametr HDR=YES a to mi pripada, ze tim by mohlo byt receno, ze data jsou s hlavickou.
Jirka
> Ahoj vsichni,
> v databazove aplikaci pouzivam komponenty ADO a databazi Access.
> Nastala potreba naplnit tabulku daty z textoveho souboru.
> Nekde jsem vystoural nasledujici kod:
> ADOCommandZakazky.CommandText := 'INSERT INTO import SELECT * FROM [Text;Database=\moss\server;HDR=YES].[soubor.txt]';
> ADOCommandZakazky.Execute;
>
> To temer funguje az na dve veci.
> 1. Zjevne se predpoklada, ze prvni radka textoveho souboru obsahuje hlavicku, ale
> soubor, ktery potrebuju nacist, zadnou hlavicku nema. Jsou to rovnou hodnoty a koncim
> tedy chybovou hlaskou Prikaz INSERT INTO obsahuje neznamy nazev pole : 06/12345/01-,
> coz je hodnota prvniho pole. Lze nejak sdelit, ze se jedna o textovy soubor bez hlavicky,
> nebo si ji tam pred kazdym nactenim budu muset doplnit ? (Zpusob vytvareni souboru
> nemuzu ovlivnit.)
D7 a StarTeam 2005
[*] Radim Kunz <rkunz(zv)casestudio(tec)com> - 30.10.2006 13:16:19
Existuje zpusob na slusnou integraci Delphi 7 a Star Team 2005? Slusnou
myslim aspon na urovni Jedi apod. Muze jit i plug-in treti firmy, treba
placeny.
Radim
OT: nabidka prace Praha
[*] Jan Sebelik <honza(zv)haes(tec)cz> - 30.10.2006 12:04:15
Zdravim.
Byl jsem pozadan, abych pomohl pri hledani programatoru pro vyvoj aplikace v GE Money Bank.
Pozadavky:
Delphi + Oracle,
tri vrstvy s ClientDataSet, TDataSetProvider, RemoteDataModule
Moznost prace na ZL.
Co k tomu mohu rici?
Hodne. Stravil jsem tam cely kveten.
Zajimava prace, dobry kolektiv, dobry sefik, dobre penize.
Musel jsem to ale preci jenom vzdat - denni dojizdeni z Belohradu do Prahy bylo narocne, k tomu jeste agenda nasich kurzu (v kvetnu se skoli asi nejvic), k tomu dalsi projekty. Proste jsem to nestihal.
Rozesli jsme se v dobrem, jinak by me taky nepozadali o pomoc.
Pro ty, co neznaji Oracle:
se znalosti Firebird jsem se velmi rychle aklimatizoval, neni treba se niceho obavat.
Prosim, ozvete se na muj soukromy mail honza(zv)haes(tec)cz
Rad zodpovim pripadne upresnujici dotazy.
Honza
====================================
= RNDr. Jan Sebelik - HAES
= Skolici a konzultacni stredisko pro vyvoj SW
= www.haes(tec)cz
= Vojtiskova 321
= 507 81 Lazne Belohrad
====================================
OT: Nabidka prace Liberec, nebo Frydek-Mistek
[*] Martin Matousek <martin.matousek(zv)topspin(tec)cz> - 30.10.2006 11:24:12
Dobry den,
hledame programatora/ku pro vyvoj aplikaci v prostredi Delphi. Nase firma ze
zabyva vyvojem informacnich systemu pro verejnou spravu. Prikladem muze byt
sprava dani a poplatku, spisova sluba, nebo e-podatelna. Vyvoj zacina byt
cim dal tim vic zajimavejsi, organizace verejne spravy se konecne zajimaji o
aplikace e-governmentu. Nase firma se tak venuje vyuzitim modernich
technologii a navrhu reseni v teto nove oblasti.
Pozadavky:
- znalost Delphi (Win32) v oblasti databazovych aplikaci (Dephi,ADO,SQL,XML)
Nabizime:
- dlouhodobou spolupraci
- moznost vyberu pracoviste v Liberci, nebo Frydku-Mistku
- moznost vyberu zpusobu pracovniho pomeru
- moznost castecne vzdalene spoluprace
- moznost budouciho preskoleni na vyvoj pro prostredi .NET
- neni nutna znalost problematiky ekonomickcyh IS
- spolupraci s zelenymi lidmi
Pokud Vas nabidka zaujala, kontaktujte mne mimo konferenci.
Martin Matousek
TOPSPIN Solutions, s.r.o.
martin.matousek(zv)topspin(tec)cz
<mailto:tomas.emresz(zv)strankysnadno(tec)cz>
GetLocaleFormatSettings a TFormatSettings
[*] aldik(zv)quick(tec)cz - 29.10.2006 14:46:48
ahoj netusite proc mi na Delphi 6 Enterprise neexistuji vyse uvedena fce a
record, ktery by jinak mel byt asi v sysutils? Diky moc
Ales
PS:Googlil jsem googlil lec nevygooglil
Veci pro Radu
[*] Ladislav Stary <stary(zv)ekodat(tec)cz> - 29.10.2006 11:02:31
Notebook Acer Ferrari
- Bezdratova sit
- zalozni disk
- graficka karta
- rozsireni pameti
- bezdratova sit do stolniho pocitace
DbGrid.OnDrawColumnCell
[*] Ivan Dulgerov <ivan.dulgerov(zv)sazp.sk> - 01.12.2006 11:57:55
Zdravim
Sorry, ze otravujem s takou blbostou, ale potrebujem zvyraznit
jeden vybrany riadok v TDBGrid. Takze som si osetril
udalost OnDrawColumnCell.
Viz. kod :
with Sender as TDBGrid do
begin
if gdSelected in State then
begin
Canvas.Brush.Color := clYellow;
Canvas.Font.Color := clBlack;
end
else Canvas.Brush.Color:=clWhite;
DBGrid3.DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;
Vsetko je OK, akurat, ze sa mi vyfarbi vzdy len jeden stlpec
(a ja :-) samozrejme potrebujem cely riadok).
Neviete niekto, co mam zle?
Uz som to kedysi davno robil, len teraz si zaboha nemozem spomenut ....
--
S pozdravom
Ivan Dulgerov CEI SAZP Programator
Tajovskeho 28
97590 Banska Bystrica
tel: 048 4374144
ICQ : 190698607
mail : ivan.dulgerov(zv)sazp.sk
COM a provoz na terminalovem serveru
[*] Radek Voltr <voltr(zv)eleasoftware(tec)com> - 01.12.2006 13:34:02
Uzivatel ktery COM server registroval a ktery je pripojeny pres Terminal
je stejny nebo ne ?
Radek
> -----Original Message-----
> From: delphi-l-owner(zv)clexpert(tec)cz
> [mailto:delphi-l-owner(zv)clexpert(tec)cz] On Behalf Of Milan Tomes
> Sent: Wednesday, November 29, 2006 3:09 PM
> To: delphi-l(zv)clexpert(tec)cz
> Subject: Re: COM a provoz na terminalovem serveru
>
> Bohuzel jsem to nevyresil... Vubec netusim kde je zakopany pes.
> V zoufalstvi jsem provedl pokus, ze jsem dany COM server
> spustil rucne
> (parametr -embedding) a pak se to rozjelo. Nicmene pozadavek na
> vytvoreni serveru pres CoCreateInstance proste selze (pokud
> neni server
> spusten). Jeste jedna podivnost me zaujala - v syslogu se
> nepravidelne
> objevuji hlasky o stejne chybe (tedy cesta nenalezena) napr. u
> out-of-process COM serveru napr. od MS (outlook apod.)
>
> S pozdravem
>
> Milan Tomes
>
>
> Radek Voltr napsal(a):
> > Vyresil jsi to ?
> >
> > Mame nekolik COM serveru a pokud si uvedomuju tak normalne
> na terminal
> > session jedou
> > aniz by jsme provozovali nejake extra konfigurace.
> >
> >
> >> -----Original Message-----
> >> From: delphi-l-owner(zv)clexpert(tec)cz
> >> [mailto:delphi-l-owner(zv)clexpert(tec)cz] On Behalf Of Milan Tomes
> >>
> >> potreboval bych poradit s tim co a kde mam nastavit v
> pripade provozu
> >> aplikaci na terminalovem serveru.
> >>
> >> Problem je takovy, ze pri spusteni na standardnim PC (tj.
> >> neterminalovy
> >> pristup, ale lokalni spusteni) vse funguje tak jak ma, ale
> v pripade
> >> spusteni na terminalu nejde aplikaci spustit kvuli nemoznosti
> >> spusteni
> >> COM serveru, ktery je pro funkci vyzadovan. Navratove kody
> >> hlasi chybu,
> >> ze cesta k serveru nebyla nalezena, nicmene to jsem
>
>
DbGrid.OnDrawColumnCell
[*] Petr Kejval <petr.kejval(zv)worldonline(tec)cz> - 01.12.2006 13:26:01
Ahoj,
ja pouzivam neco takoveho:
type THookCustomGrid = class(TCustomGrid);
procedure TFMain.DBGrid2DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if (Rect.Top =
THookCustomGrid(Sender).CellRect(THookCustomGrid(Sender).Col,THookCustomGrid(Sender).Row).Top)
and (not (gdFocused in State) or not TDBGrid(Sender).Focused) then
begin
if TDBGrid(Sender).DataSource.DataSet.FieldByName('TypPosty').Value > 3
then
begin
TDBGrid(Sender).Canvas.Brush.Color := $00F3F0FF;
if Column.Field.FieldName = 'CisloJednaci' then
begin
TDBGrid(Sender).Canvas.Brush.Color:=clYellow;
TDBGrid(Sender).Canvas.Font.Color:=clRed;
end
end
else
begin
TDBGrid(Sender).Canvas.Brush.Color := $FFF3F7;
if Column.Field.FieldName = 'CisloJednaci' then
begin
TDBGrid(Sender).Canvas.Brush.Color := clGreen;
TDBGrid(Sender).Canvas.Font.Color:=clBlue;
end
end;
end else if not (gdFocused in State) then
begin
TDBGrid(Sender).Canvas.Brush.Color := clInfoBk;
if TDBGrid(Sender).DataSource.DataSet.FieldByName('TypPosty').Value > 3
then
begin
if Column.Field.FieldName = 'CisloJednaci' then
begin
TDBGrid(Sender).Canvas.Brush.Color := clYellow;
TDBGrid(Sender).Canvas.Font.Color:=clRed
end;
end
else
begin
if Column.Field.FieldName = 'CisloJednaci' then
begin
TDBGrid(Sender).Canvas.Brush.Color := clGreen;
TDBGrid(Sender).Canvas.Font.Color:=clBlue
end;
end;
end;
TDBGrid(Sender).DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;
Za jmena poli si dosad svoje a pohraj si s barvami.
Petr Kejval
> Zdravim
>
> Sorry, ze otravujem s takou blbostou, ale potrebujem zvyraznit
> jeden vybrany riadok v TDBGrid. Takze som si osetril
> udalost OnDrawColumnCell.
>
> Viz. kod :
>
> with Sender as TDBGrid do
> begin
> if gdSelected in State then
> begin
> Canvas.Brush.Color := clYellow;
> Canvas.Font.Color := clBlack;
> end
> else Canvas.Brush.Color:=clWhite;
> DBGrid3.DefaultDrawColumnCell(Rect,DataCol,Column,State);
> end;
>
> Vsetko je OK, akurat, ze sa mi vyfarbi vzdy len jeden stlpec
> (a ja :-) samozrejme potrebujem cely riadok).
>
> Neviete niekto, co mam zle?
>
> Uz som to kedysi davno robil, len teraz si zaboha nemozem spomenut ....
> --
> S pozdravom
>
> Ivan Dulgerov CEI SAZP Programator
>
DbGrid.OnDrawColumnCell
[*] Lebeda David <david.lebeda(zv)comarr(tec)cz> - 01.12.2006 13:42:03
> with Sender as TDBGrid do
> begin
> if gdSelected in State then
> begin
> Canvas.Brush.Color := clYellow;
> Canvas.Font.Color := clBlack;
> end
> else Canvas.Brush.Color:=clWhite;
> DBGrid3.DefaultDrawColumnCell(Rect,DataCol,Column,State);
> end;
>
> Vsetko je OK, akurat, ze sa mi vyfarbi vzdy len jeden stlpec
> (a ja :-) samozrejme potrebujem cely riadok).
Ahoj,
to bude tim, ze stav gdSelected bude mit jen jedna bunka. Pokud neni mozne
v DBGrid.Options zapnout RowSelect, bude treba vybarvovany radek
identifikovat jinak nez podle gdSelected - napr. podle ID, RecNo apod.
David Lebeda
COM a provoz na terminalovem serveru
[*] Milan Tomes <delphi(zv)haida(tec)cz> - 01.12.2006 13:46:03
No pri testech jsem byl prihlaseny jako lokalni admin. Registroval jsem
to a take jsem schvalne zkousel odregistraci a nic resp. vse korektne
probehlo nicmene zadny pokrok
S pozdravem
Milan Tomes
Radek Voltr napsal(a):
> Uzivatel ktery COM server registroval a ktery je pripojeny pres Terminal
> je stejny nebo ne ?
>
>> [mailto:delphi-l-owner(zv)clexpert(tec)cz] On Behalf Of Milan Tomes
>> Sent: Wednesday, November 29, 2006 3:09 PM
>>
>> Bohuzel jsem to nevyresil... Vubec netusim kde je zakopany pes.
>> V zoufalstvi jsem provedl pokus, ze jsem dany COM server
>> spustil rucne
>> (parametr -embedding) a pak se to rozjelo. Nicmene pozadavek na
>> vytvoreni serveru pres CoCreateInstance proste selze (pokud
>> neni server
>> spusten). Jeste jedna podivnost me zaujala - v syslogu se
>> nepravidelne
>> objevuji hlasky o stejne chybe (tedy cesta nenalezena) napr. u
>> out-of-process COM serveru napr. od MS (outlook apod.)
>>
>> Radek Voltr napsal(a):
>>
>>> Vyresil jsi to ?
>>>
>>> Mame nekolik COM serveru a pokud si uvedomuju tak normalne
>>>
>> na terminal
>>
>>> session jedou
>>> aniz by jsme provozovali nejake extra konfigurace.
>>>
>>>
>>>
>>>> -----Original Message-----
>>>> From: delphi-l-owner(zv)clexpert(tec)cz
>>>> [mailto:delphi-l-owner(zv)clexpert(tec)cz] On Behalf Of Milan Tomes
>>>>
>>>> potreboval bych poradit s tim co a kde mam nastavit v
>>>>
>> pripade provozu
>>
>>>> aplikaci na terminalovem serveru.
>>>>
>>>> Problem je takovy, ze pri spusteni na standardnim PC (tj.
>>>> neterminalovy
>>>> pristup, ale lokalni spusteni) vse funguje tak jak ma, ale
>>>>
>> v pripade
>>
>>>> spusteni na terminalu nejde aplikaci spustit kvuli nemoznosti
>>>> spusteni
>>>> COM serveru, ktery je pro funkci vyzadovan. Navratove kody
>>>> hlasi chybu,
>>>> ze cesta k serveru nebyla nalezena, nicmene to jsem
>>>>
>>
>
>
>
>
DbGrid.OnDrawColumnCell
[*] Ivan Dulgerov <ivan.dulgerov(zv)sazp.sk> - 01.12.2006 13:44:03
Ivan Dulgerov wrote / napisal(a):
> Vsetko je OK, akurat, ze sa mi vyfarbi vzdy len jeden stlpec
> (a ja :-) samozrejme potrebujem cely riadok).
>
> Neviete niekto, co mam zle?
> *Takze odpoviem si sam :
* treba prepnut vlastnost dgRowSelect := True
:-))
--
S pozdravom
Ivan Dulgerov CEI SAZP Programator
Tajovskeho 28
97590 Banska Bystrica
tel: 048 4374144
ICQ : 190698607
mail : ivan.dulgerov(zv)sazp.sk