Archív konference Delphi

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

FileStream.Seek nad 2 GB

[*] Obermaier Petr Ing. <Obermaier(zv)mail.sdas(tec)cz> - 28.1.2003 11:18:13

> Od: ing. Jan Fiala [SMTP:jan.fiala(zv)iol(tec)cz]
> 28.1.2003 Heinisch Jiri:
> > A nebude nahodou problem Win98 + velke soubory (2G)
> > Zkousel si W2000 ci XP
>=20
> A navic se systemem NTFS
>=20
Ne, je to tim overload (Origin), jak psal Petr Fejfar.
(System s diskem zformatovanym FAT32 podporuje az 4GB soubory, tedy i =
Win98.)

Ober


Posun bitmapy - out of Resources

[*] Peter Surovy <psurovy(zv)uevora.pt> - 28.1.2003 10:31:50 -0000


----- Original Message -----
From: "Obermaier Petr Ing." <Obermaier(zv)mail.sdas(tec)cz>
> Zkus nastavit property DoubleBuffered na True.
> Nebo, jestli do toho chces jit hloubeji, stahni si Delphi-DirectX headery
a udelej to pres DirectDraw.

-- s tym doublebuffered to funguje vynikajuco
dik :-)

Ale narazil som na dalsi problem
robil som iny soft cez DirectDraw robil som tam nieco
podobne a casto mi to padalo na OutOfREsources
myslel som ze je to chybou v komponente DxDraw.
Teraz robim vsetko ciste cez komponenty Delphi 5Ent
ale znova som na to narazil. Ten posun bitmapy
robim nad mapou, zvykne sa to oznacovat "pan"

Spravim 10xpan a program padne na Out of Resources.
Pocas OnMouseMove pri ktorom to robim
nebezi nic ine ibe presuvanie toho panelu z bitmapou
povodna maba je v tej chvili disabled
Tak neviem cim by to mohlo byt

Predpokladam ze problem je v grafike lebo
pri nejakom 9 "pan"e sa mi uz ani okno programu
poriadne neprekresli.:-(

PS


Posun bitmapy - out of Resources

[*] Martin Schayna <mschayna(zv)aktis(tec)cz> - 28.1.2003 11:50:47

----- Original Message -----
From: "Peter Surovy" <psurovy(zv)uevora.pt>
> Spravim 10xpan a program padne na Out of Resources.
> Pocas OnMouseMove pri ktorom to robim
> nebezi nic ine ibe presuvanie toho panelu z bitmapou
> povodna maba je v tej chvili disabled
> Tak neviem cim by to mohlo byt
>
> Predpokladam ze problem je v grafike lebo
> pri nejakom 9 "pan"e sa mi uz ani okno programu
> poriadne neprekresli.:-(

Predpokladam ze mas Win9x, zrejme vyrobene bitmapy
korektne neuvolnujes a Windows dojdou zdroje.
Podivej se jestli ti nekde nechybi Free pro objekty
ktere bitmapy alokuji (TPicture, TImage apod.).

Martin Schayna

Zoznam nainstalovanych aplikacii

[*] Robert Suska <SuskaR(zv)seznam(tec)cz> - 28.1.2003 11:56:22

Ahojte

Existuje nejaky jednoduchy sposob ako ziskat zoznam nainstalovanych apl. v
systeme a cesty ku nim ? A este jedna vec ako sa da zistit zatazenie
procesora v % ako to ma napr. Task manager? Ale potreboval by som taku
funkciu aby isla pre 9x/ME. Dakujem za nakopnutie a za napady.

S pozdravom,

Robo

************************************
Robert Suska
KORAK SLOVAKIA s.r.o.
Horna 52
974 01 Banska Bystrica
www.korak.sk robert(zv)korak.sk
Network administrator, Delphi programmer
************************************

Listview a vybrana polozka a tabulator

[*] Jiri Sedivec <jsedivec(zv)mail(tec)cz> - 28.1.2003 12:18:38

Kdyz umistnim kurzor na nejakou polozku v Listviewu, automaticky se podbarvi
(treba modre). Pokud opustim seznam (napr. pomoci tabulatoru), polozka se
odbarvi. Jak se dela to, aby se polozka po opusteni "podsedivela".

Zkousel jsem udalosti OnEnter a OnExit, ale ty nefunguji.

Diky za radu.

Jiri

Zoznam nainstalovanych aplikacii

[*] Obermaier Petr Ing. <Obermaier(zv)mail.sdas(tec)cz> - 28.1.2003 12:23:44

> Od: Robert Suska [SMTP:SuskaR(zv)seznam(tec)cz]
> Existuje nejaky jednoduchy sposob ako ziskat zoznam nainstalovanych =
apl. v
> systeme a cesty ku nim ?
>=20
Nejpohodlneji pomoci komponent JEDI-VCL, je tam na to komponenta ve =
tvaru ComboBoxu a ListBoxu. Nazvy si presne nepamatuju, tipuju =
JvInstalComboBox, JvInstalListBox.

Ober


Jak dostat aplikaci do popred�

[*] J�n Harman <harman(zv)volny(tec)cz> - 28.1.2003 12:23:54

Myslim ze by to slo
Application.BringToFront;
Zkus to.
Honza


> M�m aplikaci, kter� pos�l�m pres TCPIP hl�sen� a nev�m jak ji pri prijet�
> dostat do popred�
>
> Porad�te?
>
> Ales
>
>

Jak dostat aplikaci do popred�

[*] Danik Frantik <frantik(zv)telpro(tec)cz> - 28.1.2003 12:23:44

Application.BringToFront
(Pokud bezi v tray tak ji bejdriv vytahnout ven...)

Danik

-----Original Message-----
From: delphi-l-owner(zv)clexpert(tec)cz [mailto:delphi-l-owner(zv)clexpert(tec)cz]On
Behalf Of Ales Kerner
M�m aplikaci, kter� pos�l�m pres TCPIP hl�sen� a nev�m jak ji pri prijet�
dostat do popred�

Listview a vybrana polozka a tabulator

[*] Ondrej Kelle <O.Kelle(zv)digitalpublishing.de> - 28.1.2003 12:27:20

> Kdyz umistnim kurzor na nejakou polozku v Listviewu,
> automaticky se podbarvi
> (treba modre). Pokud opustim seznam (napr. pomoci
> tabulatoru), polozka se
> odbarvi. Jak se dela to, aby se polozka po opusteni "podsedivela".

TListView.HideSelection

HTH
TOndrej


Stazeni souboru z webu

[*] David Li�ka <konference(zv)thsoft(tec)cz> - 28.1.2003 12:28:14

Ahoj,
potreboval bych poradit, jak napsat ztazeni nejakych informaci z webu.
Konkretne kurzovni listek na adrese
http://wdb.cnb(tec)cz/CNB_TXT/KURZY.K_PROCTXT?p_date=DD.MM.RRRR

Predem diky vsem za napady.

David

Zoznam nainstalovanych aplikacii

[*] Barica Miroslav <miroslav.barica(zv)matador.sk> - 28.1.2003 12:31:12

pohrab sa v registroch v sekcii uninstall.=20

>Existuje nejaky jednoduchy sposob ako ziskat zoznam nainstalovanych
apl. v
>systeme a cesty ku nim ?=20


Delphi, Word a Word.property

[*] Milan Tome� <milan.tomes(zv)haida(tec)cz> - 28.1.2003 12:38:18

Jenze i reseni

ActiveDocument.FormFields(name).Result := "text"

ma jeden problem. A to je ten, ze nelze prenest vice jak 255 znaku. Nevite
nekdo co s tim ??? Potreboval bych vkladat relativne dlouhe texty, ale nejak
se mi to nepodarilo :((

Diky

S pozdravem

Milan Tomes
mailto:milan.tomes(zv)haida(tec)cz

> Ve Word.Application je nahradou te funkce
> ActiveDocument.FormFields(name).Result := "text" pro textova pole, dale
> ActiveDocument.FormFields(name).CheckBox.Value := True,
> FormFields(name).DropDown.Value := index
>
> Josef Cerny
>
> Chci delat najeke tiskove vystupy a je mozne, ze je bude treba pred tiskem
> ukladat a editovat.
> Chtel bych to resit pomoci sablon z Wordu.
> Ing. Jiri Sokol, js-delphi(zv)seznam(tec)cz, +420251431187

MSSQL a ROWTERMINATOR=#10

[*] Ludek ZITA <konference(zv)sales(tec)cz> - 28.1.2003 12:41:11

Zdravim.
Potrebuju pomoci MSSQL nacist do tabulky radek po radku data z textoveho
souboru.
Delam to takhle :
/* create table MBS(X varchar(8000)) */
DELETE FROM NBS
BULK INSERT NBS FROM 'C:\NBS_2003.txt' with (CODEPAGE='ACP',
MaxErrors=1000000)

To funguje ale jen na 'win soubory' Pokud je vstupni soubor (a jako ze JE)
"unixovy" cili oddelovac radku neni #13#10 ale jen #10 tak to nefunguje.

Nasel jsem si parametr ROWTERMINATOR

takze
DELETE FROM NBS
BULK INSERT NBS FROM 'C:\NBS_2003.txt' with (CODEPAGE='ACP',
MaxErrors=1000000, ROWTERMINATOR=';')
mi to rozhaze podle stredniku.

Neprisel jsem ovsem na to jak zadat ROWTERMINATOR=#10

Pres prommennou to nejde konstrukce ROWTERMINATOR=(zv)PROMENNA je nefunkcni
Ani ROWTERMINATOR=0x0A a pod neprojdou

Jak 100hoven ?

Diky Ludek

Listview a vybrana polozka a tabulator

[*] StuPe - 28.1.2003 13:09:38

No a pak taky muzes kreslit na TListView(Sender).Canvas ale to, kdyby =
jsi byl moc n=E1rocn=FD ...

StuPe http://stupe.jinde(tec)cz


----- Puvodn=ED zpr=E1va -----=20
Od: "Ondrej Kelle" <O.Kelle(zv)digitalpublishing.de>
Komu: <delphi-l(zv)clexpert(tec)cz>
Odesl=E1no: 28. ledna 2003 12:27
Predmet: RE: Listview a vybrana polozka a tabulator


> > Kdyz umistnim kurzor na nejakou polozku v Listviewu,=20
> > automaticky se podbarvi
> > (treba modre). Pokud opustim seznam (napr. pomoci=20
> > tabulatoru), polozka se
> > odbarvi. Jak se dela to, aby se polozka po opusteni "podsedivela".
>=20
> TListView.HideSelection
>=20
> HTH
> TOndrej
>=20
>=20
>=20

FB/IB, JOIN se SELECTEM, ne s tabulkou

[*] Sedlak Zdenek <konf(zv)seus(tec)cz> - 28.1.2003 13:19:25

Ahoj,

prevadime aplikaci z MS Access na FB/IB.
V accessu pouzivame sql konstrukce typu:

-------------
select t1.id_table1, t1.pole, t2.pole2
from (d_table1 t1
JOIN
(
SELECT id_table2 FROM d_table2
) t2 ON (t1.id_table1=t2.id_table2)
--------------

Priklad je velmi zjednoduseny. V tom vnorenem selectu pouzivame scitani
zaznamu a groupovani.
Na accessu to normalne bezi, ale na IB/FB nelze dotaz vyhodnotit - hlaska
"Invalid token" na ten SELECT za JOIN.
Vim, ze to jde "obejit" pomoci definovani view a pak pouzit JOIN
"nase_view". Ovsem vzhledem k mnozstvi zaznamu, by to mohlo byt pomale.

Prosim, poradte, co delame spatne?

Diky
Zdenek

FB/IB, JOIN se SELECTEM, ne s tabulkou

[*] Karel Rys <delphi(zv)zas-me(tec)cz> - 28.1.2003 13:31:47

Sedlak Zdenek dne 28 Jan 2003 v 13:19:

> Ahoj,
>
> prevadime aplikaci z MS Access na FB/IB.
> V accessu pouzivame sql konstrukce typu:
>
> -------------
> select t1.id_table1, t1.pole, t2.pole2
> from (d_table1 t1
> JOIN
> (
> SELECT id_table2 FROM d_table2
> ) t2 ON (t1.id_table1=t2.id_table2)
> --------------

Ahoj,

jen je trosku jina syntaxe:

SELECT
t1.id_table1,
t1.pole,
t2.pole2
FROM d_table1 t1
LEFT OUTER JOIN id_table2 t2 on (t2.id_table2=t1.id_table1)

Viz dokumentace.

Karel Rys

FB/IB, JOIN se SELECTEM, ne s tabulkou

[*] KALUS Jozef <jozef.kalus(zv)spordat.sk> - 28.1.2003 13:32:00

nemyslim si, ze by to cez to view bolo pomalsie, robi to predsa to iste
t.j.:

1. naskor vnoreny select (ten isty select robi aj pri view)
2. JOIN

z pohladu DB by to malo byt to iste, vzdy si naskor nachysta 1 a potom
robi 2...

co sa tyka ACCESS, to SQL je tam zvlastne implementovane... ja mam skor
opacne skusenosti v ORACLE SQL v pohode a ACCESS si s tym nevedel
poradit ani syntakticky... ziadne specialitky ORACLE, len zlozitejsie
SQL.

joka

-----Original Message-----
From: Sedlak Zdenek [mailto:konf(zv)seus(tec)cz]
Sent: Tuesday, January 28, 2003 1:19 PM
To: Delphi
Subject: FB/IB, JOIN se SELECTEM, ne s tabulkou


Ahoj,

prevadime aplikaci z MS Access na FB/IB.
V accessu pouzivame sql konstrukce typu:

-------------
select t1.id_table1, t1.pole, t2.pole2
from (d_table1 t1
JOIN
(
SELECT id_table2 FROM d_table2
) t2 ON (t1.id_table1=t2.id_table2)
--------------

Zoznam nainstalovanych aplikacii

[*] Tvrz Miroslav <Miroslav.Tvrz(zv)merlin(tec)cz> - 28.1.2003 13:37:21

do uses pridej "Registry", na form dej ListBox a Button a do udalosti
OnClick tlacitka dej:
procedure TForm1.Button1Click(Sender: TObject);
const
REGKEYAPPS = '\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall';
var
Reg : TRegistry;
List1: TStringList;
List2: TStringList;
i, n : Integer;
begin
Reg := TRegistry.Create;
List1 := TStringList.Create;
List2 := TStringList.Create;

// nacteni vsech podklicu
With Reg do
begin
RootKey := HKEY_LOCAL_MACHINE;
OpenKey(REGKEYAPPS, False);
GetKeyNames(List1);
end;

// nacteni vsech jmen vsech hodnot
for i := 0 to List1.Count -1 do
begin
Reg.OpenKey(REGKEYAPPS + '' + List1.Strings[i], False);
Reg.GetValueNames(List2);

// zobrazime pouze pokud 'DisplayName'
n := List2.IndexOf('DisplayName');

if (n <> -1) and (List2.IndexOf('UninstallString') <> -1) then
begin
ListBox1.Items.Add((reg.ReadString(List2.Strings[n])));
end;
end;

List.Free;
List2.Free;
reg.CloseKey;
Reg.Destroy;
end;


MI'RA

-----Original Message-----
From: Robert Suska [mailto:SuskaR(zv)seznam(tec)cz]
Sent: Tuesday, January 28, 2003 11:56 AM
To: delphi-l(zv)clexpert(tec)cz
Subject: Zoznam nainstalovanych aplikacii


Ahojte

Existuje nejaky jednoduchy sposob ako ziskat zoznam nainstalovanych apl. v
systeme a cesty ku nim ? A este jedna vec ako sa da zistit zatazenie
procesora v % ako to ma napr. Task manager? Ale potreboval by som taku
funkciu aby isla pre 9x/ME. Dakujem za nakopnutie a za napady.

S pozdravom,

Robo

************************************
Robert Suska
KORAK SLOVAKIA s.r.o.
Horna 52
974 01 Banska Bystrica
www.korak.sk robert(zv)korak.sk
Network administrator, Delphi programmer
************************************

Vytvorenie databazy cez ADO

[*] K�tele� J�n <Koteles(zv)lumen.sk> - 28.1.2003 13:41:26

Dobry den,

prosim Vas ako vytvorim databazu (konkretne vo formate DBASE4) pomocou ADO
componentov?

Zacal som to robit cez TADOTable.FieldDefs.Add, ale co dalej? Chyba mi
CreateTable, ktore je v BDEckovom TTable...

Stazeni souboru z webu

[*] Petr Langer <langer(zv)xdom(tec)cz> - 28.1.2003 13:45:56

Pomoci jakehokoliv http klienta. Kazda sada komponent pro TCP/IP komunikaci
to ma - Synapse, Indy, ICS, Internet Prof.
U kazde najdes i spoustu prikladu.

HTH
Petr Langer

----- Original Message -----
From: "David Li�ka" <konference(zv)thsoft(tec)cz>
To: <delphi-l(zv)clexpert(tec)cz>
Sent: Tuesday, January 28, 2003 12:28 PM
Subject: Stazeni souboru z webu


> Ahoj,
> potreboval bych poradit, jak napsat ztazeni nejakych informaci z webu.
> Konkretne kurzovni listek na adrese
> http://wdb.cnb(tec)cz/CNB_TXT/KURZY.K_PROCTXT?p_date=DD.MM.RRRR
>
> Predem diky vsem za napady.
>
> David
>
>
>

Stazeni souboru z webu

[*] ing. Jan Fiala <jan.fiala(zv)iol(tec)cz> - 28.1.2003 13:50:21

Zkus SYNAPSE, unita HTTPSend

Viz demo HTTPDemo

--=20
Jan Fiala
mailto:jan.fiala(zv)iol(tec)cz

28.1.2003 David Li=B9ka:
> Ahoj,
> potreboval bych poradit, jak napsat ztazeni nejakych informaci z webu.
> Konkretne kurzovni listek na adrese
> http://wdb.cnb(tec)cz/CNB_TXT/KURZY.K_PROCTXT?p_date=3DDD.MM.RRRR

MSSQL a ROWTERMINATOR=#10

[*] KALUS Jozef <jozef.kalus(zv)spordat.sk> - 28.1.2003 13:52:34

chr(10) nefunguje ?

joka

-----Original Message-----
From: Ludek ZITA [mailto:konference(zv)sales(tec)cz]
Sent: Tuesday, January 28, 2003 12:41 PM
To: delphi-l(zv)clexpert(tec)cz
Subject: MSSQL a ROWTERMINATOR=#10


Zdravim.
Potrebuju pomoci MSSQL nacist do tabulky radek po radku data z textoveho
souboru.
Delam to takhle :
/* create table MBS(X varchar(8000)) */
DELETE FROM NBS
BULK INSERT NBS FROM 'C:\NBS_2003.txt' with (CODEPAGE='ACP',
MaxErrors=1000000)

To funguje ale jen na 'win soubory' Pokud je vstupni soubor (a jako ze
JE)
"unixovy" cili oddelovac radku neni #13#10 ale jen #10 tak to nefunguje.

Nasel jsem si parametr ROWTERMINATOR

takze
DELETE FROM NBS
BULK INSERT NBS FROM 'C:\NBS_2003.txt' with (CODEPAGE='ACP',
MaxErrors=1000000, ROWTERMINATOR=';')
mi to rozhaze podle stredniku.

Neprisel jsem ovsem na to jak zadat ROWTERMINATOR=#10

Pres prommennou to nejde konstrukce ROWTERMINATOR=(zv)PROMENNA je
nefunkcni
Ani ROWTERMINATOR=0x0A a pod neprojdou

Jak 100hoven ?

Diky Ludek



__________ Informacia od NOD32 1.352 (20030127) __________

Tato sprava bola preverena systemom NOD32 pre Exchange.
http://www.eset.sk


MSSQL a ROWTERMINATOR=#10

[*] Radim Hampel <hampel(zv)ecommerce(tec)cz> - 28.1.2003 13:54:49

> From: Ludek ZITA Sent: Tuesday, January 28, 2003 12:41 PM

> Potrebuju pomoci MSSQL nacist do tabulky radek po radku data=20
> z textoveho souboru. Delam to takhle :
> /* create table MBS(X varchar(8000)) */
> DELETE FROM NBS
> BULK INSERT NBS FROM 'C:\NBS_2003.txt' with (CODEPAGE=3D'ACP',
> MaxErrors=3D1000000)

Ahoj, ty znaky muzes zadat taky jako rowterminator=3D'\n',
vyzkousej kombinace \r\n a podobne, tabelator je \t

Radim


OT: Wireless KB

[*] Jiri Foldyna <jiri.f(zv)avizo(tec)cz> - 28.1.2003 13:56:43

Ahoj,

chci si koupit bezdratovou klavesnici. Nemate nekdo osvedceny tip ? =
Problem je v tom, ze jsem docela zpovykany (momentalne pisi ma =
klavesnici od Compaqu, co prisla se serverem a jsem s ni absolutne =
spokojeny - taktilne perfektni, robustni, tlacitka tam, kde maji byt - =
zadny Sleep tam, kde je normalne PageUp :-)). Bohuzel je dratova. S =
myskou jsem taky mimoradne spokojen - Logitech Cordless Optical Mouse - =
opticka, dost velka, dve tlacitka a rolovaci kolecko, nic vic nechci. O =
vikendu jsem zkousel Genius Wireless Twintouch Optical, ale neni to ono. =
Klavesnici bych snad prekousl, ale mys se dvema tlacitkama pod palcem =
jsem nerozchodil. Logitech Cordless Desktop Optical ma na mysi taky cele =
hejno tlacitek...
Diky za pripadne tipy.

Zdravim

Jiri Foldyna
mailto:jiri.f(zv)avizo(tec)cz=20

Vy(press)Chat (UDP, zachytavanie sprav)

[*] Vlko II. <vlko(zv)zilina(tec)net> - 28.1.2003 14:00:26

Spravil som taky prijemny program na komunikovanie pomocou standardneho
windows messenger, ktory
sa u nas na internatnej sieti pouziva na komunikaciu (musi ho mat kazdy,
lebo mu to vypisuje popup okna:).
Nebol to moj napad, ale tak nejako sa jeho pouzivanie vyvrbilo, ale k mojmu
problemu:

Potreboval by som komunikovat s programom Vy(press)Chat, ktory komunikuje
pomocou UDP paketov na porte 8167, pomocou komponenty TNMUDP (FastNet) to
ide, ale zachytava len komunikaciu, ktora obstarava
take veci ako je zabezpecovanie nickov, kanaly a pod (mam zdrojaky z
linuxu, tak priblizne viem co tam prebieha), no ale ak niekto posle text,
tak ten uz nezachyti, nerobil niekto s tymto? Nevedel by mi poradit, ako sa
posiela ten
text, alebo robim nieco ja blbo?

S pozdravom
Vlko

--------------
vlko_(zv)pobox.sk

MSSQL a ROWTERMINATOR=#10

[*] Ludek ZITA <konference(zv)sales(tec)cz> - 28.1.2003 14:02:04


----- Original Message -----
From: "KALUS Jozef" <jozef.kalus(zv)spordat.sk>> chr(10) nefunguje ?

Bohuzel ne.

Ludek

MSSQL a ROWTERMINATOR=#10

[*] Petr Langer <langer(zv)xdom(tec)cz> - 28.1.2003 14:07:26


BULK INSERT NBS FROM 'C:\NBS_2003.txt' with (CODEPAGE='ACP',
MaxErrors=1000000, ROWTERMINATOR=CHAR(10))

nefunguje ?

Petr

----- Original Message -----
From: "Ludek ZITA" <konference(zv)sales(tec)cz>
To: <delphi-l(zv)clexpert(tec)cz>
Sent: Tuesday, January 28, 2003 12:41 PM
Subject: MSSQL a ROWTERMINATOR=#10


> Zdravim.
> Potrebuju pomoci MSSQL nacist do tabulky radek po radku data z textoveho
> souboru.
> Delam to takhle :
> /* create table MBS(X varchar(8000)) */
> DELETE FROM NBS
> BULK INSERT NBS FROM 'C:\NBS_2003.txt' with (CODEPAGE='ACP',
> MaxErrors=1000000)
>
> To funguje ale jen na 'win soubory' Pokud je vstupni soubor (a jako ze JE)
> "unixovy" cili oddelovac radku neni #13#10 ale jen #10 tak to nefunguje.
>
> Nasel jsem si parametr ROWTERMINATOR
>
> takze
> DELETE FROM NBS
> BULK INSERT NBS FROM 'C:\NBS_2003.txt' with (CODEPAGE='ACP',
> MaxErrors=1000000, ROWTERMINATOR=';')
> mi to rozhaze podle stredniku.
>
> Neprisel jsem ovsem na to jak zadat ROWTERMINATOR=#10
>
> Pres prommennou to nejde konstrukce ROWTERMINATOR=(zv)PROMENNA je nefunkcni
> Ani ROWTERMINATOR=0x0A a pod neprojdou
>
> Jak 100hoven ?
>
> Diky Ludek
>
>
>
>
>

MSSQL a ROWTERMINATOR=#10

[*] Z�le��k Tom� - 28.1.2003 14:16:13

> Potrebuju pomoci MSSQL nacist do tabulky radek po radku data=20
> z textoveho souboru.
> Delam to takhle :
> /* create table MBS(X varchar(8000)) */
> DELETE FROM NBS
> BULK INSERT NBS FROM 'C:\NBS_2003.txt' with (CODEPAGE=3D'ACP',
> MaxErrors=3D1000000)
>=20
> To funguje ale jen na 'win soubory' Pokud je vstupni soubor=20
> (a jako ze JE)
> "unixovy" cili oddelovac radku neni #13#10 ale jen #10 tak to=20
> nefunguje.
>=20
> Nasel jsem si parametr ROWTERMINATOR
>=20
> takze
> DELETE FROM NBS
> BULK INSERT NBS FROM 'C:\NBS_2003.txt' with (CODEPAGE=3D'ACP',
> MaxErrors=3D1000000, ROWTERMINATOR=3D';')
> mi to rozhaze podle stredniku.
>=20
> Neprisel jsem ovsem na to jak zadat ROWTERMINATOR=3D#10
>=20
> Pres prommennou to nejde konstrukce ROWTERMINATOR=3D(zv)PROMENNA =20
> je nefunkcni
> Ani ROWTERMINATOR=3D0x0A a pod neprojdou

DECLARE (zv)c10 CHAR(1)
SET (zv)c10=3DCHAR(10)
BULK INSERT NBS FROM 'C:\NBS_2003.txt' with =
(CODEPAGE=3D'ACP',MaxErrors=3D1000000, ROWTERMINATOR=3D(zv)c10)

Tomas Zalesak


Vytvorenie databazy cez ADO

[*] Lstiburek Pavel <Lstiburek(zv)ceb(tec)cz> - 28.1.2003 14:20:15

Jednodusi bude mozna, vytvorit pomoci SQL ( TADOQuery)
CREATE TABLE "C:\Program files\Borland\Delphi5\Projects\XX__XX.dbf"
(castka numeric(10,2), datum date)

s DBASE jsem to nezkousel, ale FoxPro takhle urcite pracuje (pres ODBC).

Pavel


> -----Original Message-----
> From: K=F6tele=B9 J=E1n [mailto:Koteles(zv)lumen.sk]
> Sent: Tuesday, January 28, 2003 1:41 PM
> To: 'delphi-l(zv)clexpert(tec)cz'
> Subject: Vytvorenie databazy cez ADO
>=20
>=20
> Dobry den,
>=20
> prosim Vas ako vytvorim databazu (konkretne vo formate=20
> DBASE4) pomocou ADO
> componentov?
>=20
> Zacal som to robit cez TADOTable.FieldDefs.Add, ale co dalej? Chyba mi
> CreateTable, ktore je v BDEckovom TTable...
>=20

Komunikace pres IR port

[*] Michal Kraus <delphi(zv)wige-mic(tec)cz> - 28.1.2003 14:23:01

Zdravim,

nevite nahodou nekdo jak z windows 2000 komunikovat pres IR port.
Konkretne mam sadu AT prikazu pro nokii ale bohuzel se s ni spojim jen
z originalnich nokia programu.

Z delphi jsem pouzil substituci COM portu ale njak to nefunguje.

Diky.


---
Odchoz=ED zpr=E1va neobsahuje viry.
Zkontrolov=E1no antivirov=FDm syst=E9mem AVG (http://www.grisoft(tec)cz).
Verze: 6.0.445 / Virov=E1 b=E1ze: 250 - datum vyd=E1n=ED: 21.1.2003

MSSQL a ROWTERMINATOR=#10

[*] Z�le��k Tom� - 28.1.2003 14:30:33

> DECLARE (zv)c10 CHAR(1)
> SET (zv)c10=3DCHAR(10)
> BULK INSERT NBS FROM 'C:\NBS_2003.txt' with=20
> (CODEPAGE=3D'ACP',MaxErrors=3D1000000, ROWTERMINATOR=3D(zv)c10)

Je to jinak:

BULK INSERT NBS FROM 'C:\NBS_2003.txt' with
(CODEPAGE=3D'ACP',MaxErrors=3D1000000, ROWTERMINATOR=3D'0x0A')

funguje jen na MSSQL2000 / MSDE2000.

viz:
http://groups.google.com/groups?hl=3Dcs&lr=3D&ie=3DUTF-8&oe=3DUTF-8&threa=
dm=3DIPta0OzhBHA.2044%40cpmsftngxa07&rnum=3D4

Tomas Zalesak


Komunikace pres IR port

[*] Peter Surovy <psurovy(zv)uevora.pt> - 28.1.2003 13:35:16 -0000

Ahoj

zozen si komponenty VarianAsync32
ale su free len bez zdrojakov :-(

PS
----- Original Message -----
From: "Michal Kraus" <delphi(zv)wige-mic(tec)cz>
Sent: Tuesday, January 28, 2003 1:23 PM
> nevite nahodou nekdo jak z windows 2000 komunikovat pres IR port.

Komunikace pres IR port

[*] Lukas Gebauer <gebylist(zv)mlp(tec)cz> - 28.1.2003 14:36:14

Existuje druh socketu pro Winsock, ktery reprezentuje IR port. Mozna
ze ty Nokiacke programy tam lezou pres tohle...

> nevite nahodou nekdo jak z windows 2000 komunikovat pres IR port.
> Konkretne mam sadu AT prikazu pro nokii ale bohuzel se s ni spojim jen
> z originalnich nokia programu.
>
> Z delphi jsem pouzil substituci COM portu ale njak to nefunguje.


-- Lukas Gebauer.

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

MSSQL a ROWTERMINATOR=#10

[*] Ludek ZITA <konference(zv)sales(tec)cz> - 28.1.2003 14:37:40


----- Original Message -----
From: "Radim Hampel" <hampel(zv)ecommerce(tec)cz>
Ahoj, ty znaky muzes zadat taky jako rowterminator='\n',
vyzkousej kombinace \r\n a podobne, tabelator je \t

Ahoj.
Zkusil jesme \a az \z a nic nezabralo.
Proste #10 nedokazu zadat jako stringovou konstantu.

Radim

MSSQL a ROWTERMINATOR=#10

[*] Ludek ZITA <konference(zv)sales(tec)cz> - 28.1.2003 14:46:34


----- Original Message -----
From: "Z�le��k Tom�" <tomas.zalesak(zv)lcs(tec)cz>

Je to jinak:

BULK INSERT NBS FROM 'C:\NBS_2003.txt' with
(CODEPAGE='ACP',MaxErrors=1000000, ROWTERMINATOR='0x0A')

funguje jen na MSSQL2000 / MSDE2000.
****************

Diky je to ONO!!!

Jinak (mozna pro ty kteri nemaji MSSQL2000) mne jeste napadlo to obejit
takhle :

declare (zv)sql varchar(8000)
select (zv)sql='BULK INSERT NBS FROM ''C:\NBS_2003.txt'' with
(CODEPAGE=''ACP'', MaxErrors=1000000, ROWTERMINATOR='''+NCHAR(10)+''')'
execute ((zv)sql)

To taky funguje.

Ludek
a jete jednou DIKY

Delphi problem

[*] Vymazal Milan <vymazal.milan(zv)seznam(tec)cz> - 28.1.2003 17:30:47

Zdravim konferenci

mam takovy zvlastni a docela vazny dotaz. Pred casem jsem nasel na
jedno serveru dosti dobre zdrojaky ISAPI fitleru ktery v IIS menil
posilana data v GET, POST. A jak uz to byva nekde jsem to stratil..

A nasel jsem to nas serveru ktery byl ve stylu Delphi3000 nebo tak
nejak a byl tam omezen pristup k jednotlivim kategoriim az po
zaplaceni .. registrovanej user si mohl zadarmo prohlednout 15
zdrojaku. Nevideli jste nekdo po ceste takovy server ?


--
Best regards,

Milan Vymazal
Delphi 7 Enterprise, Windows 2000 SP3 Proff, IE 6.0sp1 with all sp

Delphi problem

[*] Vymazal Milan <vymazal.milan(zv)seznam(tec)cz> - 28.1.2003 17:41:14

Cau Vymazal,

Tuesday, January 28, 2003, 5:30:47 PM, you wrote:

> Zdravim konferenci

> mam takovy zvlastni a docela vazny dotaz. Pred casem jsem nasel na
> jedno serveru dosti dobre zdrojaky ISAPI fitleru ktery v IIS menil
> posilana data v GET, POST. A jak uz to byva nekde jsem to stratil..

> A nasel jsem to nas serveru ktery byl ve stylu Delphi3000 nebo tak
> nejak a byl tam omezen pristup k jednotlivim kategoriim az po
> zaplaceni .. registrovanej user si mohl zadarmo prohlednout 15
> zdrojaku. Nevideli jste nekdo po ceste takovy server ?

NO nebudu vas zatezovat uz jsem to nasel je to v sekci internet/web na
www.delphi3000.com. jo blbe vidim..

S pozdravem

Milan Vymazal
Delphi 7 Enterprise, Windows 2000 SP3 Proff, IE 6.0sp1 with all sp

QuickReport a agregacni funkce

[*] Sedlak Zdenek <konf(zv)seus(tec)cz> - 28.1.2003 17:48:26

Ahoj,

resim zvlastni problem v quickreportu.

mam dotaz vracejici tabulku s jednoduchou strukturou typu. Mam v ni sloupce
skupina nazev pocet delka mnozstvi jednotky. Pouzivam vyslednou sestavu
grupovanou podle "skupina" a razenou podle "skupina", "nazev".
Pokud pouziju tabulku ve ktere mam jen takto definovane sloupce a na ni
udelam select s vyjmenovanim sloupcu tak je sestava vporadku.

Ovsem ja potrebuju udelat select pres nekolik tabulek, ktery uz sam o sobe
je groupovanej a pouziva COUNT a SUM. Dotaz mam odladeny a vraci mi zaznamy
v uplne stejne strukture. Ale pak na sestave funguje po agregovani (po
skupine i na konci) jen na SUM(pocet) a ne na SUM(mnozstvi). Nevim cim to
je! Pokud si zaznamy z tohoto dotazu zapisu do pomocne tabulky o stejne
strukture a z ni pak zobrazuji na sestavu, tak je to v pohode.

Nevim jestli v tom hraje roli, co jsem vypozoroval (ale vypada to ze ano).
Tak tedy v tom slozitejsim dotazu pouzivam SUM i COUNT a na sloupce, ktere
mam zjistene jako COUNT potom lze pouzit take v sestave SUM (AVERAGE...) za
skupinu. Ale na sloupce ktere mam vracene jako SUM, potom nelze pouzit v
sestave SUM..., tedy jde ale nic to nezobrazi!

Shrnuti :)
Mozna to vypada slozite, ale jde o to ze nejakym dotazem ziskam zaznamy o
nekolika sloupcich. Pokud chci tento dotaz zobrazit na sestave QuickReport a
groupovat a scitat za grupy, tak mam problem. Ale pokud si vracene zaznamy
vlozim do jednoduche tabulky a na ni pak udelam dotaz (i s uvedenim
sloupcu), ktery mi vrati stejne vysledky!!! tak mi ty soucty za skupiny
fungujou.

Prosim, v cem delam chybu? (uz to zkoumam druhy den).
Nesetkal se s tim nekdo?

Jeste prostredi: Delphi 6 Pro (update 2, IBX 6.05, update pro QRep 3,51),
databaze IB/FB, pristup pres IBExpress.

dekuji za jakoukoli radu.

Zdenek

jeste jen mala ukazka pozadovane sestavy:

-----------
Skupina: INTERNI
xxxnazev 12 20 11 kg
yyynazev 16 22 15 kg
zzznazev 10 10 13 kg
Celkem 38 52

Skupina: TUZEMSKY
xxxnazev 13 15 10 kg
yyynazev 15 20 16 kg
Celkem 28 35

Celkem za vsechny 66 87
---------


ComboBox a OnChange

[*] �velta Jaroslav <jsvelta(zv)ciglersw.sk> - 28.1.2003 17:49:45

Mam otazoku ohladom ComboBoxu.
Ak urobim nieco taketo: ComboBox.ItemIndex :=3D 2;
Malo by to vyvolat OnChange???
Nerobi mi to a preto chcem vediet, ci to tak ma byt, alebo mam hladat =
chybu...
Dakujem

Jaroslav =A9velta
Program=E1tor
-----------------------------------
C=CDGLER SOFTWARE Slovakia, a.s.
Slia=E8ska 10, 831 02 Bratislava, SK
-----------------------------------


---
Odch=E1dzaj=FAca spr=E1va neobsahuje v=EDrusy.
Skontrolovan=E9 antiv=EDrusov=FDm syst=E9mom AVG =
(http://www.grisoft(tec)cz).
Verzia: 6.0.445 / V=EDrusov=E1 datab=E1za: 250 - d=E1tum vydania: 21. 1. =
2003
=20


FB/IB, JOIN se SELECTEM, ne s tabulkou

[*] Sedlak Zdenek <konf(zv)seus(tec)cz> - 28.1.2003 17:58:05

Diky,
o tomto zpusobu zapisu vim.
Tu ukazku jsem pouzil jen jako jednoduchy priklad. Ve skutecnosti je ten
select za JOIN slozitejsi, je pres nekolik tabulek a jeste se v nem provadu
grupovani a vramci jeho agregace SUM a COUNT na nejake sloupce. Proto
potrebuju za JOIN SELECT a ne jen pripojit tabulku. (Ta pripojovana data
vlastne nejsou tabulka, ale ten vyhodnocenej slozitejsi dotaz).

diky
zdenek

----- Original Message -----
From: "Karel Rys" <delphi(zv)zas-me(tec)cz>
To: <delphi-l(zv)clexpert(tec)cz>
Sent: Tuesday, January 28, 2003 1:31 PM
Subject: Re: FB/IB, JOIN se SELECTEM, ne s tabulkou


> Sedlak Zdenek dne 28 Jan 2003 v 13:19:
>
> > Ahoj,
> >
> > prevadime aplikaci z MS Access na FB/IB.
> > V accessu pouzivame sql konstrukce typu:
> >
> > -------------
> > select t1.id_table1, t1.pole, t2.pole2
> > from (d_table1 t1
> > JOIN
> > (
> > SELECT id_table2 FROM d_table2
> > ) t2 ON (t1.id_table1=t2.id_table2)
> > --------------
>
> Ahoj,
>
> jen je trosku jina syntaxe:
>
> SELECT
> t1.id_table1,
> t1.pole,
> t2.pole2
> FROM d_table1 t1
> LEFT OUTER JOIN id_table2 t2 on (t2.id_table2=t1.id_table1)
>
> Viz dokumentace.
>
> Karel Rys
>
>
>

ComboBox a OnChange

[*] J�n Harman <harman(zv)volny(tec)cz> - 28.1.2003 18:31:16

Kdyby ses podival do helpu, tak bys vedel ze to "nerobi".
J=E1n Harman, Brno, harman(zv)volny(tec)cz

Mam otazoku ohladom ComboBoxu.
Ak urobim nieco taketo: ComboBox.ItemIndex :=3D 2;
Malo by to vyvolat OnChange???
Nerobi mi to a preto chcem vediet, ci to tak ma byt, alebo mam hladat
chybu...
Dakujem

Jaroslav =A9velta
Program=E1tor
-----------------------------------
C=CDGLER SOFTWARE Slovakia, a.s.
Slia=E8ska 10, 831 02 Bratislava, SK
-----------------------------------


---
Odch=E1dzaj=FAca spr=E1va neobsahuje v=EDrusy.
Skontrolovan=E9 antiv=EDrusov=FDm syst=E9mom AVG (http://www.grisoft(tec)cz).
Verzia: 6.0.445 / V=EDrusov=E1 datab=E1za: 250 - d=E1tum vydania: 21. 1. =
2003


posun formu

[*] Petr Ma��k <rtepema(zv)mbox.vol(tec)cz> - 28.1.2003 19:40:32

U=BE to funguje, perfect
Petr M.

----- Original Message -----

>From: "=A9tuPe" <stupe(zv)list.jinde(tec)cz>
>Subject: Re: posun formu


Se=B9 zv=ED=F8e:), ale lep=B9=ED to bude p=F8es odchyt=E1v=E1n=ED zpr=E1v=
y formul=E1=F8i p=F8i WM_MOVE

Posledni vlozene ID

[*] Jaroslav =?iso-8859-2?Q?=D8ezn=EDk?= <jreznik(zv)teaz(tec)cz> - an 2003 19:44:16

Zdravim,
pouzivam v delphi SQL dotazu na FB server a potreboval bych po INSERTu
zjistit ID ( ID je PRIMARY KEY a autoincrementem pres generator a
trigger ) prave vlozeneho zaznamu, ale v datasetu je pak vzdy jen 0 a az
po refreshi se vrati z db aktualni ID, ale to jiz nejsem na te polozce?
Je nejake elegantni reseni jak to zjistit? K pristupu pouzivam ZEOS dbo.

Diky
Rezza

Posledni vlozene ID

[*] Ales Radikovsky <radik(zv)allstar(tec)cz> - 28.1.2003 19:52:14

Ja to delam tak, ze si nechavam pridelit cislo generatorem do programu a
to pak insertim do databaze a triggerem hlidam, jestli nahodou
neinsertim null

CREATE TRIGGER set_firma_id FOR firma
BEFORE INSERT AS
BEGIN
IF ( new.firma_id IS NULL ) THEN
new.firma_id =3D gen_id ( g_firma, 1);
END !!

CREATE PROCEDURE get_firma_id ( prirustek INTEGER )=20
RETURNS ( cislo INTEGER ) AS
BEGIN
cislo =3D gen_id ( g_firma, :prirustek );
EXIT;
END !!

Muzou tak sice vznikat diry v rade id-cek, ale tomu se stejna asi uplne
zabranit neda....

Ales

> pouzivam v delphi SQL dotazu na FB server a potreboval bych=20
> po INSERTu
> zjistit ID ( ID je PRIMARY KEY a autoincrementem pres generator a
> trigger ) prave vlozeneho zaznamu, ale v datasetu je pak vzdy=20
> jen 0 a az
> po refreshi se vrati z db aktualni ID, ale to jiz nejsem na=20
> te polozce?
> Je nejake elegantni reseni jak to zjistit? K pristupu=20
> pouzivam ZEOS dbo.

Neviditelna aplikace na W2000

[*] Straka Josef <strakajosef(zv)quick(tec)cz> - 28.1.2003 21:39:29

Prijemny den,
chtel bych udelat neviditelnou aplikaci. Nasel jsem komponentu Stealth, ale
ta nechodi na NT, jak je v ni uvedeno. Proto nevim, jak se aplikace zbavit
ve spravci uloh. Tedy krome toho, ze aplikaci pojmenuju tak, ze se bude
tvarit jako tuctova systemova aplikace, o ktere neni na W200 a XP nouze.

Diky.
Straka Josef
e-mail: strakajosef(zv)quick(tec)cz
www: http://strakaj.zde(tec)cz

WaitForSingleObject vs Sleep

[*] kevin33(zv)post(tec)cz - 28.1.2003 21:57:13

zdravim,

rad bych se zeptal jaky je rozdil mezi sleep( 10000 ); a
WaitForSingleObject( GetCurrentProcess, 10000 ); a co je
vhodnejsi k pouziti ?

resim totiz tcp/ip komunikaci a sice vec takovou: klient posle
pozadavek a do 10 sekund se ze serveru musi vratit odpoved. takze
sem si rikal ze odeslu pozadavek na server a pak 10 sec pockam a
pak si ze socketu poslu to co prislo (muze to byt odpoved +
nejake veci ktere posila server sam od sebe). jedine co me trapi
je jak cekat tech 10 sekund

cele to mam pochopitelne ve vlastnim threadu (kazdy klient ma na
serveru svuj thread)

diky


WaitForSingleObject vs Sleep

[*] Stanislav PETR <stanislav.petr(zv)glux(tec)cz> - 28.1.2003 22:48:37

Dobry den,

Tuesday, January 28, 2003, 9:57:13 PM, jste napsal(a):

kpc> resim totiz tcp/ip komunikaci a sice vec takovou: klient posle
kpc> pozadavek a do 10 sekund se ze serveru musi vratit odpoved. takze
kpc> sem si rikal ze odeslu pozadavek na server a pak 10 sec pockam a
kpc> pak si ze socketu poslu to co prislo (muze to byt odpoved +
kpc> nejake veci ktere posila server sam od sebe). jedine co me trapi
kpc> je jak cekat tech 10 sekund

Nebylo by lepsi se normalne navesit na udalost prichoziho packetu a po prvnim
pozadavku si nekam do prom. ulozit cas a pri prichodu "odpovedi" ty casy
porovnat? Tim zaroven ziskate moznost nepr. klientovi odpovedet, ze se ohlasil
pozde, udalost zalogovat, ...


--
Stanislav PETR
Network Specialist
GLUXinternet
tel.: 732 654 455
stanislav.petr(zv)glux(tec)cz

WaitForSingleObject vs Sleep

[*] Benda Lukas <bendal(zv)volny(tec)cz> - 28.1.2003 22:48:54

Ne ze bych znal udalosti az tak dokonale, ale predpokladam, ze
sleep(10000) uspi proces a ten se po udanou dobu nehybe, kdezto
WaitForSingleObject ceka na vyvolani udalosti maximalne po udanou dobu,
ale pokud spravny proces prijde pak se cekani prerusi a pokracuje se
dale v procesu .

kevin33(zv)post(tec)cz wrote:

>zdravim,
>
>rad bych se zeptal jaky je rozdil mezi sleep( 10000 ); a
>WaitForSingleObject( GetCurrentProcess, 10000 ); a co je
>vhodnejsi k pouziti ?
>
>resim totiz tcp/ip komunikaci a sice vec takovou: klient posle
>pozadavek a do 10 sekund se ze serveru musi vratit odpoved. takze
>sem si rikal ze odeslu pozadavek na server a pak 10 sec pockam a
>pak si ze socketu poslu to co prislo (muze to byt odpoved +
>nejake veci ktere posila server sam od sebe). jedine co me trapi
>je jak cekat tech 10 sekund
>
>cele to mam pochopitelne ve vlastnim threadu (kazdy klient ma na
>serveru svuj thread)
>
>diky
>
>

Ukladani JPEG do souboru

[*] Jan Naiser <tua(zv)wo(tec)cz> - 28.1.2003 23:17:12

Pekny den,
(D5.1, W2k)

ukladam jpeg obrazy do souboru pomoci J.SaveToFile (J: TJpegImage) ale vzdy
pri ukladani se to projevi na systemu tak, ze vytuhne mys, resp. se kouse
pri pohybu po dobu ukladani a i kdyz je to 2-3 vteriny, je to vada na krase.
:-) Da se to nejak eliminovat? Strojem by to byt nemelo, ten je vykonem
pomerne slusny a vysledne soubory jsou do 200MB.

Za rady dekuju, Honza.

QuickReport a agregacni funkce

[*] Ing. Pavel �ilinec����)b����ȧ~�� - 29.1.2003 05:29:06

Opravdu je to zvlastni. Nemuze to byt treba typem sloupce - zkus to
pri vyberu pretypovat (pokud to jde).
Ja tedy pracuji s MSSQL, ale vim, ze grupovani na QuickReportu mi
nefunguje ve chvili, kdy tam mam minimalne jednu NULL hodnotu - nemuze
byt treba toto ten problem?

--------
ing. Pavel Zilinec
MailTo:zilinec(zv)email(tec)cz

Prog-Soft s.r.o. Plzen
Informacni system pro vyrobce
a distributory napoju


SZ> Shrnuti :)
SZ> Mozna to vypada slozite, ale jde o to ze nejakym dotazem ziskam zaznamy o
SZ> nekolika sloupcich. Pokud chci tento dotaz zobrazit na sestave QuickReport a
SZ> groupovat a scitat za grupy, tak mam problem. Ale pokud si vracene zaznamy
SZ> vlozim do jednoduche tabulky a na ni pak udelam dotaz (i s uvedenim
SZ> sloupcu), ktery mi vrati stejne vysledky!!! tak mi ty soucty za skupiny
SZ> fungujou.

SZ> Prosim, v cem delam chybu? (uz to zkoumam druhy den).
SZ> Nesetkal se s tim nekdo?

SZ> Jeste prostredi: Delphi 6 Pro (update 2, IBX 6.05, update pro QRep 3,51),
SZ> databaze IB/FB, pristup pres IBExpress.

SZ> dekuji za jakoukoli radu.

SZ> Zdenek

SZ> jeste jen mala ukazka pozadovane sestavy:

SZ> -----------
SZ> Skupina: INTERNI
SZ> xxxnazev 12 20 11 kg
SZ> yyynazev 16 22 15 kg
SZ> zzznazev 10 10 13 kg
SZ> Celkem 38 52

SZ> Skupina: TUZEMSKY
SZ> xxxnazev 13 15 10 kg
SZ> yyynazev 15 20 16 kg
SZ> Celkem 28 35

SZ> Celkem za vsechny 66 87
SZ> ---------

Ukladani JPEG do souboru

[*] campulka <campulka(zv)czas(tec)cz> - 29.1.2003 06:06:34

Coz udelat ukladani v jinem threadu, kteremu bys dal nizsi prioritu?

Jirka.

> -----Original Message-----
> ukladam jpeg obrazy do souboru pomoci J.SaveToFile (J:
> TJpegImage) ale vzdy
> pri ukladani se to projevi na systemu tak, ze vytuhne mys,
> resp. se kouse
> pri pohybu po dobu ukladani a i kdyz je to 2-3 vteriny, je to
> vada na krase.
> :-) Da se to nejak eliminovat? Strojem by to byt nemelo, ten
> je vykonem
> pomerne slusny a vysledne soubory jsou do 200MB.
>
> Za rady dekuju, Honza.
>

Tvorba ActiveX v Delphi

[*] krakora <krakora(zv)prvnielektro(tec)cz> - 29.1.2003 06:30:02

Zdravim vsechny,

Prosim vas o radu a par informaci. Potreboval bych v Delphi vytvorit
ActiveX komponentu, ktera bude nacitat data z .dbf tabulky a pracovat s
nimi. Chtel bych to delat pres ADO. To vse bych snad i zvladl. Ale nevim
jak spravne tvorit ActiveX v Delphi.
Co vse treba budu muset s mou komponentou potom vlacet. Bude stacit
jenom distribuovat samotne ocx (samozrejme za predpokladu, ze na cilovem
pocitaci bude nainstalovane potrebne ado). Mohl bych si to treba
vytvorit jako standard. aplikaci a potom to prevest na ocx. Jde mi totiz
o to jak tu komponentu pri vyvoji testovat. Napriklad v VisBasicu se pri
spusteni testuje v MSIE. Ja jsem to v delphi delal nasledovne. Vytvoril
jsem si ActiveX Form, osadil komponentama a kodem, pak jsem vygeneroval
ocx a zaregistroval a zkousel jsem ho v programu, pro ktery to vyvijim.
Jenze pri udelani zmen a pokusu o novou kompilace mi prekladac hlasi ze
nelze ocx vytvorit. Musim zase komponentu deregistrovat a zavrit
aplikaci v ktere to zkousim.
Existuje nejaky lepsi zpusob?

Predem diky, s pozdravem Krakora Martin.

WaitForSingleObject vs Sleep

[*] Petr Fejfar <development(zv)callnet(tec)cz> - 29.1.2003 07:07:11

From: <kevin33(zv)post(tec)cz>

> rad bych se zeptal jaky je rozdil mezi
> sleep( 10000 ); a WaitForSingleObject( GetCurrentProcess, 10000 ); a co je
> vhodnejsi k pouziti ?

Prakticky se budou lisit jen overheadem windows
pri vyhodnocovani, jestli uplynula zadana perioda
cekani resp. timeout.

Rekl bych, ze sleep(n) bude mirne efektivnejsi,
protoze je jednodussi. Z praktickeho hlediska zanedbatelny IMHO rozdil.

S ohledem na srozumitelnost napsaneho kodu bych
preferoval sleep(). - aby se nekdo, kdo bude cist
Tvuj kod, nemusel takto ptat ;-)> sem si rikal ze odeslu pozadavek na server
> a pak 10 sec pockam a pak si ze socketu
> poslu to co prislo

A co kdyz prijde odpoved drive nez za 10 sekund?
To tam tam aplikace bude zbytecne cekat?

Pokud umis singalizovat, ze odpoved dorazila tj. pouzivas nejakou
asynchronni formu komunikace,
tak je jedinym spravnym resenim pouzit WaitFor....,
ovsem ne na CurrentProcess, ale na stav signalled nejakeho synchronizacniho
objektu - typicky se pouziva Semaphor nebo Event.

Pokud pouzivas neco synchronniho, tak se to dela pollingem. Typicky se k
tomu pouziva neco jako
CanRead(Timeout), coz byva u TCP/IP komunikace
implementovano pomoci winsock.Select(), takze za tebe ceka nekdo jiny.
Samozrejme si musis ohlidat
v nejakem cyklu, ze odpoved dorazila cela.


HTH, pf

WaitForSingleObject vs Sleep

[*] Petr Fejfar <development(zv)callnet(tec)cz> - 29.1.2003 07:19:34

From: "Stanislav PETR" <stanislav.petr(zv)glux(tec)cz>

> Nebylo by lepsi se normalne navesit na udalost prichoziho packetu
> a po prvnim pozadavku si nekam do prom. ulozit cas
> a pri prichodu "odpovedi" ty casy porovnat?

A kdyz odpoved neprijde resp. neprijde cela? Tak stejne se nejak na ta
data musi cekat. Je jen otazka, jakou knihovnu pro TCP/IP komunikaci
pouzivas a jake nabizi moznosti - z toho pak vyplyne zpusob obsluhy
prijimace.


pf

WaitForSingleObject vs Sleep

[*] Petr Fejfar <development(zv)callnet(tec)cz> - 29.1.2003 07:28:28

From: "Benda Lukas" <bendal(zv)volny(tec)cz>

> WaitForSingleObject ceka na vyvolani udalosti
> maximalne po udanou dobu, ale pokud spravny proces
> prijde pak se cekani prerusi a pokracuje se
> dale v procesu .

Jenomze ten proces, na ktery puvodni tazatel chce cekat, je ten proces sam,
takze tvoji terminologii "nikdy neprijde" (jedine ze by se mezitim ukoncil)
a vzdy se uplatni ten timeout.


HTH, pf

Posledni vlozene ID

[*] Otisk Ren� <otisk(zv)misel(tec)cz> - 29.1.2003 07:51:14

Udelej si StoredProceduru
Nejak takhle (delam to ze skeble, takze si to kdyz tak dolad podle manualu)
SET TERM !!;
CREATE PROCEDURE INSERT_INTO_TABLE
(Input Parametry (Sloupce?))
RETURNS (Output parametry (treba to ID))
AS
DECLARE VARIABLE TEMP_SUROVINA INTEGER;
BEGIN
ID = GEN_ID(VydejkaSS_GEN, 1);
INSERT INTO TABEL (ID, Sloupce)
VALUES (:ID, :Sloupce);
SUSPEND;
END!!
SET TERM ;!!

Sroub

----- Original Message -----
From: "Jaroslav �ezn�k" <jreznik(zv)teaz(tec)cz>
To: "DELPHI" <delphi-l(zv)clexpert(tec)cz>
Sent: Tuesday, January 28, 2003 7:44 PM
Subject: Posledni vlozene ID


Zdravim,
pouzivam v delphi SQL dotazu na FB server a potreboval bych po INSERTu
zjistit ID ( ID je PRIMARY KEY a autoincrementem pres generator a
trigger ) prave vlozeneho zaznamu, ale v datasetu je pak vzdy jen 0 a az
po refreshi se vrati z db aktualni ID, ale to jiz nejsem na te polozce?
Je nejake elegantni reseni jak to zjistit? K pristupu pouzivam ZEOS dbo.

Diky
Rezza

---
Po�choz� zpr�va neobsahuje viry.
Zkontrolov�no antivirov�m syst�mem AVG (http://www.grisoft(tec)cz).
Verze: 6.0.445 / Virov� b�ze: 250 - datum vyd�n�: 21.1.2003

WaitForSingleObject vs Sleep

[*] Lukas Gebauer <gebylist(zv)mlp(tec)cz> - 29.1.2003 07:57:59

> resim totiz tcp/ip komunikaci a sice vec takovou: klient posle
> pozadavek a do 10 sekund se ze serveru musi vratit odpoved. takze sem
> si rikal ze odeslu pozadavek na server a pak 10 sec pockam a pak si ze
> socketu poslu to co prislo (muze to byt odpoved + nejake veci ktere
> posila server sam od sebe). jedine co me trapi je jak cekat tech 10
> sekund

Pochopitelne nejlepsi je uspat thread dokud nepruijdou ze serveru
pozadovane data (a zaroven hlidat, jestli prisla cela), a toto uspani
ohranicit maximalnim timeoutem 10 sekund.

Napriklad v Synapsi proste zavolas ihned operaci na cteni
pozadovanych dat a das mu timeout. Vic resit nemusis. ;-)


-- Lukas Gebauer.

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

Delphi, Word a Word.Property II.

[*] <js-delphi(zv)email(tec)cz> - 29.1.2003 08:06:10

Ahoj.

Chci vas pozadat o radu, na kterou jsem se uz tady ptal, ale odpovedi, se=
kterou bych byl schopen pokrocit v mem patrani, jsem se zatim nedockal.

Jedna se mi o tyto nasledujici kroky:
1) vytvorit sablonu MS-Word
a) v teto sablone vytvorit pomoci Soubor/Vlastnosti/Vlastni novou vlas=
tnost s nazvem dejme tomu napr. "Pokus", typ dejme "text" a default hodno=
tu nastavme na napr. "123"
b) v teto sablone napisme libovolny text a na libovelne misto v tomto =
textu umisteme pomoci Vlozit/Pole - kategorie "Informace o dokumentu", na=
zvem pole "DocProperty", Moznosti - vybrat nasi vytvorenou vlastnost "Pok=
us"
c) sablonu ulozit pod nazvem napr. "m1.dot" a zavrit
2) vytvorit projekt Delphi, ktery bude mit jedno tlacitko, pomoci ktereho=
otevru Word a nasledne vytvorim novy dokument na sablone "m1.dot" viz bo=
d 1c. K tomu pouziju komponenty WordApplication a WordDocument ze zalozky=
komponent Delphi - "Servers".

Problem je ... jak mam tomu otevrenemu dokumentu dosadit, do mnou vytvore=
ne vlastnosti, pozadovanou hodnotu. Uz tady padaly navrhy jako:
ActiveDocument.FormFields("Pokus").Result:=3D'Ahoj';
To v mem pripade, s pouzitim komponent, ktere jsem naznacil, neni mozne. =
Vubec netusim, kde bych mel a na zaklade jake tridy, vytvorit ActiveDocum=
ent.

Prosim vas o radu, protoze nevim, jestli je to zamer a nebo jenom neumim =
spravne hledat, ale ke zminenym komponentam jsem nenasel zadnou napovedu.

Cili - jak mam provest to dosazeni?! Prosim vas o priklad. Domnivam se, z=
e pujde tak max. o 3 radky, takze snad to nebude takovy problem.

Diky Jirka

Ing. Jiri Sokol, js-delphi(zv)seznam(tec)cz, +420251431187
D6ProfSP2,WinNT
amatersky programator

_________________________________________________________________________=
_____
V=B9echny =BEeny jsou kr=E1sn=E9. http://eva.email(tec)cz=20

FB/IB, JOIN se SELECTEM, ne s tabulkou

[*] Karel Rys <delphi(zv)zas-me(tec)cz> - 29.1.2003 08:11:40

Sedlak Zdenek dne 28 Jan 2003 v 17:58:

> Tu ukazku jsem pouzil jen jako jednoduchy priklad. Ve skutecnosti je
> ten select za JOIN slozitejsi, je pres nekolik tabulek a jeste se v
> nem provadu grupovani a vramci jeho agregace SUM a COUNT na nejake
> sloupce. Proto potrebuju za JOIN SELECT a ne jen pripojit tabulku. (Ta
> pripojovana data vlastne nejsou tabulka, ale ten vyhodnocenej
> slozitejsi dotaz).

Hm, tak to v IB bohuzel neumim. Pokud jsem neco podobneho potreboval, pouzil jsem bud takovyto
zapis (pisu jen z hlavy, tak mozna +- nejake ty zavorky):

SELECT
a.Kod,
(SELECT SUM(b.Hodnota) FROM Pokus2 b WHERE (b.Kod=a.Kod)) as Soucet
FROM Pokus1 a
WHERE a. ...

coz se da pouzit, pokud ten vnoreny dotaz vraci jen jednu hodnotu (popr. jich tam lze takto uvest
vice, ale vyhodnocuje se kazdy samostatne).

Ve slozitejsich pripadech jsem pouzil ulozenou proceduru. K VIEW jsem nejak neprilnul.

Karel Rys

WaitForSingleObject vs Sleep

[*] Petr Fejfar <development(zv)callnet(tec)cz> - 29.1.2003 08:12:31

From: "Lukas Gebauer" <gebylist(zv)mlp(tec)cz>

> Napriklad v Synapsi proste zavolas ihned operaci na cteni
> pozadovanych dat a das mu timeout. Vic resit nemusis. ;-)

Kdyz jsme u te Synapse: zpusob, jakym resis timeout na prijimac
neni prilis cisty, protoze temer vsude pouzivas konstrukci (schematicky):

repeat
Receive(Timeout);
...
until LastError<>0

a to i opakovane, pocinaje RecvTerminated() az po nejvyssi vrstvu
napr. v HTTPMethod cteni odezvy na HTTP request. Tvoje implementace timeoutu
je tedy inkrementalni tzn. meri cas od posledni operace Receive
a ne od doby odeslani pozadavku, jak to spravne ma byt.

Prakticky se to sice casto projevovat nebude, ale pokud se budou data
"trousit", bude mereni timeoutu nepresne.

Meli jsme tu napr. svinsky problem s nekompatibilitou PPP na leased line
mezi RadHat Linuxem a Ciscem, ktera se projevovala ztratou temer kazdeho
druheho packetu obousmerne, a tam uz by se takova chyba projevovala -
nastesti jsme tam nemeli Synapsi ;-)


Bye, pf


WaitForSingleObject vs Sleep

[*] Lukas Gebauer <gebylist(zv)mlp(tec)cz> - 29.1.2003 08:31:53

Delat to jakkoliv jinak je zbytecne slozite. A zbytecne celou vec
zeslozitit jen proto, aby to chodilo o neco lepe na linkach, ktere
jsou svoji povahou rozbite (coz linka, ktera zahazuje kazdy druhy
packet nepochybne je!), to mi neprijde ekonomicke.

Krom toho ti vubec nic nebrani tomu nepouzivat moje vysokourovnove
cteci funkce, ale muzes klidne sahnout po primem volani CanRead a
RecvBuffer.. a implementovat si takove timeouty, jake zrovna
potrebujes. ;-)

> Kdyz jsme u te Synapse: zpusob, jakym resis timeout na prijimac
> neni prilis cisty, protoze temer vsude pouzivas konstrukci
> (schematicky):
>
> repeat
> Receive(Timeout);
> ...
> until LastError<>0
>
> a to i opakovane, pocinaje RecvTerminated() az po nejvyssi vrstvu
> napr. v HTTPMethod cteni odezvy na HTTP request. Tvoje implementace
> timeoutu je tedy inkrementalni tzn. meri cas od posledni operace
> Receive a ne od doby odeslani pozadavku, jak to spravne ma byt.
>
> Prakticky se to sice casto projevovat nebude, ale pokud se budou data
> "trousit", bude mereni timeoutu nepresne.
>
> Meli jsme tu napr. svinsky problem s nekompatibilitou PPP na leased
> line mezi RadHat Linuxem a Ciscem, ktera se projevovala ztratou temer
> kazdeho druheho packetu obousmerne, a tam uz by se takova chyba
> projevovala - nastesti jsme tam nemeli Synapsi ;-)
-- Lukas Gebauer.

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

Tvorba ActiveX v Delphi

[*] Petr Langer <langer(zv)xdom(tec)cz> - 29.1.2003 08:37:36

Co mas za verzi delphi?
V D5 je ladeni bez problemu. Podarilo se mi ladit jak ActiveX, tak i COM, i
MTS (COM+).
Zapnes si moznosti ladeni jak v "Project Options" --> Compiler, tak i v
Linker (ja tam pro jistotu zapinam vetsinu, tj. Map File na Publics, a v
"EXE and DLL options" zapinam vsechno. Myslim, ze neni potreba uplne
vsechno, ale nechtelo se mi zjistovat ktera kombinace je ta dulezita...)
No a pak si v Run --> Parameters nastavis "Host application" napr. na
"C:\Program Files\Internet Explorer\iexplore.exe" a do "Parameters" das
svoji HTML stranku, ktera ten ActiveX obsahuje.
Das "Run" a mely by ti vsechny breakpointy meli fungovat jak maji.
Samozrejme musis pri uprave shodit ten IE, to ti ale pri Ctrl+F2 udela
Delphi samo.

Standardni aplikaci samozrejme na OCX prevest nelze - kde by vzal konvertor
informace o interfacu? Lze to ale udelat dobrym navrhem, kdy napr. budes mit
vykone funkce v unitu a jak ve standardni aplikaci, tak pak v ActiveX
wrapperu, budes tyto fce odvolavat.

Ja standardne kompiluju bez pouziti externich balicku, takze pak takove OCX
lze sirit samostatne. Bohuzel jsou ale OCX-ka v Delphi ponekud vetsi, takze
doporucuju davat je do CABu, je-li to mozne.

HTH
Petr Langer

----- Original Message -----
From: "krakora" <krakora(zv)prvnielektro(tec)cz>
To: <delphi-l(zv)clexpert(tec)cz>
Sent: Wednesday, January 29, 2003 6:30 AM
Subject: Tvorba ActiveX v Delphi


> Zdravim vsechny,
>
> Prosim vas o radu a par informaci. Potreboval bych v Delphi vytvorit
> ActiveX komponentu, ktera bude nacitat data z .dbf tabulky a pracovat s
> nimi. Chtel bych to delat pres ADO. To vse bych snad i zvladl. Ale nevim
> jak spravne tvorit ActiveX v Delphi.
> Co vse treba budu muset s mou komponentou potom vlacet. Bude stacit
> jenom distribuovat samotne ocx (samozrejme za predpokladu, ze na cilovem
> pocitaci bude nainstalovane potrebne ado). Mohl bych si to treba
> vytvorit jako standard. aplikaci a potom to prevest na ocx. Jde mi totiz
> o to jak tu komponentu pri vyvoji testovat. Napriklad v VisBasicu se pri
> spusteni testuje v MSIE. Ja jsem to v delphi delal nasledovne. Vytvoril
> jsem si ActiveX Form, osadil komponentama a kodem, pak jsem vygeneroval
> ocx a zaregistroval a zkousel jsem ho v programu, pro ktery to vyvijim.
> Jenze pri udelani zmen a pokusu o novou kompilace mi prekladac hlasi ze
> nelze ocx vytvorit. Musim zase komponentu deregistrovat a zavrit
> aplikaci v ktere to zkousim.
> Existuje nejaky lepsi zpusob?
>
> Predem diky, s pozdravem Krakora Martin.
>
>

Delphi, Word a Word.Property II.

[*] Josef Slan� <slany(zv)hasici.znojmo(tec)cz> - 29.1.2003 08:46:42

Ahoj,

teto problematice nerozumim do hloubky, ale nikdo zatim neodpovida, tak
zkusim napsat, jak to pouzivam ja, treba to trochu pomuze.

Taky pouzivam FormFields a taky mi nefunguje prirazeni typu:

ActiveDocument.FormFields("Pokus").Result:=3D'Ahoj';

Ale funguje toto:

var ItemIndex : OleVariant;
begin
ItemIndex :=3D 1;
// Zobrazi nazev prvniho formularoveho pole v pripojenem dokumentu =
wordu
ShowMessage( WordDocument.FormFields.Item( ItemIndex ).Name );
// vlozi do nej text
WordDocument.FormFields.Item( ItemIndex ).Result :=3D 'Vlo=BEeno z =
Delphi na
zkou=B9ku';
end;

Poznamky:
Pouzivam to pouze velmi jednoduse a to tak, ze vytvorim dokument wordu, =
do
neho si navkladam formularova pole a pojmenuju je. Z delphi je potom =
projdu
cyklem od 1 do WordDocument.FormFields.Count; a podle property Name je
vyplnim.

ActiveDocument je property tridy TWordApplication.

WordDocument z prikladu vyse je komponenta TWordDocument.

Pouzivam D7.

Nepouzivam sablonu dokumentu, ale klasicky dokument doc.

Josef Slan=FD
HZS JmK =FAzemn=ED odbor Znojmo
mailto:slany(zv)hasici.znojmo(tec)cz
tel:0624-200740
GSM:0724-195104

> -----Original Message-----
> From: delphi-l-owner(zv)clexpert(tec)cz=20
> [mailto:delphi-l-owner(zv)clexpert(tec)cz] On Behalf Of js-delphi(zv)email(tec)cz
> Sent: Wednesday, January 29, 2003 8:06 AM
> To: delphi-l(zv)clexpert(tec)cz
> Subject: Delphi, Word a Word.Property II.
>=20
>=20
> Jedna se mi o tyto nasledujici kroky:
> 1) vytvorit sablonu MS-Word
> a) v teto sablone vytvorit pomoci=20
> Soubor/Vlastnosti/Vlastni novou vlastnost s nazvem dejme tomu=20
> napr. "Pokus", typ dejme "text" a default hodnotu nastavme na=20
> napr. "123"
> b) v teto sablone napisme libovolny text a na libovelne=20
> misto v tomto textu umisteme pomoci Vlozit/Pole - kategorie=20
> "Informace o dokumentu", nazvem pole "DocProperty", Moznosti=20
> - vybrat nasi vytvorenou vlastnost "Pokus"
> c) sablonu ulozit pod nazvem napr. "m1.dot" a zavrit
> 2) vytvorit projekt Delphi, ktery bude mit jedno tlacitko,=20
> pomoci ktereho otevru Word a nasledne vytvorim novy dokument=20
> na sablone "m1.dot" viz bod 1c. K tomu pouziju komponenty=20
> WordApplication a WordDocument ze zalozky komponent Delphi -=20
> "Servers".
>=20
> Problem je ... jak mam tomu otevrenemu dokumentu dosadit, do=20
> mnou vytvorene vlastnosti, pozadovanou hodnotu. Uz tady=20
> padaly navrhy jako: =
ActiveDocument.FormFields("Pokus").Result:=3D'Ahoj';
> To v mem pripade, s pouzitim komponent, ktere jsem naznacil,=20
> neni mozne. Vubec netusim, kde bych mel a na zaklade jake=20
> tridy, vytvorit ActiveDocument.
>=20
> Prosim vas o radu, protoze nevim, jestli je to zamer a nebo=20
> jenom neumim spravne hledat, ale ke zminenym komponentam jsem=20
> nenasel zadnou napovedu.
>=20
> Cili - jak mam provest to dosazeni?! Prosim vas o priklad.=20
> Domnivam se, ze pujde tak max. o 3 radky, takze snad to=20
> nebude takovy problem.
>=20
> Diky Jirka
>=20
> Ing. Jiri Sokol, js-delphi(zv)seznam(tec)cz, +420251431187=20
> D6ProfSP2,WinNT amatersky programator
>=20
>=20
>=20
>=20
> ______________________________________________________________
> ________________
> V=B9echny =BEeny jsou kr=E1sn=E9. http://eva.email(tec)cz=20
>=20
> ---
> P=F8=EDchoz=ED zpr=E1va neobsahuje viry.
> Zkontrolov=E1no antivirov=FDm syst=E9mem AVG (http://www.grisoft(tec)cz).
> Verze: 6.0.445 / Virov=E1 b=E1ze: 250 - datum vyd=E1n=ED: 21.1.2003
> =20
>=20

---
Odchoz=ED zpr=E1va neobsahuje viry.
Zkontrolov=E1no antivirov=FDm syst=E9mem AVG (http://www.grisoft(tec)cz).
Verze: 6.0.445 / Virov=E1 b=E1ze: 250 - datum vyd=E1n=ED: 21.1.2003
=20

Tvorba ActiveX v Delphi

[*] Jan Sebel�k <honza(zv)haes(tec)cz> - 29.1.2003 09:05:12

> Odes=EDlatel: krakora <krakora(zv)prvnielektro(tec)cz>
> Prosim vas o radu a par informaci. Potreboval bych v Delphi vytvorit
> ActiveX komponentu, ktera bude nacitat data z .dbf tabulky a pracovat =
s

Nechci moc spekulovat, na co to vlastne potrebujes.
Predpokladam-li ale, ze to bude nejake nevizualni zpracovani dat z dbf, =
ktere chci zavolat z aplikace, pak bych si nelamal hlavu s ActiveX a ocx =
a udelal bych normalni in-proc COM-object, resp. ActiveXLibrary (dll).
Tedy aspon ja bych to takto delal.

File / New / ActiveXLibrary
File / New / Automation Object
nadefinuji potrebny interface, budu ho implementovat v implementacni =
unite.
zaregistruju budto z Delphi (register activex library) nebo regsvr32.
Do Project Group si pridam testovaci Klient aplikaci, ze ktere budu =
sluzby z interface volat.

Sluzby pak mohu ladit budto primo spustenim Klient aplikace (doufam) =
nebo tak, ze se v Project Group nastavim na tu DLL a zadam Host =
Application.

Navic mam otevrenou cestu k tomu, aby sluzba pripadne bezela na remote =
pocitaci:
staci udelat uses InplementacniUnit do nejakeho projektu (out-of-process =
server) a muzu sluzbu volat pres DCOM z jineho pocitace. Klient se =
pritom vubec nemeni.

Honza
Viz nase kurzy COM/DCOM, Vicevrstve aplikace.
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
=3D HAES - RNDr. Jan Sebelik
=3D http://www.haes(tec)cz
=3D Skolici a konzultacni stredisko pro Delphi a Win32
=3D Vojtiskova 206
=3D 507 81 Lazne Belohrad
=3D tel. 493 792 931 (mobil 776 347735)
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
----------
> Odes=EDlatel: krakora <krakora(zv)prvnielektro(tec)cz>
> Komu: delphi-l(zv)clexpert(tec)cz
> P=F8edm=ECt: Tvorba ActiveX v Delphi
> Datum: 29. ledna 2003 6:30
>=20
> Zdravim vsechny,
>=20
> Prosim vas o radu a par informaci. Potreboval bych v Delphi vytvorit
> ActiveX komponentu, ktera bude nacitat data z .dbf tabulky a pracovat =
s
> nimi. Chtel bych to delat pres ADO. To vse bych snad i zvladl. Ale =
nevim
> jak spravne tvorit ActiveX v Delphi.
> Co vse treba budu muset s mou komponentou potom vlacet. Bude stacit
> jenom distribuovat samotne ocx (samozrejme za predpokladu, ze na =
cilovem
> pocitaci bude nainstalovane potrebne ado). Mohl bych si to treba
> vytvorit jako standard. aplikaci a potom to prevest na ocx. Jde mi =
totiz
> o to jak tu komponentu pri vyvoji testovat. Napriklad v VisBasicu se =
pri
> spusteni testuje v MSIE. Ja jsem to v delphi delal nasledovne. =
Vytvoril
> jsem si ActiveX Form, osadil komponentama a kodem, pak jsem =
vygeneroval
> ocx a zaregistroval a zkousel jsem ho v programu, pro ktery to =
vyvijim.
> Jenze pri udelani zmen a pokusu o novou kompilace mi prekladac hlasi =
ze
> nelze ocx vytvorit. Musim zase komponentu deregistrovat a zavrit
> aplikaci v ktere to zkousim.
> Existuje nejaky lepsi zpusob?
>=20
> Predem diky, s pozdravem Krakora Martin.

Wait v Synapsi (was: WaitForSingleObject vs Sleep

[*] Petr Fejfar <development(zv)callnet(tec)cz> - 29.1.2003 09:07:46

From: "Lukas Gebauer" <gebylist(zv)mlp(tec)cz>

> Delat to jakkoliv jinak je zbytecne slozite. A zbytecne celou vec
> zeslozitit jen proto, aby to chodilo o neco lepe na linkach, ktere
> jsou svoji povahou rozbite (coz linka, ktera zahazuje kazdy druhy
> packet nepochybne je!), to mi neprijde ekonomicke.

Ono nejde o to, aby to chodilo o neco lepe - to z principu nelze, ale aby se
vubec prislo na to, ze je neco v neporadku - tj. ze odezvy jsou vyrazne
delsi nez odpovida hodnote round-trip delay - lide zabyvajici se
spolehlivosti a bezpecnosti to nazyvaji "zkracenim detekcni latence" tj.
doby, kdy existuje porucha a jiz se projevila na chovani systemu, ale nevi
se o ni.

Takze jde o otazku spolehlivostni a v takovem pripade se z ekonomickeho
hlediska hleda kompromis mezi rozumnymi naklady a potencialnimi riziky.

***
Souhlasim s Tebou, ze u nejbeznejsiho zpusobu nasazeni Synapse na tom
nezalezi, Synapse je vyborna jednoducha knihovna a sam ji napr. pro
komunikaci po Internetu pouzivam, ale myslim, ze je dobre vedet,
kde ma limity.

Bye, pf


PS. Jako maly OT:

Nakonec to skoncilo tak, ze jsme Linux vykopali a dali na druhou stranu
stejne CISCO. BTW, ta chyba byla docela zvlastni: kdyz se napr.
pinkalo kazdou sekundu, ztracelo se temer 50% packetu (kazdy druhy)
a to v obou smerech. Kdyz se pinkalo pomaleji, napr. kazde 4 sekundy,
tak ze ztracelo mene nez 2% packetu. Kdyz jsme se to poukouseli debugovat,
tak jsme na Linuxu videli, ze PPP ma u tech ztracenych packetu
pri prijmu chybny checksum (!!). PPP na temze Linuxu provozujeme
napr. proti 3COM routerum bez problemu a proti jinym Linuxum taky.

Kdyby se nekdo s necim podobnym setkal, docela by mne to zajimalo.
V takovem pripade prosim piste na Petr.Fejfar(zv)seznam(tec)cz

Thx, pf

Posledni vlozene ID

[*] Jan Sebel�k <honza(zv)haes(tec)cz> - 29.1.2003 09:10:13

> Odes=EDlatel: Ales Radikovsky <radik(zv)allstar(tec)cz>
> Ja to delam tak, ze si nechavam pridelit cislo generatorem do programu =
a
> to pak insertim do databaze a triggerem hlidam, jestli nahodou
> neinsertim null

Neznam lepsi reseni.
IBDataSet na to ma jeste property GeneratorField - predpokladam, ze to =
dela nejak stejne, akorat je to bez prace (volani procedury z klienta). =
Stejne se ale v triggeru musi zaridit, aby ID neprideloval, pokud neni =
NULL.

Honza
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
=3D HAES - RNDr. Jan Sebelik
=3D http://www.haes(tec)cz
=3D Skolici a konzultacni stredisko pro Delphi a Win32
=3D Vojtiskova 206
=3D 507 81 Lazne Belohrad
=3D tel. 493 792 931 (mobil 776 347735)
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D

Wait v Synapsi (was: WaitForSingleObject vs Sleep

[*] Lukas Gebauer <gebylist(zv)mlp(tec)cz> - 29.1.2003 09:21:10

> Souhlasim s Tebou, ze u nejbeznejsiho zpusobu nasazeni Synapse na tom
> nezalezi, Synapse je vyborna jednoducha knihovna a sam ji napr. pro
> komunikaci po Internetu pouzivam, ale myslim, ze je dobre vedet, kde
> ma limity.

Jak jsem se tak koukal do zdrojaky, tak mozna ani nebude moc slozite
to chovani timeoutu prekopat. Jeste si to promyslim. ;-)
-- Lukas Gebauer.

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

TList v recordu

[*] �ejka Pavel <cejka(zv)proteco(tec)cz> - 29.1.2003 09:31:46

Ahoj,
chtel bych se zeptat jak spravne pouzit TList ve strukture:

Toto je asi spatne, ze:

procedure TForm1.Button1Click(Sender: TObject);
type TPokus = record
I : integer;
List : TList
end;
TUPokus = ^TPokus;
var Pom : TUPokus;
begin
New(Pom);
Pom^.List := TList.Create;
Pom^.List.Add(Neco);
end;

Da se to pouzit takto?

procedure TForm1.Button1Click(Sender: TObject);
type TPokus = record
I : integer;
List : Pointer;
end;
TUPokus = ^TPokus;
var Pom : TUPokus;
PomList : TList;
begin
PomList := TList.Create;
New(Pom);
Pom^.List := PomList;
TList(Pom^.List).Add(Neco);
end;

Neviditelna aplikace na W2000

[*] Lauko Stefan <laukosw(zv)naex.sk> - 29.1.2003 09:40:42

Ahoj,
vyskusaj toto:

procedure TForm1.FormCreate(Sender: TObject);
begin
Top:= -5000;
ShowWindowAsync( Application.Handle, SW_HIDE );
ShowWindow( Application.Handle, SW_HIDE );
end;

Nezabudni to ale zabezpecit pre ukoncenie...
Lauko.


----- Original Message -----
From: "Straka Josef" <strakajosef(zv)quick(tec)cz>
To: "Delphi" <delphi-l(zv)clexpert(tec)cz>
Sent: Tuesday, January 28, 2003 9:39 PM
Subject: Neviditelna aplikace na W2000


> Prijemny den,
> chtel bych udelat neviditelnou aplikaci. Nasel jsem komponentu Stealth,
ale
> ta nechodi na NT, jak je v ni uvedeno. Proto nevim, jak se aplikace zbavit
> ve spravci uloh. Tedy krome toho, ze aplikaci pojmenuju tak, ze se bude
> tvarit jako tuctova systemova aplikace, o ktere neni na W200 a XP nouze.
>
> Diky.
> Straka Josef
> e-mail: strakajosef(zv)quick(tec)cz
> www: http://strakaj.zde(tec)cz
>
>
>

Neviditelna aplikace na W2000

[*] Otisk Ren� <otisk(zv)misel(tec)cz> - 29.1.2003 09:46:27

co zkusit Application.ShowMainForm := False ?

Sroub



Ahoj,
vyskusaj toto:

procedure TForm1.FormCreate(Sender: TObject);
begin
Top:= -5000;
ShowWindowAsync( Application.Handle, SW_HIDE );
ShowWindow( Application.Handle, SW_HIDE );
end;

Nezabudni to ale zabezpecit pre ukoncenie...
Lauko.> Prijemny den,
> chtel bych udelat neviditelnou aplikaci. Nasel jsem komponentu
Stealth,
ale
> ta nechodi na NT, jak je v ni uvedeno. Proto nevim, jak se aplikace
zbavit
> ve spravci uloh. Tedy krome toho, ze aplikaci pojmenuju tak, ze se
bude
> tvarit jako tuctova systemova aplikace, o ktere neni na W200 a XP
nouze.

Zaznam do registrov

[*] Plexo <plexo(zv)centrum(tec)cz> - 29.1.2003 09:52:22

Zdravim,
mam nasledovny problem:
Potrebujem do registrov pridat zaznam a to konkretne do
casti HKEY_CURRENT_USER, ale problem je v tom, ze
tento zaznam musi byt pristupny pre vsetkych useroch
v systeme. Viem, ze na globalne zaznamy mam pouzit
HKEY_LOCAL_MACHINE, ale software, pre ktory to spracuvavam
berie iba HKEY_CURRENT_USER. Existuje moznost ako v ramci
jednej instalacie vytvorit zaznam do HKEY_CURRENT_USER pre
vsetkych uzivateloch v systeme?


--------------------
NOVINKA na Centrum(tec)cz SMS! Nahrajte si nov=E9 logo a vyzv=E1n=ECn=ED na=
V=E1=B9 mobiln=ED telefon! http://sms.centrum(tec)cz/loga


TList v recordu

[*] Milan Tome� <milan.tomes(zv)haida(tec)cz> - 29.1.2003 09:53:13

Teoreticky by to melo fungovat (i bez te pomocne promenne jak je uvedeno v
prvnim prikladu).
V deklaraci struktury recordu muzes pouzit klidne i primo TList, protoze
vlastni promenna je 32-bitovy integer stejne jako pointer, ale odpadne ti
povinnost pretypovavat ten pointer.

S pozdravem

Milan Tomes
mailto:milan.tomes(zv)haida(tec)cz

> From: delphi-l-owner(zv)clexpert(tec)cz [mailto:delphi-l-owner(zv)clexpert(tec)cz]On
> Behalf Of �ejka Pavel
>
> chtel bych se zeptat jak spravne pouzit TList ve strukture:
>
> procedure TForm1.Button1Click(Sender: TObject);
> type TPokus = record
> I : integer;
> List : TList
> end;
> TUPokus = ^TPokus;
> var Pom : TUPokus;
> begin
> New(Pom);
> Pom^.List := TList.Create;
> Pom^.List.Add(Neco);
> end;
>
> Da se to pouzit takto?
>
> procedure TForm1.Button1Click(Sender: TObject);
> type TPokus = record
> I : integer;
> List : Pointer;
> end;
> TUPokus = ^TPokus;
> var Pom : TUPokus;
> PomList : TList;
> begin
> PomList := TList.Create;
> New(Pom);
> Pom^.List := PomList;
> TList(Pom^.List).Add(Neco);
> end;

TList v recordu

[*] Petr Fejfar <development(zv)callnet(tec)cz> - 29.1.2003 09:59:04

From: "�ejka Pavel" <cejka(zv)proteco(tec)cz>

> type TPokus = record
> I : integer;
> List : TList
> end;
> TUPokus = ^TPokus;
> var Pom : TUPokus;
> begin
> New(Pom);
> Pom^.List := TList.Create;
> Pom^.List.Add(Neco);
> end;

Ja bych ten record zmenil na class a v konstuktoru/destruktoru bych se
staral o life-cycle toho List, napr.:

TPokus = class
I : integer;
List : TList;
constructor Create;
destructor Destroy; override;
end;

a pak bych psal:

var
Pom: TPokus;
begin
Pom := TPokus.Create;
try
Pom.List.Add(Neco);
...
finally
Pom.Free;
end;


HTH, pf

Ikonka restore u nemaximalizovaneho formu

[*] Danik Frantik <frantik(zv)telpro(tec)cz> - 29.1.2003 11:42:04

Dobry den,
nemate napad, jak zaridit, aby se nemaximalizovany (wsNormal) formular
choval jako maximalizovany -> tedy mel tam ikonku restore a volal po jejim
stisknuti prislusnou message (WM_SYSCOMMAND, SC_Restore) ?

(Resim zmenu chovani maximalizace - ala MDI v neMDI aplikaci a tohle je
zatim posledni drobna vada na krase)

Diky
Danik

Knihovna MIDAS.DLL - zapis v registrech

[*] Marek Dost�l <dostal(zv)agnis(tec)cz> - 29.1.2003 11:57:40

Mam dotaz ohledne knihovny MIDAS.DLL. Jak se do registru dostane cesta k =
teto knihovne?=20
Konkretni pripad, ze ktereho vyplynul muj dotaz: na pocitac (server) v =
siti windows jsem do konkretniho adresare nainstaloval vlastni program a =
zaroven v tomto adresari byla knihovna MIDAS.DLL. Na jinem pocitaci v =
siti jsem nainstaloval klienta FireBird, nahral MIDAS.DLL do adresare =
c:\windows\system a pres okolni pocitace jsem spustil ze serveru muj =
program. V okamziku, kdy jsem na serveru presunul program do jineho =
adresare a puvodni zrusil, zjistil jsem na stanici, ze v registrech je =
cesta ke knihovne midas.dll ne c:\windows\system, ale =
\\server\muj_adresar\ Myslim si spravne, ze je to tim, ze program si =
vzal knihovnu ze spousteciho adresare (protoze tam byla) a s touto =
cestou zaregistroval odpovidajici tridy do registru?=20
A jak se da nejak jednoduse v registrech tato cesta zmenit?=20

Marek Dostal

Knihovna MIDAS.DLL - zapis v registrech

[*] Libor Junek, KSH-Data <junek(zv)ksh-data(tec)cz> - 29.1.2003 12:24:09

Jedno z reseni je vzdy pri startu aplikace odregistrovat a zaregistrovat =
tu
DLL

RegisterLibrary(False, ExtractFilePath(ParamStr(0)) + 'midas.dll');
RegisterLibrary(True, ExtractFilePath(ParamStr(0)) + 'midas.dll');

function RegisterLibrary(RegisterDll: Boolean; const FileName: String):
Boolean;
type
TRegProc =3D function : HResult; stdcall;
const
SLoadFail =3D 'Chyba pri nacitani knihovny "%s"';
SCantFindProc =3D '%s procedura nebyla nalezena v knihovne "%s"';
SRegFail =3D 'Chyba pri spousteni procedury %s v knihovne "%s"';

RegProcName =3D 'DllRegisterServer';
UnRegProcName =3D 'DllUnregisterServer';
var
hLib: THandle;
RegProc: TRegProc;
ProcName: String;
begin
Result :=3D False;
if RegisterDll then
ProcName :=3D RegProcName
else
ProcName :=3D UnRegProcName;
hLib :=3D LoadLibrary(PChar(FileName));
if hLib =3D 0 then
raise Exception.CreateFmt(SLoadFail, [FileName]);
try
(zv)RegProc :=3D GetProcAddress(hLib, PChar(ProcName));
if (zv)RegProc =3D nil then
raise Exception.CreateFmt(SCantFindProc, [ProcName, FileName]);
if RegProc <> 0 then
raise Exception.CreateFmt(SRegFail, [ProcName, FileName]);
Result :=3D True;
finally
FreeLibrary(hLib);
end;
end;

Libor

> [mailto:delphi-l-owner(zv)clexpert(tec)cz]On Behalf Of Marek Dost=E1l
> Sent: Wednesday, January 29, 2003 11:58 AM
>
> Mam dotaz ohledne knihovny MIDAS.DLL. Jak se do registru
> dostane cesta k teto knihovne?
> Konkretni pripad, ze ktereho vyplynul muj dotaz: na pocitac
> (server) v siti windows jsem do konkretniho adresare
> nainstaloval vlastni program a zaroven v tomto adresari byla
> knihovna MIDAS.DLL. Na jinem pocitaci v siti jsem
> nainstaloval klienta FireBird, nahral MIDAS.DLL do adresare
> c:\windows\system a pres okolni pocitace jsem spustil ze
> serveru muj program. V okamziku, kdy jsem na serveru presunul
> program do jineho adresare a puvodni zrusil, zjistil jsem na
> stanici, ze v registrech je cesta ke knihovne midas.dll ne
> c:\windows\system, ale \\server\muj_adresar\ Myslim si
> spravne, ze je to tim, ze program si vzal knihovnu ze
> spousteciho adresare (protoze tam byla) a s touto cestou
> zaregistroval odpovidajici tridy do registru?
> A jak se da nejak jednoduse v registrech tato cesta zmenit?
>
> Marek Dostal

---
Odchoz=ED zpr=E1va neobsahuje viry.
Zkontrolov=E1no antivirov=FDm syst=E9mem AVG (http://www.grisoft(tec)cz).
Verze: 6.0.445 / Virov=E1 b=E1ze: 250 - datum vyd=E1n=ED: 21.1.2003

TComboBox.OnSelect se nevola, ItemIndex se vsak me

[*] Daniel Rott <roxton(zv)seznam(tec)cz> - 29.1.2003 12:27:10

Mam TComboBox, v udalosti OnDropDown nactu data,
v udalosti OnSelect zjistuji zvolenou polozku (resp. jestli
se zadany text s necim shoduje). Pri rozbaleni kombiku
se vyvola OnDropDown, nactou data (v tuto chvili je
ItemIndex=-1), seznam se zobrazi a je zvolena polozka,
ktera odpovida zadanemu textu (ItemIndex>=0),
ale udalost OnSelect se nevyvolala a pokud se v seznamu
nepohnu (tam a zpatky), tak se ani OnSelect nevyvola.
Potreboval bych aby se volal vzdy (jindy se normalne
vola) nebo alespon neco jako OnAfterDropDown, ktere
se bude volat jiz s nastavenym ItemIndex.

Diky
Daniel
-------------------------------------------------------
Scanning complete: NO intelligent life form in range.

TComboBox.OnSelect se nevola, ItemIndex se vsak me

[*] J�n Harman <harman(zv)volny(tec)cz> - 29.1.2003 12:35:56

Zkus OnCloseUp.
J=E1n Harman, Brno, harman(zv)volny(tec)cz


> Mam TComboBox, v udalosti OnDropDown nactu data,
> v udalosti OnSelect zjistuji zvolenou polozku (resp. jestli
> se zadany text s necim shoduje). Pri rozbaleni kombiku
> se vyvola OnDropDown, nactou data (v tuto chvili je
> ItemIndex=3D-1), seznam se zobrazi a je zvolena polozka,
> ktera odpovida zadanemu textu (ItemIndex>=3D0),
> ale udalost OnSelect se nevyvolala a pokud se v seznamu
> nepohnu (tam a zpatky), tak se ani OnSelect nevyvola.
> Potreboval bych aby se volal vzdy (jindy se normalne
> vola) nebo alespon neco jako OnAfterDropDown, ktere
> se bude volat jiz s nastavenym ItemIndex.
>
> Diky
> Daniel
> -------------------------------------------------------
> Scanning complete: NO intelligent life form in range.
>
>

TComboBox.OnSelect se nevola, ItemIndex se vsak me

[*] Daniel Rott <roxton(zv)seznam(tec)cz> - 29.1.2003 12:59:17

OnCloseUp je pozde. Ja to potrebuji mit hned
po otevreni, ten ItemIndex uz je zmenem, me
se to na vedomi nedalo.
Zatim mi to funguje tak, ze si v udalosti OnDropdown
postnu zpravu, ktera ten chybejici Select simuluje,
ale podle mne to ciste neni.

Daniel

> Zkus OnCloseUp.
> J�n Harman, Brno, harman(zv)volny(tec)cz

Tvorba ActiveX v Delphi

[*] krakora <krakora(zv)prvnielektro(tec)cz> - 29.1.2003 13:24:24

Komponenta by mela slouzit pro aplikaci RSView 32, je to takovy SCADA
system pro monitorovani a rizeni prumyslovych procesu. Existuje zde
tzv.. alarmovka, coz jsou zachycene poruchy z nejakeho zarizeni a ty se
ukladaji do dbase databaze. Moje komponenta by mela tyto zaznamy umet
zobrazit a filtrovat, v budoucnu mozna i tisknout.=20
V samotnem RSview se vytvaruji graficke obrazovky (velice zjednodusene
formy v Delphi), an kter=E9 se daji vkladat i ActiveX prvky. Takze se to
vysledne tvari stale jako jedna aplikace.

Jo a mam D6 a WIN XP.

Martin

QuickReport vs. Graf v zostave

[*] Robert Suska <SuskaR(zv)seznam(tec)cz> - 29.1.2003 13:45:13

Ahojte!

Vie mi niekto poradit ako sa da do tlacovej zostavy hodit graf?

Dakujem

Robo

************************************
Robert Suska
KORAK SLOVAKIA s.r.o.
Horna 52
974 01 Banska Bystrica
www.korak.sk robert(zv)korak.sk
Network administrator, Delphi programmer
************************************

TComboBox.OnSelect se nevola => potomek TComboBoxu

[*] �tuPe - 29.1.2003 13:48:54

U=BE jsem to =F8e=B9il a m=E1m takov=FDhohle potomka, byla to d=F8ina =
hledat ve win32.hlp, ale mysl=EDm, =BEe se to docela povedlo:

TCBNotifyEvent =3D procedure(Sender: TObject; Shift: TShiftState) of =
object;
TComboBoxEx =3D class(TComboBox)
private
{ Private declarations }
FOnDropUp: TCBNotifyEvent;
ClosedWithMouse: boolean;
procedure CNMyCommand(var Message: TWMCommand); message CN_COMMAND;
procedure DoDropUp;
protected
{ Protected declarations }
procedure CreateWnd; override;
public
{ Public declarations }
published
{ Published declarations }
property OnDropUp: TCBNotifyEvent read FOnDropUp write FOnDropUp;
end;

{************************************************************}
{ TComboBoxEx }
procedure TComboBoxEx.CreateWnd;
begin
inherited CreateWnd;
ClosedWithMouse:=3D False;
end;

procedure TComboBoxEx.CNMyCommand(var Message: TWMCommand);
begin
inherited;
Case Message.NotifyCode of
CBN_CLOSEUP: begin // pomoc=ED =B9ipek a kl=E1vesy Enter nebo =
my=B9=ED (pokra=E8ov=E1n=ED p=F8i CBN_SELCHANGE)
If GetKeyState(VK_RETURN)<0
then DoDropUp // byl stisknut Entr
else ClosedWithMouse:=3D True; // zav=F8eno bez pou=BEit=ED Entru, =
asi my=B9=ED
end;

CBN_SELCHANGE: begin // zm=ECna obsahu textu po uzav=F8en=ED =
my=B9=ED
if ClosedWithMouse
then DoDropUp;
end;

else
ClosedWithMouse:=3D False;
end;
end;

procedure TComboBoxEx.DoDropUp;
var
Shift: TShiftState;
begin
Shift:=3D [];
if GetKeyState(VK_SHIFT)<0 then Include(Shift, ssShift);
if GetKeyState(VK_CONTROL)<0 then Include(Shift, ssCtrl);
if GetKeyState(VK_MENU)<0 then Include(Shift, ssAlt);
{if GetKeyState(VK_RCONTROL)<0 then begin
Include(Shift, mssCtrl); Include(Shift, mssRCtrl);
end;}
if Assigned(FOnDropUp) then FOnDropUp(Self, Shift);
ClosedWithMouse:=3D False;
end;

=A9tuPe http://stupe.jinde(tec)cz


> Mam TComboBox, v udalosti OnDropDown nactu data,
> v udalosti OnSelect zjistuji zvolenou polozku (resp. jestli
> se zadany text s necim shoduje). Pri rozbaleni kombiku
> se vyvola OnDropDown, nactou data (v tuto chvili je
> ItemIndex=3D-1), seznam se zobrazi a je zvolena polozka,
> ktera odpovida zadanemu textu (ItemIndex>=3D0),
> ale udalost OnSelect se nevyvolala a pokud se v seznamu
> nepohnu (tam a zpatky), tak se ani OnSelect nevyvola.
> Potreboval bych aby se volal vzdy (jindy se normalne
> vola) nebo alespon neco jako OnAfterDropDown, ktere
> se bude volat jiz s nastavenym ItemIndex.
>
> Diky
> Daniel
> -------------------------------------------------------
> Scanning complete: NO intelligent life form in range.
>
>

QuickReport vs. Graf v zostave

[*] Robert Suska <SuskaR(zv)seznam(tec)cz> - 29.1.2003 13:56:50

Ahoj!

Mam D7 Ent. a neviem ci som slepy alebo co :) ale ja tam ziadnu komponentu
na liste QuckReport v paneli nastrojov nemam, mam aktivovany QuickReport ale
komponenta na graf mi tam chyba????

Robo

************************************
Robert Suska
KORAK SLOVAKIA s.r.o.
Horna 52
974 01 Banska Bystrica
www.korak.sk robert(zv)korak.sk
Network administrator, Delphi programmer
************************************

Mas na mysli jak? Dat do QuickReportu je jednoduche, proste no spravneho
bandu vlozis qrchart (snad se ta kompoinenta tak jmenuje) a pracujes s nim,
jako s beznym grafem - Chart.
Lukas Rumcajs Weiss

QuickReport vs. Graf v zostave

[*] Rumcajs-konfera <konfera(zv)rumcajs(tec)com> - 29.1.2003 14:05:08

Mas na mysli jak? Dat do QuickReportu je jednoduche, proste no spravneho
bandu vlozis qrchart (snad se ta kompoinenta tak jmenuje) a pracujes s ni=
m,
jako s beznym grafem - Chart.
Lukas Rumcajs Weiss
> Ahojte!
>
> Vie mi niekto poradit ako sa da do tlacovej zostavy hodit graf?
>
> Dakujem
>
> Robo
>
---
Odchoz=ED zpr=E1va neobsahuje viry.
Zkontrolov=E1no antivirov=FDm syst=E9mem AVG (http://www.grisoft(tec)cz).
Verze: 6.0.449 / Virov=E1 b=E1ze: 251 - datum vyd=E1n=ED: 27.1.2003

D6 a ORACLE

[*] KALUS Jozef <jozef.kalus(zv)spordat.sk> - 29.1.2003 14:29:55

hi,

vie mi nikto povedat ci je mozne z D6Prof pristupovat na DB Oracle (7
alebo 8) priamo bez dalsich doplnkov, alebo ak nie co vsetko k tomu
budem potrebovat?

dik

joka


Knihovna MIDAS.DLL - zapis v registrech

[*] Ondrej Kelle <O.Kelle(zv)digitalpublishing.de> - 29.1.2003 15:40:33

> Mam dotaz ohledne knihovny MIDAS.DLL. Jak se do registru
> dostane cesta k teto knihovne?

Rovnako ako kazda standardna COM DLL, napriklad pomocou regsvr32 alebo
tregsvr v Demos\ActiveX.

> Konkretni pripad, ze ktereho vyplynul muj dotaz: na pocitac
> (server) v siti windows jsem do konkretniho adresare
> nainstaloval vlastni program a zaroven v tomto adresari byla
> knihovna MIDAS.DLL. Na jinem pocitaci v siti jsem
> nainstaloval klienta FireBird, nahral MIDAS.DLL do adresare
> c:\windows\system a pres okolni pocitace jsem spustil ze
> serveru muj program. V okamziku, kdy jsem na serveru presunul
> program do jineho adresare a puvodni zrusil, zjistil jsem na
> stanici, ze v registrech je cesta ke knihovne midas.dll ne
> c:\windows\system, ale \\server\muj_adresar\ Myslim si
> spravne, ze je to tim, ze program si vzal knihovnu ze
> spousteciho adresare (protoze tam byla) a s touto cestou
> zaregistroval odpovidajici tridy do registru?
> A jak se da nejak jednoduse v registrech tato cesta zmenit?

Napriklad preregistrovanim pomocou horeuvedenych nastrojov.

Este poznamka pre pripad, ak o tom nevies, v Delphi 7 je mozne linkovat
priamo s unitou MidasLib; midas.dll potom nie je potrebna.

HTH
TOndrej


Instalace Delphi

[*] Jiri Sedivec <jsedivec(zv)mail(tec)cz> - 29.1.2003 16:05:40

Pouzivate nekdo dva systemy na jednom PC? Jde mi o to, zda pro kazdy system
instalujete nove Delphi nebo to lze delat jinak?

Jiri

Zaznam do registrov

[*] ing. Jan Fiala <jan.fiala(zv)iol(tec)cz> - 29.1.2003 17:50:45

HKEY_CURRENT_USER si muzes predstavit jako zvlastni soubory pro
kazdeho uzivatele. Vzdy se otevre jen ten prislusny.
Kdyz se podivas do HKEY_USERS, uvidis tam zaznamy jednotlivych
uzivatelu. Takze urcitym resenim je zapsat to vsem uzivatelum.

--
Jan Fiala
mailto:jan.fiala(zv)iol(tec)cz

29.1.2003 Plexo:
> Zdravim,
> mam nasledovny problem:
> Potrebujem do registrov pridat zaznam a to konkretne do
> casti HKEY_CURRENT_USER, ale problem je v tom, ze
> tento zaznam musi byt pristupny pre vsetkych useroch
> v systeme. Viem, ze na globalne zaznamy mam pouzit
> HKEY_LOCAL_MACHINE, ale software, pre ktory to spracuvavam
> berie iba HKEY_CURRENT_USER. Existuje moznost ako v ramci
> jednej instalacie vytvorit zaznam do HKEY_CURRENT_USER pre
> vsetkych uzivateloch v systeme?

Instalace Delphi

[*] Dalibor Toman <dtoman(zv)fortech(tec)cz> - 29.1.2003 18:03:53



> Pouzivate nekdo dva systemy na jednom PC? Jde mi o to, zda pro kazdy
system
> instalujete nove Delphi nebo to lze delat jinak?

Pokud mas vic OS v multibootu, pak bud musis mit nejakou spolecnou
particii nebo sitovy disk na kterem mas delphi instalovany. Naposled
jsem to zkousel u D5 a chodilo to. Jen je treba misto plne instalace
na tom druhem systemu spustit 'registraci' (nevim jak se to presne
jmenuje - proste by to melo jen provest zapisy do registru a nahrat
nejake soubory, ktere nejsou v globalnim adresari instalace delphi.
Tusim, ze jsem musel jeste kopirovat nejaky DLLka, ktery chybely....


D. Toman

OT: prosba k uzivatelum C++ Buildera

[*] Leos Urban <Leos.Urban(zv)iol(tec)cz> - 29.1.2003 18:24:47

Ahoj,
mam rozpracovane ceske trideni pro UNICODE sadu ve FB. Pod Linuxem mi to
funguje (respektive jen ta cast, co je hotova). Problem je, ze pod Windows
mi vysledna DLL, uspesne prelozena pomoci freewaroveho BCC55, nefunguje (FB
ji otevre ale trideni nenajde).
Potreboval bych to prelozit pod C++ Builderem (verzi tam nepisou).
Hlavni rozdil vidim v tom, ze ve vzorovem makefile odkazuji tlink32 a ja mam
"jen" ilink32 a musel jsem vyhodit "-w-inq" (coz je ale jen nejaky warning).
Mne nefunguje ani ten vzor z Collation SDK (z te vychazim), takze se nemam o
co oprit.
Pokud muzete (a chcete) pomoci, poslete mi mail a ja Vam poslu ten zdrojak s
makefilem.
Jde mi jen o to, abych mel jistotu, ze to bude fungovat a nepsal to jen pro
Linux.
Pokud by mel nekdo zajem o jinou spolupraci v teto veci, bude vitan. Prace
jsou na zacatku ale zatim to vypada nadejne /ovsem neplanuji ctyrpruchodovy
tridici algoritmus s odhadovanim vyznamu/ ;-)
Mimochodem, neni uz to nekde hotove? :-)))
Diky
Leos

MSSQL a ROWTERMINATOR=#10

[*] Jakub Martinek <listbox(zv)vakmb(tec)cz> - 29.1.2003 18:33:30

Ja radeji pouzivam sp_addlinkedserver.

>
> Zdravim.
> Potrebuju pomoci MSSQL nacist do tabulky radek po radku data
> z textoveho
> souboru.
>

D6 a ORACLE

[*] Jan Sebel�k <honza(zv)haes(tec)cz> - 29.1.2003 19:06:45

> Odes=EDlatel: KALUS Jozef <jozef.kalus(zv)spordat.sk>
> vie mi nikto povedat ci je mozne z D6Prof pristupovat na DB Oracle (7
> alebo 8) priamo bez dalsich doplnkov, alebo ak nie co vsetko k tomu
> budem potrebovat?

ADO
Signaly od ucastniku skoleni: je to pruchodne reseni

Honza
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
=3D HAES - RNDr. Jan Sebelik
=3D http://www.haes(tec)cz
=3D Skolici a konzultacni stredisko pro Delphi a Win32
=3D Vojtiskova 206
=3D 507 81 Lazne Belohrad
=3D tel. 493 792 931 (mobil 776 347735)
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D


Nove Vlakno

[*] <kuba.zubaty(zv)centrum(tec)cz> - 29.1.2003 21:33:13

Ahoj,=20
poradil by mi nedko, jak vytvorit nove vlakno.
Potrebuji to pro dlouhy vypocet a chci aby uzivatelske okno=20
reagovalo...

Diky Kuba

--------------------
NOVINKA na Centrum(tec)cz SMS! Nahrajte si nov=E9 logo a vyzv=E1n=ECn=ED na=
V=E1=B9 mobiln=ED telefon! http://sms.centrum(tec)cz/loga


Nove Vlakno

[*] Jan Sebel�k <honza(zv)haes(tec)cz> - 29.1.2003 21:42:53

Odes=EDlatel: kuba.zubaty(zv)centrum(tec)cz
poradil by mi nedko, jak vytvorit nove vlakno.
Potrebuji to pro dlouhy vypocet a chci aby uzivatelske okno=20
reagovalo...

File / New / Thread

Do metody Execute napises, co se ma delat.
Musis si ale dat pozor na vsechno, co se thready souvisi:

- kriticke sekce
- pouzivani thread-safe komponent
- synchronize s hlavnim threadem
...

Honza
viz nas kurz Delphi - pokrocile techniky
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
=3D HAES - RNDr. Jan Sebelik
=3D http://www.haes(tec)cz
=3D Skolici a konzultacni stredisko pro Delphi a Win32
=3D Vojtiskova 206
=3D 507 81 Lazne Belohrad
=3D tel. 493 792 931 (mobil 776 347735)
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D


ADOStoredProc vs. MS SQL stored proc

[*] Blazek Jaroslav <Jaroslav.Blazek(zv)access-it(tec)cz> - 29.1.2003 22:10:14

Ahoj,

na MSSQL mam stored proceduru, ktera dela asi tohle...

INSERT Tabulka ....
(SELECT ... WHERE NOT EXIST(...))

UPDATE Tabulka SET ...
FROM (SELECT ...)
WHERE ...

+ dalsi vecicky

v QA funguje vsechno jak vino, ale jakmile ji napojim na ADOStoredProc, =
tak INSERT se provede, ale na UPDATE se uplne vykasle...

potom jsem pustil procedurku v ADOQuery (exec MojeProc Parametry) a =
vsechno probehlo v pohode...

co provadi ADOStoredProc, ze se neprovede ten UPDATE ??
INSERT i UPDATE je na stejnou tabulku
je potreba neco u ADOStoredProc nastavit...??

MSSQL 7, 2k - D5 SP2 - W2k SP3


S pozdravem

Bc. Jaroslav Blazek
Access-IT Ceska Lipa
mailto:jaroslav.blazek(zv)access-it(tec)cz
http://www.access-it(tec)cz
ICQ# : 133673990
+420605/813644

13h a serivy port pres synaser

[*] Vladimir Bures <bures(zv)ssakhk(tec)cz> - 29.1.2003 22:16:52

Ahoj konference, mam takovy problemek ktery me zaskocil mam program ktery
prijima data ze serioveho portu, pouzivam k tom unitu synaser.pas ze Synapse
(mam ji ze vsech co jsem zkousel najradeji) ale kdyz je na port poslan znak
13h (ascii 19) tak ten znak neprijde (je preskocen) a prijde mi dalsi znak
tudiz se mi vsechno o jeden bajt posune... nevi nekdo v cem je zakopany pes
? k prijmu pouzivam funkci RecvByte()

Dekuji za vsektere rady a namety Vlada

13h a serivy port pres synaser

[*] Petr Fejfar <development(zv)callnet(tec)cz> - 29.1.2003 22:31:21

From: "Vladimir Bures" <bures(zv)ssakhk(tec)cz>

> je na port poslan znak
> 13h (ascii 19) tak ten znak neprijde (je preskocen) > a prijde mi dalsi
znak
> tudiz se mi vsechno o jeden bajt posune...
> nevi nekdo v cem je zakopany pes
> ? k prijmu pouzivam funkci RecvByte()

Mas zapnuty SW handshake tzn. ze kody DC1=17h a DC3=19h jsou interpretovany
jako XON resp. XOFF.

Nepouzivam Synaser, ale najdi si, jak tam upravit rezim serioveho kanalu a
tam ten SW handshake vypni.

HTH, pf

13h a serivy port pres synaser

[*] Petr Fejfar <development(zv)callnet(tec)cz> - 29.1.2003 22:33:40

From: "Petr Fejfar" <development(zv)callnet(tec)cz>

> Mas zapnuty SW handshake tzn. ze kody DC1=17h
> a DC3=19h jsou interpretovany
> jako XON resp. XOFF.

Sorry, uz blbnu - ty kody jsou samozrejme desitkove 17 a 19.

pf

Nove Vlakno

[*] ing. Jan Fiala <jan.fiala(zv)iol(tec)cz> - 30.1.2003 06:05:23

Podivej se do Helpu na TTHread.Create Jsou tam snadno pochopitelne priklady
na par radku.

--
Jan Fiala
mailto:jan.fiala(zv)iol(tec)cz

29.1.2003 kuba.zubaty(zv)centrum(tec)cz:
> Ahoj,
> poradil by mi nedko, jak vytvorit nove vlakno.
> Potrebuji to pro dlouhy vypocet a chci aby uzivatelske okno
> reagovalo...

13h a serivy port pres synaser

[*] Lukas Gebauer <gebylist(zv)mlp(tec)cz> - 30.1.2003 07:55:50

> Mas zapnuty SW handshake tzn. ze kody DC1=17h a DC3=19h jsou
> interpretovany jako XON resp. XOFF.
> Nepouzivam Synaser, ale najdi si, jak tam upravit rezim serioveho
> kanalu a tam ten SW handshake vypni.

Je to jeden z parametru metody Connect. ;-)

-- Lukas Gebauer.

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

QuickReport vs. Graf v zostave - VYRIESENE

[*] Robert Suska <SuskaR(zv)seznam(tec)cz> - 30.1.2003 08:14:12

Ahojte!

> Vie mi niekto poradit ako sa da do tlacovej zostavy hodit graf? D7 Ent.

Bolo treba iba nainstalovat balicek v menu Component -> Install Packages...
a ten balik sa vola dcltqr70.bpl tot vsjo :)

Robo

************************************
Robert Suska
KORAK SLOVAKIA s.r.o.
Horna 52
974 01 Banska Bystrica
www.korak.sk robert(zv)korak.sk
Network administrator, Delphi programmer
************************************

Instalace Delphi

[*] Pavel ZIDEK <delphi(zv)kopr(tec)cz> - 30.1.2003 09:37:18

Na jednom stroji lze provozovat vice Delphi, pochopitelne se musi kazde
zvlast instalovat.
Ja takhle mam D4prof a D6prof.

Poznamka: spolecne knihovny je mit lepe v samostatnych adresarich, protoze
se mohou hadat nakompilovane knihovky.
pavel


Pouzivate nekdo dva systemy na jednom PC? Jde mi o to, zda pro kazdy system
instalujete nove Delphi nebo to lze delat jinak?

Jiri

IIS meta base

[*] Vymazal Milan <vymazal.milan(zv)seznam(tec)cz> - 30.1.2003 10:39:58

Zdravim

potrboval bych vyexportovat nastaveni IIS z meta base a zase do tohoto
nastaveni zapisovat. Menit hodnoty a pridavat nove koreny. Neskousel s
tim nekdo pracovat... ??

Diky moc by mi to pomohlo

--
Best regards,

Milan Vymazal
Delphi 7 Enterprise, Windows 2000 SP3 Proff, IE 6.0sp1 with all sp

Prace s objekty pouzivajici rozhrani

[*] Marek Eichler <marek.eichler(zv)seznam(tec)cz> - 30.1.2003 11:00:43

Zdravim,

chtel bych se zeptat, zda nasledujici priklad pouziti rozhrani je spravny a
zarucuje mi bezproblemovy chod a hlavne uvolneni veskere pameti pro
nasledujici pripad.
V aplikaci budou ruzne objekty implementovat jedno rozhrani. Nejprve
vytvorim tyto objekty (jednotlive moduly aplikace) a pak pridam jejich
rozhrani do globalniho objektu s promennou typu IInterfaceList. Az uz nebudu
tu promennou typu IInterfaceList potrebovat, vymazu ji (Clear) a pak si
postupne uvolnim vsechny objekty.

V prikladu neni pouzita ta promenna IInterfaceList, protoze ta pocita
reference pri naplneni jednotlivymi rozhranimi FIFirstClass, FIsecondClass a
FIThirdClass a pri Clear spravne. Spise mi jde o to jsetli postuuju dobre
pri vytvoreni a odstraneni objektu implementujicich nejake rozhrani.

type
//implementovane rozhrani
ITestIntf = interface
['{C0AB4B3B-E227-433D-AF13-5F86163B7FAB}']
procedure ShowMessageInfo; stdcall;
end;

//tridy implementujici ITestIntf
TFirstClass = class( TInterfacedObject, IInterface, ITestIntf )
private
FRefCount: Integer;

function IInterface._AddRef = _AddRef;
function IInterface._Release = _Release;

function _AddRef: Integer; stdcall;
function _Release: Integer; stdcall;
public
class function NewInstance: TObject; override;
procedure ShowMessageInfo; stdcall;
end;

TSecondClass = class( TInterfacedObject, IInterface, ITestIntf )
... //to same co u TFirstClass
end;

TThirdClass = class( TInterfacedObject, IInterface, ITestIntf )
... //To same co u TFirstClass
end;

TForm1 = class( TForm )
BT_CreateClasses: TButton;
BT_TestInterface: TButton;
BT_DestroyClasses: TButton;
procedure BT_CreateClassesClick( Sender: TObject );
procedure BT_TestInterfaceClick( Sender: TObject );
procedure BT_DestroyClassesClick( Sender: TObject );
private
FFirstClass: TFirstClass;
FSecondClass: TSecondClass;
FThirdClass: TThirdClass;

FIFirstClass: ITestIntf;
FISecondClass: ITestIntf;
FIThirdClass: ITestIntf;
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

//TFirstClass

procedure TFirstClass.ShowMessageInfo;
begin
ShowMessage( 'TFirstClass' );
end;

function TFirstClass._AddRef: Integer;
begin
Result := InterlockedIncrement( FRefCount );
end;

function TFirstClass._Release: Integer;
begin
Result := InterlockedDecrement( FRefCount );
if Result = 0 then
Destroy;
end;

class function TFirstClass.NewInstance: TObject;
begin
Result := inherited NewInstance;
TFirstClass( Result ).FRefCount := 1;
end;

//pro ostatni tridy je to v podstate stejne

//TForm1

procedure TForm1.BT_CreateClassesclick( Sender: TObject );
begin
FFirstClass := TFirstClass.Create; //RefCount = 1
FSecondClass := TSecondClass.Create; //RefCount = 1
FThirdClass := TThirdClass.Create; //RefCount = 1

FIFirstClass := ITestIntf( FFirstClass ); //RefCount = 2
FISecondClass := ITestIntf( FSecondClass ); //RefCount = 2
FIThirdClass := ITestIntf( FThirdClass ); //RefCount = 2
end;

procedure TForm1.BT_DestroyClassesClick( Sender: TObject );
begin
FIFirstClass := nil; //RefCount = 1
FISecondClass := nil; //RefCount = 1
FIThirdClass := nil; //RefCoutn = 1

FFirstClass.Free;
FSecondClass.Free;
FThirdClass.Free;
end;

procedure TForm1.BT_TestInterfaceClick(Sender: TObject);
begin
( FIFirstClass ).ShowMessageInfo;
( FISecondClass ).ShowMessageInfo;
( FIThirdClass ).ShowMessageInfo;
end;

end.

Uf, snad je to pochopitelne. Za kazde nakopnuti diky.

S pozdravem Marek Eichler

zobrazeni formu stylem fsStayOnTop

[*] cipel.m(zv)mister(tec)cz - 30.1.2003 11:42:29



Dobry den,

z Formu1 zobrazuji Form2 pomoci Form2.Show. Form2 ma nastaven FormStyle na
fsStayOnTop. Lze nejak zaridit aby po zobrazeni Formu2 Form1 neztratil fokus ?


M. Cipel

Prace s objekty pouzivajici rozhrani

[*] Ondrej Kelle <O.Kelle(zv)digitalpublishing.de> - 30.1.2003 11:58:24

> chtel bych se zeptat, zda nasledujici priklad pouziti
> rozhrani je spravny a zarucuje mi bezproblemovy
> chod a hlavne uvolneni veskere pameti pro
> nasledujici pripad.

Zbytocne reimplementujes IInterface, vid nizsie.

> V aplikaci budou ruzne objekty implementovat jedno rozhrani. Nejprve
> vytvorim tyto objekty (jednotlive moduly aplikace) a pak pridam jejich
> rozhrani do globalniho objektu s promennou typu IInterfaceList. Az uz
> nebudu tu promennou typu IInterfaceList potrebovat, vymazu ji (Clear)
> a pak si postupne uvolnim vsechny objekty.

Ak pouzijes TInterfaceList potom uz pri zavolani Clear sa objekty uvolnuju
automaticky.

> type
> //implementovane rozhrani
> ITestIntf = interface
> ['{C0AB4B3B-E227-433D-AF13-5F86163B7FAB}']
> procedure ShowMessageInfo; stdcall;
> end;
>
> //tridy implementujici ITestIntf
> TFirstClass = class( TInterfacedObject, IInterface, ITestIntf )
> private
> FRefCount: Integer;
>
> function IInterface._AddRef = _AddRef;
> function IInterface._Release = _Release;
>
> function _AddRef: Integer; stdcall;
> function _Release: Integer; stdcall;
> public
> class function NewInstance: TObject; override;
> procedure ShowMessageInfo; stdcall;
> end;

To je zbytocne, staci ak zdedis od TInterfacedObject, tam je to uz hotove:

type
TFirstClass = class(TInterfacedObject, ITestInterface)
procedure ShowMessageInfo; stdcall;
end;

> TForm1 = class( TForm )
[snip]
> private
> FFirstClass: TFirstClass;
> FSecondClass: TSecondClass;
> FThirdClass: TThirdClass;
>
> FIFirstClass: ITestIntf;
> FISecondClass: ITestIntf;
> FIThirdClass: ITestIntf;
> public
> { Public declarations }
> end;

Toto Ti prave neodporucam. Drzis si odkaz na instanciu triedy a zaroven na
jej interface. Moze sa stat, ze trieda sa vdaka reference counting uvolni a
odkaz na triedu bude tym padom neplatny.

[snip]

TForm1 = class(TForm)
...
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject); private
FList: TInterfaceList;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
FList := TInterfaceList.Create;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
FList.Free;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
if FList.Count > 0 then
Exit;
FList.Add(TTest1.Create);
FList.Add(TTest2.Create);
FList.Add(TTest3.Create);
end;

procedure TForm1.Button2Click(Sender: TObject);
var
I: Integer;
begin
for I := 0 to FList.Count - 1 do
(FList[I] as ITestIntf).ShowMessageInfo;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
FList.Clear;
end;

HTH
TOndrej


zobrazeni formu stylem fsStayOnTop

[*] Marek Eichler <marek.eichler(zv)seznam(tec)cz> - 30.1.2003 13:05:22

Zdravim,

> z Formu1 zobrazuji Form2 pomoci Form2.Show. Form2 ma nastaven FormStyle
na
> fsStayOnTop. Lze nejak zaridit aby po zobrazeni Formu2 Form1 neztratil
fokus ?
Nema u sebe Delphi, ale mohlo by fungovat tohle

procedure TForm1.Buton1Click( Sender: TObject );
begin
FForm2 := TForm2.Create( Self );
try
FForm2.Show;
SetFocus; //nastavim focus na Form1
except
//osetreni chyby
end;
end;

>
> M. Cipel
>
S pozdravem Marek Eichler

Vypocty

[*] Dalibor <dalibor(zv)torola(tec)cz> - 30.1.2003 13:08:33

Ahoj,
nemate nekdo zpracovane vypocty na rychlost, vzdalenost, atd. ze
zemepisnych souradnic. Dekuji...

Prace s objekty pouzivajici rozhrani

[*] Jan Sebel�k <honza(zv)haes(tec)cz> - 30.1.2003 13:36:48

> Odes=EDlatel: Marek Eichler <marek.eichler(zv)seznam(tec)cz>
> P=F8edm=ECt: Prace s objekty pouzivajici rozhrani

Myslim, ze to mas (snad) dobre, jenom zbytecne slozite (podle meho =
soudu)
Jak bych to resil ja - viz nize (pisu z hlavy)

Honza
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
=3D HAES - RNDr. Jan Sebelik
=3D http://www.haes(tec)cz
=3D Skolici a konzultacni stredisko pro Delphi a Win32
=3D Vojtiskova 206
=3D 507 81 Lazne Belohrad
=3D tel. 493 792 931 (mobil 776 347735)
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
(kurzy Vicevrstve aplikace, COM/DCOM)

> type
> //implementovane rozhrani
> ITestIntf =3D interface
> ['{C0AB4B3B-E227-433D-AF13-5F86163B7FAB}']
> procedure ShowMessageInfo; stdcall;
> end;
>=20
> TAnyClass =3D class (TInterfaceObject, ITestIntf)
> protected
> procedure ShowMessageInfo; stdcall; virtual; abstract; =20
> // tady z hlavy nevim to poradi stdcall; virtual; abstract; =20
> end;
>
> //tridy implementujici ITestIntf
> TFirstClass =3D class(TAnyClass)=20
> protected
> procedure ShowMessageInfo; stdcall; override;=20
> end;
>=20
> TSecondClass =3D class(TAnyClass)
> procedure ShowMessageInfo; stdcall; override;=20
> end;
>=20
> TThirdClass =3D class(TAnyClass)
> procedure ShowMessageInfo; stdcall; override;=20
> end;
>=20
> TForm1 =3D class( TForm )
> BT_CreateClasses: TButton;
> BT_TestInterface: TButton;
> BT_DestroyClasses: TButton;
> procedure BT_CreateClassesClick( Sender: TObject );
> procedure BT_TestInterfaceClick( Sender: TObject );
> procedure BT_DestroyClassesClick( Sender: TObject );
> private
> FIFirstClass: ITestIntf;
> FISecondClass: ITestIntf;
> FIThirdClass: ITestIntf;
> public
> { Public declarations }
> end;
>=20
> var
> Form1: TForm1;
>=20
> implementation
>=20
> {$R *.dfm}
>=20
> //TFirstClass
>=20
> procedure TFirstClass.ShowMessageInfo;
> begin
> ShowMessage( 'TFirstClass' );
> end;
> //pro ostatni tridy je to v podstate stejne
>=20
> //TForm1
>=20
> procedure TForm1.BT_CreateClassesclick( Sender: TObject );
> begin
> FIFirstClass :=3D ITestIntf( TFirstClass.Create);=20
> // nebo TFirstClass.Create as ITestIntf ???
> FISecondClass :=3D ITestIntf(TFSecondClass.Create);=20
> FIThirdClass :=3D ITestIntf(TThirdClass.Create); =20
> end;
>=20
> procedure TForm1.BT_DestroyClassesClick( Sender: TObject );
> begin
> FIFirstClass :=3D nil; =20
> FISecondClass :=3D nil;=20
> FIThirdClass :=3D nil; =20
> end;
>=20
> procedure TForm1.BT_TestInterfaceClick(Sender: TObject);
> begin
> FIFirstClass.ShowMessageInfo;
> FISecondClass.ShowMessageInfo;
> FIThirdClass.ShowMessageInfo;
> end;
>=20
> end.
>=20
> Uf, snad je to pochopitelne. Za kazde nakopnuti diky.

Snad jsem to pochopil

Vypocty

[*] Petr Brant <brant(zv)dcomm(tec)cz> - 30.1.2003 13:57:37

Pouzivam toto (musis dat do uses math.pas):

type
TDoublePoint =3D record
x, y: double
end;

function VzdalPrima2Body (Coord1, Coord2: TDoublePoint): double;
{ vzdalenost mezi dvema body v km, vlozeno v radianech }
var x: double;
begin
x:=3D
cos(Coord1.y)*cos(Coord2.y)+sin(Coord1.y)*sin(Coord2.y)*cos(Coord1.x-Coo=
rd2.
x);
if x>1 then x:=3D 1;
if x<-1 then x:=3D -1;
Result:=3D arccos(x)*CPolomerZemekoule;
end;

RNDr. Petr Brant [brant(zv)dcomm(tec)cz]=20
http://web.redbox(tec)cz/petr.brant

D&COMM s.r.o.
Korunova=E8n=ED 6
Praha 7
tel. +420724007234


Subject: Vypocty

nemate nekdo zpracovane vypocty na rychlost, vzdalenost, atd. ze=20
zemepisnych souradnic.=20


RichEdit a font

[*] Libor Filip <filip(zv)agrokonzulta(tec)cz> - 30.1.2003 14:23:42

A kde bych mohl TRichEdit z RX komponent najit?
A je ta komponenta free?

Libor



zkus TRichEdit z RX komponent, nam se ten prechod
velice osvedcil. Pred tim jsme meli podobne problemy.

Jarek U.

RichEdit a font

[*] Valenta P <valentapat(zv)volny(tec)cz> - 30.1.2003 14:36:51

Pomohl mi mail uz nevim od koho, ze MS SAN SERIF neni font nebo jak to by=
lo.

Dal sem tam default Arial a je to bez problemu.
mimochodem uz nechci RX ani videt, jenom problemy.

----- Original Message -----

> A kde bych mohl TRichEdit z RX komponent najit?
---
Odchoz=ED zpr=E1va neobsahuje viry.
Zkontrolov=E1no antivirov=FDm syst=E9mem AVG (http://www.grisoft(tec)cz).
Verze: 6.0.449 / Virov=E1 b=E1ze: 251 - datum vyd=E1n=ED: 27.1.2003

Prace s objekty pouzivajici rozhrani

[*] Marek Eichler <marek.eichler(zv)seznam(tec)cz> - 30.1.2003 14:40:30

Zdravim,

----- P�vodn� zpr�va -----
Od: "Jan Sebel�k" <honza(zv)haes(tec)cz>
Komu: <delphi-l(zv)clexpert(tec)cz>
Odesl�no: 30. ledna 2003 13:36
P�edm�t: Re: Prace s objekty pouzivajici rozhrani


>Myslim, ze to mas (snad) dobre, jenom zbytecne slozite (podle meho soudu)
>Jak bych to resil ja - viz nize (pisu z hlavy)

Zbytecne slozite to neni, protoze jsem se zapomel zninit, ze objekty
implementujici to rozhrani mohou mit libovolneho predke (TFrame, TForm,
... ) a pak je to podle me v poradku. Pokud bych mel pouze jednoho
spolecneho predka, tak to tvoje reseni je urcite vhodnejsi

S pozdravem Marek Eichler

>Honza
>=========================================
>= HAES - RNDr. Jan Sebelik
>= http://www.haes(tec)cz
>= Skolici a konzultacni stredisko pro Delphi a Win32
>= Vojtiskova 206
>= 507 81 Lazne Belohrad
>= tel. 493 792 931 (mobil 776 347735)
>=========================================
>(kurzy Vicevrstve aplikace, COM/DCOM)

Prace s objekty pouzivajici rozhrani

[*] Jan Sebel�k <honza(zv)haes(tec)cz> - 30.1.2003 16:24:18

> Odes=EDlatel: Marek Eichler <marek.eichler(zv)seznam(tec)cz>
> Zbytecne slozite to neni, protoze jsem se zapomel zninit, ze objekty
> implementujici to rozhrani mohou mit libovolneho predke (TFrame, =
TForm,

No jo, to je v=BEdycky blb=FD, kdy=BE pot=F8ebujeme n=ECco nau=E8it =
v=EDce objekt=F9 a nem=F9=BEeme to p=F8itom u=E8it =BE=E1dn=E9ho jejich =
spole=E8n=E9ho p=F8edka (TControl, TWinControl, TCustomForm, ...).

Honza
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
=3D HAES - RNDr. Jan Sebelik
=3D http://www.haes(tec)cz
=3D Skolici a konzultacni stredisko pro Delphi a Win32
=3D Vojtiskova 206
=3D 507 81 Lazne Belohrad
=3D tel. 493 792 931 (mobil 776 347735)
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D


Uvolnovani class a interface

[*] Roman Macura <delphi(zv)atlascon(tec)cz> - 30.1.2003 17:10:51

Ahoj vsichni,
kteri jste mi pomahali resit tento problem (predevsim Radim Kunz, O.Kelle).

Cely pruser byl jen v tom, ze TXMLParser nemel implementovan destructor
Destroy.
V nem je nutne nastavit na nil veskere interni interface, ktere trida
pouziva.
Kdyz se to neudela, tak se nedekrementuje refcount,
Win2000 si s tim nejak umi poradit, ale Win95/98 ne.

Takze jestli nekdo pouzivate tento TXMLParser a budete jej spoustet pod
Win95/98, doplnte si

destructor TXMLParser.Destroy
begin
Locator:=nil;
Writer:=nil;
Reader:=nil;
inherited Destroy;
end;


----- Original Message -----
From: "Ondrej Kelle" <O.Kelle(zv)digitalpublishing.de>
To: <delphi-l(zv)clexpert(tec)cz>
Sent: Thursday, January 09, 2003 3:30 PM
Subject: RE: Uvolnovani class a interface


> > Pokud jsem prispevky v teto diskuzi dobre pochopil, tak by mi
> > melo stacit do teto tridy doplnit metody _AddRef, _Release a
> > QueryInterface. Je to tak?
>
> To sa neda z tych kuskov kodu presne zistit.
> Pripada mi to tak, ze ta trieda implementuje nejake interfacy s tym, ze
tie
> implementacie jednoducho deleguju volania metod externym objektom. Ak ma
byt
> ucelom zjednodusenie, ako si pisal, potom je ta trieda zrejme myslena na
> pouzitie ako komponenta, odkazom na triedu a nie na interface. Ak je potom
> ten komponent vzdy pouzivany odkazom na triedu, potom tam to reference
> counting ani nie je potrebne.
> Problem ale moze nastat, ak sa k tej triede zaroven pristupuje odkazom na
> interface, a to moze byt dokonca aj v kode tej samotnej triedy. V tom
> pripade by mohlo snad pomoct reimplementovat IUnknown a delegovat volania
> jeho metod tomu externemu objektu.
> Obavam sa, ze bez kompletneho kodu a pochopenia spravnej prace s tymi
> konkretnymi interfacemi Ti asi nikto nema sancu pomoct.
>
> TOndrej
>

Interpose classes (was Prednastaveni noveho formu

[*] Petr Fejfar <development(zv)callnet(tec)cz> - 30.1.2003 18:02:29

From: "Jiri Foldyna" <jiri.f(zv)avizo(tec)cz>

> Ale delat jich 10 nebo vice jen kvuli takove
> drobnosti... Moc nechybelo a byl bych sahl do
> TControl :-))
> Ale nechme to, nejde to, je treba se s tim
> smirit a najit jinou cesticku.

Jeste se vratim k principu spolecnych predku pro
vizualni komponenty.

Na NETu jsem nasel celkem chytrou myslenku
od Stephena Poseye, jak vsunout (interpose)mezi komponentu na formulari a
jeji predky
ve VCL vlastniho predka.


Dela se to takto:

* Vytvoris si unit pro predka, napr. MyStdCtrls

* V ni si nadefinujes predka spolecneho
pro standardni komponenty se stejnym (!)
jmenem, napr.

TEdit = class(stdctrls.TEdit)
...
end;

* V unit, kde pouzivas TEdit, doplnis do uses
klauzule svoji novou MyStdCtrls tak, aby
byla uvedena az za StdCtrls (!) resp. obecne
az za unit se standardni implementaci tridy

* Kdyz do vsech unit v projektu doplnis na vhodne
misto v klauzili uses novu unit na spravne misto,
muzes pak menit napr. vlastnosti vsech
TEdit z jedineho mista pro celu aplikaci.


HTH, pf

Interpose classes (was Prednastaveni noveho formu

[*] Danik Frantik <frantik(zv)telpro(tec)cz> - 30.1.2003 18:28:06

Ahoj,
A co si tim pomuzes? Pokud uz zasahujes do toho formulare (to musis abys
pridal neco do uses) tak uz je jednodussi zamenit TEdit za TMyEdit (Potomka
TEdit) a je to stejne a rozhodne pruhlednejsi. Mnohem vic potreba by bylo
vsunout neco mezi TWinControl a ostatni jeho VCL potomky (napr. TEdit), ale
takhle ani jinak to nejde (bez zasahu do unit VCL)...

Danik
-----Original Message-----
Na NETu jsem nasel celkem chytrou myslenku od Stephena Poseye, jak vsunout
(interpose)mezi komponentu na formulari a
jeji predky ve VCL vlastniho predka.

Dela se to takto:

* Vytvoris si unit pro predka, napr. MyStdCtrls

* V ni si nadefinujes predka spolecneho
pro standardni komponenty se stejnym (!)
jmenem, napr.

TEdit = class(stdctrls.TEdit)
...
end;

* V unit, kde pouzivas TEdit, doplnis do uses
klauzule svoji novou MyStdCtrls tak, aby
byla uvedena az za StdCtrls (!) resp. obecne
az za unit se standardni implementaci tridy

* Kdyz do vsech unit v projektu doplnis na vhodne
misto v klauzili uses novu unit na spravne misto,
muzes pak menit napr. vlastnosti vsech
TEdit z jedineho mista pro celu aplikaci.


HTH, pf

Interpose classes (was Prednastaveni noveho formu

[*] Petr Fejfar <development(zv)callnet(tec)cz> - 30.1.2003 18:38:34

From: "Danik Frantik" <frantik(zv)telpro(tec)cz>

> A co si tim pomuzes? Pokud uz zasahujes do toho
> formulare (to musis abys
> pridal neco do uses) tak uz je jednodussi
> zamenit TEdit za TMyEdit

Abys mohl zamenit TEdit za TMyEdit, tak si ho budes muset strcit na paletu,
abys s nim mohl plnohodnotne pracovat. A to IMHO rozhodne jednodussi neni.


Bye, pf

Uvolnovani class a interface

[*] Radim Kunz <privat(zv)casestudio(tec)com> - 30.1.2003 23:51:26


----- Original Message -----
From: "Roman Macura" <delphi(zv)atlascon(tec)cz>
To: <delphi-l(zv)clexpert(tec)cz>
Sent: Thursday, January 30, 2003 5:10 PM
Subject: Re: Uvolnovani class a interface


> Ahoj vsichni,
> kteri jste mi pomahali resit tento problem (predevsim Radim Kunz,
O.Kelle).
>
> Cely pruser byl jen v tom, ze TXMLParser nemel implementovan destructor
> Destroy.
> V nem je nutne nastavit na nil veskere interni interface, ktere trida
> pouziva.
> Kdyz se to neudela, tak se nedekrementuje refcount,
> Win2000 si s tim nejak umi poradit, ale Win95/98 ne.
>
> Takze jestli nekdo pouzivate tento TXMLParser a budete jej spoustet pod
> Win95/98, doplnte si
>
> destructor TXMLParser.Destroy
> begin
> Locator:=nil;
> Writer:=nil;
> Reader:=nil;
> inherited Destroy;
> end;
>

Ze to na w2k nepadalo je jenom vec nahody. W2k a XP maji
jen tu vyhodu, ze tenhle pad s sebou nevezme cely system.
Mozna ze nejaky stopy po padech na w2k najdes v event logu.

Radim

Registrace vlastniho formu s objekty

[*] Ing. Pavel �ilinec����)b����ȧ~�� - 31.1.2003 08:04:16

Sice jsem na dany subj jiz nasel neco v archivu, ale bohuzel mi to moc
nepomohlo.
Mam vlastni formular, ktery ma sve vlastnosti, udalosti a ma na sobe
objekty.
Kdyz prodam formular do repository, tak jej mohu pouzit jako Inherited
a mam tam vsechny objekty (take inherited), coz chci, ale nemam
dostupne zadne udalostu a vlastnosti toho formu v Object Inspector.
Kdyz form zaregistruji pomoci RegisterCustomModule(TMyExtForm,
TCustomModule), tak sice uvidim vsechny jeho nove vlastnosti a
udalosti, ale zase neni inherited a prichazim o vsechny na nem
vytvorene komponenty.
Nevite, jak zajistit, aby fungovalo oboji soucasne?

Diky

--------
ing. Pavel Zilinec
MailTo:zilinec(zv)email(tec)cz

Prog-Soft s.r.o. Plzen
Informacni system pro vyrobce
a distributory napoju

Komunikace pres IR port

[*] Tomas Grepl <delphi(zv)kapsw(tec)cz> - 31.1.2003 08:56:17

> nevite nahodou nekdo jak z windows 2000 komunikovat pres IR port.
> Konkretne mam sadu AT prikazu pro nokii ale bohuzel se s ni spojim jen
> z originalnich nokia programu.
> Z delphi jsem pouzil substituci COM portu ale njak to nefunguje.

W2000 a WXP maji jinak implementovanou komunikaci s IR portem a ta neni
kompatibilni s W98.

Mozna by slo vytvorit virtualni COM port (www.ircomm2k.de/English) a pak s
IR portem komunikovat pomoci seriove komunikace. Urcite vsak prestanou
fungovat originalni nokia programy pres IR (mozna by ale fungovali, pokud by
se taky presmerovali na COM).

Tomas

Indy, jak zjistit jmeno (IP) klienta?

[*] L. Filip <pilifs(zv)seznam(tec)cz> - 31.1.2003 10:31:07

Zdravim,
pouzivam Indy komponenty TIdTCPClient a TIdTCPServer.
Na serveru v udalosti OnConnect v komponente TIdTCPServer si do seznamu
pridavam pripojene connections. Problem je ze nevim jak zjistit jmeno
clienta.

Muzete nekdo poradit?
Diky

procedure TfmMainSrv.idSrvConnect(AThread: TIdPeerThread);
var cln: TClient;
begin
cln := TClient.Create(AThread);
cln.OnSending := ClnSend;

// tady bych chtel zjisti IP nebo jmeno

cln.Idx := lbxClients.Items.AddObject(*** ClientName *** + ' - ' +
cln.TimeConnectS,cln);
AThread.Data := cln;
try
Clients.LockList.Add(cln);
finally
Clients.UnlockList;
end;
end;

Uvolnovani class a interface

[*] Malecek Ondrej <ondrej.malecek(zv)radom-cz(tec)cz> - 31.1.2003 11:19:53

Nejsem si jist, ale doted jsem mel dojem, ze pokud rusim instanci objektu=
,
ktera interne drzi nejake interface, v okamziku, kdy na ne prestane
existovat odkaz (je zrusena instance objektu), provede se dekrementace
refcount. Nebo se pletu ??? Samozrejme, ze je asi pruhlednejsi uvolnovat
interface explicitne v destruktoru, ale jak je to teda doopravdy ??

O :-))

> -----P=F9vodn=ED zpr=E1va-----
> > Cely pruser byl jen v tom, ze TXMLParser nemel implementovan destruct=
or
> > Destroy.
> > V nem je nutne nastavit na nil veskere interni interface, ktere trida
> > pouziva.
> > Kdyz se to neudela, tak se nedekrementuje refcount,
> > Win2000 si s tim nejak umi poradit, ale Win95/98 ne.
> >
> > Takze jestli nekdo pouzivate tento TXMLParser a budete jej spoustet p=
od
> > Win95/98, doplnte si
> >
> > destructor TXMLParser.Destroy
> > begin
> > Locator:=3Dnil;
> > Writer:=3Dnil;
> > Reader:=3Dnil;
> > inherited Destroy;
> > end;

D6 a ORACLE

[*] Borkovec Software <info(zv)borkovec(tec)com> - 31.1.2003 12:07:51

Je mozno pouzit tez komponenty Atom (vyuzivaci OCI API). Jsou velmi
nenarocne a funkci a free.
Jestli chces, poslu Ti je, i se zdroji.
Roman


----- Original Message -----
From: "KALUS Jozef" <jozef.kalus(zv)spordat.sk>
To: <delphi-l(zv)clexpert(tec)cz>
Sent: Wednesday, January 29, 2003 2:29 PM
Subject: D6 a ORACLE


> hi,
>
> vie mi nikto povedat ci je mozne z D6Prof pristupovat na DB Oracle (7
> alebo 8) priamo bez dalsich doplnkov, alebo ak nie co vsetko k tomu
> budem potrebovat?
>
> dik
>
> joka
>

reset modemu, (port je jiz otevren)

[*] kevin33(zv)post(tec)cz - 31.1.2003 12:40:25

zdravim,

snazim se udelat napojovani na internet pres modem - pomoci
RasDial. funguje to celkem dobre az na tu vec ze kdyz pri
vytaceni cisla vytahnu telefonni kabel z modemu tak se modem
dostane do stavu ze na nem sviti kontrolka TR a spojeni se
pochopitelne nedeje. pri opetovnem volani RasDial je mi vracena
chyba Port je jiz otevren. a to se nezmeni az do restartu
pocitace. a ja bych potreboval vedet jak port opet do stavu aby
se dalo normalne vytacet? - neco jako reset modemu (pokud mozno
aby to fungovalo pro ruzne typy modemu)

dik


Uvolnovani class a interface

[*] Jan Sebel�k <honza(zv)haes(tec)cz> - 31.1.2003 12:40:39

> Odes=EDlatel: Malecek Ondrej <ondrej.malecek(zv)radom-cz(tec)cz>
> Nejsem si jist, ale doted jsem mel dojem, ze pokud rusim instanci =
objektu,
> ktera interne drzi nejake interface, v okamziku, kdy na ne prestane
> existovat odkaz (je zrusena instance objektu), provede se dekrementace
> refcount. Nebo se pletu ??? Samozrejme, ze je asi pruhlednejsi =
uvolnovat
> interface explicitne v destruktoru, ale jak je to teda doopravdy ??

Pises "se provede". Jak se provede?

inherited Destroy o tech interface nevi, takze je dozajista nezrusi.

Takze by je mel zrusit kompilator - podobne jako skryte generuje kod pro =
dealokaci pameti, pokud je polozkou tridy treba String.
Otazka je, zda to opravdu udela.

Soulasim s tebou, ze explicitni uvolneni pameti je pruhlednejsi.
Ale ono ani Interface:=3Dnil neni az tak pruhledne.
Je tam totiz skryto volani Interface._Release.

V I2:=3DI1 musi byt zase nejak skryto I2._AddRef.

Podobne=20
Interface:=3D CreateComObject(...) as IInterface neni "normalni =
pretypovani",=20
ale neco jako=20
C:=3DCreateComObject(...) ;
C.QueryInterface(InterfaceID, Interface)

Nemam rad, kdyz kompilator generuje takoveho "skryte" prikazy.
S tim ale nic nenadelame. Rucne bych to tam psat nechtel.

Honza
viz kurzy Vicevrstve aplikace, COM/DCOM
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
=3D HAES - RNDr. Jan Sebelik
=3D http://www.haes(tec)cz
=3D Skolici a konzultacni stredisko pro Delphi a Win32
=3D Vojtiskova 206
=3D 507 81 Lazne Belohrad
=3D tel. 493 792 931 (mobil 776 347735)
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D


OT: Nahravanie audia cez modem

[*] K�tele� J�n <Koteles(zv)lumen.sk> - 31.1.2003 13:33:00

Dobry den,

nechcem riesit uz raz vyriesenu vec a preto:

Chcem sa opytat ci nahodou niekto neriesil program na prijem sprav z
telefonnej linky cez modem, ktore by boli ukladane do pozadovaneho a =
neskor
externym program citatelneho audio suboru. Ak ano, je takyto produkt za
rozumnu cenu na predaj?

Presne by som si predtavoval asi taketo veci:
1. Zazvoni telefon
2. Pocitac-server zdvihne a povie: "dobry den, dovolali ste sa do
automatickeho ...bla bla bla.. PIIIIP"
3. Zacne nahravat
4. Nahravku (co najkvalitnejsie) si interne ulozi nejak, alebo este =
lepsie
na \\server\adresasnahravkami pod subor 310120030001.wav
5. A teraz specialita, ktora je casto mimo moznosti beznych PC =
odkazovacov:
Uzivatel si na klientskom pc nahravku prepocuje, a ulozi si ju ako =
audio
subor na svojom PC

Na vysvetlenie: tento program ma sluzit na nahravanie prispevkov od
externych spravodajcov v radiu. Je d=F4raz na kvalitu nahravky.

Odpovede prosim mimo konferenciu na koteles(zv)lumen.sk =20

Dakujem

J=E1n Koteles
spravca IT
Radio LUMEN, s.r.o.=20

=20


OT: WebArchiv konfy Delphi

[*] Alex Bugala <bugala_a(zv)post.sk> - 31.1.2003 21:13:21

Hi All,

na akej adrese najdem prispevky do konferencie Delfi vo webovom rozhrani?

Dakujem,
alex



________
Pocitacove hry? http://hry.sme.sk


OT: WebArchiv konfy Delphi

[*] Martin Falta <martin(zv)aprog(tec)cz> - 31.1.2003 21:21:41

Hello Alex,

http://www.delphi(tec)cz/konf.asp

Friday, January 31, 2003, 9:13:21 PM, you wrote:

AB> Hi All,

AB> na akej adrese najdem prispevky do konferencie Delfi vo webovom rozhrani?

AB> Dakujem,
AB> alex



AB> ________
AB> Pocitacove hry? http://hry.sme.sk



--
Best regards,
Martin mailto:martin(zv)aprog(tec)cz

InnoSetup a FB

[*] Ales Pavel <Aldik(zv)quick(tec)cz> - 1.2.2003 13:43:46

Ahoj da se nejak nastavit InnoSetup 3 tak aby se dala nainstalovat FB jako
server, vim ze je to prasecina bez vedomi uzivatele nainstalovat FB,tak bych
tam samozrejme chtel i dotaz zda naistalovat ano ci ne!
Muzete mi pripadne nekdo poslat ukazkovy iss script jak na to?

Dekuji moc....

PS:Clovek nemocny,39 horecky a stejne si nemuze pomoci,mzoura do monitoru
jednim vokem s hlavou naklonenou na jednu stranu,jak jen to pres uzliny
blokujici krk jde. Kontrolni otazka: NENI TO PSYCHOPAT??

Hezky den

Ales Pavel (PSYCHO??)
D6 Ent WXP
laik v profesionalnim kolotoci
http://talpa.chytrak(tec)cz/

Sinea generator 2002

[*] Viktor Marek <viktor(zv)mbox.vol(tec)cz> - 2.2.2003 20:22:32

Zdravim

Pri exportu sestavy do formatu *.rtf se sestava vyexportuje, ale soubor je
bez koncovky "rtf"

Pouzil jsem priklad popsany v dokumentaci. Jelikoz z dema chodi export
naprosto bez problemu, je mi jasne, ze jsem neco trapne prehledl, ale
netusim co. [Win2000, Delphi5 Profesional]

Diky za odpoved

Viktor Marek
viktor(zv)mbox.vol(tec)cz

Sinea generator 2002

[*] Vaclav Krmela <krmela(zv)ustinadorlici(tec)cz> - 2.2.2003 20:32:52

> From: Viktor Marek
>
> Pri exportu sestavy do formatu *.rtf se sestava vyexportuje,
> ale soubor je bez koncovky "rtf"

Funkce pro export do RTF souboru ma jedine dva parametry,
nazev adresare a souboru. Jaky nazev souboru je predan,
do toho se to ulozi. S koncovkou se nijak nemanipuluje.> Pouzil jsem priklad popsany v dokumentaci. Jelikoz z dema
> chodi export
> naprosto bez problemu, je mi jasne, ze jsem neco trapne prehledl,
> ale netusim co. [Win2000, Delphi5 Profesional]

V prikladu je toto:

var S: string;
...
S := ExtractFilePath(Application.ExeName)+'ExpRtf';
Sestava1.WritePagesToRtf(S, 'tmp.rtf');
ShellExecute(Handle, 'open', PChar(S+'\tmp.rtf'), '', '', sw_Show);

Pozadovana koncovka musi byt soucasti predaneho nazvu souboru.

Vaclav Krmela

QuickReport - Vlastni Preview, pohyb po strankach,

[*] Sedlak Zdenek <konf(zv)seus(tec)cz> - 3.2.2003 02:11:16

Ahoj,
pro nasi aplikaci potrebuji udelat vlastni preview k prohlizeni (novych i
ulozenych) sestav. Podle helpu k qr jsem si udelal jednoduchy formular a
vytvoril jsem si tridu pro vlastni interface (potomka TQRPreviewInterface) s
predefinovanymi metodami Show a ShowModal. V programu jsem take svuj
interface zaregistroval.

Nahled se skutecne zobrazi.
Tak a ted nastava prace na pridani potrebnych vlastnosti (tlacitek, a jinych
ovladacich prvku), aby se nahled choval a umel to, co potrebuji.
Napr. (exportovat do jinych formatu nez jen *.qrp), tisknout stranky od do,
dale treba tlacitko na FAX, kterym se nastavi tiskarna (fax) a posle se
vystup na ni. atd.

Pri realizaci jsem ale narazil na spoustu asi trivialnich problemu, ktere
jste jiste jiz resili.
1) Jak zobrazim posledni stranu nebo zjistim pocet stran?
Protoze v mem QRPreview1 je sice atribut QRPrinter ale je nejak
neinicializovan, takze jeho hodnota LastPage je stale 0. Podobne take ten
(dle navodu) objekt fQRPrinter, ktery se nastavuje v Create je take
"prazdny"-ma nedostupne hodnoty. Kdyz krokuji ty prepsane metody Show a
ShowModal, tak uz tam je parametr AQRPrinter prazdny. Proc? Co jsem udelal
spatne?

1a)
Mimochodem pouziti konstrukci
QRPreview1.QRPrinter.ExportToFilter(TQRHtmlDocumentFilter.Create('filename')
); funguje.

Nevite, jestli se daji nekde stahnout nejake FREE filtry pro QuickReport?

2) Je v takto vytvorenem preview mozne dostat odkaz na ten REPORT, tedy na
ten jeho TQuickRep objekt?

3) Jak udelam tisk jen od strany do strany?

Jeste pouzivane prostredi: Delphi 6 Pro, W2k CZ, QuickReport 3.51

Diky za kazdou radu nebo ukazku kodu

s pozdravem
Zdenek Sedlak


dBase - Production index file missing

[*] Mirko jr. <mzibolen(zv)enelux.sk> - 3.2.2003 08:42:10

Dobry den,

snazim sa otvorit tabulky dBase, ktore maju zrejme poskodeny index. Pokial
ich otvorim v Database Desktope, vyskoci mi okno:

Production index file missing, corrupt or cannot interpret index key

a moznosti:

Open Read Only, Fail Open, Open and Detach

Pokial zvolim poslednu zo spominanych, ide vsetko v pohode. Moj problem vsak
je: uzivatel bude dostavat od ostatnych tabulky dBase (do toho nezasiahnem)
a bude ich chciet nacitat. Pravdepodobne sa spominana chyba bude opakovat.
Ako ju dokazem osetrit za behu programu?

Dakujem

Mirko Zibolen, student

Uvolnovani class a interface

[*] Roman Macura <delphi(zv)atlascon(tec)cz> - 3.2.2003 08:45:46

No asi samo, ne? :-)
Kdyz priradite interface nil, nebo kdyz skonci platnost lokalni promenne,
tak se dekrementuje refcount a kdyz je refcount=0, tak se interface uvolni
pomoci _release. Nebo snad ne?

V kazdem pripade, pomoci doplneni zmineneho destructoru jiz na zadnem OS
nenastane
vyjimka a pamet se uvolnuje do posledniho bytu.

----- Original Message -----
From: "Jan Sebel�k" <honza(zv)haes(tec)cz>
To: <delphi-l(zv)clexpert(tec)cz>
Sent: Friday, January 31, 2003 12:40 PM
Subject: Re: Uvolnovani class a interface


> Odes�latel: Malecek Ondrej <ondrej.malecek(zv)radom-cz(tec)cz>
> Nejsem si jist, ale doted jsem mel dojem, ze pokud rusim instanci objektu,
> ktera interne drzi nejake interface, v okamziku, kdy na ne prestane
> existovat odkaz (je zrusena instance objektu), provede se dekrementace
> refcount. Nebo se pletu ??? Samozrejme, ze je asi pruhlednejsi uvolnovat
> interface explicitne v destruktoru, ale jak je to teda doopravdy ??

Pises "se provede". Jak se provede?

inherited Destroy o tech interface nevi, takze je dozajista nezrusi.

Takze by je mel zrusit kompilator - podobne jako skryte generuje kod pro
dealokaci pameti, pokud je polozkou tridy treba String.
Otazka je, zda to opravdu udela.

Soulasim s tebou, ze explicitni uvolneni pameti je pruhlednejsi.
Ale ono ani Interface:=nil neni az tak pruhledne.
Je tam totiz skryto volani Interface._Release.

V I2:=I1 musi byt zase nejak skryto I2._AddRef.

Podobne
Interface:= CreateComObject(...) as IInterface neni "normalni pretypovani",
ale neco jako
C:=CreateComObject(...) ;
C.QueryInterface(InterfaceID, Interface)

Nemam rad, kdyz kompilator generuje takoveho "skryte" prikazy.
S tim ale nic nenadelame. Rucne bych to tam psat nechtel.

Honza
viz kurzy Vicevrstve aplikace, COM/DCOM
=========================================
= HAES - RNDr. Jan Sebelik
= http://www.haes(tec)cz
= Skolici a konzultacni stredisko pro Delphi a Win32
= Vojtiskova 206
= 507 81 Lazne Belohrad
= tel. 493 792 931 (mobil 776 347735)
=========================================

Indy, jak zjistit jmeno (IP) klienta?

[*] Petr Langer <langer(zv)xdom(tec)cz> - 3.2.2003 09:06:21

AThread.Connection.Binding.PeerIP ?

HTH
pl


----- Original Message -----
From: "L. Filip" <pilifs(zv)seznam(tec)cz>
To: "Konfera Delphi" <delphi-l(zv)clexpert(tec)cz>
Sent: Friday, January 31, 2003 10:31 AM
Subject: Indy, jak zjistit jmeno (IP) klienta?> Zdravim,
> pouzivam Indy komponenty TIdTCPClient a TIdTCPServer.
> Na serveru v udalosti OnConnect v komponente TIdTCPServer si do seznamu
> pridavam pripojene connections. Problem je ze nevim jak zjistit jmeno
> clienta.
>
> Muzete nekdo poradit?
> Diky
>
> procedure TfmMainSrv.idSrvConnect(AThread: TIdPeerThread);
> var cln: TClient;
> begin
> cln := TClient.Create(AThread);
> cln.OnSending := ClnSend;
>
> // tady bych chtel zjisti IP nebo jmeno
>
> cln.Idx := lbxClients.Items.AddObject(*** ClientName *** + ' - ' +
> cln.TimeConnectS,cln);
> AThread.Data := cln;
> try
> Clients.LockList.Add(cln);
> finally
> Clients.UnlockList;
> end;
> end;
>
>

Delphi - ADO - IBM UDB 5.1

[*] Michal Sefcik <sefcik(zv)benefitcz(tec)cz> - 3.2.2003 09:15:20

Hezky den.

Neresil jste nekdo pristup na UDB v.5 pres ADO?
Zejmena problemy s bloby; zajimaji mne i Vase
pripadne konkretni zkusenosti s timto postupem.

Zatim pristupujeme pres BDE a nativni linky.
Nastesti stezejne vyvijime pro MS SQL a BDE jsme
se zbavili; narazime ted vsak na portaci na UDB
a popravde receno, nevim jak dal :-((

Za jakekoliv namety dekuji ...

D5 Ent., MSSQL 2000, IBM UDB 5

************************************************************
Ing.Mgr. Michal Sefcik
Benefit CZ, s.r.o.
Hrub�ho 11, 612 00 Brno
tel: +420 5 41219098, 9
fax: +420 5 41215886
http: www.benefitcz(tec)cz
************************************************************

dBase - Production index file missing

[*] Roman <sw.maurice(zv)seznam(tec)cz> - 3.2.2003 09:30:48

> Dobry den,
>
> snazim sa otvorit tabulky dBase, ktore maju zrejme poskodeny index. Pokial
> ich otvorim v Database Desktope, vyskoci mi okno:
>
> Production index file missing, corrupt or cannot interpret index key
>
> a moznosti:
>
> Open Read Only, Fail Open, Open and Detach
>
> Pokial zvolim poslednu zo spominanych, ide vsetko v pohode. Moj problem
vsak
> je: uzivatel bude dostavat od ostatnych tabulky dBase (do toho
nezasiahnem)
> a bude ich chciet nacitat. Pravdepodobne sa spominana chyba bude opakovat.
> Ako ju dokazem osetrit za behu programu?

No, pred behem programu bych pouzil neco jineho nez dBase ;-) a jinak smazat
index a vytvorit znovu (tusim, ze se jeste nekde v dbf nastavoval nejaky
byte, pohledej v archivu konference).

Roman
==============================
http://kouzelne.misto(tec)cz

Uvolnovani class a interface

[*] Malecek Ondrej <ondrej.malecek(zv)radom-cz(tec)cz> - 3.2.2003 10:08:14

Nic ve zlym, samozrejme ucel sveti prosterdky, akorat jsem si chtel ujasn=
it,
ze ke zruseni by melo dojit automaticky v okamziku kdy zanika instance
tridy, ktera srzi ty interfacy, ve tvem pripade tedy zjevne nedochazi, pr=
oc
?? Asi tezko rict :-(

O :-))> ----- Original Message -----
> No asi samo, ne? :-)
> Kdyz priradite interface nil, nebo kdyz skonci platnost lokalni promenn=
e,
> tak se dekrementuje refcount a kdyz je refcount=3D0, tak se interface u=
volni
> pomoci _release. Nebo snad ne?
>
> V kazdem pripade, pomoci doplneni zmineneho destructoru jiz na zadnem O=
S
> nenastane
> vyjimka a pamet se uvolnuje do posledniho bytu.
>
> ----- Original Message -----
> From: "Jan Sebel=EDk" <honza(zv)haes(tec)cz>
> To: <delphi-l(zv)clexpert(tec)cz>
> Sent: Friday, January 31, 2003 12:40 PM
> Subject: Re: Uvolnovani class a interface
>
>
> > Odes=EDlatel: Malecek Ondrej <ondrej.malecek(zv)radom-cz(tec)cz>
> > Nejsem si jist, ale doted jsem mel dojem, ze pokud rusim
> instanci objektu,
> > ktera interne drzi nejake interface, v okamziku, kdy na ne prestane
> > existovat odkaz (je zrusena instance objektu), provede se dekrementac=
e
> > refcount. Nebo se pletu ??? Samozrejme, ze je asi pruhlednejsi uvolno=
vat
> > interface explicitne v destruktoru, ale jak je to teda doopravdy ??
>
> Pises "se provede". Jak se provede?
>
> inherited Destroy o tech interface nevi, takze je dozajista nezrusi.
>
> Takze by je mel zrusit kompilator - podobne jako skryte generuje kod pr=
o
> dealokaci pameti, pokud je polozkou tridy treba String.
> Otazka je, zda to opravdu udela.
>
> Soulasim s tebou, ze explicitni uvolneni pameti je pruhlednejsi.
> Ale ono ani Interface:=3Dnil neni az tak pruhledne.
> Je tam totiz skryto volani Interface._Release.
>
> V I2:=3DI1 musi byt zase nejak skryto I2._AddRef.
>
> Podobne
> Interface:=3D CreateComObject(...) as IInterface neni "normalni
> pretypovani",
> ale neco jako
> C:=3DCreateComObject(...) ;
> C.QueryInterface(InterfaceID, Interface)
>
> Nemam rad, kdyz kompilator generuje takoveho "skryte" prikazy.
> S tim ale nic nenadelame. Rucne bych to tam psat nechtel.
>
> Honza
> viz kurzy Vicevrstve aplikace, COM/DCOM
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> =3D HAES - RNDr. Jan Sebelik
> =3D http://www.haes(tec)cz
> =3D Skolici a konzultacni stredisko pro Delphi a Win32
> =3D Vojtiskova 206
> =3D 507 81 Lazne Belohrad
> =3D tel. 493 792 931 (mobil 776 347735)
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>
>
>
>
>

Fast Report

[*] Delphi <delphi(zv)unileasing(tec)cz> - 3.2.2003 10:21:14

Zdravim,
mam problem s definovanim vlastnich funkci do FastReportu. zkousim to p=
resne dle navodu, ale nedari se vubec nic ...
Mam Delphi7..... mate nekdo zkusenost s tim... Nebo vetsi kus kodu, kter=
y funguje, nez je v napovede....?

ani nejjednodussi popisovany postup =


procedure TMainForm.frReport1UserFunction(const Name: String; p1, p2,
p3: Variant; var Val: Variant);
begin
if AnsiCompareText('FLOATTOSTRF', Name) =3D 0 then
val :=3D Floattostrf(frParser.Calc(p1),ffnumber,12,0);
end;

nefunguje. V reportu nemohu funkci Floattostrf pouzit...

Diky za kazdou radu ...
Lubos Novy


Uvolnovani class a interface

[*] Roman Macura <delphi(zv)atlascon(tec)cz> - 3.2.2003 10:31:37

:-) Problem nebyl v uvolnovani interface ve smyslu TXMLParser=(TComponent,
IUnknown, Ineco), ale v uvolnovani
dalsich internich interface, pouzitych v te tride.
Kdyby sis precetl predchozi prispevky, zjistil bys to.

----- Original Message -----
From: "Malecek Ondrej" <ondrej.malecek(zv)radom-cz(tec)cz>
To: <delphi-l(zv)clexpert(tec)cz>
Sent: Monday, February 03, 2003 10:08 AM
Subject: RE: Uvolnovani class a interface


Nic ve zlym, samozrejme ucel sveti prosterdky, akorat jsem si chtel ujasnit,
ze ke zruseni by melo dojit automaticky v okamziku kdy zanika instance
tridy, ktera srzi ty interfacy, ve tvem pripade tedy zjevne nedochazi, proc
?? Asi tezko rict :-(

O :-))> ----- Original Message -----
> No asi samo, ne? :-)
> Kdyz priradite interface nil, nebo kdyz skonci platnost lokalni promenne,
> tak se dekrementuje refcount a kdyz je refcount=0, tak se interface uvolni
> pomoci _release. Nebo snad ne?
>
> V kazdem pripade, pomoci doplneni zmineneho destructoru jiz na zadnem OS
> nenastane
> vyjimka a pamet se uvolnuje do posledniho bytu.
>
> ----- Original Message -----
> From: "Jan Sebel�k" <honza(zv)haes(tec)cz>
> To: <delphi-l(zv)clexpert(tec)cz>
> Sent: Friday, January 31, 2003 12:40 PM
> Subject: Re: Uvolnovani class a interface
>
>
> > Odes�latel: Malecek Ondrej <ondrej.malecek(zv)radom-cz(tec)cz>
> > Nejsem si jist, ale doted jsem mel dojem, ze pokud rusim
> instanci objektu,
> > ktera interne drzi nejake interface, v okamziku, kdy na ne prestane
> > existovat odkaz (je zrusena instance objektu), provede se dekrementace
> > refcount. Nebo se pletu ??? Samozrejme, ze je asi pruhlednejsi uvolnovat
> > interface explicitne v destruktoru, ale jak je to teda doopravdy ??
>
> Pises "se provede". Jak se provede?
>
> inherited Destroy o tech interface nevi, takze je dozajista nezrusi.
>
> Takze by je mel zrusit kompilator - podobne jako skryte generuje kod pro
> dealokaci pameti, pokud je polozkou tridy treba String.
> Otazka je, zda to opravdu udela.
>
> Soulasim s tebou, ze explicitni uvolneni pameti je pruhlednejsi.
> Ale ono ani Interface:=nil neni az tak pruhledne.
> Je tam totiz skryto volani Interface._Release.
>
> V I2:=I1 musi byt zase nejak skryto I2._AddRef.
>
> Podobne
> Interface:= CreateComObject(...) as IInterface neni "normalni
> pretypovani",
> ale neco jako
> C:=CreateComObject(...) ;
> C.QueryInterface(InterfaceID, Interface)
>
> Nemam rad, kdyz kompilator generuje takoveho "skryte" prikazy.
> S tim ale nic nenadelame. Rucne bych to tam psat nechtel.
>
> Honza
> viz kurzy Vicevrstve aplikace, COM/DCOM
> =========================================
> = HAES - RNDr. Jan Sebelik
> = http://www.haes(tec)cz
> = Skolici a konzultacni stredisko pro Delphi a Win32
> = Vojtiskova 206
> = 507 81 Lazne Belohrad
> = tel. 493 792 931 (mobil 776 347735)
> =========================================
>
>
>
>

Fast Report

[*] Ji�� Binder<j.binder(zv)albacon(tec)cz> - 3.2.2003 10:47:37

=3E mam problem s definovanim vlastnich funkci do FastReportu=2E zkousim to=
presne dle navodu=2C ale nedari se vubec nic =2E=2E=2E
=3E Mam Delphi7=2E=2E=2E=2E=2E mate nekdo zkusenost s tim=2E=2E=2E Nebo vetsi=
kus kodu=2C ktery funguje=2C nez je v napovede=2E=2E=2E=2E=3F

Ahoj=2C

urcite to funguje=2C vyzkouseno v D5 i D7=2E Nejlepe je pouzit jako vzor to=
co lze nalezt v AddOn balicku k fastreportu=2E

Zdravi Jiri Binder

MySQLTable.Post a field datum cannot be null

[*] Robert Suska <SuskaR(zv)seznam(tec)cz> - 3.2.2003 11:06:49

Ahojte

robim zapis nejakych veci do tabulky cez komponentu MySQLTable a zapisujem
vsetky polia okrem jedneho datumu lebo nepotrebujem aby bol zapisany a pri
Table.Post mi to hodi ze field datum cannot be null ako to obist to pole sa
zadava inokedy a podla toho ci je prazdne alebo nie tak nieco testujem ?

Dakujem za odpoved

Robo


************************************
Robert Suska
KORAK SLOVAKIA s.r.o.
Horna 52
974 01 Banska Bystrica
www.korak.sk robert(zv)korak.sk
Network administrator, Delphi programmer
************************************

zeosdbo - problem pri instalaci

[*] Rumcajs-konfera <konfera(zv)rumcajs(tec)com> - 3.2.2003 11:32:06

Servus vsem,
objevil se mi problem, po preinstalaci Windowsu sem nainstaloval Delphinu=
=2E
Ted sem snazil do ni dostat balik komponent od zeosdbo. Predtim to slo v
poho, ale ted to na me krici:
[Fatal Error] ZMySqlReg.pas(39): File not found: 'DsgnIntf.dcu'
Na druhem pocitaci (rovnez D6 Prof, Win Meee) to slo bez problemu. Na tom=
hle
pred preinstalaci oken taky. Nevite nekdo, proc to ted nechce vzit?
Lukas "Rumcajs" Weiss


---
Odchoz=ED zpr=E1va neobsahuje viry.
Zkontrolov=E1no antivirov=FDm syst=E9mem AVG (http://www.grisoft(tec)cz).
Verze: 6.0.449 / Virov=E1 b=E1ze: 251 - datum vyd=E1n=ED: 27.1.2003

Delphi & Word - cestina v ceste k sablone

[*] <js-delphi(zv)quick(tec)cz> - 03.2.2003 12:07:30

Ahoj,
mam problem s cestinou.
delam toto:
worddocument1.documents.addold(template,
newtemplate);
pricemz template a newtemplate jsou promenne typu
OleVariant
pomoci template lze vytvorit novy dokument
zalozeny na nejake sablone. Pokud to je sablona,
ktera neni umistena v ceste MS-Wordu, musim na ni
odkazat s uplnou cestou.

problem je, ze kdyz do template dosadim:

template:=ExtractFilePath(Application.ExeName)
+'Sablony\1.dot';

a kdyz jsou v ceste k aplikaci nejake ceske znaky
(hacky) nebo Sablony napisu s hackem je problem
na svete, protoze v template po dosazeni jsou
ceske znaky nahrazeny nesmysly.

Co s tim?!

Poradte, pls.

Diky
Jirka

QuickReport - Vlastni Preview, pohyb po strankach,

[*] <js-delphi(zv)quick(tec)cz> - 03.2.2003 12:09:03

Ahoj!

> 1) Jak zobrazim posledni stranu nebo zjistim
pocet stran?
> Protoze v mem QRPreview1 je sice atribut
QRPrinter ale je nejak
> neinicializovan, takze jeho hodnota LastPage je
stale 0. Podobne take ten
> (dle navodu) objekt fQRPrinter, ktery se
nastavuje v Create je take
> "prazdny"-ma nedostupne hodnoty. Kdyz krokuji
ty prepsane metody Show a
> ShowModal, tak uz tam je parametr AQRPrinter
prazdny. Proc? Co jsem udelal
> spatne?
>
> 1a)
> Mimochodem pouziti konstrukci
> QRPreview1.QRPrinter.ExportToFilter
(TQRHtmlDocumentFilter.Create('filename')
> ); funguje.

Nedam Ti uplne reseni, ale mozna Te aspon
poposunu. (patram v pameti...) Pocet stranek jsem
resil
tak, ze jsem do nejakeho eventu (OnNeedData - to
urcite neni, ale ted si zaboha nemuzu vzpomenout)
dal pricitani stranek (globalni promenna)
Pred Tiskem jsem udelal QReport1.Preview, tim
probehl jakoby cely tisk a mel jsem celkovy pocet
stran. > 3) Jak udelam tisk jen od strany do strany?

v te same evente, kde pricitas strany budes
kontrolovat jestli je to ta, kterou chces nebo ji
preskocis...

Jestli budes potrebovat, mrknu se doma a neco Ti
poslu. Kdyz tak se ozvi.

Ahoj
Jirka

OnKeyDown a zjisteni znaku

[*] Lebeda David <david.lebeda(zv)comarr(tec)cz> - 03.2.2003 12:11:30

Ahoj,

existuje nejaka funkce, ktera by v OnKeyDown dokazala vratit znak
typu char podle toho, co uzivatel doopravdy zmackl? Fce ord tady
nevyhovuje - ciselne klavesy na normalni klavesnici a na numericke
klavesnici maji ruzny virtualni kod.
Mohl bych sice pouzit OnKeyPress, ale to znamena obsluhu jedne
zalezitosti rozhodit do dvou udalosti - OnKeyDown kvuli shiftum,
CTRL, backspace apod. a OnKeyPress kvuli znakum samotnym.
Existuje moznost, jak to delat jen v jedne udalosti?

Dik

David Lebeda


OT: Modalni okno

[*] Tom� Fajman��������ڎf����{� - 3.2.2003 12:18:49

Cusky, nevite nekdo prosim jak udelam modlani okno k cizi aplikaci?

Zkousel jsem :
form1:=tform.createparented(handl te aplikace);

i

form1:=tform.create(nil);
form1.parentwindow(handl te aplikace)

oboji sice tak nejak funguje, ale kdyz to dam zvetsit tak se to roztahne
jen na velikost te aplikace a ne na celou obrazovku a jeste to nejak blbne.

dBase - Production index file missing

[*] Petr Kejval <petr.kejval(zv)worldonline(tec)cz> - 3.2.2003 12:25:45

V hlavice dbf souboru je tusim na 29 bytu (pisu to z hlavy) informace o tom
zda k danemu dbf souboru prislusi indexovy soubor. Nastav tento byt na nulu,
pak se program nebude pokuset otevirat chybny nebo neexistujici indexovy
soubor.

Petr Kejval

----- Original Message -----
From: "Roman" <sw.maurice(zv)seznam(tec)cz>
To: <delphi-l(zv)clexpert(tec)cz>
Sent: Monday, February 03, 2003 9:30 AM
Subject: Re: dBase - Production index file missing


> > Dobry den,
> >
> > snazim sa otvorit tabulky dBase, ktore maju zrejme poskodeny index.
Pokial
> > ich otvorim v Database Desktope, vyskoci mi okno:
> >
> > Production index file missing, corrupt or cannot interpret index key
> >
> > a moznosti:
> >
> > Open Read Only, Fail Open, Open and Detach
> >
> > Pokial zvolim poslednu zo spominanych, ide vsetko v pohode. Moj problem
> vsak
> > je: uzivatel bude dostavat od ostatnych tabulky dBase (do toho
> nezasiahnem)
> > a bude ich chciet nacitat. Pravdepodobne sa spominana chyba bude
opakovat.
> > Ako ju dokazem osetrit za behu programu?
>
> No, pred behem programu bych pouzil neco jineho nez dBase ;-) a jinak
smazat
> index a vytvorit znovu (tusim, ze se jeste nekde v dbf nastavoval nejaky
> byte, pohledej v archivu konference).
>
> Roman
> ==============================
> http://kouzelne.misto(tec)cz
>

zeosdbo - problem pri instalaci (dsgnintf)

[*] �tuPe - 3.2.2003 12:31:52

Taky jsem se s tim potkal, je to cestama. Reseni je takoveto: nastav si =
cesty i do nap=F8. "%DELPHI%\Source\Toolsapi\*.*" tam ten soubor je. =
J=E1 osobn=EC m=E1m %DELPHI%=3DD:\Program Files\Borland\Delphi5.

=A9tuPe http://stupe.jinde(tec)cz


----- P=F9vodn=ED zpr=E1va -----=20
Od: "Rumcajs-konfera" <konfera(zv)rumcajs.com>
Komu: <delphi-l(zv)clexpert(tec)cz>
Odesl=E1no: 3. =FAnora 2003 11:32
P=F8edm=ECt: zeosdbo - problem pri instalaci


Servus vsem,
objevil se mi problem, po preinstalaci Windowsu sem nainstaloval =
Delphinu.
Ted sem snazil do ni dostat balik komponent od zeosdbo. Predtim to slo v
poho, ale ted to na me krici:
[Fatal Error] ZMySqlReg.pas(39): File not found: 'DsgnIntf.dcu'
Na druhem pocitaci (rovnez D6 Prof, Win Meee) to slo bez problemu. Na =
tomhle
pred preinstalaci oken taky. Nevite nekdo, proc to ted nechce vzit?
Lukas "Rumcajs" Weiss


---
Odchoz=ED zpr=E1va neobsahuje viry.
Zkontrolov=E1no antivirov=FDm syst=E9mem AVG (http://www.grisoft(tec)cz).
Verze: 6.0.449 / Virov=E1 b=E1ze: 251 - datum vyd=E1n=ED: 27.1.2003


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