Archív konference Delphi

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

FireBird - pocet moznych zmen struktury tabulky

[*] Jiri Cincura <diskuze(zv)cincura(tec)net> - 10.8.2006 15:26:09

On 10.8.2006 15:14 Milan Tomes wrote:
> Mozna jednoduseji:
>
> Select 255 - rdb$format
> from rdb$relations
> where
> rdb$relation_name = nazev_tabulky

Jo, mozna to jde jednoduseji. ;) Ja to vytahl z meho kodu, delam tam jeste
nejake selecty na rdb$format, takze do dloubu takto.


--
Jiri {x2} Cincura
http://blog.vyvojar(tec)cz/jirka/ | http://www.ID3renamer.com

problemy s FB2 rc3

[*] Karel Pecinka <k.pecinka(zv)seznam(tec)cz> - 10.8.2006 16:06:12

Cau,

nainstalovali jsme na Windows 2003 server FB2 rc3, ale
nejak nam pada. Resp. k databazi se v nepravidelnych
intervalech nepripoji dalsi klient. Nekdy to jede v pohode
pul hodiny, jindy pul minuty a spadne to. Proces FB jede dal,
ale uz se k db neda pripojit a pomuze jedine restart FB sluzby.
Hlasi to pak "Database (cesta k db) shutdown".

Nevite co s tim?

Diky Karel

SQL posledni vyskyt

[*] Ludek <konference(zv)sales(tec)cz> - 10.8.2006 22:32:38

Zdravim.
Mam SQL problem : (MSSQL2000)

prvni tabulka je ciselnik :

POLOZKA_ID,POLOZKA_NAZEV......

druha tabulka obsahuje operace

OPERACE_ID,OPERACE_DATUM,POLOZKA_ID,OPERACE_CISLO

no a ja potrebuji ziskat

vsechny POLOZKA_ID existujici v ciselniku a k nim (pokud existuji) maximalni
, minimalni a podle datumu posledni hodnota OPERACE_CISLO pro danou polozku,
takze by vysledek mel byt :

POLOZKA_ID,POLOZKA_NAZEV,OPERACE_CISLO_MAX,OPERACE_CISLO_MIN,OPERACE_CISLO_LAST,OPERACE_DATUM_LAST

pricemz podstatne je ze nektere polozky nemusi mit zadnou operaci, poradi
polozek je urceno datumem v zaznamu a ne polde OPERACE_ID, to je sice
autoinkrement , ale zaznamy mohou byt ruzne "antidatovany".
Cislenik polozek ma radove 5000 polozek a cislenik operaci pres milion.

OPERACE_CISLO_MAX a OPERACE_CISLO_MIN mi necini problemy :

select
polozky.POLOZKA_ID,polozky.POLOZKA_NAZEV,ps.OPERACE_CISLO_MAX,ps.OPERACE_CISLO_MIN
from polozky
left outer join (
select operace.POLOZKA_ID , max(operace.OPERACE_CISLO) as OPERACE_CISLO_MAX,
min(operace.OPERACE_CISLO) as OPERACE_CISLO_MIN
from operace group by operace.POLOZKA_ID) ps on
ps.POLOZKA_ID=polozky.POLOZKA_ID

je to i celkem svizne, ale to OPERACE_CISLO_LAST nejak nedokazu vymyslet.

Predem diky.

Ludek


Kylix a beh aplikace na jinem pocitaci nez kde je

[*] nonsense <nonsense(zv)volny(tec)cz> - 10.8.2006 19:24:25

Vlcek Ludvik napsal(a):
> Pavel P napsal(a):
>> Ahoj vsichni,
>> nemate nahodou nekdo typ jak zjistit ktere knihovny potrebuje mit program v kylixu na pocitaci na kterem ma bezet? Kdyz zkompiluju na te same distribuci linuxu s identickou instalaci jako pocitac na kterem kylix neni instalovan a pokusim se aplikaci spustit na pocitaci bez kylixu, hlasi aplikace chybejici knihovnu, po dohrani knihovny, chybi zas jina. Tak snad nekdo mate typ jak na to... Diky PP.
>>
>>
> ldd ???
>
No, to je hodne strucne....

v linuxu existuje prikaz ldd <param>, ktery vypise pro <param>, na cem
vsem je zavislej.
Blize: man ldd


good luck

Blob a select (Oracle)

[*] Ivan Dulgerov <idulgerov(zv)stonline.sk> - 10.8.2006 17:50:19

Zdravim.

Mozete ma prosim niekto nasmerovat
na nejaky priklad, ako prehladavat Blob v
databaze Oracle?

S pozdravom
Ivan Dulgerov
Delphi5 Prof+ SP1, Delphi 4 St, Win XP Porf. + SP1, Win98 SE
mail : idulgerov(zv)stonline.sk
ICQ : 190698607

Blob a select (Oracle)

[*] mstevlik(zv)gamo.sk - 11.8.2006 08:23:18

> Zdravim.
>
> Mozete ma prosim niekto nasmerovat
> na nejaky priklad, ako prehladavat Blob v
> databaze Oracle?
>
> S pozdravom
> Ivan Dulgerov
> Delphi5 Prof+ SP1, Delphi 4 St, Win XP Porf. + SP1, Win98 SE
> mail : idulgerov(zv)stonline.sk
> ICQ : 190698607

Co myslis pod pojmom prehladavat blob?
Myslis nieco ako fulltextove vyhladavanie?

Marian Stevlik (Michal)
IS programmer / developer

GAMO a.s.
Kyjevske nam. 6
974 04 Banska Bystrica
web: www.gamo.sk
mail: mstevlik(zv)gamo.sk
tel: +421 48 4372098, 4137935, 4372111
gsm: +421 905 462010
icq: 38493645
skype: majklbb


Blob a select (Oracle)

[*] Ivan Dulgerov <ivan.dulgerov(zv)sazp.sk> - 11.8.2006 09:01:21

mstevlik(zv)gamo.sk wrote / napisal(a):
>> Zdravim.
>>
>> Mozete ma prosim niekto nasmerovat
>> na nejaky priklad, ako prehladavat Blob v
>> databaze Oracle?
>
> Co myslis pod pojmom prehladavat blob?
> Myslis nieco ako fulltextove vyhladavanie?
>

*V bloboch je text vo formate RTF, potebujem
*prehladat text vo vsetkych bloboch a zobrazit
*vsetky relevantne dokumenty.
*Mohla by to byt ulozena procedura, ktora sa bude
*volat z aplikacia.

*V interbase by som napisal nieco ako :
* select * from Objednavky where TEXT_OBJ like '%nieco%';

*Ako toto dosiahnut v ORACLE?


--
S pozdravom

Ivan Dulgerov CEI SAZP Delphi programator

Tajovskeho 28
97590 Banska Bystrica
tel: 048 4374144
ICQ : 190698607
mail : ivan.dulgerov(zv)sazp.sk


SQL posledni vyskyt

[*] Zalesak Tomas <tomas.zalesak(zv)lcs(tec)cz> - 11.8.2006 09:59:27

> je to i celkem svizne, ale to OPERACE_CISLO_LAST nejak
> nedokazu vymyslet.

SELECT
p.POLOZKA_ID,
p.POLOZKA_NAZEV,
(SELECT MAX(o.OPERACE_CISLO) FROM dbo.operace AS o WHERE o.POLOZKA_ID=p.POLOZKA_ID) AS OPERACE_CISLO_MAX,
(SELECT MIN(o.OPERACE_CISLO) FROM dbo.operace AS o WHERE o.POLOZKA_ID=p.POLOZKA_ID) AS OPERACE_CISLO_MIN,
(SELECT TOP 1 o.OPERACE_CISLO FROM dbo.operace AS o WHERE o.POLOZKA_ID=p.POLOZKA_ID ORDER BY o.OPERACE_DATUM DESC) AS OPERACE_CISLO_LAST
FROM dbo.polozky AS p

Kylix a beh aplikace na jinem pocitaci nez kde je

[*] Dalibor Toman <dtoman(zv)fortech(tec)cz> - 11.8.2006 09:43:25

On Thursday, August 10, 2006 7:24 PM ,
nonsense <nonsense(zv)volny(tec)cz> wrote:

> Vlcek Ludvik napsal(a):
>> Pavel P napsal(a):
>>> Ahoj vsichni,
>>> nemate nahodou nekdo typ jak zjistit ktere knihovny potrebuje mit
>>> program v kylixu na pocitaci na kterem ma bezet? Kdyz zkompiluju
>>> na
>>> te same distribuci linuxu s identickou instalaci jako pocitac na
>>> kterem kylix neni instalovan a pokusim se aplikaci spustit na
>>> pocitaci bez kylixu, hlasi aplikace chybejici knihovnu, po dohrani
>>> knihovny, chybi zas jina. Tak snad nekdo mate typ jak na to...
>>> Diky
>>> PP.
>>>
>>>
>> ldd ???
>>
> No, to je hodne strucne....
>
> v linuxu existuje prikaz ldd <param>, ktery vypise pro <param>, na
> cem
> vsem je zavislej.

rekl bych ze bude stacit precist si 'application deployment' sekci v
nejakem navodu/readme od Borlandu, kde je urcite receny co se musi
udelat. Ja se s tim problemem nesetkal - console mode aplikace, ktere
jsem napsal zadnou pritez v podobe dalsich knihoven sebou netahnou...


http://www.efg2.com/Lab/Library/Kylix/deployment.htm


D. Toman

Blob a select (Oracle)

[*] mstevlik(zv)gamo.sk - 11.8.2006 09:13:22

> *V bloboch je text vo formate RTF, potebujem
> *prehladat text vo vsetkych bloboch a zobrazit
> *vsetky relevantne dokumenty.
> *Mohla by to byt ulozena procedura, ktora sa bude
> *volat z aplikacia.
>
> *V interbase by som napisal nieco ako :
> * select * from Objednavky where TEXT_OBJ like '%nieco%';
>
> *Ako toto dosiahnut v ORACLE?
>
>
> --
> S pozdravom
>
> Ivan Dulgerov CEI SAZP Delphi programator
>
> Tajovskeho 28
> 97590 Banska Bystrica
> tel: 048 4374144
> ICQ : 190698607
> mail : ivan.dulgerov(zv)sazp.sk\

Ja to robim nasledovnym sposobom pomocou package:
CTXSYS.CTX_DDL

Musis najprv nadtym blob-fieldom vytvorit index:
CREATE INDEX meno_indexu ON meno_tab(meno_blob_fieldu) INDEXTYPE IS
CTXSYS.CONTEXT;

Je dobre ho obcas refreshnut:
CTXSYS.CTX_DDL.SYNC_INDEX('meno_indexu');

A hladanie:
SELECT * FROM meno_tab WHERE (CONTAINS(meno_blob_fieldu, 'hladany_text') >
0)

Zvysok v dokumentacii k package

Marian Stevlik (Michal)
IS programmer / developer

GAMO a.s.
Kyjevske nam. 6
974 04 Banska Bystrica
web: www.gamo.sk
mail: mstevlik(zv)gamo.sk
tel: +421 48 4372098, 4137935, 4372111
gsm: +421 905 462010
icq: 38493645
skype: majklbb


Blob a select (Oracle)

[*] Ivan Dulgerov <ivan.dulgerov(zv)sazp.sk> - 11.8.2006 10:25:28

mstevlik(zv)gamo.sk wrote / napisal(a):
>> *V bloboch je text vo formate RTF, potebujem
>> *prehladat text vo vsetkych bloboch a zobrazit
>> *vsetky relevantne dokumenty.
>>
>> *V interbase by som napisal nieco ako :
>> * select * from Objednavky where TEXT_OBJ like '%nieco%';
>>
>> *Ako toto dosiahnut v ORACLE?
> Ja to robim nasledovnym sposobom pomocou package:
> CTXSYS.CTX_DDL
>
> Musis najprv nadtym blob-fieldom vytvorit index:
> CREATE INDEX meno_indexu ON meno_tab(meno_blob_fieldu) INDEXTYPE IS
> CTXSYS.CONTEXT;
*Hmm , zda sa ze to funguje.;-))

> Je dobre ho obcas refreshnut:
> CTXSYS.CTX_DDL.SYNC_INDEX('meno_indexu');
*Ten refresh sa spusta z nejakej ulozenej procedury,
*alebo ho mozno spustit aj priamo cez SQL prikaz?
*Treba ho urobit po kazdom novom zazname?

--
S pozdravom

Ivan Dulgerov CEI SAZP Delphi programator

Tajovskeho 28
97590 Banska Bystrica
tel: 048 4374144
ICQ : 190698607
mail : ivan.dulgerov(zv)sazp.sk

Blob a select (Oracle)

[*] mstevlik(zv)gamo.sk - 11.8.2006 10:33:29

> *Ten refresh sa spusta z nejakej ulozenej procedury,
> *alebo ho mozno spustit aj priamo cez SQL prikaz?
> *Treba ho urobit po kazdom novom zazname?
Ja ho refreshujem v stored procedure po kazdom importnutom subore do blobu
(vobec to nezdrzuje, prebehne to v priebehu sekundy), ale kludne ho mozes
urobit raz za hodinu

Marian Stevlik (Michal)
IS programmer / developer

GAMO a.s.
Kyjevske nam. 6
974 04 Banska Bystrica
web: www.gamo.sk
mail: mstevlik(zv)gamo.sk
tel: +421 48 4372098, 4137935, 4372111
gsm: +421 905 462010
icq: 38493645
skype: majklbb


Delphi 5 a WinXP

[*] Jaroslav Blazek <jaroslav.bk(zv)gmail(tec)com> - 11.8.2006 11:07:32

Ahoj,

donedavna u zakaznika program napsany v Delphi 5 fungoval bez problemu na
Win2000, ted se dali nove pocitace s WinXP SP2 a program prestal na
nekterych masinach jet. Hned pri spusteni to hlasi vyjimku, kterou vubec
nemuzu odchytit. "Exception EAccessViolation in module xxx at ...." atd.
Jeden pocitac ma 2 jadrovy procesor, na kterem se projevila chyba okamzite,
tu chybu jsem vyresil, ze jsem si na nej nainstaloval Delphi a chybu jsem
nasel v JCLku, v JclSysInfo.pas v procedurach GetCPUSpeed, GetCpuInfo.
Program zacal fungovat. Na ostatnich to bezelo.
Po nejakem case sla aplikace 10x spustit a po 11ty to hazelo hned na zacatku
vyjimku. Ted na nekterych pocitacich je to presne opacne 11x to nejde
spustit a po 11 se to podari.
Na pocitacich jsou nastaveny automaticke aktualizace, tak nevim jestli na to
nema vliv prave nejaka aktualizace.
Nemate s tim nekdo nejake zkusenosti?

JB

Blob a select (Oracle)

[*] Ivan Dulgerov <ivan.dulgerov(zv)sazp.sk> - 11.8.2006 12:05:37

mstevlik(zv)gamo.sk wrote / napisal(a):
>> *Ten refresh sa spusta z nejakej ulozenej procedury,
>> *alebo ho mozno spustit aj priamo cez SQL prikaz?
>> *Treba ho urobit po kazdom novom zazname?
> Ja ho refreshujem v stored procedure po kazdom importnutom subore do blobu
> (vobec to nezdrzuje, prebehne to v priebehu sekundy), ale kludne ho mozes
> urobit raz za hodinu
*Uz som asi otravny..alebo je to tym piatkom... ale nemozem ho ...
*refresnut..
*Stale na mna reve "identifikator 'CTXSYS.CTX_DDL' musi by? deklarovany"

*Co robim zle?


--
S pozdravom

Ivan Dulgerov CEI SAZP Delphi programator

Tajovskeho 28
97590 Banska Bystrica
tel: 048 4374144
ICQ : 190698607
mail : ivan.dulgerov(zv)sazp.sk


Blob a select (Oracle)

[*] mstevlik(zv)gamo.sk - 11.8.2006 12:13:37

> *Uz som asi otravny..alebo je to tym piatkom... ale nemozem ho ...
> *refresnut..
> *Stale na mna reve "identifikator 'CTXSYS.CTX_DDL' musi by? deklarovany"
>
> *Co robim zle?
Treba dat oracle-userovi, kt. vola ten kus kodu pravo execute na tu
package (CTX_DDL je ownerom je CTXSYS)

Marian Stevlik (Michal)
IS programmer / developer

GAMO a.s.
Kyjevske nam. 6
974 04 Banska Bystrica
web: www.gamo.sk
mail: mstevlik(zv)gamo.sk
tel: +421 48 4372098, 4137935, 4372111
gsm: +421 905 462010
icq: 38493645
skype: majklbb


Windows 98 a velikost EXE

[*] radek_456 radek_456 <radek 456(zv)seznam(tec)cz> - 14.8.2006 08:40:26


zkus resources vytahnout do externi dll - jak ti tady uz nekdo radil
navod jak to udelat je tady:

Creating and using a resource only DLL with Delphi
http://delphi.about.com/library/weekly/aa010405a.htm

nabidka prace programator

[*] David Kopecek <david.kopecek(zv)hacktrack(tec)com> - 14.8.2006 10:12:33

Dobry den,

pro dokonceni jednoho projektu zhanime schopneho Delphi programatora

pozadavky:
Znalost Delphi 7 nebo Delphi 2006
Znalost SQL
Castecna znalost MSSQL

vyhody:
Brno a okoli
zivnostensky list


pripadni zajemci piste prosim na tento email

Thx David

Jakou komponentou zajistit pripojeni k DB Firebird

[*] Miloslav Pojsl <mpojsl(zv)seznam(tec)cz> - 14.8.2006 13:40:48

Zdravim vsechny,

prosim mohl by mi nekdo poradit, kterou komponentou v Delphi 6 zajistit pripojeni k DB Firebird 1.5, ktera se nachazi na jinem pocitaci (serveru)? Par radku kodu jako priklad by tez hodne pomohlo.

Dekuji, s pozdravem Milos Pojsl

Jakou komponentou zajistit pripojeni k DB Firebird

[*] Marek Dostal <konf(zv)agnis(tec)cz> - 14.8.2006 13:48:48

Jedna z moznosti pomoci dbExpress, komponenta TSQLCOnnection, priklad je
orientacni:

var hpDB: TSQLConnection;

hpDB:=TSQLConnection.Create(Application);
try
with hpDB do
begin
LoginPrompt:=false;
Params.Clear;
Params.Add('BlobSize=-1');
Params.Add('CommitRetain=False');
Params.Add('Database='+myDBPathName);
Params.Add('DriverName=Interbase');
Params.Add('PASSWORD=masterkey';
Params.Add('ServerCharSet=WIN1250');
Params.Add('SQLDialect=3');
Params.Add('Interbase TransIsolation=ReadCommited');
Params.Add('USER_NAME=SYSDBA');
Params.Add('WaitOnLocks=True');

hpDB.Connected:=true;

... prace s databazi

end;
finally
hpDB.Free;
end;

Nastaveni casu na jinem stroji

[*] Viktor Doubek <viktordoubek(zv)volny(tec)cz> - 14.8.2006 14:20:51

Kvuli replikacim DB bych potreboval synchronizovat cas jednotlivych DB
serveru (FB 2.0) - v dany moment je jeden server SQL klientem druheho,
takze jde vlastne o nastaveni casu na FB serveru z klienta.
Jedine co me napada je napsat si UDF funkci.
Nevite o nejake jine moznosti (WinAPI..)?

Diky moc. VD

Nastaveni casu na jinem stroji

[*] Karel Rys <delphi(zv)zas-me(tec)cz> - 14.8.2006 14:40:52

Quoting Viktor Doubek <viktordoubek(zv)volny(tec)cz>:

> Kvuli replikacim DB bych potreboval synchronizovat cas jednotlivych DB
> serveru (FB 2.0) - v dany moment je jeden server SQL klientem druheho,
> takze jde vlastne o nastaveni casu na FB serveru z klienta.
> Jedine co me napada je napsat si UDF funkci.
> Nevite o nejake jine moznosti (WinAPI..)?

Ahoj,

a je tohle idealni pristup? Nebylo by lepsi, aby si vsechny FB servery
nastavovaly cas z nejakeho externiho casoveho zdroje (NTP)? Takhle
budes muset sam resit i zpozdeni paketu pri ceste po lince...

Karel Rys


Nastaveni casu na jinem stroji

[*] Karel Rys <delphi(zv)zas-me(tec)cz> - 14.8.2006 14:52:53

Quoting vlko <vlko(zv)zilina.net>:

> Odporucam radsej pouzit cislo verzie (verzia synchronizacie
> DB) ak tam ide o optimalizaciu na selecty, alebo GUID (UUID)
> ak ide o jednoznacnost kluca.

A jak potom resite konflikt - mezi synchronizaci dojde ke zmene
zaznamu (adresy odberatele apod.) na obou serverech? Podle casu
alespon ma voditko, jak konflikt resit...

Karel Rys


Nastaveni casu na jinem stroji

[*] vlko <vlko(zv)zilina(tec)net> - 14.8.2006 14:46:53

Viktor Doubek wrote:
> Kvuli replikacim DB bych potreboval synchronizovat cas jednotlivych DB
> serveru (FB 2.0) - v dany moment je jeden server SQL klientem druheho,
> takze jde vlastne o nastaveni casu na FB serveru z klienta.
> Jedine co me napada je napsat si UDF funkci.
> Nevite o nejake jine moznosti (WinAPI..)?
>
> Diky moc. VD

Podla mna synchronizaciu podla casu je chybou navrhu, su s
tym same problemy ako nutnost synchronizovat casy, potom
problemy prevodu do nezavisleho casoveho formatu ak su
servery v rozdielnych casovych pasmach.

Odporucam radsej pouzit cislo verzie (verzia synchronizacie
DB) ak tam ide o optimalizaciu na selecty, alebo GUID (UUID)
ak ide o jednoznacnost kluca.

vlko



--

--------------
mail: vlko(zv)zilina.net
web: http://vlko.zilina.net

Nastaveni casu na jinem stroji

[*] Viktor Doubek <viktordoubek(zv)volny(tec)cz> - 14.8.2006 15:00:54

> > Odporucam radsej pouzit cislo verzie (verzia synchronizacie
> > DB) ak tam ide o optimalizaciu na selecty, alebo GUID (UUID)
> > ak ide o jednoznacnost kluca.
>
> A jak potom resite konflikt - mezi synchronizaci dojde ke zmene
> zaznamu (adresy odberatele apod.) na obou serverech? Podle casu
> alespon ma voditko, jak konflikt resit...
> Karel Rys
>
Presne tohle jsem mel uz rozepsane..
Slo mi o rozpoznani zmen od minule synchronizace na obou stranach, ten
primarni klic mam reseny podobnym systemem jako GUID...
O tech verzich jsem predtim vazne uvazoval, ale mne se tam ty
konflikty budou vyskytovat pomerne hojne a nezbyva nez to resit stylem
posledni vyhrava. A jedine voditko je asi opravdu cas.. :o(

Nastaveni casu na jinem stroji

[*] Viktor Doubek <viktordoubek(zv)volny(tec)cz> - 14.8.2006 14:56:54

> > takze jde vlastne o nastaveni casu na FB serveru z klienta.
> > Jedine co me napada je napsat si UDF funkci.
> > Nevite o nejake jine moznosti (WinAPI..)?
>
> a je tohle idealni pristup? Nebylo by lepsi, aby si vsechny FB servery
> nastavovaly cas z nejakeho externiho casoveho zdroje (NTP)? Takhle
> budes muset sam resit i zpozdeni paketu pri ceste po lince...
> Karel Rys
>
No, to me uz taky napadlo, ale nechtel jsem byt zavisly na verejnem
pripojeni k webu (resp.spravci by to nemuseli chtit takto resit.).
Ale nakonec to mozna tak dopadne.
Ja to nastaveni casu potrebuji vzdy jednim smerem (od jednoho master
DB serveru k ostatnim), takze tam by mi zpozdeni paketu nemuselo zase
tak vadit (nebude-li vetsi nez trvani cele synchronizace)...

Nastaveni casu na jinem stroji

[*] Karel Rys <delphi(zv)zas-me(tec)cz> - 14.8.2006 15:12:55

Quoting vlko <vlko(zv)zilina.net>:

> nuz vtomto pripade je cas len ine vyjadrenie verzie, teda
> zalezi od algoritmu synchronizacie ako sa s takouto
> situaciou vyrovna. Jednym riesenim je pri synchronizacii
> zamknut zaznamy, druhym (nezamykacim) je pred
> synchronizaciou vygenerovat novu verziu, cize aplikacia bude
> pouzivat uz novy identifikator verzie a vy mozte
> synchronizovat bez konfliktu aj v plnej prevadzke len
> verziu, ktora je v podstate neovplyvnitelna len synchronizaciou.

Mel jsem na mysli jiny problem.
Na zacatku mame dva synchronizovane servery.

Nyni se na obou serverech praci uzivatelu zmeni stejny zaznam. Po
nejakem case se spusti synchronizace, tudiz bude detekovan konflikt
(tedy, mel by byt!). Nu a system musi podle neceho rozhodnout, ktery
zaznam ponecha - aby to nedopadlo tak, ze si vlastne jenom "vymeni"
nove zaznamy a na kazdem serveru bude zaznam jiny... A to nevim, jak
bez casoveho razitka vyresit, proto pouzivam casove razitko. Kdyby ho
FB umel ukladat v UTC, bylo by to fajn, ale to jsem zatim neresil,
nemame servery v ruznych pasmech.

Karel Rys


Nastaveni casu na jinem stroji

[*] vlko <vlko(zv)zilina(tec)net> - 14.8.2006 15:04:55

Karel Rys wrote:
> Quoting vlko <vlko(zv)zilina.net>:
>
>> Odporucam radsej pouzit cislo verzie (verzia synchronizacie
>> DB) ak tam ide o optimalizaciu na selecty, alebo GUID (UUID)
>> ak ide o jednoznacnost kluca.
>
> A jak potom resite konflikt - mezi synchronizaci dojde ke zmene
> zaznamu (adresy odberatele apod.) na obou serverech? Podle casu
> alespon ma voditko, jak konflikt resit...
>
> Karel Rys

nuz vtomto pripade je cas len ine vyjadrenie verzie, teda
zalezi od algoritmu synchronizacie ako sa s takouto
situaciou vyrovna. Jednym riesenim je pri synchronizacii
zamknut zaznamy, druhym (nezamykacim) je pred
synchronizaciou vygenerovat novu verziu, cize aplikacia bude
pouzivat uz novy identifikator verzie a vy mozte
synchronizovat bez konfliktu aj v plnej prevadzke len
verziu, ktora je v podstate neovplyvnitelna len synchronizaciou.

vlko

PS: Sposobov je viac, je na Vas vybrat si ten ktory Vam bude
najviac vyhovovat.

--

--------------
mail: vlko(zv)zilina.net
web: http://vlko.zilina.net

Nastaveni casu na jinem stroji

[*] Ludek <konference(zv)sales(tec)cz> - 14.8.2006 15:02:54



----- Original Message -----
From: "Viktor Doubek" <viktordoubek(zv)volny(tec)cz>

> Kvuli replikacim DB bych potreboval synchronizovat cas jednotlivych DB
> serveru (FB 2.0) - v dany moment je jeden server SQL klientem druheho,
> takze jde vlastne o nastaveni casu na FB serveru z klienta.
> Jedine co me napada je napsat si UDF funkci.
> Nevite o nejake jine moznosti (WinAPI..)?

Ahoj,
Osobne bych to resil spise zjistenim a zamamatovanim odchylek casu (soucasna
odchylka a odhchylka pri posledni synchronizaci) a podle nich bych o
synchronizaci rozhodoval.


Ludek

Nastaveni casu na jinem stroji

[*] vlko <vlko(zv)zilina(tec)net> - 14.8.2006 15:44:58

Karel Rys wrote:
> Quoting vlko <vlko(zv)zilina.net>:
>
> Nyni se na obou serverech praci uzivatelu zmeni stejny zaznam. Po
> nejakem case se spusti synchronizace, tudiz bude detekovan konflikt
> (tedy, mel by byt!). Nu a system musi podle neceho rozhodnout, ktery
> zaznam ponecha - aby to nedopadlo tak, ze si vlastne jenom "vymeni"
> nove zaznamy a na kazdem serveru bude zaznam jiny... A to nevim, jak
> bez casoveho razitka vyresit, proto pouzivam casove razitko. Kdyby ho
> FB umel ukladat v UTC, bylo by to fajn, ale to jsem zatim neresil,
> nemame servery v ruznych pasmech.
>
> Karel Rys

Nuz tak tu je opat viacero sposobou ako to previest,
najlepsie riesenie je ak sa nachadza server, ktory je hlavny
a k nemu sa vsetci klienti synchronizuju, tiez je dolezite,
ci sa robi vymena komplet riadkov db, alebo sa menia len
zmenene hodnoty, tiez je mozne ukladat ako dalsiu informaciu
cas od poslednej synchronizacie a na zaklade toho sa
rozhodnut, ktory zaznam je novsi a ten vybrat.

Ale podstatne je, ze konflikt je vzdy konflikt, to je ak
uzivatelia zmenia rovnaky zaznam, tak by malo byt mozne
vybrat ktora verzia by mala byt ponechana.

Hmm, ked sa nad tym tak zamyslam, vsetky tieto veci zalezia
od zadania.

vlko


--

--------------
mail: vlko(zv)zilina.net
web: http://vlko.zilina.net

Nastaveni casu na jinem stroji

[*] delphin(zv)post(tec)cz - 14.8.2006 16:02:59

> Mel jsem na mysli jiny problem.
> Na zacatku mame dva synchronizovane servery.
>
> Nyni se na obou serverech praci uzivatelu zmeni stejny zaznam. Po
> nejakem case se spusti synchronizace, tudiz bude detekovan konflikt
> (tedy, mel by byt!). Nu a system musi podle neceho rozhodnout, ktery
> zaznam ponecha - aby to nedopadlo tak, ze si vlastne jenom "vymeni"
> nove zaznamy a na kazdem serveru bude zaznam jiny... A to nevim, jak
> bez casoveho razitka vyresit, proto pouzivam casove razitko. Kdyby ho
> FB umel ukladat v UTC, bylo by to fajn, ale to jsem zatim neresil,
> nemame servery v ruznych pasmech.

Mohou-li oba uzly menit zaznamy, tak pro identifikaci nejnovejsiho zaznamu
asi nic lepsiho nez casove razitko neni. Ja to resim sloupcem BIGINT a plnim
ho vysledkem funkce GetSystemTimeAsFileTime, coz uz je UTC. TIMESTAMP se mi
neosvedcil kvuli pouzitym komponentam - nevracely milisekundy. Integrovana
synchronizace casu z Windows pro tento ucel funguje uspokojive. Pouziti
ne-UTC casu z principu zpusobi chybu synchronizace zmen vzniklych kolem
zmeny casu.

Nakresleni obrysu komponenty pri zmene velikosti

[*] lelicek(zv)volny(tec)cz - 14.8.2006 20:59:21

Ahoj,

potreboval bych postrcit,
mam na formu nekolik panelu vsechny zarovnane
na Top.
Potrebuji libovolnemu panelu zvesovat vysku
pomoci tahnuti mysi za dolni okraj. To celkem funguje,
ale potreboval bych nejak dat uzivatelu vedet jak to
zvetsil. Nekam nakreslit carkovane obdelnik (dolni
okraj), ale kam kreslit a jak ?

Diky Pavel


--
P+AVk-ipojte se s VOLN+AN0- ADSL ji+AX4- od 389 K+AQ0- a z+AO0-skejte skv+ARs-l+AP0- d+AOE-rek +IBM- t+AVk-eba
p+AVk-ehr+AOE-va+AQ0- MP3. +AX0A4Q-dn+AOk- zpomalov+AOE-n+AO0- rychlosti a aktivace zdarma. U+AX4-ijte
si lep+AWEA7Q- internet s VOLN+AN0-. http://adsl.volny(tec)cz/adsl/

Nastaveni casu na jinem stroji

[*] Ludek <konference(zv)sales(tec)cz> - 14.8.2006 20:27:18


----- Original Message -----
From: <delphin(zv)post(tec)cz>

> Ano je to tak, pri pouziti algoritmu casoveho razitka muze uzivatel s
> opravnenim menit cas zpusobit vaznou skodu, ale nastesti ve Windows jde
> userum zakazat menit cas - ani to nepotrebuji, protoze ten se
> synchronizuje
> automaticky z Windows domeny nebo z time serveru.

Ahoj,
Ano, ovsem potreba replikace dat ve mne vyvozuje asociaci spise nejakych
obchodnich zastupci s notebooky, a tam to jde nepomerne hure uspravcovat....
Ale to nemusi vubec byt problem popisovany v tomto threadu.

Ludek

Nastaveni casu na jinem stroji

[*] delphin(zv)post(tec)cz - 14.8.2006 19:15:13

> Pokud nad tim premyslim, tak by se synchronizace casu musela provadet vzdy
> pri kazde zmene zazznamu na pobocce. Pokud sesynchronizuji pocitace pouze
> pri zacatku vlastni synchronizace, pak se vystavuji nebezpeci, ze v dobe
> mezi synchronizacemi nekdo zmenil na pocitaci cas a vsechna casova razitka
> budou mit nejaky relativni posun a nebude to tedy fungovat podle
> predpokladu.

Ano je to tak, pri pouziti algoritmu casoveho razitka muze uzivatel s
opravnenim menit cas zpusobit vaznou skodu, ale nastesti ve Windows jde
userum zakazat menit cas - ani to nepotrebuji, protoze ten se synchronizuje
automaticky z Windows domeny nebo z time serveru.

Nastaveni casu na jinem stroji

[*] Ludek <konference(zv)sales(tec)cz> - 14.8.2006 18:45:11


----- Original Message -----
From: <delphin(zv)post(tec)cz>

>
> Mohou-li oba uzly menit zaznamy, tak pro identifikaci nejnovejsiho zaznamu
> asi nic lepsiho nez casove razitko neni.

Hmmm,
Pokud nad tim premyslim, tak by se synchronizace casu musela provadet vzdy
pri kazde zmene zazznamu na pobocce. Pokud sesynchronizuji pocitace pouze
pri zacatku vlastni synchronizace, pak se vystavuji nebezpeci, ze v dobe
mezi synchronizacemi nekdo zmenil na pocitaci cas a vsechna casova razitka
budou mit nejaky relativni posun a nebude to tedy fungovat podle
predpokladu.
Priklad:
1.1.2006 12:00:00 je na hlavnim serveru je hodnota zaznamu 'Hodnota 0' s
timestampem "1.1.2006 12:00:00"
Sesynchronizovano na pocitace A a B a nastaven cas

1.1.2006 13:00:00 Uzivatel si na pocitaci B nastavi cas o 1,5 hodiny vyssi

1.1.2006 14:00:00 Na pocitaci B nastavena hodnota zaznamu na 'Hodnota 1' se
spatnym timestampem "1.1.2006 15:30:00"
1.1.2006 14:10:00 Na pocitaci A nastavena hodnota zaznamu na 'Hodnota 2' se
spravnym timestampem "1.1.2006 14:10:00"

1.1.2006 18:00:00 Synchronizuje pocitac A a na serveru se objevi hodnota
zaznamu 'Hodnota 2' se spravnym timestampem "1.1.2006 14:10:00"
1.1.2006 18:10:00 Synchronizuje pocitac B a na serveru se objevi hodnota
zaznamu 'Hodnota 1' se spatnym timestampem "1.1.2006 15:30:00"

Vysledek synchronizace je ten, ze je uvedena "Hodnota 1" presto ze ve
skutecnosti by spravne melo byt "Hodnota 2"

Tech spatnych kombinaci je samozrejme vice a mohlo by tedy dojit i k vedome
manipulaci uzivatele s casem.

Samozrejme zalezi na chrakteru aplikace, na frekvenci synchronizaci a pod.
zda to doopravdy muze system ohrozit.
Ludek

Nastaveni casu na jinem stroji

[*] Pavel Malinsky <malinsky(zv)pmcom(tec)cz> - 14.8.2006 17:37:06

> -----Original Message-----
> From: delphi-l-owner(zv)clexpert(tec)cz
> [mailto:delphi-l-owner(zv)clexpert(tec)cz] On Behalf Of delphin(zv)post(tec)cz

> Mozna jsem to nepochopil spravne, ale znamena to, ze ta
> pobocka, ktere se
> podari synchronizovat posledni, tak vyhraje ? To prece zavani
> pru*erem pri
> dlouhodobe poruse pripojeni pobocky k internetu.
>
> Nemelo by to byt spise tak, ze zmeneny zaznam z pobocky se na
> server ulozi
> jenom tehdy, je-li na serveru dosud stejna verze zaznamu,
> jakou si pobocka
> brala pri posledni synchronizaci ? V opacne pripade by se
> zmeny zahodily
> stejne, jako je zahazuje SQL server pri reseni UPDATE jednoho
> zaznamu od
> dvou uzivatelu.

Psal sem "zjednodusene" :), soucasti tohoto mechanismu je i verzovani
vsech zaznamu na obou stranach (ne casovym razitkem, ale cislovanim) tak aby
prave nedoslo k vyse popsanemu. Chtel jsem predevsim nastinit
pouziti centralniho serveru.

PM


Nastaveni casu na jinem stroji

[*] delphin(zv)post(tec)cz - 14.8.2006 17:23:05

> Presne, je to zavisle predevsim od zadani/domluvy, nicmene
> my to aplikujeme tak ze(zjednodusene):
>
> a) mame centralni server, nad kterym nikdo nepracuje
> b) pobocka se pripoji k serveru, natlaci sva zmenena data a nove zaznamy
> c) stahne si zmenene zaznamy, ktere zmenil nekdo jiny a zaznamy,
> ktere pridal nekdo jiny a jeste je nema
>
> Posledni "modifikovatel" a server maji vzdycky pravdu.

Mozna jsem to nepochopil spravne, ale znamena to, ze ta pobocka, ktere se
podari synchronizovat posledni, tak vyhraje ? To prece zavani pru*erem pri
dlouhodobe poruse pripojeni pobocky k internetu.

Nemelo by to byt spise tak, ze zmeneny zaznam z pobocky se na server ulozi
jenom tehdy, je-li na serveru dosud stejna verze zaznamu, jakou si pobocka
brala pri posledni synchronizaci ? V opacne pripade by se zmeny zahodily
stejne, jako je zahazuje SQL server pri reseni UPDATE jednoho zaznamu od
dvou uzivatelu.

Nastaveni casu na jinem stroji

[*] Pavel Malinsky <malinsky(zv)pmcom(tec)cz> - 14.8.2006 16:05:00

> -----Original Message-----
> From: delphi-l-owner(zv)clexpert(tec)cz
> [mailto:delphi-l-owner(zv)clexpert(tec)cz] On Behalf Of vlko

Ahoj,

> Nuz tak tu je opat viacero sposobou ako to previest,
> najlepsie riesenie je ak sa nachadza server, ktory je hlavny
> a k nemu sa vsetci klienti synchronizuju, tiez je dolezite,
> ci sa robi vymena komplet riadkov db, alebo sa menia len
> zmenene hodnoty, tiez je mozne ukladat ako dalsiu informaciu
> cas od poslednej synchronizacie a na zaklade toho sa
> rozhodnut, ktory zaznam je novsi a ten vybrat.
>
> Hmm, ked sa nad tym tak zamyslam, vsetky tieto veci zalezia
> od zadania.

Presne, je to zavisle predevsim od zadani/domluvy, nicmene
my to aplikujeme tak ze(zjednodusene):

a) mame centralni server, nad kterym nikdo nepracuje
b) pobocka se pripoji k serveru, natlaci sva zmenena data a nove zaznamy
c) stahne si zmenene zaznamy, ktere zmenil nekdo jiny a zaznamy,
ktere pridal nekdo jiny a jeste je nema

Posledni "modifikovatel" a server maji vzdycky pravdu.

PM


OT-Nabidka prace Pardubice a okoli

[*] Maixner Adam <adam.maixner(zv)pvt(tec)cz> - 15.8.2006 07:44:05

Dobry den,

hledam programatoza s alespon castecnou znalosti Delphi v Pardubicich a okoli.
Znalost SQL vyhodou, vyhodne podminky, i jako VPP.



Adam Maixner
amx(zv)volny(tec)cz <mailto:amx(zv)volny(tec)cz>

+420776200765

chyby pri importu Microsoft XML 2.0

[*] petr palicka <palicka.petr(zv)seznam(tec)cz> - 15.8.2006 08:30:08

Ahoj,

zkousim naimportovat microsofti parser, ale dostavam chyby pri
kompilaci balicku. Postupuji podle navodu:

http://www.pcsvet(tec)cz/art/article.php?id=4051

Muzete mi nekdo poradit co delam blbe nebo nejaky jiny postup?

Dik, Peca.

[Error] MSXML_TLB.pas(3458): Undeclared identifier: 'root'
[Error] MSXML_TLB.pas(3483): Undeclared identifier: 'readyState'
[Error] MSXML_TLB.pas(3508): Undeclared identifier: 'version'
[Error] MSXML_TLB.pas(3513): Undeclared identifier: 'doctype'
[Fatal Error] msxml.dpk(34): Could not compile used unit
'C:\Develop\Borland\Delphi6\Imports\MSXML_TLB.pas'

MSXML_TBL.pas (vyrez funkci s "chybami"):
function TXMLDocument.Get_root(out p: IXMLElement2): HResult;
begin
Result := DefaultInterface.root[p];
end;

function TXMLDocument.Get_readyState(out pl: Integer): HResult;
begin
Result := DefaultInterface.readyState[pl];
end;

function TXMLDocument.Get_version(out p: WideString): HResult;
begin
Result := DefaultInterface.version[p];
end;

function TXMLDocument.Get_doctype(out p: WideString): HResult;
begin
Result := DefaultInterface.doctype[p];
end;

Nakresleni obrysu komponenty pri zmene velikosti

[*] Petr Daricek <petr.daricek(zv)seznam(tec)cz> - 15.8.2006 08:58:10

Ahoj,
splitter ma vlastnost Beveled. Nastava ji na True a vykresli se viditelny obdelnik a to uz kaydeho uzivatele snad tukne.
Petr

Ukladani PDF

[*] Tomas Rosa <trosa(zv)seznam(tec)cz> - 15.8.2006 09:14:12

Cau,

nevite nekdo o necem co umi rozumne ukladat PDF? Pouzivam knihovnu

http://libharu.sourceforge.net/index.html

jenze nejak me zlobi prace s TrueType fontem - nedari se me vlozit
font s kodovanim (vzdy odstrani cestinu a vlozi znaky bez carek a hacku
- nechapu proc, nic takoveho delat nema) a navic u TT fotnu zobrazuje
font jednou fixni velikosti.

Neporadite neco (klidne i hotove baliky reportu, pokud jsou free) co
umi pracovat s PDF vcetne vkladani TrueType fontu?

ps: pdf tiskarnu nepotrebuji, tu mam udelanou pomoci GhostScripta, chci
aby moje aplikace umela vygenerovat sama PDF a odeslat emailem jako prilohu.

Diky
Tomas Rosa

OT: Nabidka prace

[*] Mosny, Miroslav <miroslav.mosny(zv)hilti(tec)com> - 15.8.2006 15:06:37

Dobry den,



Pro prevzeti jednoho projektu hledame zkuseneho programatora (Delphi 7 +
MSSQL 2000).



- zpusob spoluprace dle vaseho vyberu (vedlejsi prac.pomer,
nebo ZL)

- moznost vetsinu casu pracovat z domova.



Odpovedi prosim na muj email: Miroslav.Mosny(zv)hilti.com



Dekuji



Miroslav Mosny

IT manager

Hilti CR, spol.s r.o.

Pruhonice, Praha-zapad















Crop image

[*] Koukal Pavel <pavel.koukal(zv)pvt(tec)cz> - 16.8.2006 09:29:52

Ahoj,

nemate nekdo, prosim, algoritmus na orez obrazku o volne plochy ve vsech
smerech?
Mam napriklad velky obrazek 200x200px a uprostred (neni to pravidlem) je
obrazek o rozmerech napr. 50x10px.
Okolo maleho obrazku je plocha jedne barvy. A ja potrebuju dostat ten
vyrez.
Zatim to delam tam, ze z kazde strany prozkoumavam pomoci Canvas.Pixels
body, a kdyz najdu jinou barvu nez je barva pozadi, tak jsem narazil na
zacatek obrazku z te jedne strany. Takto to udelam ze vsech stran a mam
vysledny obrazek. Potom jenom uz nalezeny obrazek zkopiruju do ciloveho
obrazku a je to.

Ovsem pristup pomoci Pixels[X,Y] je sebevrazda, nebot je to ukrutne
pomale.

Neznate tedy nekdo rychlejsi funkce treba na proskenovani jednoho radku
obrazku nebo primo Crop funkci?

S pozdravem

Pavel Koukal

Crop image

[*] Martin Pisarik <martin.pisarik(zv)seznam(tec)cz> - 16.8.2006 09:43:53

Existuji moznosti jak precist barvu pixelu rychleji nez pomoci Pixels[x][y].
Napriklad pomoci DirectX.
Daleko vetsiho zrychleni vsak dosahnes upravou tveho algoritmu.
Nehledej ten "prvni jinak barevny bod nez ma pozadi" sekvencne, ale pouzij
metodu puleni intervalu. Tim si linearni slozitost zmenis na logaritmickou.
Takze misto abys provedl napr. 512x cteni bodu provedes to jen 9x.


Podivej se na barvu bodu na kraji obrazku a pak se mrkni doporostred. Jestli
tam bude barevny pixel, tak se mrkni mezi stred a okraj; a tak porad dokola.
Takhle se ti podari najit rozhrani mezi pozadim a obrazkem nejrychleji.> -----Original Message-----
> From: delphi-l-owner(zv)clexpert(tec)cz [mailto:delphi-l-owner(zv)clexpert(tec)cz]On
> Behalf Of Koukal Pavel
> Sent: Wednesday, August 16, 2006 9:30 AM
> To: delphi-l(zv)clexpert(tec)cz
> Subject: Crop image
>
>
> Ahoj,
>
> nemate nekdo, prosim, algoritmus na orez obrazku o volne plochy ve vsech
> smerech?
> Mam napriklad velky obrazek 200x200px a uprostred (neni to pravidlem) je
> obrazek o rozmerech napr. 50x10px.
> Okolo maleho obrazku je plocha jedne barvy. A ja potrebuju dostat ten
> vyrez.
> Zatim to delam tam, ze z kazde strany prozkoumavam pomoci Canvas.Pixels
> body, a kdyz najdu jinou barvu nez je barva pozadi, tak jsem narazil na
> zacatek obrazku z te jedne strany. Takto to udelam ze vsech stran a mam
> vysledny obrazek. Potom jenom uz nalezeny obrazek zkopiruju do ciloveho
> obrazku a je to.
>
> Ovsem pristup pomoci Pixels[X,Y] je sebevrazda, nebot je to ukrutne
> pomale.
>
> Neznate tedy nekdo rychlejsi funkce treba na proskenovani jednoho radku
> obrazku nebo primo Crop funkci?
>
> S pozdravem
>
> Pavel Koukal
>
>
> --
> Internal Virus Database is out-of-date.
> Checked by AVG Free Edition.
> Version: 7.1.405 / Virus Database: 268.10.8/413 - Release Date: 8.8.2006
>
--
Internal Virus Database is out-of-date.
Checked by AVG Free Edition.
Version: 7.1.405 / Virus Database: 268.10.8/413 - Release Date: 8.8.2006


Crop image

[*] Michal Sos <micsdelphi(zv)centrum(tec)cz> - 16.8.2006 09:53:54

Ahoj,
neni to idealni, ale snad ti to pomuze. Jinak pro rychle prochazeni
jednotlivych pixelu je ScanLine.

procedure TScanImageForm.OrezZdolaZprava(Zdola, Zprava:Integer);
var
Bitmap: TBitmap;

XOriznuti, YOriznuti: integer;

MyRect, MyOther: TRect;
begin
XOriznuti := ZPrava;
YOriznuti := ZDola;

Bitmap:=TBitmap.Create;
Bitmap.Width:=Image1[AktImage].Picture.Width-XOriznuti;
Bitmap.Height:=Image1[AktImage].Picture.Height-YOriznuti;
MyRect := Rect(0,0,Bitmap.Width,Bitmap.Height);
MyOther :=Rect(0,0,Image1[AktImage].Picture.Width-XOriznuti,
Image1[AktImage].Picture.Height-YOriznuti);

Bitmap.Canvas.CopyRect(MyRect,Image1[AktImage].Canvas,MyOther);

Image1[AktImage].Picture.Bitmap.Assign(Bitmap);
Image1[AktImage].Width:=Bitmap.Width;
Image1[AktImage].Height:=Bitmap.Height;
end;


procedure TScanImageForm.OrezZhoraZleva(Zhora, Zleva: Integer);
var
Bmp,Bitmap: TBitmap;

XOriznuti, YOriznuti: integer;

MyRect, MyOther: TRect;
begin
XOriznuti := Zleva;
YOriznuti := Zhora;

Bitmap:=TBitmap.Create;
Bitmap.Width:=Image1[AktImage].Picture.Width-XOriznuti;
Bitmap.Height:=Image1[AktImage].Picture.Height-YOriznuti;
MyRect := Rect(0,0,Bitmap.Width,Bitmap.Height);
MyOther :=Rect(XOriznuti,YOriznuti,Image1[AktImage].Picture.Width,
Image1[AktImage].Picture.Height);

Bitmap.Canvas.CopyRect(MyRect,Image1[AktImage].Canvas,MyOther);

Image1[AktImage].Picture.Bitmap:=Bitmap;
Image1[AktImage].Width:=Bitmap.Width;
Image1[AktImage].Height:=Bitmap.Height;
end;


Koukal Pavel napsal(a):
> Ahoj,
>
> nemate nekdo, prosim, algoritmus na orez obrazku o volne plochy ve vsech
> smerech?
> Mam napriklad velky obrazek 200x200px a uprostred (neni to pravidlem) je
> obrazek o rozmerech napr. 50x10px.
> Okolo maleho obrazku je plocha jedne barvy. A ja potrebuju dostat ten
> vyrez.
> Zatim to delam tam, ze z kazde strany prozkoumavam pomoci Canvas.Pixels
> body, a kdyz najdu jinou barvu nez je barva pozadi, tak jsem narazil na
> zacatek obrazku z te jedne strany. Takto to udelam ze vsech stran a mam
> vysledny obrazek. Potom jenom uz nalezeny obrazek zkopiruju do ciloveho
> obrazku a je to.
>
> Ovsem pristup pomoci Pixels[X,Y] je sebevrazda, nebot je to ukrutne
> pomale.
>
> Neznate tedy nekdo rychlejsi funkce treba na proskenovani jednoho radku
> obrazku nebo primo Crop funkci?
>
> S pozdravem
>
> Pavel Koukal
>
>
>
>

Crop image

[*] Koukal Pavel <pavel.koukal(zv)pvt(tec)cz> - 16.8.2006 10:23:58

Diky za postrceni.

Ta zmena algoritmu asi bude nutna, ale nebude tak jednoducha. Napsal jsem to trosku spatne v minulem zadani.
Uprostred neni obrazek ve tvaru ctverce ale jakehokoliv tvaru. Samozrejme ze pro vyrez potrebuju ctverec, ale v tom ctverci jsou potom taky body pozadi, ty ale vykresluju uz transparentne, to me netrapi.

Tvuj algoritmus by se musel notne zeslozitit. Protoze kdyz najdu na prostredni lince krajni bod na pozici 50, neznamena to, ze v linkach vyse neni krajni bod drive - treba uz na bodu 30. Ale vzhledem k tomu, ze obrazec uprostred nemusi byt nutne souvisly, nastane treba nekdy moznost, ze naleznu uprostred prazdne body na vsech stranach a oriznu obraz dle techto bodu a vysledny obraz bude orezany i o to, co tam melo zustat. Treba prikladem by byla tecka o velikosti 4px a okolo tecky by bylo 10px prazdne misto a potmo 2px ramecek treba ve tvaru hvezdicky. Mohlo by se tedy stat, ze bych oriznul obraz az na tu tecku a ramecek by tam nebyl. Nebo by se to diky tvaru hvezdicky orizlo nejak divne.

Ten algoritmus by asi byl mozna slozitejsi a pomalejsi. Nevim, nedokazu si to predstavit. Takze me nenapada opravdu nic jineho, nez postupne skenovani radku po radku nez naleznu kraje vnitrniho obrazce.

Nebo se snad mylim? Ted to zkousim pomoci metody ScanLine, na kterou me navedl Michal a snad to pujde rychleji.

Jo a jeste upresneni. Mozna nekoho napadne otazka, proc chci tedy orezat okraje, kdyz obraz potom kreslim transparentne. Je to proto, ze potrebuju znat presnou sirku a vysku toho vnitrniho obrazu, abych ho mohl umistit presne na zvolene pozice relativne k bodu [1,1] vnitrniho obrazce. A orezat puvodni obraz v grafickem programu a ulozit si do resource orezene casti nemuzu, protoze puvodni neorezane obrazky ziskavam za behu programu jako externi zdroje.

Pavel.

> Od: Martin Pisarik
>
> Existuji moznosti jak precist barvu pixelu rychleji nez
> pomoci Pixels[x][y].
> Napriklad pomoci DirectX.
> Daleko vetsiho zrychleni vsak dosahnes upravou tveho algoritmu.
> Nehledej ten "prvni jinak barevny bod nez ma pozadi"
> sekvencne, ale pouzij
> metodu puleni intervalu. Tim si linearni slozitost zmenis na
> logaritmickou.
> Takze misto abys provedl napr. 512x cteni bodu provedes to jen 9x.

Crop image

[*] delphin(zv)post(tec)cz - 16.8.2006 11:00:01

> Neznate tedy nekdo rychlejsi funkce treba na proskenovani jednoho radku
> obrazku nebo primo Crop funkci?

Ja to delam takhle:

Do TBitmap.Handle dam vysledek CreateDibSection, bitmapu tam nakopiruju
CopyRect a mam primy pristup. Dalsi moznost je pres GetDIBits. Kdyz se zvoli
32-bit rezim, tak kazdy pixel je longword.

Zatuhnuti aplikace pri stahovani souboru

[*] Petr Berek <sojokl(zv)seznam(tec)cz> - 16.8.2006 12:30:08

Zdravim,
delam program, ktery stahuje soubory z ftp serveru. Resim to pomoci synapse.
Jenze kdyz je ten soubor velky, nebo je pomale pripojeni, tak ta aplikace
zatuhne. Vlastne nezatuhne, stahuje ten soubor, ale nejde s ni nic provadet.
Pomoci Application.ProcessMessages to nejde resit. Da se to nejak resit?
Diky,
Petr


Zatuhnuti aplikace pri stahovani souboru

[*] Petr Vones <konference(zv)petrvones(tec)net> - 16.8.2006 12:38:09

From: "Petr Berek" <sojokl(zv)seznam(tec)cz>
> Jenze kdyz je ten soubor velky, nebo je pomale pripojeni, tak ta aplikace
> zatuhne. Vlastne nezatuhne, stahuje ten soubor, ale nejde s ni nic
> provadet.
> Pomoci Application.ProcessMessages to nejde resit. Da se to nejak resit?

Jedine spravne reseni je provadet takove operace v samostatnem threadu a z
neho aktualizovat prvky uzivatelskeho rozhrani (prubeh stahovani atd.)

Petr Vones

Zatuhnuti aplikace pri stahovani souboru

[*] Petr Berek <sojokl(zv)seznam(tec)cz> - 16.8.2006 12:42:10

Diky, tohle me nenapadlo. Nikdy jsem totiz vlakna nepouzival. Jen jednou, to
jsem se spis ucil co to je a tak, ale nikdy me nenapadlo prakticke vyuziti.
Jeste jednou diky :-)

On 8/16/06, Petr Vones <konference(zv)petrvones.net> wrote:
>
> From: "Petr Berek" <sojokl(zv)seznam(tec)cz>
> > Jenze kdyz je ten soubor velky, nebo je pomale pripojeni, tak ta
> aplikace
> > zatuhne. Vlastne nezatuhne, stahuje ten soubor, ale nejde s ni nic
> > provadet.
> > Pomoci Application.ProcessMessages to nejde resit. Da se to nejak resit?
>
> Jedine spravne reseni je provadet takove operace v samostatnem threadu a z
> neho aktualizovat prvky uzivatelskeho rozhrani (prubeh stahovani atd.)
>
> Petr Vones
>
>
>

Zatuhnuti aplikace pri stahovani souboru

[*] Tomas Rosa <trosa(zv)seznam(tec)cz> - 16.8.2006 12:42:09

Podivej se na TThread - to je presne to co potrebujes.

tr


> delam program, ktery stahuje soubory z ftp serveru. Resim to pomoci synapse.
> Jenze kdyz je ten soubor velky, nebo je pomale pripojeni, tak ta aplikace
> zatuhne. Vlastne nezatuhne, stahuje ten soubor, ale nejde s ni nic provadet.
> Pomoci Application.ProcessMessages to nejde resit. Da se to nejak resit?

Zatuhnuti aplikace pri stahovani souboru

[*] Petr Berek <sojokl(zv)seznam(tec)cz> - 16.8.2006 13:04:11

Muzete me jeste nejak nakopnout s tema vlaknama? Dam do nej kod, ktery
stahne soubor z ftp. Asi bych mel nejak zjistit, jestli to vlakno bezi, ze?
Petr


Jak udelat tabulku s hodnotami v QReport

[*] Miloslav Pojsl <mpojsl(zv)seznam(tec)cz> - 16.8.2006 13:44:14

Zdravim vsechny,

prosim muze mi nekdo poradit, jak udelat v Delphi 6 QuickReport 3 tabulku hodnot, ktera je generovana pro kazdy zaznam. Ze zaznamu se nactou data z BLOBu a ulozi se do nejake struktury (record). Nasledne chci pro Band typu Detail vykreslit tabulku s nactenymi hodnotami. Nevite, jak na to?

dekuji za podnety, zdravi Milos Pojsl

Jak udelat tabulku s hodnotami v QReport

[*] Miloslav Pojsl <mpojsl(zv)seznam(tec)cz> - 16.8.2006 14:32:18

> Tabulku v QRBand-detailu vytvorit jako pole QRLabelu a tyto naplnit hodnotami v
> miste, kde se zpracovava BLOB.
> Otazkou je, musi-li byt vsechna data v jednom BLOBu?
>
> Jirka

Diky

Myslis jako run-timove vytvaret a umistovat QRLabely do Bandu? To je docela solidni opruz:-))) Neexistuje jednodussi reseni?

Jak udelat tabulku s hodnotami v QReport

[*] PCservis Skloform a.s. <pcservis(zv)skloform(tec)cz> - 16.8.2006 14:10:16

> prosim muze mi nekdo poradit, jak udelat v Delphi 6 QuickReport 3 tabulku hodnot, ktera je generovana pro kazdy zaznam. Ze zaznamu se nactou data z BLOBu a ulozi se do nejake struktury (record). Nasledne chci pro Band typu Detail vykreslit tabulku s nactenymi hodnotami. Nevite, jak na to?

Tabulku v QRBand-detailu vytvorit jako pole QRLabelu a tyto naplnit hodnotami v miste, kde se zpracovava BLOB.
Otazkou je, musi-li byt vsechna data v jednom BLOBu?

Jirka

Compact Framework a Firebird DB

[*] Dalibor <dalibor(zv)torola(tec)cz> - 16.8.2006 15:32:22

Ahoj, da se nejak z PDA pres Compact Framework 2.0 pristupovat k Firebird DB?

Visual Studio .NET 2005 + PDA Acer n35

Jak udelat tabulku s hodnotami v QReport

[*] PCservis Skloform a.s. <pcservis(zv)skloform(tec)cz> - 16.8.2006 15:44:23

Nemyslim vytvaret QRLabely za behu, ale normalne je tam nasazet v projektu a naplnit je v udalosti BeforePrint QRBandu. Rozumel jsem tomu tak, ze pocet prvku tabulky je predem znamy. I pokud by se pocet Labelu menil, tak neni problem ty nepotrebne skryt (QRLabel.Enabled:= False), pocet radku tabulky by se pak dal ovlivnit nastavenim hodnoty QRBand.Height. Funguje to bez problemu.

Jirka

> > Tabulku v QRBand-detailu vytvorit jako pole QRLabelu a tyto naplnit hodnotami v
> > miste, kde se zpracovava BLOB.
> > Otazkou je, musi-li byt vsechna data v jednom BLOBu?
> >
> > Jirka
>
> Diky
>
> Myslis jako run-timove vytvaret a umistovat QRLabely do Bandu? To je docela solidni opruz:-))) Neexistuje jednodussi reseni?
>
>

TDataSnap + TWebConnection - upload

[*] Ivan Dulgerov <idulgerov(zv)stonline.sk> - 16.8.2006 17:22:30

Zdravim
Dnes som v praci narazil na zujimavy problem.

Mam aplikaciu postavenu na Oracle + TDataSnap+
komponenty ODAC.

Na aplikacnom serveri je TOraSession + TOraSMartQuery+ TOraProvider
U klienta TWebConnection + TDataProvider + TOraSource
Na pocitaci bezi IIS.

Vkladam do databazy (do Blobu) RTF subor.
Vsetko slape v pohode az do chvile, ked sa pokusim vlozit
vacsi dokument.
Vacsi znamena u anglickeho textu cca 300 kb a viac, a
u slovenskeho (z interpunkcnymi znamienkami) cca 60 kb a viac.
Konkretne anglicky ma 307 kb a slovensky 66 kb.

Pri vlozeni takto velkych dokumentov po kliknuti na post, program
zatuhne na cca 1 minutu, a potom texty korektne ulozi.

Zarazajuca je rozdielna hranicna velkost suboru, pri ktorom sa tento problem
prejavi.
Staci napr. z anglickeho textu "odrezat" 10 kb, a vsetko slape ako po masle.

Skusil som vkladat miesto do Blobu do Clobu - nula bodou.
Vyrobil som insert klasicky cez SQL - nula bodov.
Napokon som zo "zufalstva" ;-) vypol TWebConnection, a placol
som do klienta TSockedConnection - a bolo po probleme.

Neviete co moze byt na pricine tohoto javu?
Mam nieco zle nastavene, alebo je toto standardne chovanie
DataSnapu cez WebConnection?

V ostrej aplikacii zial musim pouzit TWebConnection, takze toto
riesenie mi nepomoze.


S pozdravom
Ivan Dulgerov
Delphi5 Prof+ SP1, Delphi 4 St, Win XP Porf. + SP1, Win98 SE
mail : idulgerov(zv)stonline.sk
ICQ : 190698607


Jak udelat tabulku s hodnotami v QReport

[*] Miloslav Pojsl <mpojsl(zv)seznam(tec)cz> - 16.8.2006 16:14:25

Ja mam pocet radku i sloupcu promenny. Existuje sice maximalni pocet radku (100) a sloupcu (10) ale mlatit tam 1000 Labelu....
To uz je lepsi to udelat za behu....

> Nemyslim vytvaret QRLabely za behu, ale normalne je tam nasazet v projektu a
> naplnit je v udalosti BeforePrint QRBandu. Rozumel jsem tomu tak, ze pocet prvku
> tabulky je predem znamy. I pokud by se pocet Labelu menil, tak neni problem ty
> nepotrebne skryt (QRLabel.Enabled:= False), pocet radku tabulky by se pak dal
> ovlivnit nastavenim hodnoty QRBand.Height. Funguje to bez problemu.
>
> Jirka
>
> > > Tabulku v QRBand-detailu vytvorit jako pole QRLabelu a tyto naplnit
> hodnotami v
> > > miste, kde se zpracovava BLOB.
> > > Otazkou je, musi-li byt vsechna data v jednom BLOBu?
> > >
> > > Jirka
> >
> > Diky
> >
> > Myslis jako run-timove vytvaret a umistovat QRLabely do Bandu? To je docela
> solidni opruz:-))) Neexistuje jednodussi reseni?
> >
> >
>
>
>
>

Zatuhnuti aplikace pri stahovani souboru

[*] Tomas Rosa <trosa(zv)seznam(tec)cz> - 16.8.2006 16:06:25

Pisu z hlavy, takze mozna to nebude uplne OK.

type
TMyFTPThread=class(TThread)
protected
fAdresa,fSoubornadisku:string;
procedure Execute;
public
contructor Create(aAdresa,aSoubornadisku:string);
destructor Destroy; override;
end;

var
MyFTPThread:TMyFTPThread = nil;


contructor TMyFTPThread.Create(aAdresa,aSoubornadisku:string);
begin
inherited Create(true);
fAdresa:=aAdresa;
fSoubornadisku:=aSoubornadisku;
FreeOnTerminate:=true;
Resume;
end;

destructor TMyFTPThread.Destroy;
begin
inherited Create;
MyFTPThread:=nil;
end;

procedure TMyFTPThread.Execute;
begin
//tady se deje stahovani a pomoci Synchronize() (najdi v helpu jak
se pouziva) si davas z5 vedet jak jsi na tom s tim stahovanim
end;

z hlavni aplikace pak udelas neco jako:

if not assigned(MyFTPThread) then
MyFTPThread:=TMyFTPThread.Create('ftp://neco','c:\neco.exe');

Snad to pomuze

TR


> Muzete me jeste nejak nakopnout s tema vlaknama? Dam do nej kod, ktery
> stahne soubor z ftp. Asi bych mel nejak zjistit, jestli to vlakno bezi, ze?
> Petr
>
>

Jak udelat tabulku s hodnotami v QReport

[*] PCservis Skloform a.s. <pcservis(zv)skloform(tec)cz> - 17.8.2006 08:01:31

Tak to by se opravdu muselo udelat za behu. Mozna to chtelo informaci o poctu udaju tabulky uvest hned v prvnim dotazu...
V tomto pripade bych data z BLOBu nalit do 2 pracovnich tabulek (master-slave), master bude obsahovat zakladni data (datum, cas, xy...), ve slave tabulce bude v jednom zaznamu misto na 10 udaju - sloupcu. Pro jeden zaznam v master tabulce bude ve slave tabulce zaznamu vice, podle mnozstvi dat v BLOBu.
V QRBand-detailu pak budou zakladni udaje z master tabulky a pak QRDBTexty pro jeden radek slave tabulky - pocet radku se automaticky vytvori podle poctu zaznamu.

> Ja mam pocet radku i sloupcu promenny. Existuje sice maximalni pocet radku (100) a sloupcu (10) ale mlatit tam 1000 Labelu....
> To uz je lepsi to udelat za behu....
>
> > Nemyslim vytvaret QRLabely za behu, ale normalne je tam nasazet v projektu a
> > naplnit je v udalosti BeforePrint QRBandu. Rozumel jsem tomu tak, ze pocet prvku
> > tabulky je predem znamy. I pokud by se pocet Labelu menil, tak neni problem ty
> > nepotrebne skryt (QRLabel.Enabled:= False), pocet radku tabulky by se pak dal
> > ovlivnit nastavenim hodnoty QRBand.Height. Funguje to bez problemu.
> >
> > Jirka

sqlite - SQL statements in progress

[*] Tomas Rosa <trosa(zv)seznam(tec)cz> - 17.8.2006 10:07:39

zdravim,

pouzivam SQLite3 ale obcas se mi stane ze dostanu chybovou hlasku:

cannot commit transaction - SQL statements in progress

nicmene google poradil, ze se objevuje jen pri pouziti sqlite3_prepare a
zapomenuti zavolani sqlite3_finish. Nicmene ja pouzivam sqlite3_exec kde
toto chovani nema byt. Dokonce ani v dokumentaci jsem nic nenasel. Stane
se to obcas a nemuzu vypozorovat kdy.

Diky za kazde nakopnuti.

tr

OT: Prosba o .exe SMTP dema z Delphi

[*] peca.konference(zv)centrum(tec)cz - 17.8.2006 12:55:51

Zdravim,

mel bych prosbu. Potrebuju ted vyzkouset nejake veci s komunikaci na SMTP server. V Delphi je demo pro SMTP komponentu, vysledkem je programek, ktery je posloucha na SMTP portu a zobrazuje, co na nej prijde.

Bohuzel, Delphi mam jen doma a ten exe soubor jsem si zapomnel vzit. Mohl by prosim nekdo z vas toto demo prelozit (tak, aby nebyla nutna na PC instalace Delphi, tj. vsechny potrebne knihovny staticky v exe) a poslat to na muj email?

Diky moc.

Zjisteni zda je uzivatel prihlas en nebo odhlasen

[*] Petr Berek <sojokl(zv)seznam(tec)cz> - 17.8.2006 14:13:56

Ahoj,
nemam to sice vyzkouseno, ale myslim, ze i po odlogovani bezi vsechny
programy. Treba winamp mi funguje i po odlogovani (prepnuti uzivatele) a
urcite tak fungujou i vsechny programy.
Petr


On 8/17/06, Bukacek Michal <michal(zv)bukacek(tec)cz> wrote:
>
> Dobry den,
>
> potreboval bych nejak zjistit zda program funguje se zalogovanym
> uzivatelem nebo odlogovanym uzivatelem od systemu.. i kdyz uzivatel
> zmackne win+L (locked) ..
> predem dik moc. Bukacek Michal
>
>
>

Zjisteni zda je uzivatel prihlas en nebo odhlasen

[*] Bukacek Michal <michal(zv)bukacek(tec)cz> - 17.8.2006 14:09:56

Dobry den,

potreboval bych nejak zjistit zda program funguje se zalogovanym
uzivatelem nebo odlogovanym uzivatelem od systemu.. i kdyz uzivatel
zmackne win+L (locked) ..
predem dik moc. Bukacek Michal

Zjisteni zda je uzivatel prihlas en nebo odhlasen

[*] Pavel Malinsky <malinsky(zv)pmcom(tec)cz> - 17.8.2006 14:25:58

> -----Original Message-----
> From: delphi-l-owner(zv)clexpert(tec)cz
> [mailto:delphi-l-owner(zv)clexpert(tec)cz] On Behalf Of Bukacek Michal

Ahoj,

> potreboval bych nejak zjistit zda program funguje se zalogovanym
> uzivatelem nebo odlogovanym uzivatelem od systemu.. i kdyz uzivatel
> zmackne win+L (locked) ..
> predem dik moc. Bukacek Michal

Bezi. Pokud explicitne v app nezaridis, aby nebezelo.

PM


Problem metody Locate u TIBQuery

[*] Kalhous <kalhous(zv)eu(tec)cz> - 18.8.2006 06:55:06

Treba pred tim Locate dat TIBQueryAfterScroll:=nil, po Locate obnovit a
zavolat aby se nacetla do detailu data nalezeneho zaznamu.
Z.Kalhous

----- Original Message -----
From: "Miloslav Pojsl" <mpojsl(zv)seznam(tec)cz>
> mam nasledujici problem... Mam tabulku TDBGrid napojenou na TIBQuery; po
editaci nejakeho zaznamu zmeny SQl prikazem ulozim a do Query opet nactu
aktualizovana data. Chci ale po aktualizaci nastavit polohu aktualniho
zaznamu na ten, ktery jsem editoval. To na zaklade vasi rady delam metodou
TIBQuery.Locate. Funguje to, ale ma to jednu hroznou nectnost. Tato metoda
prochazi vsechny zaznamy, nez najde ten hledany a to se projevi tak, ze v
detailu zaznamu (aktualizuji ho v udalosti TIBQuery..OnAfterScroll) se mi
neustale meni data (napr. v prvcich TEdit) do doby nalezeni hledaneho
zaznamu.

Pretahnuti komponent na panel

[*] Petr Berek <sojokl(zv)seznam(tec)cz> - 17.8.2006 23:20:35

Uz jsem na to prisel, nemusite odpovidat. Omlouvam se :-)

On 8/17/06, Petr Berek <sojokl(zv)seznam(tec)cz> wrote:
>
> Ahoj,
> mam komponenty na formulari, ale ted bych je chtel dat na panel. Daji se
> ty
> komponenty nejak pretahnout na panel?
> Diky,
> Petr
>
>

Pretahnuti komponent na panel

[*] Petr Zahradnik <clexpert(zv)clexpert(tec)cz> - 17.8.2006 23:18:35

Puvodni zprava ze dne 17.8.2006 od Petr Berek:

> mam komponenty na formulari, ale ted bych je chtel dat na panel.
> Daji se ty komponenty nejak pretahnout na panel?

Cut - Paste?

Petr Zahradnik, pocitacovy expert

==========================================================
Petr Zahradnik, Computer Laboratory


web: http://www.clexpert(tec)cz, e-mail: clexpert(zv)clexpert(tec)cz

==========================================================


Pretahnuti komponent na panel

[*] Petr Berek <sojokl(zv)seznam(tec)cz> - 17.8.2006 23:16:34

Ahoj,
mam komponenty na formulari, ale ted bych je chtel dat na panel. Daji se ty
komponenty nejak pretahnout na panel?
Diky,
Petr


Zjisteni zda je uzivatel prihlas en nebo odhlasen

[*] Pavel Malinsky <malinsky(zv)pmcom(tec)cz> - 17.8.2006 21:08:26

> -----Original Message-----
> From: delphi-l-owner(zv)clexpert(tec)cz
> [mailto:delphi-l-owner(zv)clexpert(tec)cz] On Behalf Of Michal Bukacek

> nevim jak
> to zjistit ze je win odlogovany nebo zamceny.. ?

Nkede sem videl treba tohle:

function IsWorkstationLocked: Boolean;
var
hDesktop: HDESK;
begin
Result := False;
hDesktop := OpenDesktop('default',
0, False,
DESKTOP_SWITCHDESKTOP);
if hDesktop <> 0 then
begin
Result := not SwitchDesktop(hDesktop);
CloseDesktop(hDesktop);
end;
end;

PM


Zjisteni zda je uzivatel prihlas en nebo odhlasen

[*] Michal Bukacek <michal(zv)bukacek(tec)cz> - 17.8.2006 20:26:23

Diky.. jsem to spatne napsal tu otazku : potrebuji zjistit to ze je
nekdo v systemu nebo neni zalogovany to ze ten program bude fungovat a i
pri odlogovanem windows to predpokladam. Proste kdyz bude windows
odlogovany tak program bude delat neco jineho nez obvykle ale nevim jak
to zjistit ze je win odlogovany nebo zamceny.. ?

Diky Bukacek Michal

-----Original Message-----
From: delphi-l-owner(zv)clexpert(tec)cz [mailto:delphi-l-owner(zv)clexpert(tec)cz] On
Behalf Of Pavel Malinsky
Sent: Thursday, August 17, 2006 2:26 PM
To: delphi-l(zv)clexpert(tec)cz
Subject: Re: Zjisteni zda je uzivatel prihlas en nebo odhlasen od
systemu.

> -----Original Message-----
> From: delphi-l-owner(zv)clexpert(tec)cz
> [mailto:delphi-l-owner(zv)clexpert(tec)cz] On Behalf Of Bukacek Michal

Ahoj,

> potreboval bych nejak zjistit zda program funguje se zalogovanym
> uzivatelem nebo odlogovanym uzivatelem od systemu.. i kdyz uzivatel
> zmackne win+L (locked) ..
> predem dik moc. Bukacek Michal

Bezi. Pokud explicitne v app nezaridis, aby nebezelo.

PM

Problem metody Locate u TIBQuery

[*] Jan Novak <delfin4(zv)volny(tec)cz> - 17.8.2006 20:02:21

> v udalosti TIBQuery..OnAfterScroll) se mi neustale meni
> data (napr. v prvcich TEdit)

Podivej se, co dela u datasetu metod DisableControls.

Problem metody Locate u TIBQuery

[*] Martin Burle <mburle2(zv)volny(tec)cz> - 17.8.2006 18:32:15

> Myslel jsem, ze je ta metoda Locate udelana inteligentneji... Nevite
> nekdo, jak by se dal tento problem vyresit?

Kdyz uz to delas takto, tak tedy disabluj po dobu synchronizace vsechny
navesene metody - treba nejakym flagem. Ale spise bych zvolil nejaky jiny
dataset, ktery umi editaci a refreshrecord.

MB

Problem metody Locate u TIBQuery

[*] Karel Rys <delphi(zv)zas-me(tec)cz> - 17.8.2006 18:18:14

Ahoj,

pouzit tIbDataset misto tIbQuery - jednak umi refresh jednoho zaznamu,
druhak umoznuje primo i tu editaci. Napis do jeho SelectSQL ten dotaz,
co mas ted v tIbQuery. Klikni na nej pravym, tam je Generate SQL ci
tak neco. Pak byva nutne upravit RefreshSQL.

Karel Rys

Quoting Miloslav Pojsl <mpojsl(zv)seznam(tec)cz>:

> Zdravim vsechny,
>
> mam nasledujici problem... Mam tabulku TDBGrid napojenou na
> TIBQuery; po editaci nejakeho zaznamu zmeny SQl prikazem ulozim a do
> Query opet nactu aktualizovana data. Chci ale po aktualizaci
> nastavit polohu aktualniho zaznamu na ten, ktery jsem editoval. To
> na zaklade vasi rady delam metodou TIBQuery.Locate. Funguje to, ale
> ma to jednu hroznou nectnost. Tato metoda prochazi vsechny zaznamy,
> nez najde ten hledany a to se projevi tak, ze v detailu zaznamu
> (aktualizuji ho v udalosti TIBQuery..OnAfterScroll) se mi neustale
> meni data (napr. v prvcich TEdit) do doby nalezeni hledaneho
> zaznamu. Mam v tabulce cca. 15 zaznamu a uz je to opticky
> postrehnutelne. Co teprve az tam tech zaznamu budou stovky... bude
> to pomale a jeste se v polickach budou hemzit menena data...
>
> Myslel jsem, ze je ta metoda Locate udelana inteligentneji... Nevite
> nekdo, jak by se dal tento problem vyresit?
> ?
> Diky za namety, zdravi Milos Pojsl
>
>
>
--
Karel

Problem metody Locate u TIBQuery

[*] Miloslav Pojsl <mpojsl(zv)seznam(tec)cz> - 17.8.2006 18:12:13

Zdravim vsechny,

mam nasledujici problem... Mam tabulku TDBGrid napojenou na TIBQuery; po editaci nejakeho zaznamu zmeny SQl prikazem ulozim a do Query opet nactu aktualizovana data. Chci ale po aktualizaci nastavit polohu aktualniho zaznamu na ten, ktery jsem editoval. To na zaklade vasi rady delam metodou TIBQuery.Locate. Funguje to, ale ma to jednu hroznou nectnost. Tato metoda prochazi vsechny zaznamy, nez najde ten hledany a to se projevi tak, ze v detailu zaznamu (aktualizuji ho v udalosti TIBQuery..OnAfterScroll) se mi neustale meni data (napr. v prvcich TEdit) do doby nalezeni hledaneho zaznamu. Mam v tabulce cca. 15 zaznamu a uz je to opticky postrehnutelne. Co teprve az tam tech zaznamu budou stovky... bude to pomale a jeste se v polickach budou hemzit menena data...

Myslel jsem, ze je ta metoda Locate udelana inteligentneji... Nevite nekdo, jak by se dal tento problem vyresit?
?
Diky za namety, zdravi Milos Pojsl

potomek Panelu s Panelem na sobe

[*] Tomas Rosa <trosa(zv)seznam(tec)cz> - 18.8.2006 10:43:27

Cau,

mam komponentu ktera je odvozena od TCustomPanel a je to vpodstate
normalni panel ktery ma jen nejake veselejsi okraje. Nicmene potrebuju
abych docilil toho, ze budu mit defacto treba modre zahlavi a bily obsah
panelu. A na oboji potrebuju komponenty. Takze jsem udelal samotny panel
bily a na nej jdou bezne pokladat panely. Pak jsem udelal unitr tohoto
panelu v constructoru dalsi panel a ten jsem udelal modry - treba takto:

fTopPanelObject:=TTopCaptXPPanel.Create(self);
fTopPanelObject.Parent:=self;
fTopPanelObject.Align:=alTop;
fTopPanelObject.Color:=$E9C0AD;
fTopPanelObject.Height:=fTopPanelHeight;

a vysledkem je na pohled to co potrebuji. Dokoce v delphi vidim v
navrhari bily panel s modrym zahlavim a na oboji jdou davat komponenty.
Nicmene komponenty z vnitrniho panelu se neulozi do DFM a tedy po
spusteni aplikace ci znovuotevreni projektu proste zmizi. Jak docilit
pozadovaneho efektu?

tr

TDataSnap + TWebConnection -upload (blobu)

[*] Ivan Dulgerov <ivan.dulgerov(zv)sazp.sk> - 18.8.2006 11:57:32

S ohladom na fakt, zi nikto nezareagoval skusim este raz.;-)

Mam aplikaciu postavenu na Oracle + TDataSnap+
komponenty ODAC.

Na aplikacnom serveri je TOraSession + TOraSMartQuery+ TOraProvider
U klienta TWebConnection + TDataProvider + TOraSource
Na pocitaci bezi IIS.

Vkladam do databazy (do Blobu) RTF subor.

Pri vlozeni suboru cca 45kb a vacsieho aplikacia
vytuhne na cca 1 minutu, a potom zaznam korektne ulozi.
Pri pouziti TSockedConnection, sa tento problem neprejavuje.

Otazka znie :
je toto normalne chovanie TWebConnection?

Ak ano, mate nejaky typ, ako bezproblemovo
uploadnut do blobu
subor o velkosti 100 - 200 kb?

Dik.
--
S pozdravom

Ivan Dulgerov CEI SAZP Delphi programator

Tajovskeho 28
97590 Banska Bystrica
tel: 048 4374144
ICQ : 190698607
mail : ivan.dulgerov(zv)sazp.sk

potomek Panelu s Panelem na sobe

[*] Ludek Finstrle <ludek.finstrle(zv)pzkagis(tec)cz> - 18.8.2006 13:21:38

> a vysledkem je na pohled to co potrebuji. Dokoce v delphi vidim v
> navrhari bily panel s modrym zahlavim a na oboji jdou davat komponenty.
> Nicmene komponenty z vnitrniho panelu se neulozi do DFM a tedy po
> spusteni aplikace ci znovuotevreni projektu proste zmizi. Jak docilit
> pozadovaneho efektu?

Uvest vnitrni panel jako published?

Luf

potomek Panelu s Panelem na sobe

[*] Tomas Rosa <trosa(zv)seznam(tec)cz> - 18.8.2006 13:35:39

Ludek Finstrle wrote:
>> a vysledkem je na pohled to co potrebuji. Dokoce v delphi vidim v
>> navrhari bily panel s modrym zahlavim a na oboji jdou davat komponenty.
>> Nicmene komponenty z vnitrniho panelu se neulozi do DFM a tedy po
>> spusteni aplikace ci znovuotevreni projektu proste zmizi. Jak docilit
>> pozadovaneho efektu?
>
> Uvest vnitrni panel jako published?
>

Zkousel jsem (jen readonly) ale nepomohlo. ALe nezkusil jsem i
zapisovatelny - tj. prazdna write metoda, ale bude takze to Object
Inspector uvidi...

tr

potomek Panelu s Panelem na sobe

[*] Ludek Finstrle <ludek.finstrle(zv)pzkagis(tec)cz> - 18.8.2006 13:41:40

> >> a vysledkem je na pohled to co potrebuji. Dokoce v delphi vidim v
> >> navrhari bily panel s modrym zahlavim a na oboji jdou davat komponenty.
> >> Nicmene komponenty z vnitrniho panelu se neulozi do DFM a tedy po
> >> spusteni aplikace ci znovuotevreni projektu proste zmizi. Jak docilit
> >> pozadovaneho efektu?
> >
> > Uvest vnitrni panel jako published?
> >
>
> Zkousel jsem (jen readonly) ale nepomohlo. ALe nezkusil jsem i
> zapisovatelny - tj. prazdna write metoda, ale bude takze to Object
> Inspector uvidi...

Nejsem si jist, jak Delphi potom ten vnitrni panel pri vytvareni
formu nastavi, kdyz bude mit prazdnou write metodu ...

Luf

potomek Panelu s Panelem na sobe

[*] Tomas Rosa <trosa(zv)seznam(tec)cz> - 18.8.2006 13:51:41

>>>
>> Zkousel jsem (jen readonly) ale nepomohlo. ALe nezkusil jsem i
>> zapisovatelny - tj. prazdna write metoda, ale bude takze to Object
>> Inspector uvidi...
>
> Nejsem si jist, jak Delphi potom ten vnitrni panel pri vytvareni
> formu nastavi, kdyz bude mit prazdnou write metodu ...
>

Pokd dam vsak Write motodu "mujPanel.Assign(Value)", pak ale muze
kdokoliv vybrat na formulari jakykoliv jiny panel a priradit mi ho tam,
coz ja nechci.

tr

potomek Panelu s Panelem na sobe

[*] Pavel Malinsky <malinsky(zv)pmcom(tec)cz> - 18.8.2006 13:49:41

> -----Original Message-----
> From: delphi-l-owner(zv)clexpert(tec)cz
> [mailto:delphi-l-owner(zv)clexpert(tec)cz] On Behalf Of Tomas Rosa

Ahoj,

> > Uvest vnitrni panel jako published?
> >
>
> Zkousel jsem (jen readonly) ale nepomohlo. ALe nezkusil jsem i
> zapisovatelny - tj. prazdna write metoda, ale bude takze to Object
> Inspector uvidi...

Nemelo by se tomu vlozenemu panelu jeste nastavit SetSubComponent(True) ?

PM


potomek Panelu s Panelem na sobe

[*] Ludek Finstrle <ludek.finstrle(zv)pzkagis(tec)cz> - 18.8.2006 14:01:42

> >> Zkousel jsem (jen readonly) ale nepomohlo. ALe nezkusil jsem i
> >> zapisovatelny - tj. prazdna write metoda, ale bude takze to Object
> >> Inspector uvidi...
> >
> > Nejsem si jist, jak Delphi potom ten vnitrni panel pri vytvareni
> > formu nastavi, kdyz bude mit prazdnou write metodu ...
> >
>
> Pokd dam vsak Write motodu "mujPanel.Assign(Value)", pak ale muze
> kdokoliv vybrat na formulari jakykoliv jiny panel a priradit mi ho tam,
> coz ja nechci.

Nejdriv bych vyzkousel, zda to po zmene zapise do DFM. Ja bych to videl
na prvni test s:
mujPanel := Value;

Pokud to bude fungovat, pak bych zkusil neco jako:
if (mujPanel = nil) then
mujPanel := Value;

Ci nejakou podobnou obstrukci. Ale moc nechapu, proc by se tam nemohl
priradit jiny panel. Kdyz clovek vi, co chce ...

Luf

potomek Panelu s Panelem na sobe

[*] Tomas Rosa <trosa(zv)seznam(tec)cz> - 18.8.2006 14:13:43


> Ci nejakou podobnou obstrukci. Ale moc nechapu, proc by se tam nemohl
> priradit jiny panel. Kdyz clovek vi, co chce ...

protoze tim

a) rozbije vzhled (tamto je opet nejaky specialni potomek panelu)
b) neni to cilem


potomek Panelu s Panelem na sobe

[*] Tomas Rosa <trosa(zv)seznam(tec)cz> - 18.8.2006 14:05:42

> Nemelo by se tomu vlozenemu panelu jeste nastavit SetSubComponent(True) ?


tohle asi bude to spravne nakopnuti - jdu to zkusit. Mimojine jsem nasel
ten samy problem a reseni primo na borlandu:

http://qc.borland.com/wc/qcmain.aspx?d=1732

tr

Zjisteni aktualniho uzivatele

[*] Ing. Antonin Spurny <spurny(zv)kavlounky(tec)cz> - 18.8.2006 14:21:44

Ahoj,

potreboval bych v TService zjistit uzivatele, ktery prave pracuje na PC.
Pokud pouziju proceduru GetUserName, vrati mi to uzivatele, ktery spustil
sluzbu (v mem pripade SYSTEM).
muzete me navest spravnym smerem?

dekuji
tonda

Cestina v dialogu RAVE Reports

[*] Miroslav Suchy <suchy(zv)jplusj(tec)cz> - 18.8.2006 14:41:45

Ahoj vespolek,
mam nasledujici dotaz.
Pri svem badani v Delphi jsem dospel k potrebe tisknout sestavy.
Zacal jsem tedy zkoumat RAVE. Zda se, ze by byly vicemene
pouzitelne, ale narazil jsem na problem, ktery vlastne ani s tiskem
nesouvisi. Dialog, ktery se objevuje pred tiskem (vyber tiskarny atd.),
je, jak jinak, v anglictine. Umim si prepsat texty v unitach, od kterych
je k dispozici source (napr.consts.pas). Tu potom prihraju do adresare
Lib a pri kompilaci se prelozi do formatu dcu.
K vystupnimu dialogu RAVE vsak soubor .pas neni.
V adresari RAVE5\Lib je pouze QRpFormSetup.dcu a QRpFormSetup.xfm,
dale pak RpFormSetup.dcu a RpFormSetup.dfm. V souborech .xfm a .dfm
sice lze texty prepsat, ale, a to je prave muj dotaz, nevim, jak delphi
presvedcit, aby si ten upraveny popis formulare prilinkovala pri kompilaci
do toho .dcu. Jestli to tedy nejak jde.
Pripadne je nejaky jiny zpusob, jak tam tu cestinu dostat?

Miroslav Suchy

Type library pro COM

[*] Martin Pisarik <martin.pisarik(zv)seznam(tec)cz> - 18.8.2006 14:53:46

Ahoj *,

mam COM object v DLL knihovne (vyrobeno ve visual C++ 2005).
Tento se da normalne zaregistrovat a funguje.

Chtel bych ho typove pouzivat v delphi ci BCB, ale mam problem. Kdyz dam
Import Type Library, tak v seznamu COM objektu neni, kdyz dam Insert a
vyberu prislusnou DLL, tak se dozvim ze: "Error loading type library/DLL".

Cely den to nejsem schopen vyresit, takze budu rad za jakoukoliv radu.

Dik
--
Internal Virus Database is out-of-date.
Checked by AVG Free Edition.
Version: 7.1.405 / Virus Database: 268.10.8/413 - Release Date: 8.8.2006


Zjisteni aktualniho uzivatele

[*] Tomas Rosa <trosa(zv)seznam(tec)cz> - 18.8.2006 14:47:46

>
> potreboval bych v TService zjistit uzivatele, ktery prave pracuje na PC.
> Pokud pouziju proceduru GetUserName, vrati mi to uzivatele, ktery spustil
> sluzbu (v mem pripade SYSTEM).
> muzete me navest spravnym smerem?
>

Tusim ze se aplikaci musi nastavit Desktop interactive a pak uz vidi
toho uzivatele co potrebujes.

tr

prenos vyrezu obrazku do jineho obrazku

[*] petr palicka <palicka.petr(zv)seznam(tec)cz> - 18.8.2006 14:49:46

Ahoj,

potrebuji vykreslit vyrez jednoho obrazku do jineho. Delam to v
jednoduche procedurce (viz konec mejlu). Pokud je cilove platno
TPaintBox.Canvas (viditelny na formulari), vse je OK a ja vysledek vidim
spravne na obrazovce. Pokud je cilove platno TBitmap.Canvas (dynamicky
vytvoreny) a vysledek ulozim do souboru, je vysledny obrazek zhusta
prazdny. Tech vyrezu zpravidla prenasim vice nez jeden do jednoho cile.

V principu mam jednu vykreslovaci rutinu, ktere predhodim bud platno
na obrazovce, nebo v pomocne bitmape pro ulozeni. Zda se, ze zalezi na
nastaveni velikosti vyrezu a volne pameti. Nekdy se neco prenese, jindy
vubec nic.Iplne vsechny se mi do TBitmap.Canvas nenamalovali nikdy, na
obrazovce je to celkem v pohode. A nyni moje procedura.

procedure MalujVyrez(C1: HDC; R: TRect);
begin
SetMapModeSJTSK;
StretchBlt(
C1, // cil
R.Left, R.Top, // cilovy vyrez
R.Right-R.Left,
R.Bottom-R.Top,
FBitmap.Canvas.Handle, // zdroj
R.Left, R.Top, // zdrojovy vyrez
R.Right-R.Left,
R.Bottom-R.Top,
FRasterOperation); // zpusob
Application.ProcessMessages;
RestoreMapMode;
end;


Dik za pripadnou pomoc

Peca.

Zjisteni aktualniho uzivatele

[*] delphin(zv)post(tec)cz - 18.8.2006 15:21:49

> potreboval bych v TService zjistit uzivatele, ktery prave pracuje na PC.
> Pokud pouziju proceduru GetUserName, vrati mi to uzivatele, ktery spustil
> sluzbu (v mem pripade SYSTEM).
> muzete me navest spravnym smerem?

Ono to neni takove jednoduche. Pocinaje WindowXP anebo pri nainstalovanych
Terminal Services muze byt nalogovano vice uzivatelu soucasne. Na WXP muze
interaktivne pracovat nejvyse jeden a na TS vsichni najednou.

Jmena prihlasenych uzivatelu by melo jit zjistit nejak takto:
http://www.swissdelphicenter.ch/torry/showcode.php?id=966

Cestina v dialogu RAVE Reports

[*] radek_456 radek_456 <radek 456(zv)seznam(tec)cz> - 18.8.2006 15:15:48


nepomuze tohle:

Tip #72 - OverRide Standard Setup Dialog
http://www.nevrona.com/Default.aspx?tabid=132

zmateny kompilator na array of const

[*] Tomas Rosa <trosa(zv)seznam(tec)cz> - 20.8.2006 11:52:41

Zdravim,

podarilo se me totalne dostat kompilator (D7prof) na teto konstrukci:


function FormatInsertUpdateSQL(typ:TsqlFormaterType;prefix,suffix:string;args: array of const): string;
var n:integer;
a,b,c:string;
t:byte;
begin
if length(args) mod 2<>0 then raise Exception.Create('arguments must be pairs - odd parameters count');

n:=0;
while n<length(args) do
begin
t:=args[n+1].VType;
case t of
vtInteger :begin
a:=a+Format('%s=%d, ',[args[n].VString,args[n+1].VInteger]);
b:=b+Format('%s, ',[args[n].VString]);
c:=c+Format('%d, ',[args[n+1].VInteger]);
end;
vtString :begin *******
a:=a+Format('%s="%s", '[args[n].VString,SQLAddSlashes(args[n+1].VString)]);
b:=b+Format('%s, '[args[n].VString]);
c:=c+Format('"%s", '[SQLAddSlashes(args[n+1].VString)]);
end;
...
...


presne tam kde jsou ty ******* tak zarve (ano, na te radce kde je ten begin a tam nakonci) chybu:

Incompatibile types Integer and PShortString

Poradte co s tim? Obecne jde me o to, abych nemusel pokazde vypisovat inserty a updaty, tak jsem si chtel vytvorit
takovouto funkci kterou budu volat takto:

sql:=FormatInsertUpdateSQL(sftUpdate,['name',fName,'address',fAddress,'age',fAge]);

a ona podle typu sudych parametru pozna co to je (string, integer, boolean,..) a vyformatuje SQL.

TR

Uvolneni TForm pri uzavrenni okna

[*] Tomas Rosa <trosa(zv)seznam(tec)cz> - 20.8.2006 11:46:41

> Potreboval bych uvolnit formular pri uzavreni okna. V OnClose to asi nepujde a hlidat uzavreni timerem se mi nezda. Form neni modalni. Vytvori se Create a vola se Show.
>

V OnClose mas parametr Action ktery nastav na caFree nebo tak nejak a on
sam na sobe zavola Free;

tr

Uvolneni TForm pri uzavrenni okna

[*] Petr Mathon <dveste zar(zv)quick(tec)cz> - 20.8.2006 10:44:36

Ahoj

Potreboval bych uvolnit formular pri uzavreni okna. V OnClose to asi nepujde a hlidat uzavreni timerem se mi nezda. Form neni modalni. Vytvori se Create a vola se Show.

Dik


zmateny kompilator na array of const

[*] Tomas Rosa <trosa(zv)seznam(tec)cz> - 20.8.2006 22:37:27

Nojo, jenze toto je kod napsany odnuly v Delphi IDE (d7prof) - ma to cca
90 radku a zadne potize z CRLF nejsou. Pokud zazavorkuji cast kodu (ten
case), bezi vse vporadku a puntiky sedi. On to proste pochopi, ze jedna
varianta v case = 1 radka. Pokud tak zapisu kod, sedi to. Jen na teto
jedne unite. Ostatne podstatne je to, ze to funguje generuje to SQL dotazy.


tr

> Tak ja ti poradim. ;-)
>
> Takhle zmatene se delphi chovaji, pokud nejake radky ve zdrojaku nemaji
> jako odradkovani kompletni sekvenci CRLF, ale treba jen CR.
>
> Ediotor takoveto neuplne odradkovani vesele skousne, ale prekladac,
> debugger, ty puntiky,... ty to jako odradkovani neberou. Takze pokud tam
> takoveto neuplne odradkovani mas treba na trech radcich, budes tohle
> vsechno mit na konci o tri radky posunute.
>
> Je to pak velmi legracni, nesedi ty puntiky, kdyz krokujes program, tak
> kurzor mas na uplne jinych radcich nez ma byt, atd. Ostatne, i ty tvoji
> chybu to ukazovalo posunute. ;-)
>
> Reseni? Pouzije nejaku externi textovy editor, ktery umi to odradkovani
> opravit, treba PSpad.
>
> A jak takovyto problem nejcasteji vznika? Nekdy kdyz se kopiruje z helpu,
> nebo z nejakych textovych souboru, tak se to zkopiruje s takto neuplnym
> radkovanim, pdole toho jak bylo odradkovani v puvodnim zdroji.
>
> Na zaver dodavam, ze tento problem jsem pozoroval jak na Delphi3, tak i
> na poslednich BDS2006!
>

zmateny kompilator na array of const

[*] Lukas Gebauer <gebylist(zv)mlp(tec)cz> - 20.8.2006 22:25:26

> odpovidam si sam - zapomel jsem v druhem case bloku uvest carku mezi
> prvnim a druhym parametrem prikazu Format a kompiler to
> oznacoval takto spatne. A take nelze pristupovat do stringu pres VString,
> ale pres VPChar. Tak jako tak vsak kompiler ukazuje na tomto bloku kodu
> chyby a radky a (opuntikovane zakompilovane radky) uplne chaoticky.

Tak ja ti poradim. ;-)

Takhle zmatene se delphi chovaji, pokud nejake radky ve zdrojaku nemaji
jako odradkovani kompletni sekvenci CRLF, ale treba jen CR.

Ediotor takoveto neuplne odradkovani vesele skousne, ale prekladac,
debugger, ty puntiky,... ty to jako odradkovani neberou. Takze pokud tam
takoveto neuplne odradkovani mas treba na trech radcich, budes tohle
vsechno mit na konci o tri radky posunute.

Je to pak velmi legracni, nesedi ty puntiky, kdyz krokujes program, tak
kurzor mas na uplne jinych radcich nez ma byt, atd. Ostatne, i ty tvoji
chybu to ukazovalo posunute. ;-)

Reseni? Pouzije nejaku externi textovy editor, ktery umi to odradkovani
opravit, treba PSpad.

A jak takovyto problem nejcasteji vznika? Nekdy kdyz se kopiruje z helpu,
nebo z nejakych textovych souboru, tak se to zkopiruje s takto neuplnym
radkovanim, pdole toho jak bylo odradkovani v puvodnim zdroji.

Na zaver dodavam, ze tento problem jsem pozoroval jak na Delphi3, tak i
na poslednich BDS2006!


--
Lukas Gebauer.

E-mail: gebauerl(zv)mlp(tec)cz
WEB: http://www.ararat(tec)cz/synapse - Synapse Delphi and Kylix TCP/IP
Library


vlastni browser - dotazy win XP typu - instalovat

[*] Tomas Rosa <trosa(zv)seznam(tec)cz> - 20.8.2006 22:13:25

Bohuzel odpoved neznam, ale kdyz uz stavis browser, narazil jsi na toto?

http://www.iol.ie/~locka/mozilla/mozilla.htm

Je to nahrazka TWebBrowser (stejne rozhrani) GECKEM. Tedy odpada
zavislost na MSIE a ma to nejake vyhody (nefunguji v tom treba viry) a
podobne.

TR

> delam vlastni browser pomoci komponenty TWebBrowser a chci zabranit dotazum
> typu "Chcete instalovat znakovou sadu ?" (cinstina apod.). Nevi nekdo jak
> se tomu da zabranit ?

Uvolneni TForm pri uzavrenni okna

[*] Tomas Rosa <trosa(zv)seznam(tec)cz> - 20.8.2006 22:11:24

Defaultni pametovy manager si alokuje velke kusy pameti a pak je prideluje
a uvolnuje pouze v ramci aplikace a ne windows. Tj - ty uvlnis blok, ale
Delphi si ho necha v zasobe pro pristi pouziti. Je na to nejaka fce (nevim
ted jaka z hlavy) co to vrati zpet. Nicmene pokud se ti to nelibi a delas
hodne s pameti, poohledni se po jinem pametovem manageru - treba ja osobne
mam rad FastMM4 - dokonce i pekne debuguje kde jsi co alokoval a neuvolnil,
nebo naopak uvolnil podruhy.

TR

>
>
> Free asi provede, ale nepripada mi ze by uvolnil vse. Pred vytvorenim formulare mi applikace zabira 7MB po vytvoreni 20MB a po caFree 18MB. To je normalni stav? Nebo to musim uvolnovat jeste jinak.
>
>

zmateny kompilator na array of const

[*] Tomas Rosa <trosa(zv)seznam(tec)cz> - 20.8.2006 22:07:24

Zdravim,

odpovidam si sam - zapomel jsem v druhem case bloku uvest carku mezi prvnim a druhym parametrem prikazu Format a kompiler to
oznacoval takto spatne. A take nelze pristupovat do stringu pres VString, ale pres VPChar. Tak jako tak vsak kompiler
ukazuje na tomto bloku kodu chyby a radky a (opuntikovane zakompilovane radky) uplne chaoticky.

TR
> podarilo se me totalne dostat kompilator (D7prof) na teto konstrukci:
>
>
> function FormatInsertUpdateSQL(typ:TsqlFormaterType;prefix,suffix:string;args: array of const): string;
> var n:integer;
> a,b,c:string;
> t:byte;
> begin
> if length(args) mod 2<>0 then raise Exception.Create('arguments must be pairs - odd parameters count');
>
> n:=0;
> while n<length(args) do
> begin
> t:=args[n+1].VType;
> case t of
> vtInteger :begin
> a:=a+Format('%s=%d, ',[args[n].VString,args[n+1].VInteger]);
> b:=b+Format('%s, ',[args[n].VString]);
> c:=c+Format('%d, ',[args[n+1].VInteger]);
> end;
> vtString :begin *******
> a:=a+Format('%s="%s", '[args[n].VString,SQLAddSlashes(args[n+1].VString)]);
> b:=b+Format('%s, '[args[n].VString]);
> c:=c+Format('"%s", '[SQLAddSlashes(args[n+1].VString)]);
> end;
> ...
> ...
>
>
> presne tam kde jsou ty ******* tak zarve (ano, na te radce kde je ten begin a tam nakonci) chybu:
>
> Incompatibile types Integer and PShortString
>
> Poradte co s tim? Obecne jde me o to, abych nemusel pokazde vypisovat inserty a updaty, tak jsem si chtel vytvorit
> takovouto funkci kterou budu volat takto:
>
> sql:=FormatInsertUpdateSQL(sftUpdate,['name',fName,'address',fAddress,'age',fAge]);
>
> a ona podle typu sudych parametru pozna co to je (string, integer, boolean,..) a vyformatuje SQL.
>

Epson ERC-38B, TM-300A + Suplik

[*] Vladimir Ponechal <vponecha(zv)email(tec)cz> - 20.8.2006 21:33:21

Ahoj panove,

mam prosbu. Potrebuji z PC udelat poladnu. Mam Tiskarku Epson ERC-38B, TM-300A a do ni mam pripojeny suplik. Nemate s tim nekdo zkusenosti? Potrebuji na stlaceni space otevrit suplik a nevim jak na to.

Pokud presne nevite pro tento typ, zkuste me nejak nakopnout.

Delam to v Delphi 6 profesional.

Diku,

Vl.

vlastni browser - dotazy win XP typu - instalovat

[*] Tomas Bradle <t.bradle(zv)sanet(tec)cz> - 20.8.2006 20:15:16

Zdravim vsechny,

delam vlastni browser pomoci komponenty TWebBrowser a chci zabranit dotazum
typu "Chcete instalovat znakovou sadu ?" (cinstina apod.). Nevi nekdo jak
se tomu da zabranit ?

diky

Tomas Bradle
t.bradle(zv)sanet(tec)cz


Uvolneni TForm pri uzavrenni okna

[*] Petr Mathon <dveste zar(zv)quick(tec)cz> - 20.8.2006 20:05:15

>V OnClose mas parametr Action ktery nastav na caFree nebo tak nejak a on
> sam na sobe zavola Free;


Free asi provede, ale nepripada mi ze by uvolnil vse. Pred vytvorenim formulare mi applikace zabira 7MB po vytvoreni 20MB a po caFree 18MB. To je normalni stav? Nebo to musim uvolnovat jeste jinak.

OPOS ovladace

[*] Tomas Rosa <trosa(zv)seznam(tec)cz> - 21.8.2006 07:54:05

Zdravim,

koukal jsem ze jiz nekteri vyrobci zacinaji k fiskalnim tiskarnam
davat ovladace OPOS. Mate s nimi zkusenosti? Pripadne existuje nejaka
jina univerzalni vrstva pro komunikaci s fiskalni tiskarnou a displejem.
Precijen nechce se me poustet do programovani pro kazdou tiskarnu zvlast
a take nechci aby byl zakaznik pripadne omezen na konkretni druh.

Co pouzivate vy? Co doporucujete? Existuje nejaky emulator toho HW?

TR

Epson ERC-38B, TM-300A + Suplik

[*] Marek Dostal <konf(zv)agnis(tec)cz> - 21.8.2006 08:26:07

> mam prosbu. Potrebuji z PC udelat poladnu. Mam Tiskarku Epson ERC-38B,
> TM-300A a do ni mam pripojeny suplik. >Nemate s tim nekdo zkusenosti?
> Potrebuji na stlaceni space otevrit suplik a nevim jak na to.

Vetsina techto periferii se ovlada zaslani esc sekvenci, ktere jsou pro
kazdy typ zarizeni odlisne. Takze je potreba zjistit si tyto sekvence a
potom je potreba je posilat na prislusny port.

Marek Dostal
D7Prof, WinXP, FireBird 1.0, 1.5

OPOS ovladace

[*] Martin Burle <mburle2(zv)volny(tec)cz> - 21.8.2006 08:44:08

> koukal jsem ze jiz nekteri vyrobci zacinaji k fiskalnim tiskarnam
> davat ovladace OPOS. Mate s nimi zkusenosti? Pripadne existuje nejaka
> jina univerzalni vrstva pro komunikaci s fiskalni tiskarnou a displejem.
> Precijen nechce se me poustet do programovani pro kazdou tiskarnu zvlast

Obavam se ze univerzalni vrstvu si musis jedine napsat sam. Kazda FT je
trochu jina, ale zase ne tolik, abys nemohl pro funkce, ktere hodlas
pouzivat napsat nejake spolecne rozhrani. Nektere FT maji spousty funkci,
bez kterych se obejdes, jine maji jen ty nezbytne.

> a take nechci aby byl zakaznik pripadne omezen na konkretni druh.
>
> Co pouzivate vy? Co doporucujete? Existuje nejaky emulator toho HW?

vyrobci pujcuji vyvojove kity, nebo cele tiskarny, o zadnem emulatoru nevim.

Otazka zni, zda to nakonec vsechno bude k necemu - uz je asi jiste, ze od
1.1.07 to platit nebude, a co bude dal? Otazka pro vestce, myslim.

MB

Jak pripojit klienta k DB Firebird 1.5

[*] Miloslav Pojsl <mpojsl(zv)seznam(tec)cz> - 21.8.2006 08:50:10

Zdravim vsechny,

prosim muze mi nekdo poradit s nasledujicim problemem. Mam vice pocitacu, na kterych chci nainstalovat klientskou aplikaci, ktera by pracovala s daty na vzdalenem serveru. Na nem by bezel Firebird 1.5. Jak mam zajistit pripojeni? Nikdy jsem to nedelal, takze mozna pro vas trivialni veci mi unikaji:-) Je napriklad potreba na klientovi instalovat lokalni verzi Firebirdu? Jsou nejake komponenty pro zajisteni komunikace mezi klientem a serverem? Nekde jsem videl z minku o komponente TIBConnection, ale v Delphi 6 Enterprice jsem nic takoveho nenasel...

diky za podnety, Zdravi Milos Pojsl

Jak pripojit klienta k DB Firebird 1.5

[*] Martin Burle <mburle2(zv)volny(tec)cz> - 21.8.2006 09:00:12

trivialni veci mi unikaji:-) Je napriklad potreba na klientovi instalovat
lokalni verzi Firebirdu? Jsou nejake komponenty pro zajisteni komunikace
mezi klientem a serverem? Nekde jsem videl z minku o komponente
TIBConnection, ale v Delphi 6 Enterprice jsem nic takoveho nenasel...

V Delhi jsou IBX, zalozka Interbase. K pripojeni slouzi
TIBdatabase+TIBTransaction. Na klientskem pocitaci musi byt gds32.dll. Cesta
k databazi z pohledu serveru, tj. napriklad SERVER:C:\DATA\Data.fdb.

MB

Jak pripojit klienta k DB Firebird 1.5

[*] Marek Dostal <konf(zv)agnis(tec)cz> - 21.8.2006 09:14:13

> prosim muze mi nekdo poradit s nasledujicim problemem. Mam vice pocitacu,
> na kterych chci nainstalovat klientskou aplikaci, ktera by pracovala s
> daty na vzdalenem serveru. Na nem by bezel Firebird 1.5. Jak mam zajistit
> pripojeni? Nikdy jsem to nedelal, takze mozna pro vas trivialni veci mi
> unikaji:-) Je napriklad potreba na klientovi instalovat lokalni verzi
> Firebirdu? Jsou nejake komponenty pro zajisteni komunikace mezi klientem a
> serverem? Nekde jsem videl z minku o komponente TIBConnection, ale v
> Delphi 6 Enterprice jsem nic takoveho nenasel...

Na stanici staci dll knihovna (gds32.dll pro Interbase a FB nizsi nez 1.5,
fbclient.dll pro FB 1.5. a vyse). Pres tuto knihovnu se komunikuje s sql
serverem. Rozhrani teto dll obaluji ruzne "balicky" komponent, napr. IBxxx v
zalozce Interbase, dbExpress komponenty z zalozce dbExpress. Databaze, ke
ktere se chces pripojit se z klienta specifikuje ve tvaru:
ip:databaze, kde za ip se da ip adresa pocitace, ne nemz bezi FB a kde je
ulozena db a za databaze se dosadi cesta a jmeno databaze, kde je na tom
serveru umistena. Napr. 192.168.1.1:c\MojeData\ucto.fdb, pricemz adresar,
kde je db umistena nemusi a ani by z hlediska zabezpeceni nemel byt sdileny.
A nemusi to byt ip adresa vnitrni site, ale klidne pocitac kdekoli "ve
svete". A jeste poznamka, klient Firebirdu komunikuje se serverem na portu
3050 (pokud to neprekonfigurujes), takze tento se musi povolit ve
firewallech.

Marek Dostal
D7Prof, WinXP, FireBird 1.0, 1.5

vlastni browser - dotazy win XP typu - instalovat

[*] Vaclav Halik <spravasd(zv)suz.cvut(tec)cz> - 21.8.2006 10:00:16

Tomas Rosa napsal(a):
> Bohuzel odpoved neznam, ale kdyz uz stavis browser, narazil jsi na toto?
>
> http://www.iol.ie/~locka/mozilla/mozilla.htm
>
> Je to nahrazka TWebBrowser (stejne rozhrani) GECKEM. Tedy odpada
> zavislost na MSIE a ma to nejake vyhody (nefunguji v tom treba viry) a
> podobne.
>
Ano, ale taky je zde dost nedoresenych zalezitosti. Nejdou poradne
vyresit tisky. Defalutni konfigurace GRE je nastavena dost debilne,
takze bez prekonfigurovani to neni obecne pouzitelne, atd ...

Jinak je to v aplikaci podstatne rychlejsi nez IE.


Vaclav Halik

posilani zprav mezi programy na terminal serveru

[*] Ladislav Fitz <ladislav.fitz(zv)kodytek(tec)cz> - 21.8.2006 13:54:32

zdravim nevite nekdo jak na posilani zprav mezi programy ktere behaji na
terminal serveru (v podstate je to jeden na ruznich pripojenich) - jedna se
o informaci ze se neco zmenilo v databazi

posilani zprav mezi programy na terminal serveru

[*] Pavel Malinsky <malinsky(zv)pmcom(tec)cz> - 21.8.2006 14:04:33

> -----Original Message-----
> From: delphi-l-owner(zv)clexpert(tec)cz

Ahoj,

> zdravim nevite nekdo jak na posilani zprav mezi programy
> ktere behaji na
> terminal serveru (v podstate je to jeden na ruznich
> pripojenich) - jedna se
> o informaci ze se neco zmenilo v databazi

Nepises jaka DB, ale na FB by se takovato informace dala poslat
z DB pres event a v aplikaci chytit.

PM


Nstaveni promenne na nil po zruseni objektu

[*] Pavel Bares <bares(zv)atoll(tec)cz> - 21.8.2006 14:16:34

Zdarvim vsechny

Narazil sem na zajimavy problem
Potreboval bych zavrit a zrusit vsechna okna aplikace a nastavit
promenne na nil ( Form1...x.Free , form Form1..x :=nil )

Zrusit neni problem pres Screen.Forms[], ale nastavit promenne na nil se
mi nepodarilo.

Potrebuji to nastavit, protoze se vsude v programu pri vytvareni okna
testuje jestli je nil ( tzn. neexisuje) aby se zabranilo vytvareni vice
instanci.
Neni to bohuzel moc stastne reseni, ale opravit to je na dlouho.

dekuji za radu

Pavel Bares

Jak zjistit Handle prihlaseneho uzivatele pro pouz

[*] little_bobes(zv)centrum(tec)cz - 21.8.2006 14:12:34

Zdravim,

ze sluzby spoustim aktualizaci programu a nasledne opetovne spusteni
aktualizovaneho programu pomoci CreateProcess.
Sluzba ma povoleno pouzivat plochu.

Problem je ten, ze aktualizovany program se spousti jako SYSTEM, ale ja ho
potrebuji spustit jako prave prihlaseny uzivatel, ktereho ale neznam, ale
vzdycky nejaky bude.
Dival jsem se na funkci CreateProcessAsUser(), ale nevim, jak presne zjistit
handle od prihlaseneho uzivatele.

Predem dekuji za pomoc

S pozdravem Bob
(D4 c/s, FB 1.5)

posilani zprav mezi programy na terminal serveru

[*] Ladislav Fitz <ladislav.fitz(zv)kodytek(tec)cz> - 21.8.2006 14:10:34

> Nepises jaka DB

jo to sem zapomel je MSAccess ale spis by me zajimalo nejake obecne reseni -
pokud ho uz nekdo vymyslel - jedine co me napadlo tak pomocna tabulka kde se
jednotlive programy zaregistruji (IP+port) a nasledne se na posle info o
zmene

Nstaveni promenne na nil po zruseni objektu

[*] OnDraG <gebakonf(zv)centrum(tec)cz> - 21.8.2006 14:24:35

Pavel Bares napsal(a):
> Zdarvim vsechny
>
> Narazil sem na zajimavy problem
> Potreboval bych zavrit a zrusit vsechna okna aplikace a nastavit
> promenne na nil ( Form1...x.Free , form Form1..x :=nil )
>
> Zrusit neni problem pres Screen.Forms[], ale nastavit promenne na nil se
> mi nepodarilo.
>
Zkousel jsi FreeAndNIL(Form) ?
OnDraG

Nstaveni promenne na nil po zruseni objektu

[*] Pavel Malinsky <malinsky(zv)pmcom(tec)cz> - 21.8.2006 14:32:36

> -----Original Message-----
> From: delphi-l-owner(zv)clexpert(tec)cz

Ahoj,

> Narazil sem na zajimavy problem
> Potreboval bych zavrit a zrusit vsechna okna aplikace a nastavit
> promenne na nil ( Form1...x.Free , form Form1..x :=nil )

Co misto tohoto pouzit FreeAndNil(FormX) ?

PM


posilani zprav mezi programy na terminal serveru

[*] Pavel Malinsky <malinsky(zv)pmcom(tec)cz> - 21.8.2006 15:16:40

> -----Original Message-----
> From: delphi-l-owner(zv)clexpert(tec)cz

Ahoj,

> zdravim nevite nekdo jak na posilani zprav mezi programy
> ktere behaji na
> terminal serveru (v podstate je to jeden na ruznich
> pripojenich) - jedna se
> o informaci ze se neco zmenilo v databazi

Nepises jaka DB, ale na FB by se takovato informace dala poslat
z DB pres event a v aplikaci chytit.

PM



----------
Krasne fotografie, rady a inspiracie.
Pre skusenych aj zacinajucich fotografov knihy Zoner Press!
Preklady aj publikacie domacich autorov najdete na www.zonerpress(tec)cz.
Vyuzite akcne ceny!

Nstaveni promenne na nil po zruseni objektu

[*] Lebeda David <david.lebeda(zv)comarr(tec)cz> - 21.8.2006 14:46:37

> Narazil sem na zajimavy problem
> Potreboval bych zavrit a zrusit vsechna okna aplikace a nastavit
> promenne na nil ( Form1...x.Free , form Form1..x :=nil )
>
> Zrusit neni problem pres Screen.Forms[], ale nastavit promenne na nil se mi
> nepodarilo.

Moc nerozumim. Na formu1 je nekolik promennych, ktere obsahuji odkaz na
jine formy? Pokud ano, mohlo by kazde podrizene okno poslat formu 1 z
OnDestroy message, na kterou form1 zareaguje tak, ze prislusnou promennou
vyniluje. Pokud se pouzivaji pro instance globalni promenne (napr.
klasicke Form1, Form2), muze je nilovat sam ruseny form v OnDestroy.

David Lebeda

Nstaveni promenne na nil po zruseni objektu

[*] OnDraG <gebakonf(zv)centrum(tec)cz> - 21.8.2006 15:28:45

Pavel Bares napsal(a):
> Zdarvim vsechny
>
> Narazil sem na zajimavy problem
> Potreboval bych zavrit a zrusit vsechna okna aplikace a nastavit
> promenne na nil ( Form1...x.Free , form Form1..x :=nil )
>
> Zrusit neni problem pres Screen.Forms[], ale nastavit promenne na nil se
> mi nepodarilo.
>
Zkousel jsi FreeAndNIL(Form) ?
OnDraG

----------
Krasne fotografie, rady a inspiracie.
Pre skusenych aj zacinajucich fotografov knihy Zoner Press!
Preklady aj publikacie domacich autorov najdete na www.zonerpress(tec)cz.
Vyuzite akcne ceny!

Jak zjistit Handle prihlaseneho uzivatele pro pouz

[*] delphin(zv)post(tec)cz - 21.8.2006 15:34:46

> ze sluzby spoustim aktualizaci programu a nasledne opetovne spusteni
> aktualizovaneho programu pomoci CreateProcess.
> Sluzba ma povoleno pouzivat plochu.
>
> Problem je ten, ze aktualizovany program se spousti jako SYSTEM, ale ja ho
> potrebuji spustit jako prave prihlaseny uzivatel, ktereho ale neznam, ale
> vzdycky nejaky bude.
> Dival jsem se na funkci CreateProcessAsUser(), ale nevim, jak presne
> zjistit
> handle od prihlaseneho uzivatele.

Neexistuje nic takoveho jako prave prihlaseny uzivatel, prihlasenych
uzivatelu muze byt nekolik. Dale pokud ma aplikace GUI, tak to se pri
CreateProcessAsUser zpravidla nezobrazi na tom spravnem desktopu, viz Fast
User Switching a Terminal Services.
Pouzitelne reseni je aby aplikace.exe spustila aktualizace.exe jeste v
kontextu uzivatele, to bude komunikovat se sluzbou a pak znovu spusti
aplikace.exe

Nstaveni promenne na nil po zruseni objektu

[*] Pavel Malinsky <malinsky(zv)pmcom(tec)cz> - 21.8.2006 15:18:42

> -----Original Message-----
> From: delphi-l-owner(zv)clexpert(tec)cz

Ahoj,

> Narazil sem na zajimavy problem
> Potreboval bych zavrit a zrusit vsechna okna aplikace a nastavit
> promenne na nil ( Form1...x.Free , form Form1..x :=nil )

Co misto tohoto pouzit FreeAndNil(FormX) ?

PM

Compact Framework a Firebird DB

[*] Jiri Cincura <diskuze(zv)cincura(tec)net> - 21.8.2006 16:00:48

On 16.8.2006 15:32 Dalibor wrote:
> Ahoj, da se nejak z PDA pres Compact Framework 2.0 pristupovat k Firebird DB?
>
> Visual Studio .NET 2005 + PDA Acer n35
>
>

Da, ADO.NET provider by to mel umet (netestoval jsem).

--
Jiri {x2} Cincura
http://blog.vyvojar(tec)cz/jirka/ | http://www.ID3renamer.com

Nstaveni promenne na nil po zruseni objektu

[*] Pavel Bares <bares(zv)atoll(tec)cz> - 21.8.2006 15:42:47

> Pokud se pouzivaji pro instance globalni promenne (napr.
> klasicke Form1, Form2), muze je nilovat sam ruseny form v OnDestroy.

To by sice slo, ale musel bych to rucne doplnit do vsech oken

Pavel Bares

Nstaveni promenne na nil po zruseni objektu

[*] Petr Berek <sojokl(zv)seznam(tec)cz> - 21.8.2006 17:42:55

Ja to vidim, ze se musi upravit kod formularu onDestroy. Jine reseni me
nenapada, at si s tim hraju jak chci, tak to proste nejde.
Petr


Nstaveni promenne na nil po zruseni objektu

[*] Pavel Poles <delphi(zv)noni(tec)cz> - 21.8.2006 18:55:00

No to snad ne?
Timhle kodem si sice nastavis promenou na nil, ale pouze tu lokalni (F),
ostatni
promene nil nebudou. Asi to nepujde jinak, nez ze si zavolas postupne
FreeAndNil(Form1) atd., pripadne udelat nejake to OnDestroy, nebo
potomka TForm...

Pavel Poles

> To je prece uplne jedno, jak se jmenuje Tvoje promenna, ktera ukazuje na ten Formular, zda Form1 ci
> AAAForm.
> Muzes prece udelat:
> var
> F : TForm;
> i : integer;
> begin
> for i:= Screen.FormCount-1 downto 0 do
> begin
> F := Screen.Forms[i];
> FreeAndNil(F);
> end;
>
> Po tomto pak budes mit nil ve svych pormennych Form1, AAAForm atd.
> Ale toto jsem nezkousel.
> Dalsi zaludnost je v tom, ze formulare by se nemely likvidovat pomoci Free, ale pomoci Release.
>
> OnDraG
>
>
>

Nstaveni promenne na nil po zruseni objektu

[*] Pavel Bares <bares(zv)atoll(tec)cz> - 21.8.2006 19:09:02

Ano tady je prave ten problem

Tohle samozrejme pouzit nejde
FreeAndNil(Screen.Forms[i]);
nize uvedeny kod je tez nesmysl

Jedine co me napada je nejak pretypovat Screen.Forms[i].Name na promenou - ale nevim jak to provest

Pavel Bares



Pavel Poles napsal(a):

>No to snad ne?
>Timhle kodem si sice nastavis promenou na nil, ale pouze tu lokalni (F),
>ostatni
>promene nil nebudou. Asi to nepujde jinak, nez ze si zavolas postupne
>FreeAndNil(Form1) atd., pripadne udelat nejake to OnDestroy, nebo
>potomka TForm...
>
>Pavel Poles
>
>
>
>>To je prece uplne jedno, jak se jmenuje Tvoje promenna, ktera ukazuje na ten Formular, zda Form1 ci
>>AAAForm.
>>Muzes prece udelat:
>>var
>> F : TForm;
>> i : integer;
>>begin
>>for i:= Screen.FormCount-1 downto 0 do
>>begin
>> F := Screen.Forms[i];
>> FreeAndNil(F);
>>end;
>>
>>Po tomto pak budes mit nil ve svych pormennych Form1, AAAForm atd.
>>Ale toto jsem nezkousel.
>>Dalsi zaludnost je v tom, ze formulare by se nemely likvidovat pomoci Free, ale pomoci Release.
>>
>>OnDraG
>>
>>
>>
>>
>>
>>
>
>
>

Nstaveni promenne na nil po zruseni objektu

[*] Pavel Malinsky <malinsky(zv)pmcom(tec)cz> - 21.8.2006 15:22:44

> -----Original Message-----
> From: delphi-l-owner(zv)clexpert(tec)cz

Ahoj,

> Narazil sem na zajimavy problem
> Potreboval bych zavrit a zrusit vsechna okna aplikace a nastavit
> promenne na nil ( Form1...x.Free , form Form1..x :=nil )

Co misto tohoto pouzit FreeAndNil(FormX) ?

PM



----------
Krasne fotografie, rady a inspiracie.
Pre skusenych aj zacinajucich fotografov knihy Zoner Press!
Preklady aj publikacie domacich autorov najdete na www.zonerpress(tec)cz.
Vyuzite akcne ceny!

Nstaveni promenne na nil po zruseni objektu

[*] OnDraG <gebakonf(zv)centrum(tec)cz> - 21.8.2006 15:22:43

Pavel Bares napsal(a):
> Zdarvim vsechny
>
> Narazil sem na zajimavy problem
> Potreboval bych zavrit a zrusit vsechna okna aplikace a nastavit
> promenne na nil ( Form1...x.Free , form Form1..x :=nil )
>
> Zrusit neni problem pres Screen.Forms[], ale nastavit promenne na nil se
> mi nepodarilo.
>
Zkousel jsi FreeAndNIL(Form) ?
OnDraG

----------
Krasne fotografie, rady a inspiracie.
Pre skusenych aj zacinajucich fotografov knihy Zoner Press!
Preklady aj publikacie domacich autorov najdete na www.zonerpress(tec)cz.
Vyuzite akcne ceny!

Nstaveni promenne na nil po zruseni objektu

[*] Pavel Bares <bares(zv)atoll(tec)cz> - 21.8.2006 15:28:45

Zdarvim vsechny

Narazil sem na zajimavy problem
Potreboval bych zavrit a zrusit vsechna okna aplikace a nastavit
promenne na nil ( Form1...x.Free , form Form1..x :=nil )

Zrusit neni problem pres Screen.Forms[], ale nastavit promenne na nil se
mi nepodarilo.

Potrebuji to nastavit, protoze se vsude v programu pri vytvareni okna
testuje jestli je nil ( tzn. neexisuje) aby se zabranilo vytvareni vice
instanci.
Neni to bohuzel moc stastne reseni, ale opravit to je na dlouho.

dekuji za radu

Pavel Bares

----------
Krasne fotografie, rady a inspiracie.
Pre skusenych aj zacinajucich fotografov knihy Zoner Press!
Preklady aj publikacie domacich autorov najdete na www.zonerpress(tec)cz.
Vyuzite akcne ceny!

Jak zjistit Handle prihlaseneho uzivatele pro pouz

[*] little_bobes(zv)centrum(tec)cz - 21.8.2006 15:16:42

Zdravim,

ze sluzby spoustim aktualizaci programu a nasledne opetovne spusteni
aktualizovaneho programu pomoci CreateProcess.
Sluzba ma povoleno pouzivat plochu.

Problem je ten, ze aktualizovany program se spousti jako SYSTEM, ale ja ho
potrebuji spustit jako prave prihlaseny uzivatel, ktereho ale neznam, ale
vzdycky nejaky bude.
Dival jsem se na funkci CreateProcessAsUser(), ale nevim, jak presne zjistit
handle od prihlaseneho uzivatele.

Predem dekuji za pomoc

S pozdravem Bob
(D4 c/s, FB 1.5)
----------
Krasne fotografie, rady a inspiracie.
Pre skusenych aj zacinajucich fotografov knihy Zoner Press!
Preklady aj publikacie domacich autorov najdete na www.zonerpress(tec)cz.
Vyuzite akcne ceny!

Nstaveni promenne na nil po zruseni objektu

[*] Pavel Malinsky <malinsky(zv)pmcom(tec)cz> - 21.8.2006 15:16:42

> -----Original Message-----
> From: delphi-l-owner(zv)clexpert(tec)cz

Ahoj,

> Narazil sem na zajimavy problem
> Potreboval bych zavrit a zrusit vsechna okna aplikace a nastavit
> promenne na nil ( Form1...x.Free , form Form1..x :=nil )

Co misto tohoto pouzit FreeAndNil(FormX) ?

PM

posilani zprav mezi programy na terminal serveru

[*] Ladislav Fitz <ladislav.fitz(zv)kodytek(tec)cz> - 21.8.2006 15:22:43

zdravim nevite nekdo jak na posilani zprav mezi programy ktere behaji na
terminal serveru (v podstate je to jeden na ruznich pripojenich) - jedna se
o informaci ze se neco zmenilo v databazi
----------
Krasne fotografie, rady a inspiracie.
Pre skusenych aj zacinajucich fotografov knihy Zoner Press!
Preklady aj publikacie domacich autorov najdete na www.zonerpress(tec)cz.
Vyuzite akcne ceny!

Nstaveni promenne na nil po zruseni objektu

[*] OnDraG <gebakonf(zv)centrum(tec)cz> - 21.8.2006 15:22:44

Pavel Bares napsal(a):
> Zdarvim vsechny
>
> Narazil sem na zajimavy problem
> Potreboval bych zavrit a zrusit vsechna okna aplikace a nastavit
> promenne na nil ( Form1...x.Free , form Form1..x :=nil )
>
> Zrusit neni problem pres Screen.Forms[], ale nastavit promenne na nil se
> mi nepodarilo.
>
Zkousel jsi FreeAndNIL(Form) ?
OnDraG

----------
Krasne fotografie, rady a inspiracie.
Pre skusenych aj zacinajucich fotografov knihy Zoner Press!
Preklady aj publikacie domacich autorov najdete na www.zonerpress(tec)cz.
Vyuzite akcne ceny!

Nstaveni promenne na nil po zruseni objektu

[*] Pavel Malinsky <malinsky(zv)pmcom(tec)cz> - 21.8.2006 15:22:43

> -----Original Message-----
> From: delphi-l-owner(zv)clexpert(tec)cz

Ahoj,

> Narazil sem na zajimavy problem
> Potreboval bych zavrit a zrusit vsechna okna aplikace a nastavit
> promenne na nil ( Form1...x.Free , form Form1..x :=nil )

Co misto tohoto pouzit FreeAndNil(FormX) ?

PM



----------
Krasne fotografie, rady a inspiracie.
Pre skusenych aj zacinajucich fotografov knihy Zoner Press!
Preklady aj publikacie domacich autorov najdete na www.zonerpress(tec)cz.
Vyuzite akcne ceny!

posilani zprav mezi programy na terminal serveru

[*] Ladislav Fitz <ladislav.fitz(zv)kodytek(tec)cz> - 21.8.2006 15:16:41

> Nepises jaka DB

jo to sem zapomel je MSAccess ale spis by me zajimalo nejake obecne reseni -
pokud ho uz nekdo vymyslel - jedine co me napadlo tak pomocna tabulka kde se
jednotlive programy zaregistruji (IP+port) a nasledne se na posle info o
zmene
----------
Krasne fotografie, rady a inspiracie.
Pre skusenych aj zacinajucich fotografov knihy Zoner Press!
Preklady aj publikacie domacich autorov najdete na www.zonerpress(tec)cz.
Vyuzite akcne ceny!

Nstaveni promenne na nil po zruseni objektu

[*] OnDraG <gebakonf(zv)centrum(tec)cz> - 21.8.2006 15:16:41

Pavel Bares napsal(a):
> Zdarvim vsechny
>
> Narazil sem na zajimavy problem
> Potreboval bych zavrit a zrusit vsechna okna aplikace a nastavit
> promenne na nil ( Form1...x.Free , form Form1..x :=nil )
>
> Zrusit neni problem pres Screen.Forms[], ale nastavit promenne na nil se
> mi nepodarilo.
>
Zkousel jsi FreeAndNIL(Form) ?
OnDraG

----------
Krasne fotografie, rady a inspiracie.
Pre skusenych aj zacinajucich fotografov knihy Zoner Press!
Preklady aj publikacie domacich autorov najdete na www.zonerpress(tec)cz.
Vyuzite akcne ceny!

Jak zjistit Handle prihlaseneho uzivatele pro pouz

[*] little_bobes(zv)centrum(tec)cz - 21.8.2006 15:28:45

Zdravim,

ze sluzby spoustim aktualizaci programu a nasledne opetovne spusteni
aktualizovaneho programu pomoci CreateProcess.
Sluzba ma povoleno pouzivat plochu.

Problem je ten, ze aktualizovany program se spousti jako SYSTEM, ale ja ho
potrebuji spustit jako prave prihlaseny uzivatel, ktereho ale neznam, ale
vzdycky nejaky bude.
Dival jsem se na funkci CreateProcessAsUser(), ale nevim, jak presne zjistit
handle od prihlaseneho uzivatele.

Predem dekuji za pomoc

S pozdravem Bob
(D4 c/s, FB 1.5)
----------
Krasne fotografie, rady a inspiracie.
Pre skusenych aj zacinajucich fotografov knihy Zoner Press!
Preklady aj publikacie domacich autorov najdete na www.zonerpress(tec)cz.
Vyuzite akcne ceny!

Nstaveni promenne na nil po zruseni objektu

[*] delphin(zv)post(tec)cz - 21.8.2006 15:40:46

> Narazil sem na zajimavy problem
> Potreboval bych zavrit a zrusit vsechna okna aplikace a nastavit
> promenne na nil ( Form1...x.Free , form Form1..x :=nil )
>
> Zrusit neni problem pres Screen.Forms[], ale nastavit promenne na nil se
> mi nepodarilo.
>
> Potrebuji to nastavit, protoze se vsude v programu pri vytvareni okna
> testuje jestli je nil ( tzn. neexisuje) aby se zabranilo vytvareni vice
> instanci.
> Neni to bohuzel moc stastne reseni, ale opravit to je na dlouho.

1) Do OnDestroy kazdeho formulare dejte neco jako Form1:=nil
2) Pomoci Screen.Forms[] uvolnete vsechna potrebna okna.

Pokud na uvolnovani pouzivate Release, nebude to nekdy fungovat spravne.

posilani zprav mezi programy na terminal serveru

[*] Ladislav Fitz <ladislav.fitz(zv)kodytek(tec)cz> - 21.8.2006 15:16:40

zdravim nevite nekdo jak na posilani zprav mezi programy ktere behaji na
terminal serveru (v podstate je to jeden na ruznich pripojenich) - jedna se
o informaci ze se neco zmenilo v databazi
----------
Za BEZKONKURENCNI CENU 99 Kc na prvni rok ziskate nyni novou domenu INFO.
Staci provest objednavku na strankach www(tec)czechia.com.
Nevahejte akce plati pouze do 15.9.2006!

Nstaveni promenne na nil po zruseni objektu

[*] Pavel Malinsky <malinsky(zv)pmcom(tec)cz> - 21.8.2006 15:16:40

> -----Original Message-----
> From: delphi-l-owner(zv)clexpert(tec)cz

Ahoj,

> Narazil sem na zajimavy problem
> Potreboval bych zavrit a zrusit vsechna okna aplikace a nastavit
> promenne na nil ( Form1...x.Free , form Form1..x :=nil )

Co misto tohoto pouzit FreeAndNil(FormX) ?

PM

Jak zjistit Handle prihlaseneho uzivatele pro pouz

[*] little_bobes(zv)centrum(tec)cz - 21.8.2006 15:16:40

Zdravim,

ze sluzby spoustim aktualizaci programu a nasledne opetovne spusteni
aktualizovaneho programu pomoci CreateProcess.
Sluzba ma povoleno pouzivat plochu.

Problem je ten, ze aktualizovany program se spousti jako SYSTEM, ale ja ho
potrebuji spustit jako prave prihlaseny uzivatel, ktereho ale neznam, ale
vzdycky nejaky bude.
Dival jsem se na funkci CreateProcessAsUser(), ale nevim, jak presne zjistit
handle od prihlaseneho uzivatele.

Predem dekuji za pomoc

S pozdravem Bob
(D4 c/s, FB 1.5)
----------
Krasne fotografie, rady a inspiracie.
Pre skusenych aj zacinajucich fotografov knihy Zoner Press!
Preklady aj publikacie domacich autorov najdete na www.zonerpress(tec)cz.
Vyuzite akcne ceny!

Nstaveni promenne na nil po zruseni objektu

[*] OnDraG <gebakonf(zv)centrum(tec)cz> - 21.8.2006 17:26:54

delphin(zv)post(tec)cz napsal(a):
>>> Zdarvim vsechny
>>> Narazil sem na zajimavy problem
>>> Potreboval bych zavrit a zrusit vsechna okna aplikace a nastavit
>>> promenne na nil ( Form1...x.Free , form Form1..x :=nil )
>>> Zrusit neni problem pres Screen.Forms[], ale nastavit promenne na nil se
>>> mi nepodarilo.
>> Zkousel jsi FreeAndNIL(Form) ?
> Kdyz se prochazi formulare pres Screen.Forms[], tak jaxi nejsou zname
> promenne Form1, Form2, atd. a FreeAndNil tedy nepomuze.

To je prece uplne jedno, jak se jmenuje Tvoje promenna, ktera ukazuje na ten Formular, zda Form1 ci
AAAForm.
Muzes prece udelat:
var
F : TForm;
i : integer;
begin
for i:= Screen.FormCount-1 downto 0 do
begin
F := Screen.Forms[i];
FreeAndNil(F);
end;

Po tomto pak budes mit nil ve svych pormennych Form1, AAAForm atd.
Ale toto jsem nezkousel.
Dalsi zaludnost je v tom, ze formulare by se nemely likvidovat pomoci Free, ale pomoci Release.

OnDraG

posilani zprav mezi programy na terminal serveru

[*] Pavel Malinsky <malinsky(zv)pmcom(tec)cz> - 21.8.2006 15:16:41

> -----Original Message-----
> From: delphi-l-owner(zv)clexpert(tec)cz

Ahoj,

> zdravim nevite nekdo jak na posilani zprav mezi programy
> ktere behaji na
> terminal serveru (v podstate je to jeden na ruznich
> pripojenich) - jedna se
> o informaci ze se neco zmenilo v databazi

Nepises jaka DB, ale na FB by se takovato informace dala poslat
z DB pres event a v aplikaci chytit.

PM



----------
Krasne fotografie, rady a inspiracie.
Pre skusenych aj zacinajucich fotografov knihy Zoner Press!
Preklady aj publikacie domacich autorov najdete na www.zonerpress(tec)cz.
Vyuzite akcne ceny!

Nstaveni promenne na nil po zruseni objektu

[*] delphin(zv)post(tec)cz - 21.8.2006 15:42:47

>> Zdarvim vsechny
>>
>> Narazil sem na zajimavy problem
>> Potreboval bych zavrit a zrusit vsechna okna aplikace a nastavit
>> promenne na nil ( Form1...x.Free , form Form1..x :=nil )
>>
>> Zrusit neni problem pres Screen.Forms[], ale nastavit promenne na nil se
>> mi nepodarilo.
>>
> Zkousel jsi FreeAndNIL(Form) ?

Kdyz se prochazi formulare pres Screen.Forms[], tak jaxi nejsou zname
promenne Form1, Form2, atd. a FreeAndNil tedy nepomuze.

Nstaveni promenne na nil po zruseni objektu

[*] delphin(zv)post(tec)cz - 21.8.2006 19:03:01

> To je prece uplne jedno, jak se jmenuje Tvoje promenna, ktera ukazuje na
> ten Formular, zda Form1 ci
> AAAForm.
> Muzes prece udelat:
> var
> F : TForm;
> i : integer;
> begin
> for i:= Screen.FormCount-1 downto 0 do
> begin
> F := Screen.Forms[i];
> FreeAndNil(F);
> end;
>
> Po tomto pak budes mit nil ve svych pormennych Form1, AAAForm atd.

Formular se uvolni, ale na nil se nastavi tak akorat lokalni promenna F, coz
je k nicemu.

InstantObjects zkusenosti

[*] develop <develop(zv)lmss(tec)cz> - 21.8.2006 22:41:16

Mate nekdo prakticke zkusenosti viz subj.?
Vypada to celkem zajimave, trochu me desi kdyz jsem kouknul do generovane
DB. Mam pocit ze to bude mit problem s rychlosti.

Dik Jirka

OPOS ovladace

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

Puvodni zprava ze dne 21.8.2006 od Martin Burle:

> Otazka zni, zda to nakonec vsechno bude k necemu - uz je asi jiste,
> ze od 1.1.07 to platit nebude, a co bude dal? Otazka pro vestce,
> myslim.

Co to znamena "asi jiste" ? Tak bud je neco "jiste" a nebo to je
"asi", ale nevim, co to znamena "asi jiste". Co ja vim, zatim neni
jiste vubec nic, jenom se tak plka a plka.

Petr Zahradnik, pocitacovy expert

==========================================================
Petr Zahradnik, Computer Laboratory


web: http://www.clexpert(tec)cz, e-mail: clexpert(zv)clexpert(tec)cz

==========================================================


Nstaveni promenne na nil po zruseni objektu

[*] Lebeda David <david.lebeda(zv)comarr(tec)cz> - 22.8.2006 07:43:54

Jestli formulare vyhledavas pomoci Screen.Forms, tak asi nedokazes nijak
pristoupit k ostatnim odkazum na ne. Nebylo by cestou nepouzivat
Screen.Forms, ale svuj seznam formularu? Tj. to, co mas ted v jednotlivych
promennych dat treba do sveho pole? Jinak fakt nevim.

David Lebeda

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