Archív konference Delphi

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

StringGrid

[*] Pavel Malinsky <malinsky(zv)pmcom(tec)cz> - 05.4.2007 17:44:25

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

Co VirtualTreeView (http://www.lischke-online.de/VirtualTreeview/) .

> chcel by som sa opytat ci niekto neviete o nejakej dobrej nahrade
> standartneho strig gridu, potreboval by som hlavne podporu virtualneho
> rezimu, formatovanie textu, nastavenie sposobu editacie buniek, fixed
[...]
> Vyskusal som zatial TAdvStringGrid, ale je to priserne velky moloch,
> dost pomaly a stabilita nic moc.

PM


StringGrid

[*] Cajbik Martin <cajbik(zv)sct.sk> - 05.4.2007 17:34:24

Zdravim,
chcel by som sa opytat ci niekto neviete o nejakej dobrej nahrade
standartneho strig gridu, potreboval by som hlavne podporu virtualneho
rezimu, formatovanie textu, nastavenie sposobu editacie buniek, fixed
stlpcov a riadkov a export/import vo formate XLS. Toto vsetko sa da
samozrejme s trochou snahy dorobit ale nechcem vymyslat uz vymyslene a
radsej by som pouzil nejake existujuce a odskusane riesenie.
Vyskusal som zatial TAdvStringGrid, ale je to priserne velky moloch,
dost pomaly a stabilita nic moc.

Ing. Martin CAJBIK

Smerova ruzice

[*] Lebeda David <david.lebeda(zv)comarr(tec)cz> - 06.4.2007 08:27:23

Ahoj,

rad bych udelal do prohlizece obrazku/mapy smerovou ruzici s osmi smery
(S, J, V, Z, SV, JV, SZ, JZ) a tahatko na zoom - neco takoveho jako treba
na www.mapy(tec)cz.

Aplikovalo by se to na obrazek primo vykresleny do formulare. Vyvojove
prostredi D5E.

Mate nekdo nejaky napad, kudy do toho? Nejde mi o detaily konkretniho
reseni, to si nastuduji, ale spis o rady, kudy vubec do toho, po jake
technologii sahnout.

Grafik mi nabizi moznost ruzici pripravit jako flash. Co to znamena? Budu
na to umet v Delphi nejak reagovat? Nebo to je nevhodny napad?

Diky.

David Lebeda

Firebird 2.0.1

[*] Petr Grulich <delfinpetr(zv)gmail(tec)com> - 06.4.2007 11:49:37

ja se omlouvam ale zapomel jsem napsat ze pro pripojeni k FB pouzivam
komponentu TSQLconnection :-(

2007/4/5, horky(zv)cominn(tec)cz <horky(zv)cominn(tec)cz>:
>
> > From: Petr Grulich [mailto:delfinpetr(zv)gmail.com]
> > Sent: Thursday, April 05, 2007 12:30 PM
> >
> > Porad+-AO0- mi n+-ARs-kdo jak p+-AVk-idat z aplikace psane v
> > delphi uzivatele FB.
>
> IBSS: TIBSecurityService;
>
> IBSS si napojis na databazi a pak pouzijes tento kousek programu:
>
> IBSS.UserName := aJmeno;
> IBSS.Password := aHeslo;
> IBSS.FirstName := aPopis1;
> IBSS.MiddleName := aPopis2;
> IBSS.LastName := aPopis3;
> try
> IBSS.AddUser;
> while IBSS.IsServiceRunning do Sleep(50);
> MyLog(0,'Uzivatel '+-aPopis1+-' doplnen' );
> except
> on E: Exception do begin
> Result := True;
> MyLog(1,'Chyba pri zakladani uzivatele' );
> MyLog(1, E.Message);
> Beep;
> end;
> end; { try except }
>
> --
> S pozdravem Karel Horky, D7, FB 1.5.2, IBX 7.08, WXP SP2
> [mailto:horky(zv)cominn(tec)cz]
>
>
>

Probuzeni PC v c#

[*] Jiri Cincura <diskuze(zv)cincura(tec)net> - 08.4.2007 23:01:30

Dalibor wrote:
> Ahoj, nevite nekdo jak udelat probouzeni PC v zadanem case v C#?

Nestaci pridat nejakou dummy ulohu do scheduled tasks s vlastnosti, ze
ma probudit PC?

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

OT: Probuzeni PC v c#

[*] Dalibor <dalibor(zv)torola(tec)cz> - 08.4.2007 22:19:27

Ahoj, nevite nekdo jak udelat probouzeni PC v zadanem case v C#?

Diky

Dalibor


reguralni vyrazy

[*] Jiri Cincura <diskuze(zv)cincura(tec)net> - 10.4.2007 11:43:59

Pro "regularni" vyrazy pouzivam TRegExpr (http://anso.virtualave.net/,
http://RegExpStudio.com) funguje dobre. Myslim, ze to odpovida
implementaci RegExu podle University of Toronto.

To co ukazujes je normalni "replace" regex, staci to jen prepsat do
odpovidajici metody a bude to fungovat.


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

reguralni vyrazy

[*] David Kopecek <david.kopecek(zv)hacktrack(tec)com> - 10.4.2007 11:09:56

Zdravim konferenci,

mam dotaz nemuzete mi nekdo doporucit funkcni a nejlepe odladnou unitu
na zpracovavani reguralnich vyrazu ?

tak aby mi to vpohode zpracovalo tohle

RewriteRule ^(.*)/(cz|en|de|fr|it|sk)/s(\d*)(.*)/c(\d*)(.*)/v(\d*)(.*)/page(\d*)(.*)$ $1/?sid=$3&cid=$5&vid=$7&page=$9&lang=$2 [I,L]

?

zatim sem pouzival perlregex.pas dva roky starou ale nejak mi
nefunguje..

Diky david

reguralni vyrazy

[*] vlko <vlko(zv)zilina(tec)net> - 10.4.2007 12:48:03

David Kopecek wrote:
> Zdravim konferenci,
>
> mam dotaz nemuzete mi nekdo doporucit funkcni a nejlepe odladnou unitu
> na zpracovavani reguralnich vyrazu ?
>
> tak aby mi to vpohode zpracovalo tohle
>
> RewriteRule ^(.*)/(cz|en|de|fr|it|sk)/s(\d*)(.*)/c(\d*)(.*)/v(\d*)(.*)/page(\d*)(.*)$ $1/?sid=$3&cid=$5&vid=$7&page=$9&lang=$2 [I,L]
>
> ?
>
> zatim sem pouzival perlregex.pas dva roky starou ale nejak mi
> nefunguje..

Ja uprednostnujem Perl Compatible Regular Expressions:
http://www.regular-expressions.info/delphi.html

vlko

--

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

reguralni vyrazy

[*] Ing. Zdenek Gala <gala(zv)cathedral(tec)cz> - 10.4.2007 16:08:16


----- Original Message -----
From: "vlko" <vlko(zv)zilina.net>
To: <delphi-l(zv)clexpert(tec)cz>
Sent: Tuesday, April 10, 2007 12:48 PM
Subject: Re: reguralni vyrazy


> David Kopecek wrote:
>> Zdravim konferenci,
>>
>> mam dotaz nemuzete mi nekdo doporucit funkcni a nejlepe odladnou unitu
>> na zpracovavani reguralnich vyrazu ?
>>
>> tak aby mi to vpohode zpracovalo tohle
>>
>> RewriteRule
>> ^(.*)/(cz|en|de|fr|it|sk)/s(\d*)(.*)/c(\d*)(.*)/v(\d*)(.*)/page(\d*)(.*)$
>> $1/?sid=$3&cid=$5&vid=$7&page=$9&lang=$2 [I,L]
>>
>> ?
>>
>> zatim sem pouzival perlregex.pas dva roky starou ale nejak mi
>> nefunguje..
>
> Ja uprednostnujem Perl Compatible Regular Expressions:
> http://www.regular-expressions.info/delphi.html
>
> vlko
>
> --
>
> --------------
> mail: vlko(zv)zilina.net
> web: http://vlko.zilina.net
>
>
>
>
> --
> No virus found in this incoming message.
> Checked by AVG Free Edition.
> Version: 7.5.446 / Virus Database: 269.0.0/754 - Release Date: 9.4.2007
> 22:59
>
>

ZEOS komponenty a default schema pri selectu z MyS

[*] Petr Fejfar <petr.fejfar(zv)seznam(tec)cz> - 10.4.2007 19:02:27

Vazeni,

uvazuju o pouziti ZEOS komponent 6.6.1 a udelal jsem si
par testu, ale nemuzu prijit na to, jak prinutit pri
SELECTU TZQuery ve spojeni s MySQL(5), aby pouzivalo
default schema.

- instance TZConnection a TZQuery vytvarim v run-time
- SELECT * FROM <schema>.<table> funguje spravne
- kdyz udelam USE <schema>, tak SELECT Schema() resp.
SELECT Database() vypise spravnou hodnotu <schema>
- SELECT * FROM <TABLE> vypise divnou chybovou hlasku
o syntax error near 'LIKE <table> at line 1.

U Postgre to lze resit prostredky DB nastavenim
SEARCH_PATH na <schema>. Ale u MySQL
na to nemuzu prijit.

Nevedel by nekdo, pls?

Thx, pf


Delphi a arabske jazyky

[*] Petr Vones <conference(zv)petrvones(tec)net> - 11.4.2007 12:19:33

From: <delphak(zv)centrum(tec)cz>
> Funguje to nejak samo od sebe (dle nastvaeni windows) nebo to jde alespon

Ano, funguje to samo od sebe. Windows jsou od verze 2000 interne plne
Unicode, veskere "A" API funkce pouzivajici Ansi jsou "simulovane".

Borland si bohuzel ani za sedm let teto skutecnosti nevsiml a VCL nema
zadnou Unicode podporu. Pokud vim, nemaji ji ani Delphi 2007, coz je zcela
absurdni.

Existuje sada vizualnich komponent TNT Unicode Controls a pripadne dalsi
upravene casti zakladnich trid VCL pro Unicode. Napriklad na
http://www.soft-gems.net/

Petr Vones

Delphi a arabske jazyky

[*] Vaclav Halik <spravasd(zv)suz.cvut(tec)cz> - 11.4.2007 12:03:32

Zdravim,
>> nmate nekdo zkusenost s tvorbou aplikaci v delphi. ktere maji
>> pracovat napr. v arabskem prostredi .. tedy text se pise ZPRAVA -
>> DOLEVA?
>>
jeste bych dodal:

Na arabstine neni az tak zvlastni to ze se pise zprava doleva,
to ma vic jazyku. Urcita zvlastnost ovsem je, ze text nestaci
jen napsat pomoci arabskych zaku, ale jednotlive znaky musi
byt spojene carou. Tepreve podle spojeni pomoci car je dany
text srozumitelny. Bez spoju pomoci car je to jenom shluk znaku,
ktere ani rodilemu mluvcimu neda zadny smysl.

Nestaci tedy jen mit font a aby to psalo zprava doleva, musi fungovat
i cary mezi znaky.

Vaclav Halik

Chyba v MaskUtils - "!90:00;1;_" - misto minut se

[*] delphak(zv)centrum(tec)cz - 11.4.2007 11:31:30

Ahoj, pokud pouziji display mask "hh:nn" a edit mask "!90:00;1;_" na DateTimeField tak pri ziskani fokusu (tedy v okamziku kdy zacnu editovat) se chybne zobrazi udaj - misto minut se zobrazi vteriny. tj. pokud je hodnota 17:11:13 tak pro zobrazeni se spravne ukazuje 17:11 .. ale pro editaci se ukaze 17:13.
Nemate nekdo patch na tuto chybu?

PS: Pokud se do masky daji i vteriny ("!90:00:00;1;_" ), tak to jiz funguje spravne

Dik V.

Delphi a arabske jazyky

[*] Jan Sebelik <honza(zv)haes(tec)cz> - 11.4.2007 10:57:28

> nmate nekdo zkusenost s tvorbou aplikaci v delphi. ktere maji
> pracovat napr. v arabskem prostredi .. tedy text se pise ZPRAVA -
> DOLEVA? Funguje to nejak samo od sebe (dle nastvaeni windows)
> nebo to jde alespon nejak udelat .... nebo je to v normalni
> (anglicke) verzi DELPHI nemozne?

Pokud se nemylim, souvisi to nejak s property BiDiMode.

Nikdy jsem to nezkousel ani na nasich kurzech se o tom nemluvi, protoze to na "zleva-doprava" Windows snad ani testovat nelze. Naopak na "zprava-doleva" Windows by to melo nejak fungovat.

Honza
====================================
= RNDr. Jan Sebelik - HAES
= Skolici a konzultacni stredisko pro vyvoj SW
= www.haes(tec)cz
= Vojtiskova 321
= 507 81 Lazne Belohrad
====================================

ZEOS komponenty a default schema pri selectu z MyS

[*] Jiri Matejka <matejka(zv)stemmark(tec)cz> - 11.4.2007 09:29:22

TZConnection ma property Database, kam lze nastavit ktere schema (databazi)
ma pouzit. Plati to pak pro vsechny TZQuery, ktere danou instanci
TZConnection pouzivaji. Pouziiti prikazu USE jsem v Zeosech nezkouesel,
takze nevim...

Jirka Matejka

> uvazuju o pouziti ZEOS komponent 6.6.1 a udelal jsem si
> par testu, ale nemuzu prijit na to, jak prinutit pri
> SELECTU TZQuery ve spojeni s MySQL(5), aby pouzivalo
> default schema.
>
> - instance TZConnection a TZQuery vytvarim v run-time
> - SELECT * FROM <schema>.<table> funguje spravne
> - kdyz udelam USE <schema>, tak SELECT Schema() resp.
> SELECT Database() vypise spravnou hodnotu <schema>
> - SELECT * FROM <TABLE> vypise divnou chybovou hlasku
> o syntax error near 'LIKE <table> at line 1.
>
> U Postgre to lze resit prostredky DB nastavenim
> SEARCH_PATH na <schema>. Ale u MySQL
> na to nemuzu prijit.
>
> Nevedel by nekdo, pls?
>
> Thx, pf


Delphi a arabske jazyky

[*] delphak(zv)centrum(tec)cz - 11.4.2007 09:27:21

Ahoj,
nmate nekdo zkusenost s tvorbou aplikaci v delphi. ktere maji pracovat napr. v arabskem prostredi .. tedy text se pise ZPRAVA - DOLEVA? Funguje to nejak samo od sebe (dle nastvaeni windows) nebo to jde alespon nejak udelat .... nebo je to v normalni (anglicke) verzi DELPHI nemozne?

Dik.

Prace s Active Directory

[*] Suvarina, Vladimir <vladimir.suvarina(zv)siemens(tec)com> - 11.4.2007 09:15:21


>potreboval bych z AD vytahovat emailove adresy uzivatelu .. nemate
nekdo nejakou vhodnou knihovnu, pripadne me odkazat > na patricne
funkce?

Ahoj

AD podporuje nativne LDAP protokol na ktery velmi dobre funguje Synapse.
Kdybys potreboval mam nekde nejaky priklad Synapse vs AD.============================================
Vladimir Suvarina, Siemens Enterprise Communications s.r.o

Prace s Active Directory

[*] delphak(zv)centrum(tec)cz - 11.4.2007 08:55:19

Ahoj,
potreboval bych z AD vytahovat emailove adresy uzivatelu .. nemate nekdo nejakou vhodnou knihovnu, pripadne me odkazat na patricne funkce?

Dik.

Delphi a arabske jazyky

[*] Petr Vones <conference(zv)petrvones(tec)net> - 11.4.2007 13:25:38

From: "Erik Salaj" <winsoft(zv)netkosice.sk>
> asi by s tym bolo menej problemov, keby Microsoft
> namiesto UTF-16 pouzil UTF-8 kodovanie, ktore
> je kompatibilne s ASCII. Plus nejaky abstraktny
> char/string typ, kde by bolo mozne zvolit specificke
> Unicode kodovanie ak by bolo potrebne napr. koli
> rychlosti.

Dnes uz je to jedno, .NET je plne UTF-16. Nicmene sedm let je snad dost casu
na to, aby potrebne upravy ve VCL udelali. Slibovali to uz nekolik let.

Petr Vones

Delphi a arabske jazyky

[*] Erik Salaj <winsoft(zv)netkosice.sk> - 11.4.2007 13:15:37

> Ano, funguje to samo od sebe. Windows jsou od verze 2000 interne plne
> Unicode, veskere "A" API funkce pouzivajici Ansi jsou "simulovane".
>
> Borland si bohuzel ani za sedm let teto skutecnosti nevsiml a VCL nema
> zadnou Unicode podporu. Pokud vim, nemaji ji ani Delphi 2007, coz je zcela
> absurdni.
>
> Existuje sada vizualnich komponent TNT Unicode Controls a pripadne dalsi
> upravene casti zakladnich trid VCL pro Unicode. Napriklad na
> http://www.soft-gems.net/


asi by s tym bolo menej problemov, keby Microsoft
namiesto UTF-16 pouzil UTF-8 kodovanie, ktore
je kompatibilne s ASCII. Plus nejaky abstraktny
char/string typ, kde by bolo mozne zvolit specificke
Unicode kodovanie ak by bolo potrebne napr. koli
rychlosti.

Erik Salaj

Delphi a arabske jazyky

[*] martin <krata(zv)tomst(tec)com> - 11.4.2007 16:21:50

Ahoj

Je to samozrejme uplne off topic, ale jako amaterskemu arabistovi
mi to neda :-))
> Na arabstine neni az tak zvlastni to ze se pise zprava doleva,
> to ma vic jazyku. Urcita zvlastnost ovsem je, ze text nestaci
> jen napsat pomoci arabskych zaku, ale jednotlive znaky musi
> byt spojene carou.
Arabsky skript je velice podobny psane latince.
Existuje nekolik malinko vyjimek, po kterych se linie, spojujici
pismena ve slove rozdeli.
(Nicmene jednotliva slova jsou vzdy opticky jasne rozdelena)
Abych to zkratil, krome jednoduchych pismen abecedy staci do fontu
zahrnout vhodne dvouhlasky. System sam pak pri psani napr. ve wordu
kontroluje, ktera dve pismena jdou po sobe a pouzije vhodny "dvoufont"
Neni to zadna umela inteligence, to by se asi microsoft radne zapotil
....

> Tepreve podle spojeni pomoci car je dany
> text srozumitelny. Bez spoju pomoci car je to jenom shluk znaku,
> ktere ani rodilemu mluvcimu neda zadny smysl.
:-))

> Nestaci tedy jen mit font a aby to psalo zprava doleva, musi fungovat
> i cary mezi znaky.
No ve wordu (respektive v DELPHI) s arabskou klavesnici budes stejne rychly jako pri psani v cestine :-))> Vaclav Halik
Martin Kratochvil


> __________ NOD32 2180 (20070411) Information __________

> This message was checked by NOD32 antivirus system.
> http://www.eset.com

--
S pozdravem,
martin
mailto:krata(zv)tomst.com

RaveReport and InterBase Objects

[*] jiri(zv)bartonek(tec)cz - 11.4.2007 17:41:56

Zdravim,

potrebuji udelat reporty z aplikace pracujici s FB 1.5.
Pro pristup k DB pouzivam komponenty InterBase Objects ver 4.2.Ie,
pro report chci pouzit RaveReport ver 5.1.2 (VCL7/Demo).

Mam komponentu
IB_Query : TIB_Query,
tu potrebuji napojit do
RvDataSetConnection : TRvDataSetConnection
a dale pracovat s navrhem toho reportu v Rave Designeru.
Hacek je v tom, ze snd vsechny TDataSet komponenty TADO , Zeos atd. dokazu
na RvDataSetConnection napojit jen IB_Query vzdoruje.

Jelikoz se jedna o prevzatou aplikaci s mnoha IB_Query nechce se mi
vsechny predelavat na neco jineho.

Mate s tim nekdo zkusenost, pripadne nejaky navrh jak to napojeni k Rave
provest?

Privitam kazdy namet.

Diky Jiri

Win XP prof, D7 Ent

psani COM objektu v .net a jeho volani z Delphi

[*] petr palicka <palicka.petr(zv)seznam(tec)cz> - 12.4.2007 10:23:03

Ahoj,

Psal jsem tentyz problem do .net konfery, ale tam je IMHO malo clenu
a tyka se ti i delphi. Tak se snad mohu opakovat. Navic je problem asi v
tom, ze mi unika podstata prace s COM. Ted se hrabu v knizkach a zatim
nic moc, takze odkaz na nejaky dobry zdroj informaci uvitam:

potrebuji napsat nejaky import do aplikace v D6 (D7). Protoze se
pozdeji bude delat tentyz v jine aplikaci psane v .net, chtel jsem si
napsat COM objekt rovnou v C#, takze bych jej potom mel uz hotovy.
Narazim ale na sve zakladni neznalosti. Potreboval bych poradit bud
nejaky vhodny tutorial, nebo nakopnout, kde muze byt chyba. Popisu muj
postup. Za pripadne nakopnuti mnohokrat diky. Pokud nahodou vite o
hotovem importu/exportu GPX 1.0 a 1.1, pripadne Garmin XML souboru, budu
rad za upozorneni.

Dik, Peca:

1/ podle xsd jsem si vytvoril tridy v C#
2/ napsal jsem primitivni COM, ktery by (podle me :-) mel otevrit xml file:

using System;
using System.Collections.Generic;
using System.Text;
using System.Xml.Serialization;
using System.IO;
using System.Runtime.InteropServices;

namespace gpx_1_1
{
[ComVisible(true)]
[ClassInterface(ClassInterfaceType.AutoDual)]
[Guid("4DDD71E0-3F76-4fb4-8409-F58E1AFF03D7")]
public class GPXFile_1_1
{
public gpxType OpenGPX(string filename)
{
XmlSerializer xsr = new XmlSerializer(typeof(gpxType));
using (FileStream fs = new FileStream(filename,
FileMode.Open, FileAccess.Read))
{
gpxType g = (gpxType)xsr.Deserialize(fs);
return g;
}
}
}
}

3/ v Delphi jsem provedl provedl import a vygenerovani jednotky
gpx_1_1_com_TLB.pas.
4/ V Delphi zkousim zavolat COM a vysosnout z nej data:

procedure TfImportGPX_1_1.bImportClick(Sender: TObject);
var
gf: GPXFile_1_1;
g: IUnknown; // <- Nechapu, pro to neni typ "gpxType"!?
begin
gf:=CoGPXFile_1_1.Create;
g:=gf.OpenGPX('C:\AGWin.NET\GPX\files\x.gpx');
ShowMessage(g.Creator.ToString); // <- Tak tohle mi neprojde
end;

5/ Test pomoci vlastniho aplikace (ne pres COM) v C# projde v pohode:

using System;
using System.Collections.Generic;
using System.Text;
using System.Xml;
using gpx_1_1;

namespace readGPX
{
class Program
{
static void Main(string[] args)
{
GPXFile_1_1 gf = new GPXFile_1_1();
gpxType gt =
gf.OpenGPX((zv)"C:\AGWin.NET\GPX\files\belohrad.gpx");
Console.WriteLine("{0}", gt.creator);
Console.WriteLine("\n\n- zmackni enter -");
Console.ReadKey();
}
}
}

// konec

detekce typu media

[*] Ladislav Fitz <ladislav.fitz(zv)kodytek(tec)cz> - 12.4.2007 10:41:04

zdravim nevite nekdo jak zjistit typ CD a DVD media v mechanice (R/RW/RAM
+/- DL)

jedine co me napadlo je pres NERO ale pripada mi to jako jit s kanonem na
komara

diky predem

psani COM objektu v .net a jeho volani z Delphi

[*] petr palicka <palicka.petr(zv)seznam(tec)cz> - 12.4.2007 13:31:15

Ahoj,

tak jsem to trochu prekopal, viz kod za podpisem. Nyni v Delphi
dostavam hlasku "Variant does not reference an automation object.".
Snazil jsem se i googlovat, hrabu se tu v knize k D6 od Marca Cantu, ale
stale mi unika podstata problemu.

Jestli nekdo tusite, tak me prosim nakopnete.

Dekuji, Peca:

1/ v C#
namespace gpx_1_1
{
[ComVisible(true)]
[ClassInterface(ClassInterfaceType.AutoDual)]
[Guid("4DDD71E0-3F76-4fb4-8409-F58E1AFF03D7")]
public class GPXFile_1_1
{
gpxType _gpx; // pole (field) pro ulozeni nacteneho objektu

public gpxType GPX // verejna vlastnost pro pristup k objektu
{
get { return _gpx; }
}

public void OpenGPX(string filename)
{
XmlSerializer xsr = new XmlSerializer(typeof(gpxType));
using (FileStream fs = new FileStream(filename,
FileMode.Open, FileAccess.Read))
{
_gpx = (gpxType)xsr.Deserialize(fs);
}
}
}
}

2/ V Delphi:
var
gf: Variant;
ov: OleVariant;
s: String;
begin
gf:=CreateOleObject('gpx_1_1.GPXFile_1_1');
gf.OpenGPX('C:\AGWin.NET\GPX\files\x.gpx');
ov:=gf.GPX.creator;
s:=VarToStr(ov);
ShowMessage(s);
end;

Chyba v MaskUtils - "!90:00;1;_" - misto minut se

[*] Tomas Grepl <delphi(zv)kapsw(tec)cz> - 12.4.2007 14:05:18

delphak(zv)centrum(tec)cz wrote:
> Ahoj, pokud pouziji display mask "hh:nn" a edit mask "!90:00;1;_" na
> DateTimeField tak pri ziskani fokusu (tedy v okamziku kdy zacnu
> editovat) se chybne zobrazi udaj - misto minut se zobrazi vteriny.
> tj. pokud je hodnota 17:11:13 tak pro zobrazeni se spravne ukazuje
> 17:11 .. ale pro editaci se ukaze 17:13. Nemate nekdo patch na tuto
> chybu?

Mohlo by pomoci u daneho fieldu tabulky nadefinovat OnGetText

procedure Tform1.TableFieldGetText(Sender: TField; var Text: String;
DisplayText: Boolean);
begin
Text := FormatDateTime('hh:nn', Sender.AsDateTime);
end;

Tomas

psani COM objektu v .net a jeho volani z Delphi

[*] Jan Sebelik <honza(zv)haes(tec)cz> - 12.4.2007 17:07:29

> Behalf Of petr palicka
> tak jsem to trochu prekopal, viz kod za podpisem. Nyni v Delphi
> dostavam hlasku "Variant does not reference an automation object.".
> Snazil jsem se i googlovat, hrabu se tu v knize k D6 od Marca Cantu, ale
> stale mi unika podstata problemu.
>
> Jestli nekdo tusite, tak me prosim nakopnete.
>
> Dekuji, Peca:

Ahoj Petre.

Na tvuj soukromy mail posilam priklady od Davida Muzatka z naseho kurzu "Zaklady .NET".
Jeste ho nakopni (v kopii), at ti to nejak ucesa.
Nasel jsem jenom nejakou starsi verzi, ale rozchodil jsem to.

Honza
====================================
= RNDr. Jan Sebelik - HAES
= Skolici a konzultacni stredisko pro vyvoj SW
= www.haes(tec)cz
= Vojtiskova 321
= 507 81 Lazne Belohrad
====================================

D5 Ent. a podpora vice jadrovych procesoru

[*] Petr Vones <conference(zv)petrvones(tec)net> - 13.4.2007 11:46:42

From: "Jan Sebesta" <sebesta(zv)cube(tec)cz>
> lze v D5 Ent. "udelat" 32-bit exe, ktery bude podporovat vice jadrove
> procesory pro zpracovani dlouhych vypoctu ?

To nijak nesouvisi s Delphi, ale s celkovym navrhem aplikace a spravnem
vyuziti threadu.

Petr Vones

D5 Ent. a podpora vice jadrovych procesoru

[*] Slavomir Skopalik <skopalik(zv)elektlabs(tec)cz> - 13.4.2007 11:22:40

Samozrejme, podivej se na tridu TThread.

Slavek

> lze v D5 Ent. "udelat" 32-bit exe, ktery bude podporovat vice
> jadrove procesory pro zpracovani dlouhych vypoctu ?

FB 2.0 API

[*] Pavel Malinsky <malinsky(zv)pmcom(tec)cz> - 13.4.2007 10:10:36

Ahoj,

poradi nekdo, prosim, kde stahnout/sehnat
celou dokumentaci Firebird 2.0 API ?

Dekuji PM


D5 Ent. a podpora vice jadrovych procesoru

[*] Jan Sebesta <sebesta(zv)cube(tec)cz> - 13.4.2007 09:58:35

Ahoj,



lze v D5 Ent. "udelat" 32-bit exe, ktery bude podporovat vice jadrove
procesory pro zpracovani dlouhych vypoctu ?



Sebik





Vyjimka na end;

[*] Petr Vones <conference(zv)petrvones(tec)net> - 13.4.2007 16:49:02

From: "Tomas Bihary" <delphi(zv)st-software.com>
> Mam tento jednoduchy kod (prosim nepolemizovat o jeho smysluplnosti).
> Zkompiluju v D5 Ent, UpdatePack1
> s vypnutou optimalizaci !!!

Jedna se o chybu v kompilatoru. Rezim bez optimalizace je urcen pouze pro
ladeni, kvuli moznosti zjistit hodnotu promenne v celem rozsahu
viditelnosti. Pokud si pamatuji, tak kompilator se testuje pouze se zapnutou
optimalizaci, coz je vychozi (a doporuceny) rezim.

Petr Vones

Vyjimka na end;

[*] Tomas Bihary <delphi(zv)st-software(tec)com> - 13.4.2007 16:06:59

Ahoj,
Mam tento jednoduchy kod (prosim nepolemizovat o jeho smysluplnosti).
Zkompiluju v D5 Ent, UpdatePack1
s vypnutou optimalizaci !!!

Pri zavolani metody WillFail dojde k vyjimce a radku end;
Access Violation - Dojde k ni pouze v debugeru. Normalne spusteny
program "zmizi".

K vyjimce dojde pouze pokud NEPRACUJU s promennou Result.

Pri debugovani instrukci je videt ze k padu dojde takto

mov bp,[eax]
mov esp, ebp //zde se spatne nastavi esp
pop ebp // dojde k vyjimce


Jedna se o chybu kompilatoru, mohl by mi toto chovani nekdo objastit.

Dekuji Tomas


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

unit Dummy;

interface

type
IChannel = interface
end;

TReply = packed record
Reply: byte;
ErrorCode: byte;
end;

function WillFail(Channel: IChannel; const Name: string): TReply;

implementation

function WillFail(Channel: IChannel; const Name: string): TReply;
begin
//Result.Reply := 0;
//Result.ErrorCode := 0;
end; /// ZDE

end.

Chyba v MaskUtils - "!90:00;1;_" - misto minut se

[*] Tomas Grepl <delphi(zv)kapsw(tec)cz> - 13.4.2007 19:25:12

delphak(zv)centrum(tec)cz wrote:
> Ahoj, pokud pouziji display mask "hh:nn" a edit mask "!90:00;1;_" na
> DateTimeField tak pri ziskani fokusu (tedy v okamziku kdy zacnu
> editovat) se chybne zobrazi udaj - misto minut se zobrazi vteriny.
> tj. pokud je hodnota 17:11:13 tak pro zobrazeni se spravne ukazuje
> 17:11 .. ale pro editaci se ukaze 17:13. Nemate nekdo patch na tuto
> chybu?

Mohlo by pomoci u daneho fieldu tabulky nadefinovat OnGetText

procedure Tform1.TableFieldGetText(Sender: TField; var Text: String;
DisplayText: Boolean);
begin
Text := FormatDateTime('hh:nn', Sender.AsDateTime);
end;

Tomas

psani COM objektu v .net a jeho volani z Delphi

[*] Jan Sebelik <honza(zv)haes(tec)cz> - 13.4.2007 22:01:22

> Behalf Of petr palicka
> tak jsem to trochu prekopal, viz kod za podpisem. Nyni v Delphi
> dostavam hlasku "Variant does not reference an automation object.".
> Snazil jsem se i googlovat, hrabu se tu v knize k D6 od Marca Cantu, ale
> stale mi unika podstata problemu.
>
> Jestli nekdo tusite, tak me prosim nakopnete.
>
> Dekuji, Peca:

Ahoj Petre.

Na tvuj soukromy mail posilam priklady od Davida Muzatka z naseho kurzu "Zaklady .NET".
Jeste ho nakopni (v kopii), at ti to nejak ucesa.
Nasel jsem jenom nejakou starsi verzi, ale rozchodil jsem to.

Honza
====================================
= RNDr. Jan Sebelik - HAES
= Skolici a konzultacni stredisko pro vyvoj SW
= www.haes(tec)cz
= Vojtiskova 321
= 507 81 Lazne Belohrad
====================================

Chyba v MaskUtils - "!90:00;1;_" - misto minut se

[*] Tomas Grepl <delphi(zv)kapsw(tec)cz> - 13.4.2007 22:39:25

delphak(zv)centrum(tec)cz wrote:
> Ahoj, pokud pouziji display mask "hh:nn" a edit mask "!90:00;1;_" na
> DateTimeField tak pri ziskani fokusu (tedy v okamziku kdy zacnu
> editovat) se chybne zobrazi udaj - misto minut se zobrazi vteriny.
> tj. pokud je hodnota 17:11:13 tak pro zobrazeni se spravne ukazuje
> 17:11 .. ale pro editaci se ukaze 17:13. Nemate nekdo patch na tuto
> chybu?

Mohlo by pomoci u daneho fieldu tabulky nadefinovat OnGetText

procedure Tform1.TableFieldGetText(Sender: TField; var Text: String;
DisplayText: Boolean);
begin
Text := FormatDateTime('hh:nn', Sender.AsDateTime);
end;

Tomas

Provedeni HTML kodu

[*] Dalibor <dalibor(zv)torola(tec)cz> - 16.4.2007 07:17:04

Ahoj, jak muzu v D7 provest automaticky kod, jako kdybych zmacknul tlacitko v HTML strance?

HTML kod:

<form action=http://192.168.8.241/goform/IPCameraAdminSaveRestart method=post>
<INPUT TYPE=SUBMIT VALUE="Restart">

Diky

P.S. Nemate nekdo zkusenosti s IP kamerami ICA-106. Mame 3 kousky a vsechny tri se po nejake dobe odmlci. Webove rozhrani je nedostupne. Funguje pouze prikaz PING.

Chyba pri pouziti TFrame

[*] Ladislav Stary <stary(zv)ekodat(tec)cz> - 16.4.2007 11:23:23

2x stejny frame na formulari urcite neni problem. Pouzivam jich na
jednom formulari nekolik. Stejne tak jako u komponenty se u framu
automaticky prideluje nazev vlastniho framu totozny
s nazvem typu (bez toho T) a nasledovany poradovym cislem.
V tom tedy problem urcite nebude. Pamatuju se, ze se Petr Vones
zminoval, ze frame neni idealni pouzit, pokud je moc komplikovany.

Ladislav Stary


Tomas Rosa napsal(a):

>Zdravim,
>
> mam udelaneho potomka TFrame. Normalne ho polozim na formular a je
>vse OK. Jakmile ale polozim 2x ten samy frame na formular (mam tam
>zalozky a chci aby byl na vsech), tak mi pri spusteni aplikace zarve
>chyba "Component named "TKeypadFrame" already exists...". Co s tim?
>
> Resp. - jak dat na formular 2x stejny frame?
>
>

Windows Vista a UAC

[*] Milan Tomes <delphi(zv)haida(tec)cz> - 16.4.2007 10:27:19

Zdravim,

potrebuju nakopnout s jednim problemem, ktery je uzce spjaty s Windows
Vista a zapnutym UAC.
Mam out-process COM server, ktery funguje jako singleton (pouze v
pripade, ze je spustena nejaka nase aplikace, tak bezi, v pripade
ukonceni posledni nasi aplikace je automaticky ukoncen). Tento COM
server zaroven komunikuje po siti s jinymi instancemi COM serveru (UDP
+TCP socket). Problemem ovsem je, ze jednu nasi aplikaci je nutno
spoustet s pravy administratora a ostatni se spousti s normalnimi pravy
(tedy staci opravneni skupiny Users). V tomto pripade Windows Vista
provede spusteni instance COM serveru pro administracni utilitu a dalsi
instance pro ostatni SW, kteremu staci prava nizsi.

Nemate nekdo tuseni jak toto vyresit ?

Nejedna se mi o nejake obejiti problemu, ale o kompletni vyreseni.
Napadlo me vyuziti sluzby, ktera by tento server spustila pri startu
systemu s pravy napr. Network service (aby byla mozna UDP a TCP
komunikace), jenze to se mi moc nelibi... Neexistuje jina moznost jak
zajistit korektni spusteni tohoto COM serveru opravdu jen 1x na celem PC
(tzn. i v pripade Fast user switching) ?

S pozdravem

Milan Tomes

Chyba pri pouziti TFrame

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

Zdravim,

mam udelaneho potomka TFrame. Normalne ho polozim na formular a je
vse OK. Jakmile ale polozim 2x ten samy frame na formular (mam tam
zalozky a chci aby byl na vsech), tak mi pri spusteni aplikace zarve
chyba "Component named "TKeypadFrame" already exists...". Co s tim?

Resp. - jak dat na formular 2x stejny frame?

Diky
TR

Instalace komponenty RichEdit98

[*] Jiri Semler <jsemler(zv)stbk.mcs(tec)cz> - 16.4.2007 15:55:42

Dobry den,

stahnul jsem si komponentu TRichEdit98, ktera byla vytvorena pro D3,
D4, ale ja ji potrebuji naistalovat do D6 Pro.

Nahradil jsem puvodni DsgnIntf.dcu novymi DesignEditors.dcu a
DesignIntf.dcu. Do required se DesignIntf pridalo automaticky.

Instalace prosla v "poradku" a komponety se objevily tam, kde mely.
Potud je vsechno OK.

Ale kdyz vlozim RichEdit98 na Form a chci program zkompilovat, tak mi
vyhodi chybu, ze nemuze najit unitu DesignIntf.dcu pripadne Proxies.dcu.

Mate nekdo zkusenosti, jak tuto komponentu rozchodit v D6 Pro.

Jirka

Disky

[*] mydelphi(zv)seznam(tec)cz - 16.4.2007 15:53:41

Pomoci funkce GetDriveType dokazu zjistit, o jaky typ disku se jedna. Co
bych vsak potreboaval zjistit a nevim jak na to, je to, zda u vymenneho
media (DRIVE_REMOVABLE) jde o disketovou mechaniku nebo o flash disk a u
opticke mechaniky (DRIVE_CDROM) o CD nebo DVD. Nevite nekdo jak na to?
Diky.
Michal Kos

Delphi for PHP

[*] Ladislav Stary <stary(zv)ekodat(tec)cz> - 16.4.2007 19:05:54

Doufam, ze mi Petr nevynada. Podivej se do php.ini, standardne je
knihovna pro mssql zaremovana. Taky jsem to zkousel a neslo mi to. Pak
jsem si prohlizel php.ini a vsiml jsem si, ze je
u knihovny pro mssql strednik, od te doby jsem to ale nezkousel.

Ladislav Stary


Ludek napsal(a):

>Zdravim,
>Vite nekdo o kvalitni konfere viz %subj% pripadne zda sem patri diskuze o Delphi for PHP resp zda se zde najde nekdo o tom ochotny diskutovat (kontakty pripadne na konference(zv)sales(tec)cz).
>Pokud ano mam prvni dotaz :
>Jak pripojim mssql ? Testovaci aplikace s Databazi,Datasource a Table chcipne na :
>
>Fatal error: Call to undefined function mssql_get_last_message() in C:\program files\CodeGear\delphi for php\1.0\vcl\adodb\drivers\adodb-mssql.inc.php on line 494
>
>Ludek
>
>

Delphi for PHP

[*] Ludek <konference(zv)sales(tec)cz> - 16.4.2007 18:37:52

Zdravim,
Vite nekdo o kvalitni konfere viz %subj% pripadne zda sem patri diskuze o Delphi for PHP resp zda se zde najde nekdo o tom ochotny diskutovat (kontakty pripadne na konference(zv)sales(tec)cz).
Pokud ano mam prvni dotaz :
Jak pripojim mssql ? Testovaci aplikace s Databazi,Datasource a Table chcipne na :

Fatal error: Call to undefined function mssql_get_last_message() in C:\program files\CodeGear\delphi for php\1.0\vcl\adodb\drivers\adodb-mssql.inc.php on line 494

Ludek

VirtualTreeView - pouziti

[*] Lebeda David <david.lebeda(zv)comarr(tec)cz> - 17.4.2007 11:04:59

> Nejdriv nastavis
> VTV.NodeDataSize := SizeOf(Typ);
> On pak pri vytvoreni nodu automaticky vytvori danou vec dane velikosti. Ja
> pouzival zaznam, tobe by treba stacil pointer ... Tzn. v OnInitInsertedNode
> dat neco jako: var p : ^TTvojeData; ... p := GetNodeData; p^ :=
> Odkaz_do_pameti;

Jasne, v mezidobi jsem se taky malinko posunul dal. V zasade mohu zvazit
dve cesty:

1) Mit data ve svem poli a NodeData by pak byl jen pointer
2) A nebo data pridavat primo do kazdeho nodu.

I to by slo a zvazim, co je lepsi.

Prosim jeste o strucnou informaci. Dejme tomu, ze mam data nactena a
zobrazena. Poskytuje VTV nejakou podporu pro razeni? Myslim tim, jestli
razeni podle jineho sloupce musim realizovat tak, ze seradim ta podkladova
data, nebo mohou data zustat nactena jde jen seradit nody?

Diky.

David Lebeda

Chyba pri pouziti TFrame

[*] Tomas Rosa <trosa(zv)seznam(tec)cz> - 18.4.2007 16:58:18

> 2x stejny frame na formulari urcite neni problem.

Takze jsem po nekolika hodinach na to prisel proc to nejde!

Pokud mam claasu TKeypadFrame a na formular vlozim toto:

KeypadFrame: TKeypadFrame;
KeypadFrame1: TKeypadFrame;

tak to NEJDE. Spadne to na hlasce ze "Component named KeypadFrame
already exists".

Nicmene pokud tam vlozim:

KeypadFrame1: TKeypadFrame;
KeypadFrame2: TKeypadFrame;

tak je vse vporadku.

TR

zmena property Owner

[*] Ales Pavel <aldik(zv)quick(tec)cz> - 18.4.2007 15:34:13

Kluci jak zmenim property Owner, je to jen readonly vlastnost.. a ja ho
potrebuji zmenit kvuli tomu ze chci zmenit destrukci ktera by vznikla
zaroven s vlastnikem.., ktera se mi tvori pri create(self), rovnou rikam
ze (nil) pouzit nemuzu a v danne chvili je self nejlepsi..


Takze prosiiim prosiiiim smutne koukam..


Ales

.

zalozeni DB Access

[*] Dalibor Faltynek <dalibor.faltynek(zv)orgrez(tec)cz> - 18.4.2007 14:56:10

Asi je to na me moc slozite.
Vygenerovalo mi to unitu ADODB_TLB ale asi s nejakyma chybama, kterym
nerozumim viz vypis:

// Type Lib: C:\Program Files\Common Files\System\ado\msado15.dll (1)
// IID\LCID: {2A75196C-D9EB-4129-B803-931327F72D5C}\0
// Helpfile: C:\WINDOWS\HELP\ado270.chm
// DepndLst:
// (1) v2.0 stdole, (C:\WINDOWS\system32\stdole2.tlb)
// (2) v4.0 StdVCL, (C:\WINDOWS\system32\STDVCL40.DLL)
// Errors:
// Hint: TypeInfo 'Property' changed to 'Property_'
// Hint: TypeInfo 'Record' changed to 'Record_'
// Hint: Parameter 'Object' of _DynaCollection.Append changed to 'Object_'
// Hint: Member 'Type' of 'Property' changed to 'Type_'
// Hint: Parameter 'Type' of Command15.CreateParameter changed to 'Type_'
// Hint: Parameter 'Type' of Fields.Append changed to 'Type_'
// Hint: Parameter 'Type' of Fields20._Append changed to 'Type_'
// Hint: Member 'Type' of 'Field20' changed to 'Type_'
// Hint: Member 'Type' of '_Parameter' changed to 'Type_'
// Hint: Member 'Type' of '_Stream' changed to 'Type_'
// Hint: Member 'Type' of 'Field15' changed to 'Type_'
// Error creating palette bitmap of (TConnection) : Invalid GUID format
// Error creating palette bitmap of (TRecord) : Invalid GUID format
// Error creating palette bitmap of (TStream) : Invalid GUID format
// Error creating palette bitmap of (TCommand) : Invalid GUID format
// Error creating palette bitmap of (TRecordset) : Invalid GUID format
// Error creating palette bitmap of (TParameter) : Invalid GUID format
// ************************************************************************
//

-pri pokusu vygenerovat ADOX_TLB vyskocilo hlaseni, ze tridy TTable atd.
(shodne jako u ADODB_TLB) uz existuji.

> Import se provadi v Project->Import Type Library ... -> Vyhledat ->Create
Provedl jsem i prikaz ADD, protoze jsem knihovny nenasel v seznamu. Potom
CREATE a vytvorilo to unitu ADODB_TLB. Ta druha uz nesla vygenerovat viz
vyse.

> var FCatalog : Catalog;
pri prekladu se jezi, ze typ Catalog, ani TCatalog nezna.

Dalibor.

----- Original Message -----
From: "Petr Kejval" <petr.kejval(zv)worldonline(tec)cz>
To: <delphi-l(zv)clexpert(tec)cz>
Sent: Wednesday, April 18, 2007 12:56 PM
Subject: Re: zalozeni DB Access


> Ahoj,
> tak jsem priklad trochu orezal a upravil.
>
> ADODB_TLB je naimportovana knihovna msado15.dll
> //
> ************************************************************************
> //
> // Type Lib: C:\Program Files\Common Files\System\ado\msado15.dll (1)
> // LIBID: {2A75196C-D9EB-4129-B803-931327F72D5C}
> // LCID: 0
> // Helpfile: C:\WINDOWS\help\ado270.chm
> // HelpString: Microsoft ActiveX Data Objects 2.8 Library
>
> ADOX_TLB je naimportovana knihovna msADOX.dll
> //
> ************************************************************************
> //
> // Type Lib: C:\Program Files\Common Files\System\ado\msADOX.dll (1)
> // LIBID: {00000600-0000-0010-8000-00AA006D2EA4}
> // LCID: 0
> // Helpfile: C:\Program Files\Common Files\System\ado\ado270.chm
> // HelpString: Microsoft ADO Ext. 2.8 for DDL and Security
>
> Unit
>
> Petr Kejval
>
>
> unit Unit1;
>
> interface
>
> uses
> Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
> Forms,
> Dialogs, StdCtrls, ExtCtrls, ADODB_TLB, ADOX_TLB;
> type
> TForm1 = class(TForm)
> Button1: TButton;
> procedure Button1Click(Sender: TObject);
> procedure FormCreate(Sender: TObject);
> private
> { Private declarations }
> FDatabaseConnect : string;
> FDatabaseName : string;
> FTableName : string;
> public
> { Public declarations }
> end;
>
> var
> Form1: TForm1;
>
> implementation
>
> {$R *.dfm}
> const
> MSJet4ConnectString = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s';
> procedure TForm1.FormCreate(Sender: TObject);
> begin
> FDatabaseName :=ExtractFilePath(Application.ExeName)+'new.mdb';
> FDatabaseConnect:=format(MSJet4ConnectString,[FDatabaseName]);
> FTableName :='Table1';
> end;
>
> procedure TForm1.Button1Click(Sender: TObject);
> var FCatalog : Catalog;
> FConnection : Connection;
> FTable : Table;
> FColumn : _Column;
> FPrimaryKey,FSecondaryIndex1 : Index;
> i : integer;
> begin
> if FileExists(FDatabaseName) then
> if (MessageDlg(Format('Databaze %s jiz
> existuje.'+#13+#10+''+#13+#10+'Chcete ji p?epsat?',[FDatabaseName]),
> mtConfirmation, [mbYes, mbNo], 0) = mrYes) then
> DeleteFile(FDatabaseName)
> else
> Exit;
>
> //Inicializace objektu FCatalog
> FCatalog:=CoCatalog.Create;
> //Inicializace objektu FConnection
> FConnection:=CoConnection.Create;
> //Inicializace objektu FTable
> FTable:=CoTable.Create;
> //Inicializace objektu FPrimaryKey
> FPrimaryKey:=CoIndex.Create;
> //Inicializace objektu FSecondaryIndex1
> FSecondaryIndex1:=CoIndex.Create;
> try
> //Vytvo?eni databaze
> FCatalog.Create(FDatabaseConnect);
> //Otev?eni databaze
> FConnection.Open(FDatabaseConnect,'Admin','',adConnectUnspecified);
> //Nastaveni otev?ene databaze jako aktivni katalog
> FCatalog.Set_ActiveConnection(FConnection);
> //..................Tvorba tabulky
> Table1.................................
> //P?i?azeni jmena tabulky
> FTable.Name:=FTableName;
> //Nastaveni vlastnosti Rodieovky katalog - dulezite pro nastavovani
> Properties
> FTable.ParentCatalog:=FCatalog;
> //P?idani pole ID do tabulky
> FTable.Columns.Append('ID',adInteger,0);
> //Nastaveni vlastnosti pole ID jako automaticke eislo
> FTable.Columns['ID'].Properties['Autoincrement'].Value:=True;
> //P?idani pole Prijmeni do tabulky
> FTable.Columns.Append('Prijmeni',adVarWChar,20);
> //Nastaveni vlastnosti "Povolit nulovou delku" pole Prijmeni na Ano
> FTable.Columns['Prijmeni'].Properties['Jet OLEDB:Allow Zero
> Length'].Value:=true;
> //Nastaveni vlastnosti "Je nutno zadat" pole Prijmeni na Ne
> FTable.Columns['Prijmeni'].Properties['Nullable'].Value:=true;
> //nemusi byt vyplnina, default = false - musi byt vyplnina
> //P?idani pole Jmeno do tabulky
> FTable.Columns.Append('Jmeno',adVarWChar,15);
> //Nastaveni vlastnosti "Je nutno zadat" pole Prijmeni na Ne
> FTable.Columns['Jmeno'].Properties['Nullable'].Value:=true; //nemusi
> byt vyplnina, default = false - musi byt vyplnina
> //P?idani tabulky FTable do kolekce Tables
> FCatalog.Tables.Append(FTable);
> //..................Tvorba primarniho indexu tabulky
> Table1...............
> //P?i?azeni jmena indexu
> FPrimaryKey.Name:='PrimaryKey';
> //Nastaveni indexu jako primarni
> FPrimaryKey.PrimaryKey:=True;
> //P?idani pole ID do indexu
> FPrimaryKey.Columns.Append('ID',adInteger,0);
> //P?idani primarniho indexu do kolekce indexu
> FTable.Indexes.Append(FPrimaryKey,null);
> //..................Tvorba sekundarniho slozeneho indexu tabulky
> Table1...
> //P?i?azeni jmena indexu
> FSecondaryIndex1.Name:='SekundarniIndex1';
> //P?idani pole Prijmeni jako prvni slozky indexu
> FSecondaryIndex1.Columns.Append('Prijmeni',adVarWChar,20);
> //P?idani pole Jmeno jako druhe slozky indexu
> FSecondaryIndex1.Columns.Append('Jmeno',adVarWChar,15);
> //P?idani slozeneho indexu do kolekce indexu
> FTable.Indexes.Append(FSecondaryIndex1,null);
>
> //........................................................................
> finally
> //Zav?eni databaze
> try FConnection.Close; except end;
> //Uvolnini objektu FSecondaryIndex1
> FSecondaryIndex1._Release;
> //Uvolnini objektu FPrimaryKey
> FPrimaryKey._Release;
> //Uvolnini objektu FTable
> FTable._Release;
> //Objekt FConnection nelze uvolnit metodou _Release, nastane chyba
> FConnection:=nil;
> //Objekt FCatalog nelze uvolnit metodou _Release, nastane chyba
> FCatalog:=nil;
> end;
> end;
>
> end.
>
>
>> Dekuji, ale hned narazim na toto:
>> -unity ADO, ADOX, ADODS asi nejsou standardni unity v delfi, znam jenom
>> ADOdb
>> -datove typy Catalog, TADODatabase asi verze 5 nezna
>> Dalibor
>>
>>> interface
>>>
>>> uses
>>> Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
>>> Forms,
>>> Dialogs, StdCtrls, ADO, ADOX, ExtCtrls, DBCtrls, Grids, DBGrids, DB,
>>> ADODS;
>>>
>>> type
>>> TForm1 = class(TForm)
>>> dbAccess: TADODatabase;
>> .
>> .
>>
>>> procedure TForm1.Button1Click(Sender: TObject);
>>> var FCatalog : Catalog;
>>> FConnection : Connection;
>>> FTable : Table;
>>> FColumn : _Column;
>>> FPrimaryKey,FSecondaryIndex1 : Index;
>>
>>
>>
>
>
>

zalozeni DB Access

[*] Petr Kejval <petr.kejval(zv)worldonline(tec)cz> - 18.4.2007 12:56:42

Ahoj,
tak jsem priklad trochu orezal a upravil.

ADODB_TLB je naimportovana knihovna msado15.dll
// ************************************************************************
//
// Type Lib: C:\Program Files\Common Files\System\ado\msado15.dll (1)
// LIBID: {2A75196C-D9EB-4129-B803-931327F72D5C}
// LCID: 0
// Helpfile: C:\WINDOWS\help\ado270.chm
// HelpString: Microsoft ActiveX Data Objects 2.8 Library

ADOX_TLB je naimportovana knihovna msADOX.dll
// ************************************************************************
//
// Type Lib: C:\Program Files\Common Files\System\ado\msADOX.dll (1)
// LIBID: {00000600-0000-0010-8000-00AA006D2EA4}
// LCID: 0
// Helpfile: C:\Program Files\Common Files\System\ado\ado270.chm
// HelpString: Microsoft ADO Ext. 2.8 for DDL and Security

Import se provadi v Project->Import Type Library ... -> Vyhledat ->Create
Unit

Petr Kejval


unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, ADODB_TLB, ADOX_TLB;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
FDatabaseConnect : string;
FDatabaseName : string;
FTableName : string;
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}
const
MSJet4ConnectString = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s';
procedure TForm1.FormCreate(Sender: TObject);
begin
FDatabaseName :=ExtractFilePath(Application.ExeName)+'new.mdb';
FDatabaseConnect:=format(MSJet4ConnectString,[FDatabaseName]);
FTableName :='Table1';
end;

procedure TForm1.Button1Click(Sender: TObject);
var FCatalog : Catalog;
FConnection : Connection;
FTable : Table;
FColumn : _Column;
FPrimaryKey,FSecondaryIndex1 : Index;
i : integer;
begin
if FileExists(FDatabaseName) then
if (MessageDlg(Format('Databaze %s jiz
existuje.'+#13+#10+''+#13+#10+'Chcete ji p?epsat?',[FDatabaseName]),
mtConfirmation, [mbYes, mbNo], 0) = mrYes) then
DeleteFile(FDatabaseName)
else
Exit;

//Inicializace objektu FCatalog
FCatalog:=CoCatalog.Create;
//Inicializace objektu FConnection
FConnection:=CoConnection.Create;
//Inicializace objektu FTable
FTable:=CoTable.Create;
//Inicializace objektu FPrimaryKey
FPrimaryKey:=CoIndex.Create;
//Inicializace objektu FSecondaryIndex1
FSecondaryIndex1:=CoIndex.Create;
try
//Vytvo?eni databaze
FCatalog.Create(FDatabaseConnect);
//Otev?eni databaze
FConnection.Open(FDatabaseConnect,'Admin','',adConnectUnspecified);
//Nastaveni otev?ene databaze jako aktivni katalog
FCatalog.Set_ActiveConnection(FConnection);
//..................Tvorba tabulky
Table1.................................
//P?i?azeni jmena tabulky
FTable.Name:=FTableName;
//Nastaveni vlastnosti Rodieovky katalog - dulezite pro nastavovani
Properties
FTable.ParentCatalog:=FCatalog;
//P?idani pole ID do tabulky
FTable.Columns.Append('ID',adInteger,0);
//Nastaveni vlastnosti pole ID jako automaticke eislo
FTable.Columns['ID'].Properties['Autoincrement'].Value:=True;
//P?idani pole Prijmeni do tabulky
FTable.Columns.Append('Prijmeni',adVarWChar,20);
//Nastaveni vlastnosti "Povolit nulovou delku" pole Prijmeni na Ano
FTable.Columns['Prijmeni'].Properties['Jet OLEDB:Allow Zero
Length'].Value:=true;
//Nastaveni vlastnosti "Je nutno zadat" pole Prijmeni na Ne
FTable.Columns['Prijmeni'].Properties['Nullable'].Value:=true;
//nemusi byt vyplnina, default = false - musi byt vyplnina
//P?idani pole Jmeno do tabulky
FTable.Columns.Append('Jmeno',adVarWChar,15);
//Nastaveni vlastnosti "Je nutno zadat" pole Prijmeni na Ne
FTable.Columns['Jmeno'].Properties['Nullable'].Value:=true; //nemusi
byt vyplnina, default = false - musi byt vyplnina
//P?idani tabulky FTable do kolekce Tables
FCatalog.Tables.Append(FTable);
//..................Tvorba primarniho indexu tabulky
Table1...............
//P?i?azeni jmena indexu
FPrimaryKey.Name:='PrimaryKey';
//Nastaveni indexu jako primarni
FPrimaryKey.PrimaryKey:=True;
//P?idani pole ID do indexu
FPrimaryKey.Columns.Append('ID',adInteger,0);
//P?idani primarniho indexu do kolekce indexu
FTable.Indexes.Append(FPrimaryKey,null);
//..................Tvorba sekundarniho slozeneho indexu tabulky
Table1...
//P?i?azeni jmena indexu
FSecondaryIndex1.Name:='SekundarniIndex1';
//P?idani pole Prijmeni jako prvni slozky indexu
FSecondaryIndex1.Columns.Append('Prijmeni',adVarWChar,20);
//P?idani pole Jmeno jako druhe slozky indexu
FSecondaryIndex1.Columns.Append('Jmeno',adVarWChar,15);
//P?idani slozeneho indexu do kolekce indexu
FTable.Indexes.Append(FSecondaryIndex1,null);
//........................................................................
finally
//Zav?eni databaze
try FConnection.Close; except end;
//Uvolnini objektu FSecondaryIndex1
FSecondaryIndex1._Release;
//Uvolnini objektu FPrimaryKey
FPrimaryKey._Release;
//Uvolnini objektu FTable
FTable._Release;
//Objekt FConnection nelze uvolnit metodou _Release, nastane chyba
FConnection:=nil;
//Objekt FCatalog nelze uvolnit metodou _Release, nastane chyba
FCatalog:=nil;
end;
end;

end.
> Dekuji, ale hned narazim na toto:
> -unity ADO, ADOX, ADODS asi nejsou standardni unity v delfi, znam jenom
> ADOdb
> -datove typy Catalog, TADODatabase asi verze 5 nezna
> Dalibor
>
>> interface
>>
>> uses
>> Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
>> Forms,
>> Dialogs, StdCtrls, ADO, ADOX, ExtCtrls, DBCtrls, Grids, DBGrids, DB,
>> ADODS;
>>
>> type
>> TForm1 = class(TForm)
>> dbAccess: TADODatabase;
> .
> .
>
>> procedure TForm1.Button1Click(Sender: TObject);
>> var FCatalog : Catalog;
>> FConnection : Connection;
>> FTable : Table;
>> FColumn : _Column;
>> FPrimaryKey,FSecondaryIndex1 : Index;
>
>

Windows Vista a UAC

[*] Milan Tomes <delphi(zv)haida(tec)cz> - 18.4.2007 10:34:31

Radek Voltr napsal(a):
> Kdyz spustis nejdriv instance pro nizsi prava tak se spusti nasledne i tam
> pro vyssi ?
>
Bohuzel ano.
> Pokud ne tak by se mohlo jednat o MIC - Mandatory control. Kazdy process ma
> v sobe urcity level a procesy z nizsiho levelu nemuzou sahat na nic z
> vyssiho (vcetne napr. Mutexu, okna atd...)
>
> Jake maji tvoje aplikace Integrity level se muzes podivat pomoci
> http://www.microsoft.com/technet/sysinternals/utilities/accesschk.mspx
>
Aplikace s nizsimi pravy ma Medium integrity level a ta s vyssimi pravy
pochopitelne High IL.
> Pokud by opravdu byl problem v tom ze high level utilita udelat high level
> COM ktery pak nelze vyuzivat pro medium level procesy bylo by resenim
> spustit process se snizenym levelem na medium. High se na nej dostane a
> medium taky.
>
Bohuzel tohle taky nefunguje - pokud spustim aplikaci s Medium levelem
jako prvni stejne si aplikace s High levelem spusti svoji instanci
> Ale u Fast user switch mas asi smulu - COM komunikuje po windows messages (a
> apartment model uplne) a ty na 99% neprochazi mezi jednotlivejma windows
> station/desktop uzivatelu u switche.
>
Takze me stejne nemine predelani COM objektu do jine podoby -
pravdepodobne do podoby sluzby. Problem, ktery musim vyresit je
obousmerna komunikace mezi aplikaci a tou sluzbou a taky jak udelat
aplikaci tak aby fungovala jako sluzba i jako standardni aplikace
(musime bohuzel porad podporovat Win 98 - ME).
Soucasny zpusob komunikace COM serveru s aplikaci funguje pres zpravy
skrytemu oknu aplikace.

S pozdravem

Milan Tomes

> -----Original Message-----
>
> (tedy staci opravneni skupiny Users). V tomto pripade Windows Vista
> provede spusteni instance COM serveru pro administracni utilitu a dalsi
> instance pro ostatni SW, kteremu staci prava nizsi.
>
>

Google Desktop Gadgets v Delphi

[*] Milan Kajnar <mkajnar(zv)mikesoft(tec)cz> - 18.4.2007 09:10:24

Ahoj.

Nemate prosim nekdo z Vas prakticky priklad jak napsat gadget pro Google Desktop Panel v Delphi?
Nebo jak nalinkovat do gadgetu DLL psanou v Delphi nebo C++?
Google Desktop API ohledne tohoto tema podava velmi bidne informace, na jejich miste by me hanba
fackovala - skoro mi to prijde jako bojkot...

Diky za napady

Milan Kajnar

Windows Vista a UAC

[*] Radek Voltr <voltr(zv)eleasoftware(tec)com> - 18.4.2007 09:52:29

Ahoj,

Kdyz spustis nejdriv instance pro nizsi prava tak se spusti nasledne i tam
pro vyssi ?

Pokud ne tak by se mohlo jednat o MIC - Mandatory control. Kazdy process ma
v sobe urcity level a procesy z nizsiho levelu nemuzou sahat na nic z
vyssiho (vcetne napr. Mutexu, okna atd...)

Jake maji tvoje aplikace Integrity level se muzes podivat pomoci
http://www.microsoft.com/technet/sysinternals/utilities/accesschk.mspx


Pokud by opravdu byl problem v tom ze high level utilita udelat high level
COM ktery pak nelze vyuzivat pro medium level procesy bylo by resenim
spustit process se snizenym levelem na medium. High se na nej dostane a
medium taky.


Ale u Fast user switch mas asi smulu - COM komunikuje po windows messages (a
apartment model uplne) a ty na 99% neprochazi mezi jednotlivejma windows
station/desktop uzivatelu u switche.


Radek

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

(tedy staci opravneni skupiny Users). V tomto pripade Windows Vista
provede spusteni instance COM serveru pro administracni utilitu a dalsi
instance pro ostatni SW, kteremu staci prava nizsi.

Nemate nekdo tuseni jak toto vyresit ?

zalozeni DB Access

[*] Dalibor Faltynek <dalibor.faltynek(zv)orgrez(tec)cz> - 18.4.2007 09:18:24

Dekuji, ale hned narazim na toto:
-unity ADO, ADOX, ADODS asi nejsou standardni unity v delfi, znam jenom
ADOdb
-datove typy Catalog, TADODatabase asi verze 5 nezna
Dalibor

> interface
>
> uses
> Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
> Forms,
> Dialogs, StdCtrls, ADO, ADOX, ExtCtrls, DBCtrls, Grids, DBGrids, DB,
> ADODS;
>
> type
> TForm1 = class(TForm)
> dbAccess: TADODatabase;
.
.

> procedure TForm1.Button1Click(Sender: TObject);
> var FCatalog : Catalog;
> FConnection : Connection;
> FTable : Table;
> FColumn : _Column;
> FPrimaryKey,FSecondaryIndex1 : Index;

VirtualTreeView - pouziti

[*] Ludek Finstrle <ludek.finstrle(zv)pzkagis(tec)cz> - 17.4.2007 10:52:57

> zkousim nejak proniknout do Lieschkeho VirtualTreeView, ale zatim se
> ztracim.

Cas pomuze, ono je to jednoduche, jen do toho proniknout ...

> Muzete me nekdo nakopnout, co udelat pro vyreseni nasledujiciho?

Snad jo.

> Chci pouzit VTV jako nahradu stringgridu. Mam v pameti jiz nactene
> dynamicke pole recordu (dat) a obsah toho pole chci zobrazit. Ve VTV mam
> deklarovane Headers.
>
> Umim do VTV vytvorit novy node. V examplech se pak vola GetNode Data a tam
> se pak neco plni. To ja ale nepotrebuji - data jsou jiz v pameti.
> Potrebuji jen nejak propojit jednotlive nody s konkretnimi prvky pole.

Ale potrebujes, potrebujes ;o)

Nejdriv nastavis
VTV.NodeDataSize := SizeOf(Typ);
On pak pri vytvoreni nodu automaticky vytvori danou vec dane velikosti.
Ja pouzival zaznam, tobe by treba stacil pointer ...
Tzn. v OnInitInsertedNode dat neco jako:
var p : ^TTvojeData;
...
p := GetNodeData;
p^ := Odkaz_do_pameti;

Jde o to, ze VTV si k nodu pamatuje to, co vraci v GetNodeData. Ve vetsine
pripadu se tvari, ze pointer na neco. Tam si uloz treba ukazatel do
sve pameti a v OnGetText udalosti z toho pointeru ziskas text ...

Luf

P.S. Tak nevim, zda jsem te jeste vice nezamotal :o)

zalozeni DB Access

[*] Petr Kejval <petr.kejval(zv)worldonline(tec)cz> - 18.4.2007 08:30:21

Ahoj,
kdysi jsem si vytvoril tento priklad, snad to funguje.

Petr Kejval

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ADO, ADOX, ExtCtrls, DBCtrls, Grids, DBGrids, DB,
ADODS;

type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
dbAccess: TADODatabase;
Table1: TADODataSet;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
DBNavigator1: TDBNavigator;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
FDatabaseConnect : string;
FDatabaseName : string;
FTableName : string;
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}
const
MSJet4ConnectString = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s';
procedure TForm1.FormCreate(Sender: TObject);
begin
FDatabaseName :=ExtractFilePath(Application.ExeName)+'new.mdb';
FDatabaseConnect:=format(MSJet4ConnectString,[FDatabaseName]);
FTableName :='Table1';
end;

procedure TForm1.Button1Click(Sender: TObject);
var FCatalog : Catalog;
FConnection : Connection;
FTable : Table;
FColumn : _Column;
FPrimaryKey,FSecondaryIndex1 : Index;
i : integer;
begin
if FileExists(FDatabaseName) then
if (MessageDlg('Databaze %s jiz existuje.'+#13+#10+''+#13+#10+'Chcete
ji prepsat?', mtConfirmation, [mbYes, mbNo], 0) = mrYes) then
DeleteFile(FDatabaseName)
else
Exit;

//Inicializace objektu FCatalog
FCatalog:=CoCatalog.Create;
//Inicializace objektu FConnection
FConnection:=CoConnection.Create;
//Inicializace objektu FTable
FTable:=CoTable.Create;
//Inicializace objektu FPrimaryKey
FPrimaryKey:=CoIndex.Create;
//Inicializace objektu FSecondaryIndex1
FSecondaryIndex1:=CoIndex.Create;
try
//Vytvoreni databaze
FCatalog.Create(FDatabaseConnect);
//Otevreni databaze
FConnection.Open(FDatabaseConnect,'Admin','',adConnectUnspecified);
//Nastaveni otevrene databaze jako aktivni katalog
FCatalog.Set_ActiveConnection(FConnection);
//..................Tvorba tabulky
Table1.................................
//Prirazeni jmena tabulky
FTable.Name:=FTableName;
//Nastaveni vlastnosti Rodicovky katalog - dulezite pro nastavovani
Properties
FTable.ParentCatalog:=FCatalog;
//Pridani pole ID do tabulky
FTable.Columns.Append('ID',adInteger,0);
//Nastaveni vlastnosti pole ID jako automaticke cislo
FTable.Columns['ID'].Properties['Autoincrement'].Value:=True;
//Pridani pole Prijmeni do tabulky
FTable.Columns.Append('Prijmeni',adVarWChar,20);
//Nastaveni vlastnosti "Povolit nulovou delku" pole Prijmeni na Ano
FTable.Columns['Prijmeni'].Properties['Jet OLEDB:Allow Zero
Length'].Value:=true;
//Nastaveni vlastnosti "Je nutno zadat" pole Prijmeni na Ne
FTable.Columns['Prijmeni'].Properties['Nullable'].Value:=true;
//nemusi byt vyplnena, default = false - musi byt vyplnena
//Pridani pole Jmeno do tabulky
FTable.Columns.Append('Jmeno',adVarWChar,15);
//Nastaveni vlastnosti "Je nutno zadat" pole Prijmeni na Ne
FTable.Columns['Jmeno'].Properties['Nullable'].Value:=true; //nemusi
byt vyplnena, default = false - musi byt vyplnena
//Pridani tabulky FTable do kolekce Tables
FCatalog.Tables.Append(FTable);
//..................Tvorba primarniho indexu tabulky
Table1...............
//Prirazeni jmena indexu
FPrimaryKey.Name:='PrimaryKey';
//Nastaveni indexu jako primarni
FPrimaryKey.PrimaryKey:=True;
//Pridani pole ID do indexu
FPrimaryKey.Columns.Append('ID',adInteger,0);
//Pridani primarniho indexu do kolekce indexu
FTable.Indexes.Append(FPrimaryKey,null);
//..................Tvorba sekundarniho slozeneho indexu tabulky
Table1...
//Prirazeni jmena indexu
FSecondaryIndex1.Name:='SekundarniIndex1';
//Pridani pole Prijmeni jako prvni slozky indexu
FSecondaryIndex1.Columns.Append('Prijmeni',adVarWChar,20);
//Pridani pole Jmeno jako druhe slozky indexu
FSecondaryIndex1.Columns.Append('Jmeno',adVarWChar,15);
//Pridani slozeneho indexu do kolekce indexu
FTable.Indexes.Append(FSecondaryIndex1,null);
//........................................................................
finally
//Zavreni databaze
try FConnection.Close; except end;
//Uvolneni objektu FSecondaryIndex1
FSecondaryIndex1._Release;
//Uvolneni objektu FPrimaryKey
FPrimaryKey._Release;
//Uvolneni objektu FTable
FTable._Release;
//Objekt FConnection nelze uvolnit metodou _Release, nastane chyba
FConnection:=nil;
//Objekt FCatalog nelze uvolnit metodou _Release, nastane chyba
FCatalog:=nil;
end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
dbAccess.DatabaseConnect:=FDatabaseConnect;
dbAccess.Connected:=True;
Table1.TableName:=FTableName;
Table1.Open;
end;


end.
> Dobry den,
> panove, v ADO jsem zacatecnik, poradte mi prosim, jak zalozit databazi
> access z delfi 5 ENT. Tabulky do ni vlozit pres ADO command jsem sice
> jeste
> nezkusil, ale to by melo byt asi stejne jako u paradoxu pres CREATE TABLE
> v
> sql.
>
> Dalibor.

VirtualTreeView - pouziti

[*] Lebeda David <david.lebeda(zv)comarr(tec)cz> - 17.4.2007 10:36:56

Ahoj,

zkousim nejak proniknout do Lieschkeho VirtualTreeView, ale zatim se
ztracim.

Muzete me nekdo nakopnout, co udelat pro vyreseni nasledujiciho?

Chci pouzit VTV jako nahradu stringgridu. Mam v pameti jiz nactene
dynamicke pole recordu (dat) a obsah toho pole chci zobrazit. Ve VTV mam
deklarovane Headers.

Umim do VTV vytvorit novy node. V examplech se pak vola GetNode Data a tam
se pak neco plni. To ja ale nepotrebuji - data jsou jiz v pameti.
Potrebuji jen nejak propojit jednotlive nody s konkretnimi prvky pole.

Diky

David Lebeda

zalozeni DB Access

[*] Dalibor Faltynek <dalibor.faltynek(zv)orgrez(tec)cz> - 18.4.2007 08:00:19

Dobry den,
panove, v ADO jsem zacatecnik, poradte mi prosim, jak zalozit databazi
access z delfi 5 ENT. Tabulky do ni vlozit pres ADO command jsem sice jeste
nezkusil, ale to by melo byt asi stejne jako u paradoxu pres CREATE TABLE v
sql.

Dalibor.

Klikaci mapa

[*] horky(zv)cominn(tec)cz - 17.4.2007 16:05:19

Zdravim vsechny!
Chci do programu zabudovat nejakou klikaci mapu, tj. zobrazit obrazek, slozeny ze ctvercu, obdelniku, kolecek atd, rozmistenych nepravidelne na plose formulare. Po kliknuti na nektery objekt se vyvola obsluha udalosti. Pri klepnuti mimo objekt se nestane nic. Objekty na plose by take mely jit uzivatelsky rozmistovat a pridavat v runtime.
Existuje nejaka vhodna komponenta ?
Nakopnete me vhodnym smerem, predem diky.
--
S pozdravem Karel Horky, D7, FB 1.5.2, IBX 7.08, WXP SP2
[mailto:horky(zv)cominn(tec)cz]

Disky

[*] Ladislav Fitz <ladislav.fitz(zv)kodytek(tec)cz> - 17.4.2007 09:32:52



> Pomoci funkce GetDriveType dokazu zjistit, o jaky typ disku se jedna. Co
> bych vsak potreboaval zjistit a nevim jak na to, je to, zda u vymenneho
> media (DRIVE_REMOVABLE) jde o disketovou mechaniku nebo o flash disk a u
> opticke mechaniky (DRIVE_CDROM) o CD nebo DVD. Nevite nekdo jak na to?
> Diky.
> Michal Kos

na stranku www.volny(tec)cz/maxi_fikus sem nahral unity deviceobjectunit a
devicetypeunit podivej se na ne

Verze souboru

[*] Petr Berek <sojokl(zv)seznam(tec)cz> - 17.4.2007 13:55:10

Zdravim,
z niceho nic nemuzu dostat ze souboru informaci o verzi. Ta informace u
souboru existuje, kdyz se podivam do vlastnosti, tak ji tam vidim, ale
zkousel jsem to pres komponentu XFileVersion a nejde to.
Nevite nekdo, jak zjistit ty informace, co vidim ve vlastnostech na zalozce
Verze, nejlepe vsechny?
Diky za rady,
Petr

Smerova ruzice

[*] Milos J. Hrach <delphi konf(zv)post(tec)cz> - 17.4.2007 09:02:48

Ahoj

Ruzici bych vyresil obrazkem, ktery bude ulozeny pred tvym obrazkem (mapou).
Zoom by podle me slo vyresit posuvnikem - TrackBar.

Jakub

> ------------ Puvodni zprava ------------
> Od: Lebeda David <david.lebeda(zv)comarr(tec)cz>
> Predmet: Smerova ruzice
> Datum: 06.4.2007 08:28:10
> ----------------------------------------
> Ahoj,
>
> rad bych udelal do prohlizece obrazku/mapy smerovou ruzici s osmi smery
> (S, J, V, Z, SV, JV, SZ, JZ) a tahatko na zoom - neco takoveho jako treba
> na www.mapy(tec)cz.
>
> Aplikovalo by se to na obrazek primo vykresleny do formulare. Vyvojove
> prostredi D5E.
>
> Mate nekdo nejaky napad, kudy do toho? Nejde mi o detaily konkretniho
> reseni, to si nastuduji, ale spis o rady, kudy vubec do toho, po jake
> technologii sahnout.
>
> Grafik mi nabizi moznost ruzici pripravit jako flash. Co to znamena? Budu
> na to umet v Delphi nejak reagovat? Nebo to je nevhodny napad?
>
> Diky.
>
> David Lebeda
>
>
>
>

Verze souboru

[*] Skalsky Milan <skalsky(zv)komercpoj(tec)cz> - 17.4.2007 14:07:11

udelal jsem si nize uvedeny zaznam a fci .. nerikam, ze je to nejjednodussi a nejlepsi, ale funguje spolehlive

uses WinTypes, SysUtils;

type
TVersionInfo = record
FixedFileInfo: TVSFixedFileInfo;
MajorVersion: integer;
MinorVersion: integer;
Release: integer;
Build: integer;
CompanyName: string;
FileDescription: string;
FileVersion: string;
InternalName: string;
LegalCopyright: string;
LegalTrademarks: string;
OriginalFilename: string;
ProductName: string;
ProductVersion: string;
Comments: string;
TranslationLang: Word;
TranslationCharSet: Word;
end; function ReadFileVersionInfo(const FileName: string) : TVersionInfo;

implementation

function ReadFileVersionInfo(const FileName: string) : TVersionInfo;
var VerData : Pointer;
VerSize, Dummy, QuerySize : DWORD;
QueryPtr : PChar;
CharsetString : string;

procedure VersionItem(const ItemName: string; var ItemValue: string);
begin
if VerQueryValue(VerData, PChar(CharsetString+ItemName), Pointer(QueryPtr), QuerySize) then
SetString(ItemValue, QueryPtr, QuerySize-1);
end;

begin
// Zjisteni udaju o souboru z VersionInfo
FillChar(Result, Sizeof(Result), 0);
VerSize := GetFileVersionInfoSize(PChar(FileName), Dummy);
if VerSize = 0 then Exit;
GetMem(VerData, VerSize);
try
if GetFileVersionInfo(PChar(FileName), Dummy, VerSize, VerData) then
begin
with Result do
begin
if VerQueryValue(VerData, '\', Pointer(QueryPtr), QuerySize) then
begin
FixedFileInfo := PVSFixedFileInfo(QueryPtr)^;
MajorVersion := HIWORD(FixedFileInfo.dwProductVersionMS);
MinorVersion := LOWORD(FixedFileInfo.dwProductVersionMS);
Release := HIWORD(FixedFileInfo.dwProductVersionLS);
Build := LOWORD(FixedFileInfo.dwProductVersionLS);
end;
if VerQueryValue(VerData, '\VarFileInfo\Translation', Pointer(QueryPtr), QuerySize) then
begin
TranslationLang := PWord(QueryPtr)^;
TranslationCharSet := PWord(QueryPtr + 2)^;
end
else
begin
TranslationLang := $409;
TranslationCharSet := $404;
end;
CharsetString := Format('\StringFileInfo\%.4x%.4x\', [TranslationLang, TranslationCharSet]);
VersionItem('CompanyName', CompanyName);
VersionItem('FileDescription', FileDescription);
VersionItem('FileVersion', FileVersion);
VersionItem('InternalName', InternalName);
VersionItem('LegalCopyright', LegalCopyright);
VersionItem('LegalTrademarks', LegalTrademarks);
VersionItem('OriginalFilename', OriginalFilename);
VersionItem('ProductName', ProductName);
VersionItem('ProductVersion', ProductVersion);
VersionItem('Comments', Comments);
end;
end;
finally FreeMem(VerData); end;
end;

--------
volani:

AppVersion:TVersionInfo;

AppVersion := ReadFileVersionInfo(Application.ExeName)

verze fajlu: AppVersion.FileVersion
Build: AppVersion.Build

... atp.


Milan



-----Original Message-----
From: delphi-l-owner(zv)clexpert(tec)cz [mailto:delphi-l-owner(zv)clexpert(tec)cz] On Behalf Of Petr Berek
Nevite nekdo, jak zjistit ty informace, co vidim ve vlastnostech na zalozce
Verze, nejlepe vsechny?

Verze souboru

[*] delphi(zv)haida(tec)cz - 17.4.2007 14:01:11

TJclFileVersionInfo z JclFileUtils

Pavel Tresnak

Petr Berek napsal(a):
> Zdravim,
> z niceho nic nemuzu dostat ze souboru informaci o verzi. Ta informace u
> souboru existuje, kdyz se podivam do vlastnosti, tak ji tam vidim, ale
> zkousel jsem to pres komponentu XFileVersion a nejde to.
> Nevite nekdo, jak zjistit ty informace, co vidim ve vlastnostech na zalozce
> Verze, nejlepe vsechny?
> Diky za rady,
> Petr
>

Delphi for PHP

[*] rkubat(zv)email(tec)cz - 17.4.2007 11:33:01

Dobry den,

zkuste http://www.qadram.com/vcl4php/index.php ... pomalu se tam rozjizdi diskuse,
o MySQL se pise tez.

> Zdravim,
> Vite nekdo o kvalitni konfere viz %subj% pripadne zda sem patri diskuze o Delphi
> for PHP resp zda se zde najde nekdo o tom ochotny diskutovat (kontakty pripadne
> na konference(zv)sales(tec)cz).

VirtualTreeView - pouziti

[*] Ludek Finstrle <ludek.finstrle(zv)pzkagis(tec)cz> - 17.4.2007 11:17:00

> Prosim jeste o strucnou informaci. Dejme tomu, ze mam data nactena a
> zobrazena. Poskytuje VTV nejakou podporu pro razeni? Myslim tim, jestli
> razeni podle jineho sloupce musim realizovat tak, ze seradim ta podkladova
> data, nebo mohou data zustat nactena jde jen seradit nody?

Umi to (i explicitne - viz kus meho kodu):
if ((FAutoSort) or (toAutoSort in TreeOptions.AutoOptions)) then
SortTree(Header.SortColumn, Header.SortDirection, false);

Musis jen naimplementovat OnCompareNodes, pripadne i OnHeaderClick.

Ja to mam (zaklad):

Header.Options := [...,hoShowSortGlyphs,...];

procedure TCustomVirtualPredDBTree.DoOnCompareNodes(Sender: TBaseVirtualTree;
Node1, Node2: PVirtualNode;
Column: TColumnIndex;
var Result: Integer);
var ws1, ws2 : WideString;
Begin
DoOnGetText(Sender,Node1,Column,ttNormal,ws1);
DoOnGetText(Sender,Node2,Column,ttNormal,ws2);
Result := StrComp(PChar(WideCharToString(PWideChar(ws1))),
PChar(WideCharToString(PWideChar(ws2))));
End;

procedure TCustomVirtualPredDBTree.DoOnHeaderClick(Sender: TVTHeader; Column: TColumnIndex;
Button: TMouseButton; Shift: TShiftState;
X, Y: Integer);
Begin
if (Button = mbLeft) then
begin
if (Sender.SortColumn <> Column) then
begin
Sender.SortColumn := Column;
end
else begin
if (Sender.SortDirection = sdAscending) then
Sender.SortDirection := sdDescending
else
Sender.SortDirection := sdAscending;
end;
end;
End;

Luf

VirtualTreeView - pouziti

[*] Tomas Rosa <trosa(zv)seznam(tec)cz> - 17.4.2007 11:06:59

>
> Chci pouzit VTV jako nahradu stringgridu. Mam v pameti jiz nactene
> dynamicke pole recordu (dat) a obsah toho pole chci zobrazit. Ve VTV mam
> deklarovane Headers.
>
> Umim do VTV vytvorit novy node. V examplech se pak vola GetNode Data a tam
> se pak neco plni. To ja ale nepotrebuji - data jsou jiz v pameti.
> Potrebuji jen nejak propojit jednotlive nody s konkretnimi prvky pole.

podle me moc slozie, pokud uz data mas rozumne pripravena.

V mem pripade mam data pripravena v poli fInvoice a InvoiceItems je VTV.
(ps. pouzivam to pouze jako jednourovnovy seznam, v opacnem priapde ti
nezbyde nic jineho nez GetNode...)

1) nasatv si pocet

InvoiceItems.RootNodeCount:=fInvoice.UnpayedItemsCount;


2) nadefinuj si event pro GetText

procedure TSelectBillItems.InvoiceItemsGetText(Sender: TBaseVirtualTree;
Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType;
var CellText: WideString);
var bi:TBillingItem;
begin
bi:=fInvoice.UnpayedItems[Node.Index];
if assigned(bi) then
begin
case Column of
0:CellText:=bi.Name;

1:CellText:=Format('%.2f%s',[-bi.Price,MenyList.DefaultMena.Symbol]);
2:CellText:=Format('%d ks',[bi.ItemCount]);
3:CellText:=Format('%d ks',[bi.ToBePayedCount]);

4:CellText:=Format('%.2f%s',[-bi.TotalPrice,MenyList.DefaultMena.Symbol]);
end;
end;
end;


- zavola ti to pro kazdy radek a kazdy sloupecek a ceka to na data.


TR

VirtualTreeView a editace

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

Ahoj,

uz jsem neco nasel.

> 1) Nactu data (jen same root nody), krasne se mi zobrazuji. Nastavim
> FocusedNode na prvni radek. OK. Vybrana bunka ale neni modra, ma jen ten
> teckovany ramecek, jakoze ma focus, ale neni ani modra ani v edit modu.
> Jakmile dam sipku kterymkoli smerem, aktivuje se prislusna bunka a ta jiz
> modra je. Proc neni modra i ta prvni?

FTree.Selected[FActiveNode] := true;

> 4) Potrebuji nejak nasimulovat chovani TDataset.Locate - tj. najit prvni
> radek vyhovujici nejake podmince. Tady asi nezbyde, nez se postavit na
> zacatek, projet pres vsechny nody a koukat do jejich dat. Co se k tomu
> pouziva - GetFirst a GetNext nebo neco jineho?

NextNode:
if (RadioDolu.Checked) then
Result := FTree.GetNext(ANode)
else
Result := FTree.GetPrevious(ANode);

Jinak prvni hledany Node resim:
if (CheckKonec.Checked) then
begin
FActiveNode := FTree.RootNode;
if (FActiveNode <> nil) then
begin
while (FActiveNode.FirstChild <> nil) do
FActiveNode := FActiveNode.LastChild;
end;
end
else if (CheckZacatek.Checked) then
begin
FActiveNode := FTree.RootNode.FirstChild;
end
else begin
FActiveNode := NextNode(FActiveNode);
// NextNode viz vyse
end;

Ostatni jsem neresil.

Luf

VirtualTreeView a editace

[*] Ludek Finstrle <ludek.finstrle(zv)pzkagis(tec)cz> - 18.4.2007 17:30:20

> 1) Nactu data (jen same root nody), krasne se mi zobrazuji. Nastavim
> FocusedNode na prvni radek. OK. Vybrana bunka ale neni modra, ma jen ten

Modra je ta, co je vybrana (Selected ne Focused).

> Prozatim dekuji za pomoc. Komponenta se mi libi, problem je v tom, ze umi
> milion veci a ja zatim neumim kloudne hledat v te obrovske halde propert,
> metod a eventu - je toho moc najednou.

Ostatni z hlavy nevim.

Luf

VirtualTreeView a editace

[*] Lebeda David <david.lebeda(zv)comarr(tec)cz> - 18.4.2007 17:24:20

Ahoj,

mam na formu VirtualTreeView a pokousim se s nim simulovat chovani gridu.
Neco se dari, neco zatim ne. Muzete me prosim nakopnout?

1) Nactu data (jen same root nody), krasne se mi zobrazuji. Nastavim
FocusedNode na prvni radek. OK. Vybrana bunka ale neni modra, ma jen ten
teckovany ramecek, jakoze ma focus, ale neni ani modra ani v edit modu.
Jakmile dam sipku kterymkoli smerem, aktivuje se prislusna bunka a ta jiz
modra je. Proc neni modra i ta prvni?

2) Jde nejak zapnout autoeditacni rezim jako u gridu, tj. abych mohl
sipkou najet na nejakou bunku a rovnou psat text - bez nutnosti mackat F2
apod.?

3) V Header mam vyrobene Columns. Nenasel jsem v zadnem Colors moznost
zmenit barvu nadpisu sloupcu. Lze nastavit jen barvu volne plochy vedle
hlavicky. Opravdu to nejde primo a musim pres event?

4) Potrebuji nejak nasimulovat chovani TDataset.Locate - tj. najit prvni
radek vyhovujici nejake podmince. Tady asi nezbyde, nez se postavit na
zacatek, projet pres vsechny nody a koukat do jejich dat. Co se k tomu
pouziva - GetFirst a GetNext nebo neco jineho?

Prozatim dekuji za pomoc. Komponenta se mi libi, problem je v tom, ze umi
milion veci a ja zatim neumim kloudne hledat v te obrovske halde propert,
metod a eventu - je toho moc najednou.

Diky

David Lebeda

jak na zmenu owner

[*] Ales Pavel <aldik(zv)quick(tec)cz> - 19.4.2007 11:29:35

nevite jak zmenim ownera? potrebuji ho menit spolecne s parentem..
nebo nejaky sikovny recreate co by nakopiroval vsechny vlasnosti az na
ownera, poradite mi

OT:
ten net za zlobi pisuj to po treti, tak to snad nedojde 3x :))

Ales

zmena owner

[*] Ales Pavel <aldik(zv)quick(tec)cz> - 19.4.2007 11:19:34

jak na zmenu owneru komponenty? Nebo aspon recreate komponenty se vsemi
vlastnostmi, jen chci destroy volat v jiny cas, protoze jsem zmenil
parent komponenty..

Diky moc

Uz jsem to sem psal ale nejak to asi nedoslo

Ales

OT D2007 a Resource

[*] Vaclav Halik <spravasd(zv)suz.cvut(tec)cz> - 19.4.2007 10:33:30

Zdravim,

> Existuje nekde na netu nejlepe free verze "Resource workshopu"?
> Petr Koukal

XN Resource Editor
http://www.wilsonc.demon.co.uk/d10resourceeditor.htm
Jsem s tim naprosto spokojen.


S pozdravem Vaclav Halik

OT D2007 a Resource

[*] koukal(zv)petrkoukal(tec)cz - 19.4.2007 08:25:20

Dobry den.

Po instalaci D2007 prof for win 32 jsem zjistil , ze v toolsech neni zadny nastroj pro tvorbu bitmap, .res .cur .ico (!).
Potrebuji hlavne nastroj pro tvorbu .cur .ico. (.res) .

Existuje nekde na netu nejlepe free verze "Resource workshopu"?

Petr Koukal



MessageDlg

[*] Milos J. Hrach <delphi konf(zv)post(tec)cz> - 19.4.2007 14:37:47

Ahoj lidi,

mam dotaz mozna zacatecnicky, ale presto si snu\im nevym rady.

Da se nejak zabranit, aby se mi v jinak ceske aplikaci na anglickyuch Woknech zobrazovala tlacitka Application.MessageDlg cesky nikoliv anglicky?

Diky

Jakub

MessageDlg

[*] delphin(zv)post(tec)cz - 19.4.2007 14:43:47

> mam dotaz mozna zacatecnicky, ale presto si snu\im nevym rady.
>
> Da se nejak zabranit, aby se mi v jinak ceske aplikaci na anglickyuch
> Woknech zobrazovala tlacitka Application.MessageDlg cesky nikoliv
> anglicky?

Nepouzivat MessageDlg (zadratovano v Delphi) ale MessageBox (vola funkce
Windows)

ako doplnit chybajuci primarny kluc

[*] Slavomir Skopalik <skopalik(zv)elektlabs(tec)cz> - 20.4.2007 01:22:32

Prosim, muzes svou teorii ponekud rozvest ?
Proc MUSI byt u update klauzule where (neni povina) ?
Update VZDY pracuje v jednom okamziku s jednim zaznamem,
jen pomoci WHERE muzes (ale nemusis) omezit jejich mnozinu.
Napriklad:
UPDATE ucet SET stav=stav+1 WHERE stav>1000;

Tohle pricte u zaznamu, kde stav je vetsi jak 1000 jednicku.
Stejne tak muzes pouzit GEN_ID, nebo generovani UUID (GUID).
Napriklad
UPDATE xxx SET id=GetUUID() WHERE id IS NULL;

Slavek

> podla mna sa to neda ako pises, lebo
> ak doplnam do existujucich zaznamov hodnoty cez ulozenku
> musim pouzit update a ak chcem iba do jedneho potrebujem
> podmienku where a tam nemam
> co specifikovat pretoze
> ziadne PK tam neexistuje.
>
> Karel Rys wrote / napisal(a):
> > co vytvorit pole, naplnit ho hodnotama (ulozenou
> procedurou) a teprve
> > pak nad tim polem vytvorit primarni klic? Kopirovani a
> nasledne mazani
> > zaznamu by nemelo byt nutne.

ako doplnit chybajuci primarny kluc

[*] Slavomir Skopalik <skopalik(zv)elektlabs(tec)cz> - 20.4.2007 01:16:31

> ako do FB tabulky pomocou skriptu (nie cez exe delphi)

Jak to s timto souvisi ?

> doplnit chybajuci
> primarny kluc
> resp. pole ktore bude jednoznacne identifikovat zaznamy?

pomoci prikazu ALTER TABLE ADD ....
a ALTER TABLE ADD CONSTRAINT

Nejdrive pridas sloupec, ten pak naplnis unikatni hodnotou
(zde zalezi na tom, jestli je tato hodnota "vypocitatelna" z
jiz existujicich, nebo ne).
Napriklad pro naplneni generatorem:
UPDATE nejaka_tabulka SET id=GEN_ID(nazev_generatoru,1);

>
> zatial ma napadla iba moznost pomocou ulozenej procedury
> vytvorit nove
> zhodne zaznamy
> doplnene o nove pole s nasledny vymazanim povodnych zaznamov.
>
> nie je nejake lahsie - elegantnejsie riesenie?
>
> napr. v mysql sa da vytvorit nove autoincrementacne pole ktore rovno
> ocisluje zaznamy..
> ako na to vo FB?

Samo se to neocisluje, musis pres update.

Slavek

ako doplnit chybajuci primarny kluc

[*] Hlas <hlas(zv)inmail.sk> - 19.4.2007 23:20:23

podla mna sa to neda ako pises, lebo
ak doplnam do existujucich zaznamov hodnoty cez ulozenku musim pouzit
update a ak chcem iba do jedneho potrebujem podmienku where a tam nemam
co specifikovat pretoze
ziadne PK tam neexistuje.

Karel Rys wrote / napisal(a):
> co vytvorit pole, naplnit ho hodnotama (ulozenou procedurou) a teprve
> pak nad tim polem vytvorit primarni klic? Kopirovani a nasledne mazani
> zaznamu by nemelo byt nutne.
>
> Karel Rys
>
>
>

ako doplnit chybajuci primarny kluc

[*] Karel Rys <delphi(zv)zas-me(tec)cz> - 19.4.2007 23:04:22

Cituji Hlas <hlas(zv)inmail.sk>:

> ako do FB tabulky pomocou skriptu (nie cez exe delphi) doplnit chybajuci
> primarny kluc
> resp. pole ktore bude jednoznacne identifikovat zaznamy?
> zatial ma napadla iba moznost pomocou ulozenej procedury vytvorit nove
> zhodne zaznamy
> doplnene o nove pole s nasledny vymazanim povodnych zaznamov.

Ahoj,

co vytvorit pole, naplnit ho hodnotama (ulozenou procedurou) a teprve
pak nad tim polem vytvorit primarni klic? Kopirovani a nasledne mazani
zaznamu by nemelo byt nutne.

Karel Rys


ako doplnit chybajuci primarny kluc

[*] Hlas <hlas(zv)inmail.sk> - 19.4.2007 22:56:21

ako do FB tabulky pomocou skriptu (nie cez exe delphi) doplnit chybajuci
primarny kluc
resp. pole ktore bude jednoznacne identifikovat zaznamy?

zatial ma napadla iba moznost pomocou ulozenej procedury vytvorit nove
zhodne zaznamy
doplnene o nove pole s nasledny vymazanim povodnych zaznamov.

nie je nejake lahsie - elegantnejsie riesenie?

napr. v mysql sa da vytvorit nove autoincrementacne pole ktore rovno
ocisluje zaznamy..
ako na to vo FB?

Klikaci mapa

[*] Petr Svejda <petr(zv)svejda(tec)cz> - 19.4.2007 20:50:13

S podobnym problemem jsem se jiz setkal. Firma Altair to resila velmi
elegantne tak, ze jsi klikal na obrazek s mapou, ale ve skutecnosti se
odecetli pouze souradnice x a y. Ty se pak promitly do bmp obrazku, ktery
byl reprezentovan kolecky, ctvrecky a nepravidelnymi tvary ruznych barev -
vse nakresleno Paintbrashi. Domnivam se, ze podle barev teto podkladove mapy
provadeli ruzne akce. Neni asi problem podobne namisto bmp obrazku mit jako
podklad jakousi mapu slozenou z pojmenovanych TShape, ktere si uzivatel muze
sam posouvat po plose (viz. drivejsi odkazy v konferenci). Muzes se podivat
na jejich hru FishFilets (byla uvolnena jako free) - z hlavni obrazovky a z
nainstalovanych souboru to bude na prvni pohled zrejme.


Petr Svejda

ISOFT

www.znalosti(tec)cz
www.isoft(tec)cz
www.prowin(tec)cz


-----Original Message-----
Chci do programu zabudovat nejakou klikaci mapu, tj. zobrazit obrazek,
slozeny ze ctvercu, obdelniku, kolecek atd, rozmistenych nepravidelne na
plose formulare. Po kliknuti na nektery objekt se vyvola obsluha udalosti.
Pri klepnuti mimo objekt se nestane nic. Objekty na plose by take mely jit
uzivatelsky rozmistovat a pridavat v runtime.
Existuje nejaka vhodna komponenta ?

jak na zmenu owner

[*] Jan Novak <delfin4(zv)volny(tec)cz> - 19.4.2007 20:20:10

> nevite jak zmenim ownera?

Ja bych ho zkusil u toho ownera vyradit ze seznamu childu a pak ho
pridat novemu

Tlacitko na kamere

[*] Jan Novak <delfin4(zv)volny(tec)cz> - 19.4.2007 20:16:10

Potreboval bych odchytit stisk capturovaciho tlacitka na kamere.

zmena owner

[*] Jan Sebelik <honza(zv)haes(tec)cz> - 20.4.2007 07:12:54

> jak na zmenu owneru komponenty? Nebo aspon recreate komponenty se vsemi
> vlastnostmi, jen chci destroy volat v jiny cas, protoze jsem zmenil
> parent komponenty..

Owner je read-only, to je zrejme. Ale proc ho taky menit?

Owner muze byt jakakoli komponenta. Pokud ma komponenta existovat po nejaky cas (treba po cely cas behu aplikace) a ty v mezicase menis Parent, proc by nemohl byt Owner treba Application? Nebo neco jineho, treba to, odkud volas tu zmenu Parent?

Honza
====================================
= RNDr. Jan Sebelik - HAES
= Skolici a konzultacni stredisko pro vyvoj SW
= www.haes(tec)cz
= Vojtiskova 321
= 507 81 Lazne Belohrad
====================================

MessageDlg

[*] Jan Sebelik <honza(zv)haes(tec)cz> - 20.4.2007 07:22:54

> Da se nejak zabranit, aby se mi v jinak ceske aplikaci na
> anglickyuch Woknech zobrazovala tlacitka Application.MessageDlg
> cesky nikoliv anglicky?

Muzes pouzit MessageBox.

Pokud ale potrebujes neco vic, treba knofliky YesToAll, NoToAll a pod., muzes si knofliky a Caption pocestit.
Ty texty nize by mel byt asi resource string, pro ilustraci to snad ale staci

Honza
====================================
= RNDr. Jan Sebelik - HAES
= Skolici a konzultacni stredisko pro vyvoj SW
= www.haes(tec)cz
= Vojtiskova 321
= 507 81 Lazne Belohrad
====================================

uses Dialogs

function MsgDlg(AText: string; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; defResult:TModalResult=mrNone): Integer;
var
B:TButton; i:Integer;
begin
with CreateMessageDialog(AText,DlgType,Buttons) do
try
for i:=0 to ControlCount-1 do begin
if Controls[i] is TButton then
B:=TButton(Controls[i])
else
continue;
if defResult<>mrNone then
B.Default:= B.ModalResult=defResult;
if B.Default then
B.TabOrder:=0;
case B.ModalResult of
mrCancel : B.Caption:='&Storno';
mrAbort : B.Caption:='&P?eruUit';
mrRetry : B.Caption:='&Znovu';
mrIgnore : B.Caption:='&Ignorovat';
mrYes : B.Caption:='&Ano';
mrNo : B.Caption:='&Ne';
mrAll : B.Caption:='&VUechno';
mrYesToAll : B.Caption:='An&o vUem';
mrNoToAll : B.Caption:='N&e vUem';
end;
case DlgType of
mtError : Caption:='Chyba';
mtWarning: Caption:='UpozornynY';
mtConfirmation: Caption:='PotvrzenY';
mtInformation: Caption:='Informace';
end;
end;
Result:=ShowModal;
finally
Free;
end
end;

MessageDlg

[*] Stanislav ADAMCIK <konferencia(zv)stadas.sk> - 20.4.2007 07:28:55

skus toto, treba to iba zahrnut do projektu ...

unit dialog_sk;

interface

implementation

uses Classes, Forms, Consts, Dialogs;

resourcestring
SMsgDlgSKWarning = 'Varovanie';
SMsgDlgSKError = 'Chyba';
SMsgDlgSKInformation = 'Inform+AOE-cia';
SMsgDlgSKConfirm = 'Ot+AOE-zka';
SMsgDlgSKYes = '&Ano';
SMsgDlgSKNo = '&Nie';
SMsgDlgSKOK = '&OK';
SMsgDlgSKCancel = '&Zru+AWE-i+AWU-';
SMsgDlgSKHelp = 'Pomocn+AO0-k';
SMsgDlgSKHelpNone = 'Pomocn+AO0-k Ni+AQ0-';
SMsgDlgSKHelpHelp = 'Pomocn+AO0-k';
SMsgDlgSKAbort = '&Zru+AWE-i+AWU-';
SMsgDlgSKRetry = 'Opakova+AWU-';
SMsgDlgSKIgnore = '&Ignorova+AWU-';
SMsgDlgSKAll = '&V+AWE-etko';
SMsgDlgSKNoToAll = '&Nie v+AWE-etky';
SMsgDlgSKYesToAll = '&Ano v+AWE-etky';

const
Captions: array[TMsgDlgType] of Pointer = ((zv)SMsgDlgSKWarning,
(zv)SMsgDlgSKError,
(zv)SMsgDlgSKInformation, (zv)SMsgDlgSKConfirm, nil);

ButtonCaptions: array[TMsgDlgBtn] of Pointer = ((zv)SMsgDlgSKYes,
(zv)SMsgDlgSKNo, (zv)SMsgDlgSKOK, (zv)SMsgDlgSKCancel,
(zv)SMsgDlgSKAbort, (zv)SMsgDlgSKRetry, (zv)SMsgDlgSKIgnore, (zv)SMsgDlgSKAll,
(zv)SMsgDlgSKNoToAll, (zv)SMsgDlgSKYesToAll, (zv)SMsgDlgSKHelp);

procedure _ChangeCaptions(List: PPointerList;Last: Pointer);
var
i, Max: Integer;
IsFind: Boolean;
begin
Max := (Integer(Last)-Integer(List)) div SizeOf(Pointer);
IsFind := False;
for i := 0 to Max - 2 do
if (List[i] = (zv)SMsgDlgWarning) and (List[i+-2] = (zv)SMsgDlgInformation) then
begin
IsFind := True;
break;
end;
if IsFind then
Move(Captions, List[i], SizeOf(Captions));
IsFind := False;
for i := i to Max - 2 do
if (List[i] = (zv)SMsgDlgYes) and (List[i+-2] = (zv)SMsgDlgOK) then
begin
IsFind := True;
break;
end;
if IsFind then
Move(ButtonCaptions, List[i], SizeOf(ButtonCaptions));
end;

initialization
_ChangeCaptions((zv)DebugHook, (zv)Application);
end.

ako doplnit chybajuci primarny kluc

[*] psalkovsky(zv)icp.sk <psalkovsky(zv)icp.sk> - 20.4.2007 08:22:59

2 Skopalik
pisem z prace pod inym kontom
ked v ramci ulozenej procedury cyklujem po jednotlivych zaznamoch tej
tabulky
tak potrebujem predsa vykonat update tabulka set pole= blabla
ak nedam where tak mi to zapise do vsetkych zaznamov tabulky
potrebujem predsa iba do jedneho zaznamu a ist dalej na novy zaznam
a do where nedokazem specifikovat podmienku pretoze tabulka nema PK

nevedel som ale o moznosti ze pomocou update mozem priamo zadavat
hodnoty z generatora
to riesenie sa mi zda zaujimave


Slavomir Skopalik wrote / napisal(a):
> Prosim, muzes svou teorii ponekud rozvest ?
> Proc MUSI byt u update klauzule where (neni povina) ?
> Update VZDY pracuje v jednom okamziku s jednim zaznamem,
> jen pomoci WHERE muzes (ale nemusis) omezit jejich mnozinu.
> Napriklad:
> UPDATE ucet SET stav=stav+1 WHERE stav>1000;
>
> Tohle pricte u zaznamu, kde stav je vetsi jak 1000 jednicku.
> Stejne tak muzes pouzit GEN_ID, nebo generovani UUID (GUID).
> Napriklad
> UPDATE xxx SET id=GetUUID() WHERE id IS NULL;
>
> Slavek
>
>
>> podla mna sa to neda ako pises, lebo
>> ak doplnam do existujucich zaznamov hodnoty cez ulozenku
>> musim pouzit update a ak chcem iba do jedneho potrebujem
>> podmienku where a tam nemam
>> co specifikovat pretoze
>> ziadne PK tam neexistuje.
>>
>> Karel Rys wrote / napisal(a):
>>
>>> co vytvorit pole, naplnit ho hodnotama (ulozenou
>>>
>> procedurou) a teprve
>>
>>> pak nad tim polem vytvorit primarni klic? Kopirovani a
>>>
>> nasledne mazani
>>
>>> zaznamu by nemelo byt nutne.
>>>
>
>
> .
>
>

Odeslani mailu pres ShellExecute velkemu mnozstvi

[*] David Klodner <delphikonfer(zv)seznam(tec)cz> - 20.4.2007 09:55:06

Ahoj,

potreboval bych posilat maily pres
ShellExecute(0, 'open', 'mailto:xx(zv)xxx(tec)cz', nil, nil, SW_SHOWNORMAL);

Bude to hromadne rozesilani pro vsechny klientovy zakazniky, kterych mohou
byt stovky az tisice.
Potreboval bych z nich vytvorit rozesilaci seznam, nejlepe treba do txt
souboru a ten v ShellExecute pouzit.

Nevite nekdo, jak na to?

David Klodner

ako doplnit chybajuci primarny kluc

[*] Slavomir Skopalik <skopalik(zv)elektlabs(tec)cz> - 20.4.2007 10:25:09

Jeste jsem si vzpomel:
kazdy radek v FB ma skryty "unikatni klic", ktery lze pouzit
prave pro toto cyklovani (pokud tedy potrebujes).
Ale doporucuji si o tomto neco precist (google).

Priklad:
CREATE PROCEDURE KeyRead AS
DECLARE VARIABLE i INT;
DECLARE VARIABLE id INT;
DECLARE VARIABLE k1 CHAR(8);
DECLARE VARIABLE k2 CHAR(8);
DECLARE VARIABLE k3 CHAR(8);
BEGIN
i=0;
SELECT rdb$db_key FROM T WHERE id=0 INTO :k1;
SELECT rdb$db_key FROM T WHERE id=5000 INTO :k2;
SELECT rdb$db_key FROM T WHERE id=9500 INTO :k3;
WHILE(i<10000)DO BEGIN
SELECT id FROM T WHERE rdb$db_key=:k1 INTO :id;
SELECT id FROM T WHERE rdb$db_key=:k2 INTO :id;
SELECT id FROM T WHERE rdb$db_key=:k3 INTO :id;
i=i+1;
END
END^

Slavek


> pisem z prace pod inym kontom
> ked v ramci ulozenej procedury cyklujem po jednotlivych zaznamoch tej
> tabulky
> tak potrebujem predsa vykonat update tabulka set pole= blabla
> ak nedam where tak mi to zapise do vsetkych zaznamov tabulky
> potrebujem predsa iba do jedneho zaznamu a ist dalej na novy
> zaznam a do where nedokazem specifikovat podmienku pretoze
> tabulka nema PK
>
> nevedel som ale o moznosti ze pomocou update mozem priamo zadavat
> hodnoty z generatora
> to riesenie sa mi zda zaujimave

Odeslani mailu pres ShellExecute velkemu mnozstvi

[*] horky(zv)cominn(tec)cz - 20.4.2007 10:19:09

> From: David Klodner [mailto:delphikonfer(zv)seznam(tec)cz]
> Sent: Friday, April 20, 2007 9:55 AM

> Bude to hromadne rozesilani pro vsechny klientovy zakazniky,
> kterych mohou byt stovky az tisice.

S uspechem jsem pro poslani stejneho mailu na vice adres pouzil JCL:

procedure OdeslaniEMailu(const aPredmet: string; const aTelo: TStrings;
aPrijemce: TStringList = nil; aPrilohy: TStringList = nil);
var i: Integer;
begin
with TJclEmail.Create do
try
try
ParentWnd := Application.Handle;
if Assigned(aPrijemce) then
for i := 0 to aPrijemce.Count-1 do begin
Recipients.Add(aPrijemce.Strings[i]);
end { for }
else
Recipients.Add(SUP_EMAIL);
Subject := aPredmet;
HTMLBody := false;
Body := aTelo.Text;
if Assigned(aPrilohy) then
for i := 0 to aPrilohy.Count-1 do
Attachments.Add(aPrilohy.Strings[i]);
SaveTaskWindows;
try
Send(True);
finally
RestoreTaskWindows;
end;
except
{ nejake zpracovani chyby }
end;
finally
Free;
end;
end;

Nezbyva nez podekovat tvurcum JCL.
--
S pozdravem Karel Horky, D7, FB 1.5.2, IBX 7.08, WXP SP2
[mailto:horky(zv)cominn(tec)cz]


Odeslani mailu pres ShellExecute velkemu mnozstvi

[*] Lebeda David <david.lebeda(zv)comarr(tec)cz> - 20.4.2007 12:41:18

> SaveTaskWindows;
> try
> Send(True);
> finally
> RestoreTaskWindows;

Ahoj,

k cemu slouzi fce SaveTaskWindows a RestoreTaskWindows? JCL k odesilani
mailu taky v jedne aplikaci pouzivam, ale bez techto dvou fci.

Diky.

David Lebeda

Odeslani mailu pres ShellExecute velkemu mnozstvi

[*] horky(zv)cominn(tec)cz - 20.4.2007 13:07:20

> From: Lebeda David [mailto:david.lebeda(zv)comarr(tec)cz]
> Sent: Friday, April 20, 2007 12:41 PM

> > SaveTaskWindows;
> > try
> > Send(True);
> > finally
> > RestoreTaskWindows;
>
> Ahoj,
>
> k cemu slouzi fce SaveTaskWindows a RestoreTaskWindows? JCL k
> odesilani
> mailu taky v jedne aplikaci pouzivam, ale bez techto dvou fci.

Pred zavolanim Send se zapamatuje, kde je fokus. Po zavolani Send se vyvola okno s novou emailovou zpravou, zpravu muzu jeste upravit a teprve z okna davam pokyn k odeslani. RestoreTaskWindows umisti fokus tam, kde byl na zacatku.
--
S pozdravem Karel Horky, D7, FB 1.5.2, IBX 7.08, WXP SP2
[mailto:horky(zv)cominn(tec)cz]

Podepsani .exe souboru

[*] Milan Tomes <delphi(zv)haida(tec)cz> - 20.4.2007 14:03:24

Zdravim,

resim podepisovani .exe souboru certifikatem (trosku v tech terminech
plavu, ale melo by se jednat o MS Authenticode). Bohuzel utilita
SignCode je pro nepouzitelna, protoze vzdy vyzaduje zadani hesla k
privatnimu klici coz pro mne neni pripustne (nelze dopustit aby meli
vsichni programatori dostupny certifikat i s heslem k privatnimu klici).
To jsem celkem rychle vyresil sluzbou, ktera bude monitorovat adresar a
automaticky podepisovat to, co se v nem vyskytne (.exe, .dll, .ocx
atd...). Nicmene problem je v tom, ze absolutne netusim, co vsechno, kde
a jak musim provest, abych korektne podepsal dany soubor (ve velmi
blizke budoucnosti se bude jednat i o podepisovani souboru .msi).

Nakopnete me nekdo tim spravnym smerem ?

Diky

S pozdravem

Milan Tomes

Podepsani .exe souboru

[*] Radek Voltr <voltr(zv)eleasoftware(tec)com> - 20.4.2007 15:19:29

Ahoj,


Zacni s
http://msdn.microsoft.com/workshop/security/authcode/authenticode_ovw_entry.
asp

ja to konkretne neresil ale vim ze masina na ktere bezi ta sluzba musi byt
prihlasena do windows (proste tam musi byt najety desktop) protoze jinak to
blbne s loadem certifikatu. My pouzivame pro podepisovani ASPcko na serveru
a presne takhle to blbne - musime se prihlasovat na server pres RA jinak to
podepsani selze.


Ale pokud nahodou prijdes na to jak to vyresit tak dej vedet :-D

Cus
Radek

-----Original Message-----
From: delphi-l-owner(zv)clexpert(tec)cz [mailto:delphi-l-owner(zv)clexpert(tec)cz] On
Behalf Of Milan Tomes
Sent: Friday, April 20, 2007 2:03 PM
To: delphi-l(zv)clexpert(tec)cz
Subject: Podepsani .exe souboru

Zdravim,

resim podepisovani .exe souboru certifikatem (trosku v tech terminech
plavu, ale melo by se jednat o MS Authenticode). Bohuzel utilita
SignCode je pro nepouzitelna, protoze vzdy vyzaduje zadani hesla k
privatnimu klici coz pro mne neni pripustne (nelze dopustit aby meli
vsichni programatori dostupny certifikat i s heslem k privatnimu klici).
To jsem celkem rychle vyresil sluzbou, ktera bude monitorovat adresar a
automaticky podepisovat to, co se v nem vyskytne (.exe, .dll, .ocx
atd...). Nicmene problem je v tom, ze absolutne netusim, co vsechno, kde
a jak musim provest, abych korektne podepsal dany soubor (ve velmi
blizke budoucnosti se bude jednat i o podepisovani souboru .msi).

Nakopnete me nekdo tim spravnym smerem ?

Diky

S pozdravem

Milan Tomes

Podepsani .exe souboru

[*] Ondrej Kelle <o.kelle(zv)digitalpublishing.de> - 20.4.2007 15:47:31

> resim podepisovani .exe souboru certifikatem (trosku v tech terminech
> plavu, ale melo by se jednat o MS Authenticode). Bohuzel utilita
> SignCode je pro nepouzitelna, protoze vzdy vyzaduje zadani hesla k
> privatnimu klici coz pro mne neni pripustne (nelze dopustit aby meli
> vsichni programatori dostupny certifikat i s heslem k
> privatnimu klici).
> To jsem celkem rychle vyresil sluzbou, ktera bude monitorovat
> adresar a
> automaticky podepisovat to, co se v nem vyskytne (.exe, .dll, .ocx
> atd...). Nicmene problem je v tom, ze absolutne netusim, co
> vsechno, kde
> a jak musim provest, abych korektne podepsal dany soubor (ve velmi
> blizke budoucnosti se bude jednat i o podepisovani souboru .msi).
>
> Nakopnete me nekdo tim spravnym smerem ?

Da sa pomerne jednoducho pouzit CAPICOM od Microsoftu, co je myslim COM wrapper nad CryptoAPI.
(Malo by to ist aj priamo cez CryptoAPI, ale to uz bude asi zlozitejsie.)
Po naimportovani type library je kod na podpis dost jednoduchy:

uses
CAPICOM_TLB;

const
CodeSignPassword = ...

procedure CodeSign(const FileName, PfxFileName: string; TimeStamp: Boolean; const TimeStampURL: string);
var
Signer: ISigner2;
SignedCode: ISignedCode;
begin
Signer := CoSigner.Create;
Signer.Load(PfxFileName, CodeSignPassword);

SignedCode := CoSignedCode.Create;
SignedCode.FileName := FileName;
SignedCode.Sign(Signer);
if TimeStamp then
SignedCode.Timestamp(TimeStampURL);
end;

Neskusal som to v kontexte sluzby, len interaktivne ako shell extension.

HTH
TOndrej

Zruseni tlacitka v onClick

[*] Petr Berek <sojokl(zv)seznam(tec)cz> - 20.4.2007 21:03:51

Ahoj,
taky si myslim, ze je to kvuli tomuhle. Proc ma mit tlacitko rodice jako
samo sebe? Obvykle rodice pouzivam jako objekt, na kterem je vytvareny
objekt umisten.
Petr


> Parent := Self;
>

Zruseni tlacitka v onClick

[*] seznam1 <grajcar1(zv)seznam(tec)cz> - 20.4.2007 20:41:50

Jediny co me napada je quli tomu
> Parent := Self;

spatne je to tak jak tak, ale tady s timhle to ma asi lepsi sanci se projevit.

Zruseni tlacitka v onClick

[*] Ladislav Stary <stary(zv)ekodat(tec)cz> - 20.4.2007 19:09:44

Ahoj,

narazili jsme s kamaradem na zajimavy problem. Na formular hodim
tlacitko a priradim mu tuto metodu:

procedure TForm1.Button1Click(Sender: TObject);
begin
TButton(Sender).Free;
end;

Spustim program, stisknu tlacitko - tlacitko se spravne odstrani.

Pokud ovsem v udalosti onCreate formulare vytvorim vlastni tlacitko a
nastavim mu vlastnosti:

Tlacitko := TButton.Create(Self);

with Tlacitko
do begin
Parent := Self;
Name := 'btnMoje';
Caption := 'Moje tlacitko';
OnClick := Button1Click;
Left := 100;
top := 100;
Show;
end;

Tak program po odstraneni tlacitka zahlasi chybu. Je mi jasny, ze v
obsluze udalosti odstranovat objekt je blbina, presto by me zajimalo,
proc se to chova odlisne.

Diky

Ladislav Stary

Odeslani mailu pres ShellExecute velkemu mnozstvi

[*] Ludek <konference(zv)sales(tec)cz> - 20.4.2007 16:33:34

----- Original Message -----
From: <horky(zv)cominn(tec)cz>

>
>> Bude to hromadne rozesilani pro vsechny klientovy zakazniky,
>> kterych mohou byt stovky az tisice.
>
> S uspechem jsem pro poslani stejneho mailu na vice adres pouzil JCL:
>
> procedure OdeslaniEMailu(const aPredmet: string; const aTelo: TStrings;
> aPrijemce: TStringList = nil; aPrilohy: TStringList = nil);
> var i: Integer;........................

Ahoj,
No technicky OK, ale v praxi narazis na to, ze budes na blacklistu ani se nenadejes :):):)
Doporucuji posliat pouze jedinemu adreasatu v mensich (asi po 10-20 ks) blocich s nejakym nekoliklasekundovym prodlenim mezi jednotlivymi "salvami".
Take je dobre odesilat maily primo koncovym SMTP serverum a kontrolovat, jestli je adresa platna a jestli danou adresu SMTP server akceptuje.
Prikladam unitu : (pouzivajici synapsi)

Ludek

unit mailchck;

interface

uses
dnssend, smtpsend, synautil, classes, mimemess, mimepart;


function sendmail(const DNS, FROM_EML, FROM_NAME, TO_EML, TO_NAME, SUBJECT: string; const PLTEXT, FILES: TStrings): integer;


implementation
{
Result :
1 - address exists
2 - address may exists
3 - your DNS cannot working (cannot check!)
4 - cannot contact any MX servers (cannot check!);
5 - domain not have MX record
6 - address not exists
7 - address is bad!
8 - noname error
9 - POP3 error
Result > 0 : no send mail
Result < 0 : send mail
}

function sendmail(const DNS, FROM_EML, FROM_NAME, TO_EML, TO_NAME, SUBJECT: string; const PLTEXT, FILES: TStrings): integer;
var
SMTPHost, email, domain, user: string;
SMTP: TSMTPSend;
m: TMIMEMess;
p: TMimepart;
j: integer; mailservers: TStrings;
s, t: string;
x, i: integer;
MXloop: boolean;
begin
Result := 8;
email := getemailaddr(TO_EML);
x := pos('(zv)', email);
if x <= 0 then
begin
Result := 7;
exit; //invalid address format
end;
domain := separateright(email, '(zv)');
user := separateLeft(email, '(zv)');
if (domain = '') or (user = '') then
begin
Result := 7;
exit; //invalid address format
end;

SMTP := TSMTPSend.Create;
mailservers := TStringList.Create;
m := TMIMEMess.Create;
try
Result := 3;
if not GetMailServers(DNS, domain, mailservers) then
exit;
Result := 5;
if mailservers.Count = 0 then
exit;
MXloop := True;
// make message
p := m.AddPartMultipart('mixed', nil);
m.AddPartText(PLTEXT, p);
for j := 0 to FILES.Count - 1 do
m.AddPartBinaryFromFile(FILES[j], p);
m.header.from := '"'+FROM_NAME+'" <'+FROM_EML+'>';
m.header.Tolist.add('"'+TO_NAME+'" <'+TO_EML+'>');
m.Header.CustomHeaders.Add('X-EMAT-NOELL: '+TO_EML);
m.header.SUBJECT := SUBJECT;
m.EncodeMessage;
for i := 0 to mailservers.Count - 1 do
begin
if MXloop then
begin
SMTP.TargetHost := mailservers[i];
if SMTP.Login then
begin
MXloop := False;
if SMTP.Verify(email) then
begin
if SMTP.ResultCode = 551 then
begin
Result := 6; // user address not confirmed!
exit;
end;
if SMTP.ResultCode < 252 then
Result := 1; // user address confirmed!
// send message
if SMTP.MailFrom(getemailaddr(FROM_EML), Length(m.Lines.Text)) then
begin
if SMTP.MailTo(email) then
begin;
if Result <> 1 then Result := 2;
if SMTP.MAILDATA(m.Lines) then
begin
Result := 0 - Result;
end;
end;
end;
end;
SMTP.Logout;
end;
end;
end;
if MXloop then
Result := 4;
finally
m.Free;
mailservers.Free;
SMTP.Free;
end;
end;

Zruseni tlacitka v onClick

[*] Ladislav Stary <stary(zv)ekodat(tec)cz> - 20.4.2007 21:57:55

Mozna blbe zapsany, ale Parent ukazuje na Form1, takze v tom problem
neni. Porovnaval jsem si vlastnosti tlacitka vytvoreneho v designu a za
chodu programu a nejaky zasadni rozdil tam nevidim.

Ladislav Stary


Petr Berek napsal(a):

> Ahoj,
>taky si myslim, ze je to kvuli tomuhle. Proc ma mit tlacitko rodice jako
>samo sebe? Obvykle rodice pouzivam jako objekt, na kterem je vytvareny
>objekt umisten.
>Petr
>
>
>

Zruseni tlacitka v onClick

[*] Ludek <konference(zv)sales(tec)cz> - 21.4.2007 09:16:39

----- Original Message -----
From: "Ladislav Stary" <stary(zv)ekodat(tec)cz>

Ahoj,
No ja mu dodal jeste TabOrder ale to nepomohlo. Zajimave je, ze pokud na nej kliknu "klavesove", tedy najedu TABem a dam ENTER zachova se to spravne - t.j. tlacitko je pryc a nic nepadne.

Ludek

ako doplnit chybajuci primarny kluc

[*] Hlas <hlas(zv)inmail.sk> - 21.4.2007 06:54:30

cez delphi to nemam problem urobit,
problem som videl v ocislovavani zaznamov
nevedel som o moznosti pomocou update cez generator.
a ked som cisloval pomocou update tak predsa update
zapise do vs. zaznamov tabulky.... ak chcem do jedneho potrebujem
where .... ato where nemam na co zavesit...
mam to uz spravene aj tym mojim sposobom...
komplikovanejsim ale fungujeto cez inserty a nasledne odstranenie zaznamov
ale ten tvoj sposob je elegantnejsi.....
ale stale si myslim ze beznym sposobom bez pouzitia generatora to cez update
nie je mozne riesit


gaussovo rozlozeni

[*] Jaroslav Stepanek <stepanek(zv)metest(tec)cz> - 21.4.2007 11:30:48

Nevim jestli to sem patri, ale hledam nekde zdrojaky v Delphi nebo C++ pro
zjisteni parametru Gaussova rozlozeni jehoz vstupem je tabulka dat mereni.

Mohl by mne nekdo nasmerovat?

Diky, jarda stepanek





ako doplnit chybajuci primarny kluc

[*] Karel Rys <delphi(zv)zas-me(tec)cz> - 21.4.2007 10:28:44

Cituji Hlas <hlas(zv)inmail.sk>:

> ale stale si myslim ze beznym sposobom bez pouzitia generatora to cez update
> nie je mozne riesit

Zalezi, jestli tam mas zaznamy, ktere se shoduji v uplen vsech polich.
Pokud mas, stoji za zamyslenou, zda tam maji byt.
Pokud nemas, pak ve WHERE muzes proste porovnavat hodnoty vsech poli.

Takze treba v procedure udelas neco jako:

FOR SELECT a.Pole1,a.Pole2,a.Pole3
FROM Tabulka a
INTO :Pole1,:Pole2,:Pole3
DO BEGIN
UPDATE Tabulka a
SET a.ID=:ID
WHERE (a.Pole1=:Pole1)and(a.Pole2=:Pole2)and(a.Pole3=:Pole3);
ID=ID+1;
END

Karel Rys


gaussovo rozlozeni

[*] Slavomir Skopalik <skopalik(zv)elektlabs(tec)cz> - 21.4.2007 13:50:57

Unit Math

Category

Statistical routines

Delphi syntax:

procedure MeanAndStdDev(const Data: array of Double; var Mean, StdDev:
Extended);

C++ syntax:

extern PACKAGE void __fastcall MeanAndStdDev(const double * Data, const int
Data_Size, Extended &Mean, Extended &StdDev);

Description

MeanAndStdDev calculates Mean and standard deviation in one pass. Using this is
twice as fast as calculating them separately. Precision may be lost when the
Mean is very large (> 10e7) or the variance is very small.

Data specifies the data to be summarized. In C++, Data_Size is the index of the
last element in the Data array (one less than the number of elements). The mean
is returned as Mean and the standard deviation is returned as StdDev.

Note: If the sample size is 1 (that is, if Data contains only one entry),
StdDev returns the value of Data[0] and not zero.

Slavek

PS: Problematika je trochu slozitejsi, takze doporucuji se podivat na zakladni
statisticke pravidla
(odhady stredni hodnoty, odhady rozptylu, ...) jelikoz tyto "teoreticke" vypocty
se do praxe moc nehodi.
Tam je treba volit metodu podle povahy dat.

> Nevim jestli to sem patri, ale hledam nekde zdrojaky v Delphi
> nebo C++ pro zjisteni parametru Gaussova rozlozeni jehoz
> vstupem je tabulka dat mereni.
>
> Mohl by mne nekdo nasmerovat?

ako doplnit chybajuci primarny kluc

[*] Karel Rys <delphi(zv)zas-me(tec)cz> - 21.4.2007 20:03:21

Cituji Hlas <hlas(zv)inmail.sk>:

> to moje komplikovane riesenie funguje.
> to tvoje je ovela lepsie ale uz som to neprerabal
> nevedel som o tom ze do update mozem napojit rovno generator

OK, jen pro poradek podotykam, ze reseni s generatorem
Ti poradil Slavomir Skopalik a ne ja :)

KR


ako doplnit chybajuci primarny kluc

[*] Hlas <hlas(zv)inmail.sk> - 21.4.2007 17:59:13

problem mam uz vyrieseny.
to moje komplikovane riesenie funguje.
to tvoje je ovela lepsie ale uz som to neprerabal
nevedel som o tom ze do update mozem napojit rovno generator
ine riesenia asi neprichadzaju do uvahy
na polia co su v tabulke sa vobec spoliehat nemozem
mozu tam dokonca existovat aj uplne zhodne zaznamy
a maju svoje opodstatnenie preto som pisal ze nie je mozne pouzit bezny
update
s podmienkou where
kazdopadne dakujem za radu a nazor

Karel Rys wrote / napisal(a):
> Cituji Hlas <hlas(zv)inmail.sk>:
>
>
>> ale stale si myslim ze beznym sposobom bez pouzitia generatora to cez update
>> nie je mozne riesit
>>
>
> Zalezi, jestli tam mas zaznamy, ktere se shoduji v uplen vsech polich.
> Pokud mas, stoji za zamyslenou, zda tam maji byt.
> Pokud nemas, pak ve WHERE muzes proste porovnavat hodnoty vsech poli.
>
> Takze treba v procedure udelas neco jako:
>
> FOR SELECT a.Pole1,a.Pole2,a.Pole3
> FROM Tabulka a
> INTO :Pole1,:Pole2,:Pole3
> DO BEGIN
> UPDATE Tabulka a
> SET a.ID=:ID
> WHERE (a.Pole1=:Pole1)and(a.Pole2=:Pole2)and(a.Pole3=:Pole3);
> ID=ID+1;
> END
>
> Karel Rys
>
>
>
>

Instalace Virtual Treeview v Delphi 2007

[*] info(zv)drnholec(tec)cz <info(zv)drnholec(tec)cz> - 24.4.2007 07:11:18

Ahoj

Prechazim z D7 na D2007. Bohuzel se mi nedari zkompilovat Design balicek
komponenty Virtual Treeview z http://www.soft-gems.net/.

Hlasi to
"Remove VirtualTrees. Unit(s) VirtualTrees were found in required
package VirtualTreesD10."

Pri stisku tlacitka OK to vyvola runtime chybu v Delphi

Pokud to nekdo uz ma vyresene a bude ochoten poradit nebo to poslat na
muj email tak timto predem moc dekuji .

Jiri Heinisch

SOAP s podporou WSE v delphi

[*] Petr Vones <conference(zv)petrvones(tec)net> - 23.4.2007 17:28:25

From: "Sula Milos" <milos.sula(zv)musumperk(tec)cz>
> Muzete mi prosim doporucit nejakou free komponentu , ktera podporuje SOAP
> protokol + jeho rozsireni o WSE (ws security) pro D7 ?

Zapomen. V Delphi je tak 50% implementace standardniho SOAPu, a to jeste tak
nestastne napsana, ze je nekdy az 100x pomalejsi nez ostatni implementace.

Pro serverove web service dnes jednoznacne .NET.

Petr Vones

Zruseni tlacitka v onClick

[*] Jiri Cincura <diskuze(zv)cincura(tec)net> - 23.4.2007 15:04:15

Podobny problem jsem pred casem resil, kdyz jedna aplikace dynamicky z
XML vytvarela a "prekreslovala" formulare.

Nakonec jsem to hacknul tak, ze po kliknuti na tlacitko jsem spustil
"specialni" thread, ktery chvilinku pockal (aby skoncila obsluha
OnClick) a dane controly pak zrusil. Neni to hezke, ale funguje.

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

SOAP s podporou WSE v delphi

[*] Sula Milos <milos.sula(zv)musumperk(tec)cz> - 23.4.2007 15:02:15

Zdarvim,
Muzete mi prosim doporucit nejakou free komponentu , ktera podporuje SOAP protokol + jeho rozsireni o WSE (ws security) pro D7 ?

Dekuji
Milos

Viceradkove zahlavi gridu - Vlastni vykreslovani z

[*] delphak(zv)centrum(tec)cz - 23.4.2007 10:07:56

Nevite jak na vlastni vykreslovani zahlavi DBGridu? Event onDrawColumnCell ani onDrawDataCell se pro nej nevyvolava. Mohl bych sice udelat nejakeho potomka a prepsat cely mechanismus vykreslovani ale prilis se mi do toho nechce.
Nebo alespon jak presvedcit grid aby zalamoval dlouhe popisky na vice radek ... kdyz tam zkusim dat CR/LF .. tak ho proste vykresli jako ctevrecek.

Automaticky refresh DS a obarvovani novych/zmeneny

[*] Jan Sebelik <honza(zv)haes(tec)cz> - 23.4.2007 09:53:55

> neresil jste nekdo automaticky refresh DS pri zmene (editace,
> insert, delete) zaznamu? Myslim tim kdyz nejaka jina aplikace
> zmeni obsah DB na ktery ja koukam.

a)
Resili, diskutovali (napr. minuly tyden skoleni pro ABRA).

Ve FB toto resim pres AventAlerter, kdy databaze na klienta sama ohlasi, ze k necemu doslo. Jenze nesdeli ID, na to by bylo treba napsat UDF (na skoleni IB/FB je na to priklad). Ja tedy musim udelat cely Refresh, tedy pokud chci.

S resenim tedy nejsem spokojen.

Spise se priklanim k nazoru, ze "obtezovat" takto databazi neni moc "slusne". Tim spis ne v nejakych pravidelnych casovych intervalech. Tim spis ne, kdyz data jsou velka a uzivatelu hodne.

Naopak, pokud uzivatel zahaji editaci zaznamu, tento jeden zaznam mu pritom aktualizuji. To je korektni. Konflikt s jinym uzivatelem pri editaci tohoto jednoho zaznamu resi dostatecne OnReconcileError.

Shodli jsme se na tom, ze uzivateli proste sdelime, ze neni garantovano, ze na obrazovce vidi aktualni data. Pokud chce mit aktualni data, necht zmackne tlacitko Refresh.

b)
Dalsi mozne reseni, pekne, ale dost krkolomne.

-
Trivrstva aplikace, aplikacni server eviduje vsechny prihlasene uzivatele.
-
Uzivatel pri prihlaseni sdeli serveru svuj nofifikacni interface (INotify), pres ktery je server schopen aktivne klienta oslovit. Pozor v tomto pripade na multithreading na klintovi.
-
Aplikacni server zachyti update, ktery prichazi od nejakeho klienta.
Pokud se nemylim, TDataSetProvider.OnUpdateData.
-
Aplikacni server rozesle tuto informaci vsem prihlasenym klientum (tedy krome toho, od koho update prisel). Vola pritom INotify interface daneho uzivatele. Muze pritom poslat treba cely jeden zmeneny zaznam (OLEVariant neni problem).
-
Klient zapise zmenena data do ClientDataSet + MergeChangeLog, aby zmena vypadla z Delta.
Pozor na multithreading.

Nasadit toto reseni v realne aplikaci bych si asi netroufnul, ale na skoleni VVA to funguje.

Honza
====================================
= RNDr. Jan Sebelik - HAES
= Skolici a konzultacni stredisko pro vyvoj SW
= www.haes(tec)cz
= Vojtiskova 321
= 507 81 Lazne Belohrad
====================================

Zmena barev a fontu v runtime uzivatelem

[*] delphak(zv)centrum(tec)cz - 23.4.2007 09:27:53

Ahoj,
potreboval bych do predka formulare doplnit funkcnost umoznujici zmenu barev a fontu vsech controlu na nem umistenych - samozrejme univerzalne. Asi by slo detekovat stisk tlacitka mysi, podle pozice kurzoru zjistit handle contorlu pod kurzorem a pak s tim neco udelat ...
Nez se to do toho pustim, nevite nekdo o nejake komponente nebo unite co to dela? Abych se nepoustel do zbytecne prace.
Dik.

Automaticky refresh DS a obarvovani novych/zmeneny

[*] delphak(zv)centrum(tec)cz - 23.4.2007 08:05:44

Ahoj,
neresil jste nekdo automaticky refresh DS pri zmene (editace, insert, delete) zaznamu? Myslim tim kdyz nejaka jina aplikace zmeni obsah DB na ktery ja koukam.
Kdysi jsem si s tim hral nad Oracle, ale ted bych to potrebnoval nad MSSQl ...
Idealni samozrejme bude aktualizovat pouze zmenene radky DS, ne nacitat znovu cely select - ovsem netusim kterak rozhodnout zda dany zaznam patri nebo nepatri do vyberu (jedine mozna aplikovat where klauzuli rozsirenou od ID zmeneneho/pridaneho zaznamu).
A pripadne obarveni novych/zmenenych radku, ktere budoou postupne blednout (vim jak na to, casovac a kousek kodu v DrawCell, ale pokud uz to ma nekdo hotove)

PS: Jinak data ctu:
QUERY <-> PROVIDER <-> CLIENT DS <-> DATA SOURCE <-> GRID

Dik za rady, napady a pripominky.

gaussovo rozlozeni

[*] Kalhous <kalhous(zv)eu(tec)cz> - 23.4.2007 07:49:43

Ano, neprehlednete to PS. Funkce vrati nejake odhady (mam jen pocit ze oba
jsou nejlepsi linearni ale jen odhad stredni hodnoty je nestranny) ale pokud
chcete nejake seriozni statisticke vystupy, je treba se podivat treba na
teorii testovani hypotez. V zasade jde o toto: udelate-li vyber z normalniho
rozdeleni o kterem predpokladate (nebo i vite) ze je to treba N(0,1),
nedostanete urcite jako vysledek cisla [0,1] ale treba [0.2504 a 1.4805]. No
a pak je treba stanovit si podminky testovani (hladiny vyznamnosti, v
podstate pripustnou pravdepodobnost chyby) a na teto hladine otestovat
hypotezu, ze se jedna o vyber z rozdeleni N(0,1). V zadnem pripade ale
nemate sanci zjistit parametry rozlozeni (proto jsou to nahodne veliciny
:-).

Z.Kalhous
----- Original Message -----
From: "Slavomir Skopalik" <skopalik(zv)elektlabs(tec)cz>
> procedure MeanAndStdDev(const Data: array of Double; var Mean, StdDev:
> Extended);
> PS: Problematika je trochu slozitejsi, takze doporucuji se podivat na
zakladni
> statisticke pravidla
> (odhady stredni hodnoty, odhady rozptylu, ...) jelikoz tyto "teoreticke"
vypocty
> se do praxe moc nehodi.
> Tam je treba volit metodu podle povahy dat.
> > Nevim jestli to sem patri, ale hledam nekde zdrojaky v Delphi
> > nebo C++ pro zjisteni parametru Gaussova rozlozeni jehoz
> > vstupem je tabulka dat mereni.

Zruseni tlacitka v onClick

[*] Ladislav Stary <stary(zv)ekodat(tec)cz> - 23.4.2007 07:43:42

Ano mas pravdu. Zhavaruje to ve chvili, kdy se provadi metoda DoMouseUp.
K chybe dojde v jednotce SYSTEM pri vyvolani nejake procedury z ASM kodu.
Cele to vzniklo tak, ze jsem kamaradovi vysvetloval, ze nemuze tlacitko
zrusit v obsluze onClick, na cez me dostal tvrzenim, ze pokud ho tam ma
uz v designu, tak to funguje.
Tak jsem po tom zacal patrat, ale nic jsem neobjevil.

Jen me napadlo, jestli na to programatori v Borlandu nemysleli a
nenastavuji si jeste nejakou vlastnost, ktera by zajistila, ze se dalsi
kod neprovadi.

Ladislav Stary

>(v principu)
>begin
> cosi cosi 1
> if Assigned(OnClick) then
> OnClick(self);
> cosi cosi 2
>end;
>
>Jestlize tedy v prubehu OnClick dojde k destrukci objektu, nasledujici kod "cosi cosi 2" uz pracuje s uvolnenou pameti. To je samozrejme chyba. Ze se chyba neprojevi, pokud byl knoflik umisten na formular v designu, to je spise nejaka nahoda.
>
>
>

VirtualTreeView a checkboxy

[*] Lebeda David <david.lebeda(zv)comarr(tec)cz> - 23.4.2007 06:55:39

> > jsem ale dojmu, ze VTV na toto nema podporu. Je to opravdu tak? VTV umi
> > dat checkbox na urovni nodu, to ano, ale ne v konkretnim sloupci.
>
> Bohuzel, je to tak
>

Nastesti se to pomerne elegantne da vyresit v onAfterCellPaint:

procedure TForm1.vstAfterCellPaint(Sender: TBaseVirtualTree;
TargetCanvas: TCanvas; Node: PVirtualNode; Column: TColumnIndex;
CellRect: TRect);
var
NodeData: ^rTreeData;
begin
if Column = 3 then
begin
NodeData := vst.GetNodeData(Node);
if NodeData^.blablabla then
DrawFrameControl(TargetCanvas.Handle, CellRect, DFC_BUTTON,
DFCS_BUTTONCHECK or DFCS_CHECKED)
else
DrawFrameControl(TargetCanvas.Handle, CellRect, DFC_BUTTON,
DFCS_BUTTONCHECK);
end;
end;

Neresi to sice temata a jine vzhledove opicarny novejsich Windows, ale to
me zrovna "v gridu" netrapi.

David Lebeda

Zruseni tlacitka v onClick

[*] Jan Sebelik <honza(zv)haes(tec)cz> - 23.4.2007 06:35:38

> Jediny co me napada je quli tomu
> > Parent := Self;
> spatne je to tak jak tak, ale tady s timhle to ma asi lepsi sanci
> se projevit.

Spatne je to tak jak tak, ale s Parent to nema nic spolecneho.

Uvedomme si, jak to cele probiha.
Aniz bych koukal do zdrojaku unit Controls resp. StdCtrls, soudim, ze knoflik, stejne jako vsechny ostatni Controls, musi mit v obsluze stisku tlacitka mysi asi nejaky takovyto kod:

(v principu)
begin
cosi cosi 1
if Assigned(OnClick) then
OnClick(self);
cosi cosi 2
end;

Jestlize tedy v prubehu OnClick dojde k destrukci objektu, nasledujici kod "cosi cosi 2" uz pracuje s uvolnenou pameti. To je samozrejme chyba. Ze se chyba neprojevi, pokud byl knoflik umisten na formular v designu, to je spise nejaka nahoda.

Honza
====================================
= RNDr. Jan Sebelik - HAES
= Skolici a konzultacni stredisko pro vyvoj SW
= www.haes(tec)cz
= Vojtiskova 321
= 507 81 Lazne Belohrad
====================================

VirtualTreeView a checkboxy

[*] Petr Fejfar <petr.fejfar(zv)seznam(tec)cz> - 22.4.2007 18:32:51

Dne Sun, 22 Apr 2007 08:52:13 +0200 Lebeda David <david.lebeda(zv)comarr(tec)cz>
napsal/-a:

> jsem ale dojmu, ze VTV na toto nema podporu. Je to opravdu tak? VTV umi
> dat checkbox na urovni nodu, to ano, ale ne v konkretnim sloupci.

Bohuzel, je to tak

OT k Re: jak uvolnit pamet po pouziti Open dialog

[*] Milan Kajnar <mkajnar(zv)mikesoft(tec)cz> - 22.4.2007 17:04:45

Ahoj...

Neni jasne, co by jsi tady chtel vice uvolnovat nez ten dialog.

Tak jsi proto udelal maximum, protoze system prirazuje aplikacim pamet
taky skokove. Pokud mezitim jina aplikace bude potrebovat vice pameti,
system si ji vezme od te tve, ktera ji uz nepotrebuje - te pak skutecne z
pohledu monitoru procesu pamet ubere. Ale dela to, az kdyz nema kde brat.

Zakaznici jsou primo alergicti na spotrebu pameti, pokud se nauci koukat
do spravce procesu a sledovat co dana aplikace zere... Jim to moc
nevysvetlis.

Dukazem tohoto jevu je alokace velkeho bloku pameti v assembleru
(nesmi to byt z Delphi, aby jsi nesel do strankovani) a pak system
zacne rychle precerpavat kousky pameti jiz uvolnene jinde, aby
eliminoval ztraty. Po uvolneni takoveho bloku mas temer u vsech
aplikaci nutne minimum zabrane pameti.

Na http://www.mikesoft(tec)cz/MemCleaner.zip jsem ti dal svou starsi
hracku na rozcviceni pameti, kde si nastav ze chces uvolnit vice
nebo stejne pameti nez mas fyzicke... Otevri si spravce procesu
a k tomu si pak v me aplikaci klikni na uvolnit... Uvidis, jak si
MemCleaner zabere vsechnu pamet pro sebe, ale ten pravy kolotoc
v preorganizaci pameti u ostatnich procesu zacne, az ji zacne systemu
zase vracet.
U kazde aplikace dojde k tomu, ze se jim pamet rozjede jak pocitadlo
a skonci prave na takove, kterou tak akorat potrebuje.
Nektere sluzby zabirajici treba 12 Mb v pameti pak slezou na 800 kb!

Nerikam, ze to prospiva u aplikaci vyuzivajici pamet k nejakemu
cachovani... Ty si museji pak pamet pozdeji zabraz znovu.
Ale kdyz to udelam parkrat za den, tak mam system
o dost stabilnejsi... protoze tim asi dochazi k necemu obdobnemu
jako kdyz defragmentujes disk.

Zravost pameti je jev obecny u XP, dokonce je horsi nez u Visty.
Vista hospodari s pameti mnohem lepe. Snad proto, ze nejdrive tak
Microsoft prehanel s narocnosti Visty na CPU a pamet a pozdeji
museli provest poradnou optimalizaci - a vypada, ze se jim to povedlo.

Bezne je, ze aplikace na XP zabirajici 4-8 MB pak na Viste zabere
jen 2-6 MB. Je to pozorovano u mne.

Uff... Stacilo snad...

Milan

jak uvolnit pamet po pouziti Open dialog

[*] ahi(zv)volny(tec)cz - 22.4.2007 13:14:30

Dobry den,

Prosim o radu, po prvnim otevreni dialogoveho okna
If OpenDialog1.Execute then ...
skokove vzroste spotreba pameti o vice nez 3M, a po zavreni dialogu se nevrati
zpatky na puvodni hodnotu. Existuje zpusob jak pamet uvolnit (Delphi
6) ?

Predem dekuji za pomoc, jsem zacatecnik - samouk.

Martin
ahi(zv)volny(tec)cz

VirtualTreeView a checkboxy

[*] Lebeda David <david.lebeda(zv)comarr(tec)cz> - 22.4.2007 08:52:13

Ahoj,

pouzivam VirtualTreeView namisto gridu, tj. jen root nody a kazdy ma
nejake columns. Chtel bych do sloupcu typu Boolean dat checkbox. Nabyl
jsem ale dojmu, ze VTV na toto nema podporu. Je to opravdu tak? VTV umi
dat checkbox na urovni nodu, to ano, ale ne v konkretnim sloupci.

Samozrejme si poradim pomoci uzivatelskeho vykreslovani, jen prosim ty, co
komponentu znaji o potvrzeni, ze to opravdu nejde, at tady zbytecne
neobjevuji kolo?

Diky predem.

David Lebeda

Zruseni tlacitka v onClick

[*] Lebeda David <david.lebeda(zv)comarr(tec)cz> - 22.4.2007 08:24:11

> narazili jsme s kamaradem na zajimavy problem. Na formular hodim
> tlacitko a priradim mu tuto metodu:
>
> procedure TForm1.Button1Click(Sender: TObject);
> begin
> TButton(Sender).Free;
> end;
>
> Spustim program, stisknu tlacitko - tlacitko se spravne odstrani.

Podle meho nazoru je to nahoda. Tlacitko z doby navrhu patrne lezi v
takove oblasti pameti, ktera je "vhodne umistena" a k chybe, ktere by si
vsiml az operacni system, zrejme nedojde. Presto i tak nepochybne k
manipulaci s jiz uvolnenou pameti dochazi. Mozna, ze kdyby se to
zopakovalo ve vetsim poctu - napr. likvidaci vestiho mnozstvi tlacitek
vytvorenych v dobe navrhu, ze by chyba treba vznikla taky. Nezkouseli jste
se podivat Memproofem, co na to rika? Ciste reseni by asi bylo poslat
nejaky svuj message formulari a ten by pak zruseni provedl sam.

David Lebeda?

Instalace Virtual Treeview v Delphi 2007

[*] Radek Sevcik <radek.sevcik(zv)senergos(tec)cz> - 24.4.2007 08:57:26

S prechodem na D2007 bych asi jeste pockal. Testoval jsem je a dela to "psi
kusy"... delam kroz zpet k D2006, tam vse funguje jak ma...


-----Original Message-----
From: delphi-l-owner(zv)clexpert(tec)cz [mailto:delphi-l-owner(zv)clexpert(tec)cz] On
Behalf Of info(zv)drnholec(tec)cz
Sent: Tuesday, April 24, 2007 7:11 AM
To: delphi-l(zv)clexpert(tec)cz
Subject: Instalace Virtual Treeview v Delphi 2007

Ahoj

Prechazim z D7 na D2007. Bohuzel se mi nedari zkompilovat Design balicek
komponenty Virtual Treeview z http://www.soft-gems.net/.

Hlasi to
"Remove VirtualTrees. Unit(s) VirtualTrees were found in required package
VirtualTreesD10."

Pri stisku tlacitka OK to vyvola runtime chybu v Delphi

Pokud to nekdo uz ma vyresene a bude ochoten poradit nebo to poslat na muj
email tak timto predem moc dekuji .

Jiri Heinisch


--
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.5.463 / Virus Database: 269.5.10/774 - Release Date: 23.4.2007
17:26


Instalace Virtual Treeview v Delphi 2007

[*] Michal S. <micsdelphi(zv)centrum(tec)cz> - 24.4.2007 09:09:29

Ahoj,
muzes byt konkretnejsi v tech "psich kusech"?

Chystal jsem se pomalu prejit na D2007, ale koukam, ze to asi jeste odlozim.


--------------------------
> S prechodem na D2007 bych asi jeste pockal. Testoval jsem je a dela to "psi
> kusy"
>
>

Instalace Virtual Treeview v Delphi 2007

[*] Novy Lubos <lnovy(zv)unileasing(tec)cz> - 24.4.2007 09:21:31

Mam za sebou prechod z D7 na D2007. Stalo me to sice par tydnu prace (soucasne s prechodem na Vista),
nektere komponenty bylo nutne vymenit, ale v podstate se to zdarilo a nutno priznat, ze D2007 jsou skutecne
pro programatory daleko prijemnejsi nez D7.
L.Novy
> -----Original Message-----
> From: delphi-l-owner(zv)clexpert(tec)cz [mailto:delphi-l-owner(zv)clexpert(tec)cz] On
> Behalf Of Michal S.
> Sent: Tuesday, April 24, 2007 9:09 AM
> To: delphi-l(zv)clexpert(tec)cz
> Subject: Re: Instalace Virtual Treeview v Delphi 2007
>
> Ahoj,
> muzes byt konkretnejsi v tech "psich kusech"?
>
> Chystal jsem se pomalu prejit na D2007, ale koukam, ze to asi jeste
> odlozim.
>
>
> --------------------------
> > S prechodem na D2007 bych asi jeste pockal. Testoval jsem je a dela
> to "psi
> > kusy"
> >
> >
> >
>

D7 zatuhne pri zobrazeni promene behem krokovani

[*] Venca Zaruba <zaruba(zv)elastoform(tec)cz> - 24.4.2007 09:27:32

Ahoj,
Znicehoz nic mi pri krokovani app po najeti mysi na cca 3.-5. promenou
misto zobrazeni hodnoty naskoci jen [Evaluating...] a vse vytuhle..
Vytvarim DLL a 100% to "zafunguje" na dotaz z db spojene pomoci ADO
napr: Adopoziceselection.Value

Moc a moc prosim o radu co s tim (bez krokovani jsem v pytli)
a showmessage neni to prave orechove...
DIKY

D7 Pro, XP
Prijemny zbytek dne
Vasek Zaruba
8^)

Instalace Virtual Treeview v Delphi 2007

[*] Radek Sevcik <radek.sevcik(zv)senergos(tec)cz> - 24.4.2007 09:45:34

Tak aby ne, kdyz je v tom rozdil nekolika verzi (D8-D2005-D2006), zatim je
taky zkousim, ale zatim to vypada, ze zvolim spise D2006...


-----Original Message-----
From: delphi-l-owner(zv)clexpert(tec)cz [mailto:delphi-l-owner(zv)clexpert(tec)cz] On
Behalf Of Novy Lubos
Sent: Tuesday, April 24, 2007 9:22 AM
To: delphi-l(zv)clexpert(tec)cz
Subject: Re: Instalace Virtual Treeview v Delphi 2007

Mam za sebou prechod z D7 na D2007. Stalo me to sice par tydnu prace
(soucasne s prechodem na Vista), nektere komponenty bylo nutne vymenit, ale
v podstate se to zdarilo a nutno priznat, ze D2007 jsou skutecne pro
programatory daleko prijemnejsi nez D7.
L.Novy
> -----Original Message-----
> From: delphi-l-owner(zv)clexpert(tec)cz [mailto:delphi-l-owner(zv)clexpert(tec)cz]
> On Behalf Of Michal S.
> Sent: Tuesday, April 24, 2007 9:09 AM
> To: delphi-l(zv)clexpert(tec)cz
> Subject: Re: Instalace Virtual Treeview v Delphi 2007
>
> Ahoj,
> muzes byt konkretnejsi v tech "psich kusech"?
>
> Chystal jsem se pomalu prejit na D2007, ale koukam, ze to asi jeste
> odlozim.
>
>
> --------------------------
> > S prechodem na D2007 bych asi jeste pockal. Testoval jsem je a dela
> to "psi
> > kusy"
> >
> >
> >
>
--
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.5.463 / Virus Database: 269.5.10/774 - Release Date: 23.4.2007
17:26


Instalace Virtual Treeview v Delphi 2007

[*] Radek Sevcik <radek.sevcik(zv)senergos(tec)cz> - 24.4.2007 09:41:33

Jo muzu... zkusmo jsem udelal projekt, vlozil jsem tam nejakou tabulku
(TDataSource, TTable), ukazal jsem na dbf soubor, zkompiloval a vsechno
slapalo v pohode... zavrel jsem Delphi... znova spustil a rvalo to, ze ten
dbf soubor nemuze najit... a pritom ho to hledalo C:\Document and
settings\*User *\Plocha... naprosto nesmyslne... a nedokazal jsem ho za boha
presvedcit, ze to tak neni. Ten samy projekt se v D2006 chova naprosto
korektne. Taky jsem na webu cetl ruzne nazory, ze je to nedodelane a site
horkou jehlou... uz nevim kde, ale zacinam tomu verit... takze asi tak...

-----Original Message-----
From: delphi-l-owner(zv)clexpert(tec)cz [mailto:delphi-l-owner(zv)clexpert(tec)cz] On
Behalf Of Michal S.
Sent: Tuesday, April 24, 2007 9:09 AM
To: delphi-l(zv)clexpert(tec)cz
Subject: Re: Instalace Virtual Treeview v Delphi 2007

Ahoj,
muzes byt konkretnejsi v tech "psich kusech"?

Chystal jsem se pomalu prejit na D2007, ale koukam, ze to asi jeste odlozim.


--------------------------
> S prechodem na D2007 bych asi jeste pockal. Testoval jsem je a dela to
> "psi kusy"
>
>


--
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.5.463 / Virus Database: 269.5.10/774 - Release Date: 23.4.2007
17:26


Instalace Virtual Treeview v Delphi 2007

[*] Pavel Malinsky <malinsky(zv)pmcom(tec)cz> - 24.4.2007 09:37:33

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

Ahoj,

> Mam za sebou prechod z D7 na D2007. Stalo me to sice par
> tydnu prace (soucasne s prechodem na Vista),

HMM, tydnu ? Rad bych se spise take dozvedel konkretni
problemy(treba ze neco je v jinych unitach nez v D7 apod).

kdyby tak Borland dodal trial :(( , aby slo zkusit prelozit nejaky
stavajici projekt pro vyhodnoceni narocnosti prechodu...grrrr

> nektere komponenty bylo nutne vymenit, ale v podstate se to
> zdarilo a nutno priznat, ze D2007 jsou skutecne
> pro programatory daleko prijemnejsi nez D7.

PM


D7 zatuhne pri zobrazeni promene behem krokovani

[*] Pavel Malinsky <malinsky(zv)pmcom(tec)cz> - 24.4.2007 09:37:33

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

> Znicehoz nic mi pri krokovani app po najeti mysi na cca 3.-5. promenou
> misto zobrazeni hodnoty naskoci jen [Evaluating...] a vse vytuhle..
> Vytvarim DLL a 100% to "zafunguje" na dotaz z db spojene pomoci ADO
> napr: Adopoziceselection.Value

Dokazu taky spolehlive navodit :)) . Pozuivam GExperta a jeho SendDebug()
a vyhodnocovani debugerem v techto pripadech nepokousim...

> Moc a moc prosim o radu co s tim (bez krokovani jsem v pytli)
> a showmessage neni to prave orechove...


PM

Zruseni tlacitka v onClick

[*] Jan Sebelik <honza(zv)haes(tec)cz> - 24.4.2007 10:11:36

> Nakonec jsem to hacknul tak, ze po kliknuti na tlacitko jsem spustil
> "specialni" thread, ktery chvilinku pockal (aby skoncila obsluha
> OnClick) a dane controly pak zrusil. Neni to hezke, ale funguje.
> Jiri {x2} Cincura

Nechci delat chytryho, kdyz jsem tento problem prakticky neresil.
Myslim ale, ze spousteni noveho threadu je "s kanonem na vrabce".
Melo by stacit, jak tady nekdo navrhoval, poslat na formular message. Formular message zpracuje az tehdy, kdyz obsluha OnClick skonci. Tedy pokud se z OnClick nebude nahodou volat Application.ProcessMessages. Mnohokrat zde v konferenci bylo zduraznovano, ze toto volanio muze byt pekna prasarna.

Honza
====================================
= RNDr. Jan Sebelik - HAES
= Skolici a konzultacni stredisko pro vyvoj SW
= www.haes(tec)cz
= Vojtiskova 321
= 507 81 Lazne Belohrad
====================================

Zruseni tlacitka v onClick

[*] Jiri Cincura <diskuze(zv)cincura(tec)net> - 24.4.2007 10:21:37

Jan Sebelik wrote:
> Nechci delat chytryho, kdyz jsem tento problem prakticky neresil.
> Myslim ale, ze spousteni noveho threadu je "s kanonem na vrabce".

Jasny. Nerikam, ze je to super.

> Melo by stacit, jak tady nekdo navrhoval, poslat na formular message. Formular message zpracuje az tehdy, kdyz obsluha OnClick skonci. Tedy pokud se z OnClick nebude nahodou volat Application.ProcessMessages. Mnohokrat zde v konferenci bylo zduraznovano, ze toto volanio muze byt pekna prasarna.

Taky by to slo. Tahle aplikacka tenkrat jeste jela pod Kylixem (fuj),
takze jsem si s timhle nehral.

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

OT: problem site W2K a Vista

[*] Pepa D. <slozka2005(zv)volny(tec)cz> - 24.4.2007 10:43:38

Ahoj, mam sit 1PC W2K, 1PC XP a notebook Vista. Vse funguje jak ma, vsechny pocitace jsou na siti zobrazeny, pouze pri pokusu pristupu z PC W2K na notebook Vista dostanu hlaseni "Prihlasovaci chyba: Ucet je znepristupnen." Nevite nekdo co s tim?
Pepa


problem site W2K a Vista

[*] Jiri Cincura <diskuze(zv)cincura(tec)net> - 24.4.2007 10:51:39

Pepa D. wrote:
> Ahoj, mam sit 1PC W2K, 1PC XP a notebook Vista. Vse funguje jak ma,
> vsechny pocitace jsou na siti zobrazeny, pouze pri pokusu pristupu z

Jsou v domena?

> PC W2K na notebook Vista dostanu hlaseni "Prihlasovaci chyba: Ucet je

Pri jakem pristupu? RDP, share, DFS, ...?

> znepristupnen." Nevite nekdo co s tim? Pepa



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

Zruseni tlacitka v onClick

[*] Ondrej Kelle <o.kelle(zv)digitalpublishing.de> - 24.4.2007 11:39:43

> procedure TForm1.Button1Click(Sender: TObject);
> begin
> TButton(Sender).Free;
> end;

Rusenie window control (TWinControl) v kontexte spracovania spravy v sebe nesie riziko, ze sa bude vykonavat kod spracovania dalsich sprav, zatialco samotna instancia uz bola uvolnena.
Lepsie je poslat si napr. na formular vlastnu spravu cez PostMessage a Free volat v jej spracovani, ked spracovanie vsetkych sprav pre tu window control uz prebehlo, napr.

const
AM_BUTTONCLICKED = WM_USER + 1;

type
TAMButtonClicked = packed record
Msg: Cardinal;
Button: TButton;
Unused: Longint;
Result: Longint;
end;

TForm1 = class(TForm)
...
procedure AMButtonClicked(var Message: TAMButtonClicked); message AM_BUTTONCLICKED;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
PostMessage(Handle, AM_BUTTONCLICKED, Integer(Sender), 0);
end;

procedure TForm1.AMButtonClicked(var Message: TAMButtonClicked);
begin
TButton(Message.Button).Free;
end;

Inak pri skusani v Delphi 2006 ani uvolnenie priamo v OnClick nesposobilo ziadnu chybu.
Ale vseobecne dobra zasada je, ze window control by nemala byt uvolnovana v kontexte spracovania vlastnej spravy.

HTH
TOndrej

problem site W2K a Vista

[*] Pepa D. <slozka2005(zv)volny(tec)cz> - 24.4.2007 12:45:47

> Ahoj, mam sit 1PC W2K, 1PC XP a notebook Vista. Vse funguje jak ma,
> vsechny pocitace jsou na siti zobrazeny, pouze pri pokusu pristupu z

>Jsou v domena?

Jsou ve WORKGROUP


> PC W2K na notebook Vista dostanu hlaseni "Prihlasovaci chyba: Ucet je

>Pri jakem pristupu? RDP, share, DFS, ...?

Nejde o programovy pristup, jde o standardni uzivatelsky pohled z Windows na okolni pocitace (Mista v siti).

> znepristupnen." Nevite nekdo co s tim? Pepa

problem site W2K a Vista

[*] Jiri Cincura <diskuze(zv)cincura(tec)net> - 24.4.2007 12:51:47

Pepa D. wrote:
>> PC W2K na notebook Vista dostanu hlaseni "Prihlasovaci chyba: Ucet je
>
>>Pri jakem pristupu? RDP, share, DFS, ...?
>
> Nejde o programovy pristup, jde o standardni uzivatelsky pohled z Windows na okolni pocitace (Mista v siti).
>
>> znepristupnen." Nevite nekdo co s tim? Pepa

Ma dany user na danem stroji v poradku ucet? Co rika Event Log?

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

TADOStoredProc a parametry

[*] Ing. Pavel Zilinec <pavel.zilinec(zv)seznam(tec)cz> - 24.4.2007 13:13:49

D7, WinXP Pro, MSSQL2005

Chtel jsem se zeptat, jestli jste nekdo neresili nasledujici problem
(a pripadne jak).

Prechazime z DB.TStoredProc na ADODB.TADOStoredProc (pripojeni na SQL
pres provider 'SQLOLEDB.1') a zjistili jsme, ze v ADO vygenerovany SQL
prikaz nepredava do ulozene procedury parametry jejich vyjmenovanim.
Priklad:
Procedura
create NejakaSP
(zv)Zpusob smallint,
(zv)Kod char(10) = null,
(zv)NazKodu char(30) = null,
(zv)PopisKodu char(100) = null,
(zv)Zrusen bit = null,
...
as ...
DB
exec NejakaSP (zv)Zpusob = 3, (zv)Zrusen = 1
ADO
exec NejakaSP 4, 1

Problem je v tom, ze ty procedury maji treba 15 parametru.
V DB stacilo definovat jen ty 2 (podle zpusobu je zapotrebi jiny pocet
parametru, tj. nekdy vsechny, nekdy treba jen 2).
V ADO ale musim mit vyjmenovane vsechny parametry, pze jinak nejsem
schopen predat mu hodnotu jen prvniho a treba posledniho parametru.

Navic, pokud jsou ty parametry jako 'output' (a to ony take jsou), tak
pak mi navic ADO do toho SQL prikazu generuje dalsi radky s 'declare a
'set' vsech parametru, ktere tam jsou jen proto, ze nejsem schopen ty
parametry vynechat.

Nenasel jsem zadny 'prepinac', kterym bych ADO donutil generovat do SQL
predavani parametru jmenem. Pokud bych to umel, nemusel bych definovat
vsechny parametry, ale jen ty (v danem okamziku) potrebne.

Pokud jste to tedy resili nebo vas nejake reseni napadne, dejte prosim
vedet.

Generovani vsech parametru neni u nas mozne, pze mame desitky, mozna
stovky, takto generovanych procedur a bylo by hodne narocne to vse
prepsat.
Uz jsme premysleli i o 'vlastnim' TADOStoredProc, ale nejsou tam
metody/udalosti, kterymi bychom jednoduse vygenerovali vlastni SQL
prikaz.

Diky

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

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

Instalace Virtual Treeview v Delphi 2007

[*] rkubat(zv)email(tec)cz - 24.4.2007 13:21:50


> kdyby tak Borland dodal trial :(( , aby slo zkusit prelozit nejaky
> stavajici projekt pro vyhodnoceni narocnosti prechodu...grrrr

14-denni trial verze Delphi 2007 Enterprise je zde ke stazeni:
http://www.codegear.com/Downloads/TrialandFreeVersions/Delphi/tabid/138/Default.aspx

Richard Kubat

Jak dosahnout vyssi rychlosti v ADO u Oracle OleDB

[*] Petr Balsanek <petr.balsanek(zv)asei(tec)cz> - 24.4.2007 13:29:51

Ahoj,
nase firma tento rok prechazi z BDE (hlavne proto, ze jiz BDE nepodporuje
ani Borland a oficialne pry neni podporovano jiz ani u MS-SQL 2005) na
technologii ADO. Nas software podporuje databaze Oracle a MSSQL a jedna se o
dost rozsahly produkt. Mame vlastni potomky databazovych komponent
pridavajici podporu nasich maker (zjednodussi se spolecne pouzi na obou DB
platformach), omezeni pristupu k datum dle nasich definovanych pravidel a
spoustu dalsich veci. Tyto komponenty jsou jiz upraveny take pro ADO
(potomci TADOConnection a TADOQuery ze zalozky ADO) a z predbeznych testu se
zda, ze vse pracuje jak ma, ale je zde oproti BDE velky pokles v rychlosti.
Zatim jsme to zkouseli jen na Oracle, na MS-SQL by snad byt takovy problem
nemusel (cetl jsem, ze microsofti provideri by mely byt obecne rychlejsi nez
BDE), ale u Oracle OleDB providera je to velmi vyrazne. Bohuzel nemuzeme
pouzit microsoftiho Oracle OleDb providera, nebot nepodporuje Bloby a jeho
vyvoj jiz pry dale nepokracuje.
Pro MS-SQL pouzivame Provider=MSDAORA.1 z baliku MDAC a pro Oracle
Provider=OraOLEDB.Oracle.1.
Chtel bych se tedy zeptat na vase zkusenosti s ADO a rychlosti. Zda neni
mozne napr. pomoci nejakych parametru ConnectionStringu nebo nastavenim
patricnych property u TADOConnection nebo TADOQuery vyrazne zvysit rychlost
pristupu. Kolega zjistil napriklad, ze se vyrazne urychlily selecty, kde
konstrukci "select *" nahradil vyctem sloupcu, nicmene stale je to velmi
znatelne pomalejsi nez u BDE.
Dat zakaznikum software, ktery sice nebude pouzivat jiz nepodporovane BDE,
ale bude na Oracle velmi vyrazne pomalejsi, to nemuzeme.

Dekuji za vase podnety a zkusenosti.

Petr Balsanek


Instalace Virtual Treeview v Delphi 2007

[*] Pavel Malinsky <malinsky(zv)pmcom(tec)cz> - 24.4.2007 13:29:50

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


Dekuji, mozna nejen za sebe. Kdyz sem po ni zkraje vydani
patral, nasel sem jen D2006

> > kdyby tak Borland dodal trial :(( , aby slo zkusit prelozit nejaky
> > stavajici projekt pro vyhodnoceni narocnosti prechodu...grrrr
>
> 14-denni trial verze Delphi 2007 Enterprise je zde ke stazeni:
> http://www.codegear.com/Downloads/TrialandFreeVersions/Delphi/
> tabid/138/Default.aspx
>
> Richard Kubat

PM


Instalace Virtual Treeview v Delphi 2007

[*] Petr Vones <conference(zv)petrvones(tec)net> - 24.4.2007 14:13:54

From: "Pavel Malinsky" <malinsky(zv)pmcom(tec)cz>
> kdyby tak Borland dodal trial :(( , aby slo zkusit prelozit nejaky
> stavajici projekt pro vyhodnoceni narocnosti prechodu...grrrr

Pokud ma trial verze stale jiny (nekompatibilni) prekladac jako tomu bylo u
predchozich trail verzi, takze nektere veci neslo vubec prelozit, tak s tim
vetsi projekt stejne neni sance otestovat.

Petr Vones

problem site W2K a Vista

[*] Pepa D. <slozka2005(zv)volny(tec)cz> - 24.4.2007 14:47:56

>Ma dany user na danem stroji v poradku ucet? Co rika Event Log?

Z eventu jsem nic nevycetl a ucet se zda byt v poradku i kdyz jedna vec je divna. Pokud se prihlasim pod jinym uctem, tak se do notebooku s Vistami dostanu. Ale rozdilu jsem se nedopatral.

prava na Alter Table v FB

[*] Novy Lubos <lnovy(zv)unileasing(tec)cz> - 25.4.2007 11:25:20

A muzu nejak zmenit OWNERa tabulky u jiz hotovych tabulek?
Diky, Novy


> -----Original Message-----
> From: delphi-l-owner(zv)clexpert(tec)cz [mailto:delphi-l-owner(zv)clexpert(tec)cz] On
> Behalf Of Jan Sebelik
> Sent: Wednesday, April 25, 2007 10:35 AM
> To: delphi-l(zv)clexpert(tec)cz
> Subject: Re: prava na Alter Table v FB
>
> > Potrebuju na FB zjistit zda v tabulce existuje sloupec a kdyz ne,
> > tak ho pridat.
> > Bohuzel mi ale ExecSQL na ALTER TABLE konci chybou: no permition
> > for control access to TABLE nazevtabulky.
> > Pritom mam veskera prava na tabulku pridana pro roli, pod kterou
> > se do DB hlasim.
> > Musim pro ALTER TABLE z programu nastavit jeste i nejaka dalsi prava?
>
> Mam pocit, ze na ALTER TABLE musis byt OWNER tabulky.
>
> Honza
> ====================================
> = RNDr. Jan Sebelik - HAES
> = Skolici a konzultacni stredisko pro vyvoj SW
> = www.haes(tec)cz
> = Vojtiskova 321
> = 507 81 Lazne Belohrad
> ====================================
>
>

prava na Alter Table v FB

[*] horky(zv)cominn(tec)cz - 25.4.2007 11:21:19

> From: Novy Lubos [mailto:lnovy(zv)unileasing(tec)cz]
> Sent: Wednesday, April 25, 2007 10:29 AM

> Bohuzel mi ale ExecSQL na ALTER TABLE konci chybou: no
> permition for control access to TABLE nazevtabulky.

> Musim pro ALTER TABLE z programu nastavit jeste i nejaka dalsi prava?

Zmenu struktury tabulky muze udelat administrator databaze (uzivatel SYSDBA) nebo vlastnik (owner) tabulky. Tj. ten, kdo ji vytvoril. Nikdo jiny, zadne dalsi nastavovani prav nepomuze.
--
S pozdravem Karel Horky, D7, FB 1.5.2, IBX 7.08, WXP SP2
[mailto:horky(zv)cominn(tec)cz]

prava na Alter Table v FB

[*] Ales Pavel <aldik(zv)quick(tec)cz> - 25.4.2007 10:35:16

ja na administraci FB pouzivam FBLib. Docela casto se tam inspiruji... a
konkretne tohle tam je.

Ales

Novy Lubos napsal(a):
> Zdravim,
>
> Potrebuju na FB zjistit zda v tabulce existuje sloupec a kdyz ne, tak ho pridat.
> Bohuzel mi ale ExecSQL na ALTER TABLE konci chybou: no permition for control access to TABLE nazevtabulky.
> Pritom mam veskera prava na tabulku pridana pro roli, pod kterou se do DB hlasim.
> Musim pro ALTER TABLE z programu nastavit jeste i nejaka dalsi prava?
>
> Cast kodu:
>
> IBQPom.SQL.Add('select RDB$FIELD_NAME from rdb$relation_fields where
> RDB$FIELD_NAME=''nazevpolozky'' and RDB$RELATION_NAME=''nazevtabulky''');
> IBQPom.Open;
> if IBQPom.RecordCount<=0 then begin
> IBQPom.close; IBQPom.sql.clear;
> IBQPom.sql.add('ALTER TABLE nazevtabulky ADD nazevpolozky SMALLINT');
> IBQPom.ExecSQL;
>
>

TADOStoredProc a parametry

[*] pavel.zilinec(zv)seznam(tec)cz - 25.4.2007 10:39:16

> Ahoj,
> nevim presne "co je problemem".
> Pokud ma TADOStoredProc definovane jmeno procedury a connection,
> staci zavolat TADOStoredProc.Parameters.Refresh a pak zadat
> pouze parametry, ktere chci predat (ostatni musi mit default hodnotu)
> pomoci TADOStoredProc.Parameters.ParamByName('(zv)Zpusob').Value := .

> To co se deje "uvnitr volani" neni uplne podstatne, jde jen vytvoren
> "temporary skriptu", ktery "zrejme" zjednodusi sql serveru zpracovani
> (je to videt v profileru).

> Pavel

O Refresh vim, ale problem je v tom, ze vyjmenovanim vsech parametru
(kdy jsou i jako output) se z puvodniho SQL prikazu o delce cca 20
znaku dostanu na prikaz o delce treba i pres 1100 znaku.

Mame totiz prikazy, kdy z tech 20 parametru potrebujeme treba jen 2.

A tohle pak u zakazniku, kteri se na SQL spojuji vzdalene (internet,
wan) muze rychlost programu docela degradovat diky zvysene komunikacni
zatezi :(

Pavel
--

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