Archív konference Delphi

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

jak na cislo tydne

[*] Ondrej Kelle <o.kelle(zv)digitalpublishing.de> - 23.6.2005 10:43:13

> potrebuji ve svem programu zjistit cislo tydne - tak jak jsou
> tydny ocislovany v kalendari - je na to v Delphi nejaka funkce ?

WeekOf z DateUtils vracia cislo tyzdna podla ISO 8601.

HTH
TOndrej

Delphi 5

[*] Otisk Rene <otisk(zv)misel(tec)cz> - 23.6.2005 10:37:12

Hi,

Mam problem s IDE Delhi 5. Nekam se mi zasantrocilo zobrazovani balicku. V project Manageru, kdyz jsem na balicek dvakrat kliknul, tak se mi zobrazilo okno s obsahem balicku (formulare, unity). Kde se da najit nastaveni zobrazovani nebo kam mi to okno uteklo?

Diky Sroub

jak na cislo tydne

[*] Venca Zaruba <zaruba(zv)elastoform(tec)cz> - 23.6.2005 07:44:51

> tydne - tak jak jsou tydny ocislovany v kalendari - je na to v
> Delphi nejaka funkce ?

WeekOfTheYear(DateTimePicker1.Date);

jak na cislo tydne

[*] Ing. Igor Vodicka <vodicka(zv)sagit(tec)cz> - 23.6.2005 07:44:51

Zdravim,

napr. fce ISOWeekNumber() z JCL viz http://jvcl.sourceforge.net/

Ing. Igor Vodicka
informacni systemy
Nakladatelstvi Sagit
Tel.: 59 6786 001
HTTP://www.sagit(tec)cz/

> -----Original Message-----
> From: delphi-l-owner(zv)clexpert(tec)cz
> [mailto:delphi-l-owner(zv)clexpert(tec)cz]On Behalf Of radek3311(zv)volny(tec)cz
>
> mam asi hloupy dotaz - potrebuji ve svem programu zjistit cislo
> tydne - tak jak jsou tydny ocislovany v kalendari - je na to v
> Delphi nejaka funkce ?
>

jak na cislo tydne

[*] radek3311(zv)volny(tec)cz - 23.6.2005 07:08:48


Ahoj,

mam asi hloupy dotaz - potrebuji ve svem programu zjistit cislo
tydne - tak jak jsou tydny ocislovany v kalendari - je na to v
Delphi nejaka funkce ?

diky
Radek


--
Nechte si zasilat do mailu denni prehled nejzajimavejsich
clanku z portalu VOLNY. http://web.volny(tec)cz/mailinfo/

ADMIN: Test po havarii serveru

[*] Petr Zahradnik <clexpert(zv)clexpert(tec)cz> - 22.6.2005 18:21:55

Toto je test po havarii a obnoveni serveru, nereagujte.

Petr Zahradnik, pocitacovy expert

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


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

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

podminka v sql dotazu

[*] Petr Fejfar <development(zv)callnet(tec)cz> - 22.6.2005 14:47:40

Dalibor Faltynek wrote:
> ale v podmince to proste nejde. A vubec nevim jak z toho vybruslit,
> protoze formatovat se to da jenom na nejaky pevny pocet desetinnych
> mist a cislo muze byt stejne dobre E-3 jako E-15.

Vzdyt uz ti nekdo radil nesestavovat ten SQL dotaz primo,
ale pouzit pro predani hodnoty parametr, aby ses prave
nemusel zabyvat jeho presentaci.

Sice to bylo u dotazu na desetinnou tecku,
ale principielne je to jedno.


PF


podminka v sql dotazu

[*] Dalibor Faltynek <dalibor.faltynek(zv)orgrez(tec)cz> - 22.6.2005 14:35:39

Ostatne je divny, ze v DBEditu se to vesele zobrazuje v eckovem tvaru ale v
podmince to proste nejde. A vubec nevim jak z toho vybruslit, protoze
formatovat se to da jenom na nejaky pevny pocet desetinnych mist a cislo
muze byt stejne dobre E-3 jako E-15.
Dalibor.> Paradox, BDE a Delphi 5 ent.
>
> > To neni jazykem, ale pouzitou databazi.
> > Nepsal jsi,na cem to nejde, ale na MSSQL to jde
> >
>
>
>

MAPI rozhranie (instalacia bez MS Outlook-u)

[*] Vlko II. <vlko(zv)zilina(tec)net> - 22.6.2005 12:21:30

On Wed, 22 Jun 2005 11:49:28 +0200, Barica Miroslav
<miroslav.barica(zv)matador.sk> wrote:

> Zial, ide o hotovy zalohovacii produkt ktory pouziva pre notifikaciu
> prave MAPI. Pokial sa mi zda, MS SQL pouziva tiez pre notifikaciu MAPI?
> M.

ano, ale mam pocit, ze v buducej verzii uz bude mozna notifikacia aj bez
MAPI
asi viac ludi malo podobny problem:)
Zostav uz len moznost priamo napisat nejakeho mail klienta, alebo nejakeho
uz existujuceho, ktory vam bude vyhovovat. Nie som si isty, ale napriklad
Eudora ma taketo mapi.dll.

vlko

nejake tie linky:
MAPI - definicia:
http://searchexchange.techtarget.com/sDefinition/0,,sid43_gci214084,00.html
EUDORA MAPI FAQ:
http://www.eudora.com/developers/mapi.html



--


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

OT: nabidka prace na HPP

[*] Karel Pecinka <k.pecinka(zv)seznam(tec)cz> - 22.6.2005 12:15:30

Ahoj,

hledame cloveka na HPP, idealne z okresu Svitavy.
Pozadujeme dobrou znalost FB a ridicak B. Znalost Delphi je vyhodou.
Nabidky prosim na soukromy email k.pecinka(zv)seznam(tec)cz.

Karel


MAPI rozhranie (instalacia bez MS Outlook-u)

[*] Barica Miroslav <miroslav.barica(zv)matador.sk> - 22.6.2005 11:49:28

>Pokud potrebujete na serveru implementovat cosi, co by stahlo a
>pripadne odeslalo postu, doporucuji to udelat primo pomoci POP3/IMAP
>a SMTP klientu, viz knihovny Indy nebo Synapse.

Zial, ide o hotovy zalohovacii produkt ktory pouziva pre notifikaciu
prave MAPI. Pokial sa mi zda, MS SQL pouziva tiez pre notifikaciu MAPI?
M.

MAPI rozhranie (instalacia bez MS Outlook-u)

[*] Martin Schayna <mschayna(zv)aktis(tec)cz> - 22.6.2005 11:31:26

Barica Miroslav wrote:
> Potrebujem vytvorit na serveri specificky MAPI profil. Problem je v tom,
> ze si instalaciu Outlook-u nemozem dovolit. A tak otazka znie - da sa
> nejakym sposobom nainstalovat MAPI rozhranie bez instalacie MS
> Outlook-u?

MAPI (Mail Applications Programming Interface) je obecne programove
rozhrani pro mailove klienty. Misto Outlooku lze pouzit jineho
klienta, ktery podporuje MAPI.

Pokud potrebujete na serveru implementovat cosi, co by stahlo a
pripadne odeslalo postu, doporucuji to udelat primo pomoci POP3/IMAP
a SMTP klientu, viz knihovny Indy nebo Synapse.

Martin Schayna

MAPI rozhranie (instalacia bez MS Outlook-u)

[*] Barica Miroslav <miroslav.barica(zv)matador.sk> - 22.6.2005 11:13:25

> Dobry den,
> Ospravedlnujem sa za OFF-TOPIC, prosim Vas, mam malicky problem.
> Potrebujem vytvorit na serveri specificky MAPI profil. Problem je v
tom,
> ze si instalaciu Outlook-u nemozem dovolit. A tak otazka znie - da sa
> nejakym sposobom nainstalovat MAPI rozhranie bez instalacie MS
> Outlook-u?

> ano nainstalovanim ineho mail klienta, neviem presne ktore maju
> implementovane
> mapi rozhranie, ale napr BAT mail klient ho ma rucite.
> Dalsou moznostou je napisat vlastneho mail klienta a plne
implementovat
> MAPI
> rozhranie, ale to je asi dost zlozite:) a najma asi su potrebne nejake
tie
> prava pri instalacii.

Chcel som sa vyhnut akejkolvek instalacii klienta a tym duplom BAT-u,
ten nema na serveri co robit ;-)
M.

MAPI rozhranie (instalacia bez MS Outlook-u)

[*] Vlko II. <vlko(zv)zilina(tec)net> - 22.6.2005 11:05:24

> Dobry den,
> Ospravedlnujem sa za OFF-TOPIC, prosim Vas, mam malicky problem.
> Potrebujem vytvorit na serveri specificky MAPI profil. Problem je v tom,
> ze si instalaciu Outlook-u nemozem dovolit. A tak otazka znie - da sa
> nejakym sposobom nainstalovat MAPI rozhranie bez instalacie MS
> Outlook-u?

ano nainstalovanim ineho mail klienta, neviem presne ktore maju
implementovane
mapi rozhranie, ale napr BAT mail klient ho ma rucite.
Dalsou moznostou je napisat vlastneho mail klienta a plne implementovat
MAPI
rozhranie, ale to je asi dost zlozite:) a najma asi su potrebne nejake tie
prava pri instalacii.

vlko

--


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

OT: MAPI rozhranie (instalacia bez MS Outlook-u)

[*] Barica Miroslav <miroslav.barica(zv)matador.sk> - 22.6.2005 10:27:21


-----Original Message-----
From: Barica Miroslav
Sent: Monday, June 20, 2005 12:10 PM
To: 'delphi-l-owner(zv)clexpert(tec)cz'
Subject: OT: MAPI rozhranie (instalacia bez MS Outlook-u)

Dobry den,
Ospravedlnujem sa za OFF-TOPIC, prosim Vas, mam malicky problem.
Potrebujem vytvorit na serveri specificky MAPI profil. Problem je v tom,
ze si instalaciu Outlook-u nemozem dovolit. A tak otazka znie - da sa
nejakym sposobom nainstalovat MAPI rozhranie bez instalacie MS
Outlook-u?
Vdaka za pripadne odpovede a este raz sorry za OT.
M.

vypnuti sitovych sluzeb

[*] Jan Novak <delfin4(zv)volny(tec)cz> - 21.6.2005 21:14:16

> Vse funguje vyboene, ale jen do te
> doby, nez vytahnu z poce sitovy kabel

Nainstaluj si 'Microsoft loopback adapter' viz
http://support.microsoft.com/default.aspx?scid=kb;en-us;839013
z nej kabel nevytahnes :-) a PC ma stale IP adresu a 'sit' funguje i
kdyz nefunguje.

INDY - TCPClient

[*] mydelphi(zv)seznam(tec)cz - 21.6.2005 14:53:51


Dobry den,

nemate nekdo prosim nejaky prikladek na pouziti komponenet INDY
IdTCPServer a Id TCPClient? Zajima me posilani a prijimani Streamu
ruzne velikosti a to jak na severu tak na klientovi. Snazim se
vytvorit aplikaci, ktera zasila zpravy ruznych delek. Prvni zprava z
klienta na server dojde, nasleduje odpoved ze serveru na klienta.
Klient pak posle dalsi zpravu, server odesle odpoved ale klient mi
pri prijimani zamrzne...


--
S pozdravem,
MyDelphi
mailto:mydelphi(zv)seznam(tec)cz


podminka v sql dotazu

[*] Dalibor Faltynek <dalibor.faltynek(zv)orgrez(tec)cz> - 21.6.2005 14:51:51

Paradox, BDE a Delphi 5 ent.

> To neni jazykem, ale pouzitou databazi.
> Nepsal jsi,na cem to nejde, ale na MSSQL to jde
>

funkce lstrAddRef

[*] Milan Tomes <delphi(zv)haida(tec)cz> - 21.6.2005 14:45:50

Systemova funkce pro napocitavani odkazu u dlouhych stringu.

S pozdravem

Milan Tomes

> [mailto:delphi-l-owner(zv)clexpert(tec)cz] On Behalf Of
> david.kopecek(zv)hacktrack.com
>
> nevite nahodnou nekdo co je to funkce (zv)LStrAddRef obcas mi to

funkce lstrAddRef

[*] david.kopecek(zv)hacktrack(tec)com - 21.6.2005 14:37:49

Zdravim

konfereni

nevite nahodnou nekdo co je to funkce (zv)LStrAddRef obcas mi to padne
v jednom programu pri volani prave teto fnc..

thx

D.

podminka v sql dotazu

[*] Svoboda Jiri <jsvoboda(zv)lekis(tec)cz> - 21.6.2005 14:39:50


>Ahoj, to jsem zase ja.
>Co vadi proboha sql sytnaxi zase tohle?
>select * from karta where c3=-5.964563E-7
>Zda se ze to nechce semilogaritmicky tvar. Ale to je fakt pitomej jazyk.
>Dalik.

To neni jazykem, ale pouzitou databazi.
Nepsal jsi,na cem to nejde, ale na MSSQL to jde

podminka v sql dotazu

[*] Dalibor Faltynek <dalibor.faltynek(zv)orgrez(tec)cz> - 21.6.2005 14:31:49

Ahoj, to jsem zase ja.
Co vadi proboha sql sytnaxi zase tohle?
select * from karta where c3=-5.964563E-7
Zda se ze to nechce semilogaritmicky tvar. Ale to je fakt pitomej jazyk.
Dalik.

vypnuti sitovych sluzeb

[*] Vlko II. <vlko(zv)zilina(tec)net> - 21.6.2005 11:59:38

On Tue, 21 Jun 2005 10:47:32 +0200, Vaclav Sazima
<vaclav.sazima(zv)utilia(tec)cz> wrote:

> Ahoj,
> pro predavani dat z jedne aplikace do druhe, a to i v ramci jednoho
> pocitace, pouzivam UDP multicast. Vse funguje vyboene, ale jen do te
> doby, nez vytahnu z poce sitovy kabel (ne ten napajeci :-)). Coz taky
> znamena, ze to nefunguje treba na k siti nepripojenem notebooku. Nevite
> nekdo, jak to odstranit (Windows XP, Delphi7,Synapse)?

Treba nainstalovat microsoft loopback, co sa vlastne tvari ako sietove
pripojenie tam, kde ziadne nie je.
Pridava sa normalne cez control panel -> pridat novy hardware->
sietove karty -> producent Microsoft a tam uz je:)

vlko

--


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

Je nainstalovana komponenta OCX

[*] Petr Brant <brant(zv)dcomm(tec)cz> - 21.6.2005 11:31:36

Predpokladam, ze mas vytvorenou prislusnou knihovnu TLB a ze ti jde o objekt, ktery chces v aplikaci vyuzivat cili ze ti nejde o obecny problem:

Ja to zjistuju napriklad pro Infomapu od PJSoftu takto:

try
ic:= TInfoMapControl.Create(self);
ic.Parent:= self;
(.....)
ic.OnPJError:= PJErrorHandler;
FMapCreated:= true;
except
MessageBoxA(self.Handle, PChar('Nepovedlo se vytvorit objekt mapy PJSoft.'),'Upozorneni',MB_ICONSTOP);
end;

resp. MapPoint od Microsoftu:

try
Result:= false;
CreateObject('MapPoint.Map.EU.9', False);
DoVerb(1);
OleObjectInterface.GetUserClassID(vGuid);
Map := IDispatch(self.OleObject) as _Map;
(....)
except
on E: Exception do
begin
Err:= E.Message;
end;
end;

Neboli obecne receno pokusim se objekt vytvorit a kdyz se to nepovede, je neco spatne.

RNDr. Petr Brant [brant(zv)dcomm(tec)cz]
http://brant.wz(tec)cz


Ahoj, jak otestuju zda dana OCX komponenta je v systemu nainstalovana?

Je nainstalovana komponenta OCX

[*] Dalibor <dalibor(zv)torola(tec)cz> - 21.6.2005 11:13:34

Ahoj, jak otestuju zda dana OCX komponenta je v systemu nainstalovana?

Dik

Dalibor

D7Prof, WIn2000

vypnuti sitovych sluzeb

[*] Vaclav Sazima <vaclav.sazima(zv)utilia(tec)cz> - 21.6.2005 10:47:32

Ahoj,
pro predavani dat z jedne aplikace do druhe, a to i v ramci jednoho
pocitace, pouzivam UDP multicast. Vse funguje vyboene, ale jen do te
doby, nez vytahnu z poce sitovy kabel (ne ten napajeci :-)). Coz taky
znamena, ze to nefunguje treba na k siti nepripojenem notebooku. Nevite
nekdo, jak to odstranit (Windows XP, Delphi7,Synapse)?
Dik
Vaclav Sazima

MAPI, ulozeni mail na disk

[*] Petr Kuklik <petr.kuklik(zv)centrum(tec)cz> - 21.6.2005 09:23:26

Ahoj,
jak pomoci Extended MAPI ulozim mail na disk ve formatu eml nebo msg?

Dik Petr


SQL databaze, ci vlastni soubor?

[*] Frantisek Bohac <bohacf_dkonf(zv)vnol(tec)cz> - 21.6.2005 07:51:20

Ahoj,

pokud mas data ve formatu .gdb, mel by je bez problemu zpracovat
Firebird - v embedded verzi nemusis instalovat zadny server, pouze
prilozis nejake soubory k aplikaci (viz FireBird
Embedded\doc\README_embedded.txt) a jede to. Dulezite je, ze pokuds jsi
pouzival InterBase, tak v programu NEMUSIS NIC PREPISOVAT!

http://www.ibphoenix.com/main.nfs?a=ibphoenix&page=ibp_download_15

Pokud k batabazi pristupuje vic uzivatelu zaroven, tak se nejakemu SQL
serveru nejspis nevyhnes.

S pozdravem

Frantisek Bohac

d.vrazel(zv)centrum(tec)cz napsal(a):

> <>Pripada mi ale, ze pouzivam zbytecne silny databazovy nastroj.
> ...
> Dale jsou velke problemy pokud uz uzivatel InterBase ma, nebo vyuziva
> Firebird. Aplikace nevi, kam se poradne prihlasit.
> ...
> Vrazel Dusan,
> amatersky programator.

SQL databaze, ci vlastni soubor?

[*] Stanislav ADAMCIK <konferencia(zv)stadas.sk> - 21.6.2005 07:49:20

skus pouzit Firebird embedd verziu.

priklad na http://www.stadas.sk/Download/Priklad.zip

Stano
www.stadas.sk

d.vrazel(zv)centrum(tec)cz wrote / napisal (a):

>Dobry den,
>
>mam aplikaci, ktera bezi na jednom pocitaci. Je urcena beznym uzivatelum na WinXP, popr. Win98.
>K pristupu k datum vyuzivam vyhod SQL a pouzivam InterBase6 Server, ktery je zdarma.
>Mam 20 tabulek po max. 50 zaznamech.
>
>Pripada mi ale, ze pouzivam zbytecne silny databazovy nastroj.
>Navic je problem, ze pri spusteni aplikace se vzdy musi spustit databazovy server nebo tento server musi bezet na pozadi.
>V nekterych pripadech trva spusteni Interbase i par minut. A to je na tak malou aplikaci, kterou pouzivam opravdu moc.
>Dale jsou velke problemy pokud uz uzivatel InterBase ma, nebo vyuziva Firebird. Aplikace nevi, kam se poradne prihlasit.
>
>Proto jsem se rozhodl napsat si vlastni funkce k pristupu k datum v dll, ktere bych dodaval s aplikaci.
>
>Chtel jsem se zeptat, zda to neni krok zpet?
>Popripade pokud mate zkusenosti, jak se takove aplikace resi?
>Co pouzit za typ souboru atd.
>
>Kdyz se podivam i na vetsi, treba ekonomicke aplikace, urcite pracuji s databazi a pritom se pri startu zadny server nespousti :)
>
>Dekuji,
>
>Vrazel Dusan,
>amatersky programator.
>
>
>
>
>

SQL databaze, ci vlastni soubor?

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

d.vrazel(zv)centrum(tec)cz napsal(a):

>Dobry den,
>
>mam aplikaci, ktera bezi na jednom pocitaci. Je urcena beznym uzivatelum na WinXP, popr. Win98.
>K pristupu k datum vyuzivam vyhod SQL a pouzivam InterBase6 Server, ktery je zdarma.
>Mam 20 tabulek po max. 50 zaznamech.
>
>
O tom bych pochyboval, ze je InterBase zdarma.

>Pripada mi ale, ze pouzivam zbytecne silny databazovy nastroj.
>Navic je problem, ze pri spusteni aplikace se vzdy musi spustit databazovy server nebo tento server musi bezet na pozadi.
>V nekterych pripadech trva spusteni Interbase i par minut. A to je na tak malou aplikaci, kterou pouzivam opravdu moc.
>Dale jsou velke problemy pokud uz uzivatel InterBase ma, nebo vyuziva Firebird. Aplikace nevi, kam se poradne prihlasit.
>
>
>

Na to staci pristupovat pomoci XML souboru s pouzitim komponenty
ClientDataSet

>Proto jsem se rozhodl napsat si vlastni funkce k pristupu k datum v dll, ktere bych dodaval s aplikaci.
>
>Chtel jsem se zeptat, zda to neni krok zpet?
>Popripade pokud mate zkusenosti, jak se takove aplikace resi?
>Co pouzit za typ souboru atd.
>
>
>
Na takovy napad rychle zapomen, zbytecne by si delal neco, co uz
vymysleli jini.

>Kdyz se podivam i na vetsi, treba ekonomicke aplikace, urcite pracuji s databazi a pritom se pri startu zadny server nespousti :)
>
>
>
Vetsinou k tomu pouzivaji DBF soubory, coz je v dobach SQL serveru
zdarma opravdu katastrofa. Na ekonomicky software dnes uz jedine
SQL server

>Vrazel Dusan,
>amatersky programator.
>
>
>
Ladislav Stary


SQL databaze, ci vlastni soubor?

[*] d.vrazel(zv)centrum(tec)cz - 21.6.2005 06:43:15

Dobry den,

mam aplikaci, ktera bezi na jednom pocitaci. Je urcena beznym uzivatelum na WinXP, popr. Win98.
K pristupu k datum vyuzivam vyhod SQL a pouzivam InterBase6 Server, ktery je zdarma.
Mam 20 tabulek po max. 50 zaznamech.

Pripada mi ale, ze pouzivam zbytecne silny databazovy nastroj.
Navic je problem, ze pri spusteni aplikace se vzdy musi spustit databazovy server nebo tento server musi bezet na pozadi.
V nekterych pripadech trva spusteni Interbase i par minut. A to je na tak malou aplikaci, kterou pouzivam opravdu moc.
Dale jsou velke problemy pokud uz uzivatel InterBase ma, nebo vyuziva Firebird. Aplikace nevi, kam se poradne prihlasit.

Proto jsem se rozhodl napsat si vlastni funkce k pristupu k datum v dll, ktere bych dodaval s aplikaci.

Chtel jsem se zeptat, zda to neni krok zpet?
Popripade pokud mate zkusenosti, jak se takove aplikace resi?
Co pouzit za typ souboru atd.

Kdyz se podivam i na vetsi, treba ekonomicke aplikace, urcite pracuji s databazi a pritom se pri startu zadny server nespousti :)

Dekuji,

Vrazel Dusan,
amatersky programator.

Parametricke spracovani promenych a obektu

[*] Jan Novak <delfin4(zv)volny(tec)cz> - 21.6.2005 06:21:13

> pak je musim nejdriv nahazet do pole

Nebo si je naskladej na panel a projizdej cyklem jeho deticky

Parametricke spracovani promenych a obektu

[*] Ladislav Stary <stary(zv)ekodat(tec)cz> - 21.6.2005 00:08:47

Benda Lukas napsal(a):

>Jo to je jedno z moznych resni, proste narvat prvky do pole, ale paklize
>mam normalni formular, vytvoreny pomoci pretahovani komponent mysi. Pak
>je bud musim nejdriv nahazet do pole to se mi nejevi jako nejlepsi postup.
>
>
A co se trochu vic rozepsat, co vlastne chces vytvorit. Protoze pokud
mas rucne vytvorene komponenty TLabel,
tak k nim muzes pristupovat primo, tedy:
Label1.Caption := 'label 1';
Label2.Caption := label 2';
atd.

Na to preci nepotrebujes cyklus. Jinak poznamka bokem. Nepripada mi moc
moudre nechat pojmenovani komponent na Delphi.
U tech labelu to sice moc nevaci, ale preci jen si je radeji prejmenovavam.

Pokud by si trval na svem a chcel to menit v cyklu, tak pak (jak uz tu
bylo uvedeno) muzes pouzit funkci FindComponent, tedy

procedure NastavCaption;
var
i : integer;
PomLabel : TLabel;
NazevLabelu : String;
begin
for i := 1 to 10 do begin
NazevLabelu := 'label' + IntToStr(i);
PomLabel := FindComponent(NazevLabelu) as TLabel;
PomLabel.Caption := 'popis'; // napriklad
end;
end;


Ladislav Stary

Parametricke spracovani promenych a obektu

[*] Benda Lukas <bendal(zv)volny(tec)cz> - 20.6.2005 23:32:44

Petr Brant napsal(a):

>Pokud potrebujes menit hodnoty Caption, tak muze byt jmeno v podstate
>libovolne. Dynamicky se ty labely mohou tvorit treba v cyklu (pisu z
>hlavy, takze sorry for pripadne errors):
>
>
>private
> LblArray: Array[0..9] of TLabel;
>....
>
>
>for i:= 0 to 9 do
>begin
> LblArray[i]:= TLabel.Create(self); <--- self, pokud to budes vytvaret
>v ramci tridy formu
> LblArray[i].Parent:= self;
> LblArray[i].Left:= ....
> LblArray[i].Top:= ....
> LblArray[i]...(pripadne dalsi vlastnosti jako Caption, Font,
>Color,....)
>end;
>
>No a pak nekde napr. LblArray[7].Caption:= 'blablabla'
>
>Zdravim
>
>RNDr. Petr Brant [brant(zv)dcomm(tec)cz]
>http://brant.wz(tec)cz
>
>
>jak a jestli vubec je mozne pristupovat k
>objektum a ruznym promennym tak, ze jejich jmeno vytvorim az za behu
>programu. Napr. na formulari ma label1 : TLabel, label2 : TLabel
>.... label10 : TLabel.
>
>A chtel bych napriklad v cyklu menit hodnoty caption objektu label1
>az label10. V PHP by se na to pouzilo funkci eval, popripade
>vlastnosti chameleon promennych, ale v Delphi nevim jak na to.
>

Jo to je jedno z moznych resni, proste narvat prvky do pole, ale paklize
mam normalni formular, vytvoreny pomoci pretahovani komponent mysi. Pak
je bud musim nejdriv nahazet do pole to se mi nejevi jako nejlepsi postup.

Dotaz k MAPISendDocuments

[*] Milan Kajnar <mkajnar(zv)mikesoft(tec)cz> - 20.6.2005 22:08:38

Ahoj...

Nevite nekdo prosim, kterou z aplikaci je mozno vyzkouset SMAPISendDocuments?
Jde o to, ze se dnes stale vice vyuziva SMAPISendMail (napr. pri odeslani souboru z aplikace).
Pisu knihovni funkce obsluhujici "Send to" z ruznych aplikaci a na vyuziti SendDocuments jsem
jeste bohuzel nenarazil, abych si nasledne prokrokoval v debuggeru explorer.exe a rozebral si tak spravne
vstupy z ruznych aplikaci. :( (u SendMail jsem to tak udelal a je to OK)...

Diky za radu...

Milan

Alokace pameti a Access violation - co delam spatn

[*] Martin Schayna <mschayna(zv)aktis(tec)cz> - 20.6.2005 20:00:29

Karel Kral wrote:
> Pokud to chces delat pomoci GetMem, musis to udelat takto. Chyba je v
> tom, ze musis pouzit pevne a ne dynamicke pole (zvlast pokud ti jde o
> predani do DLL a vice jazyku).
>
> Pole je sice nize deklarovano do 100000 ale v GetMem si alokujes pouze,
> kolik chces ty:
>
> type
> TPoleZaznamu = array [0..100000] of TZaznam;

Nebo takto:

type
TPoleZaznamu = array[0..0] of TZaznam;

jen je treba mit vypnutou direktivu {$RANGECHECKS OFF}, coz je
stejne default (alespon u D7).

Martin Schayna

Alokace pameti a Access violation - co delam spatn

[*] Karel Kral <kralkonf(zv)purusmeda(tec)cz> - 20.6.2005 19:40:27

Pokud to chces delat pomoci GetMem, musis to udelat takto. Chyba je v
tom, ze musis pouzit pevne a ne dynamicke pole (zvlast pokud ti jde o
predani do DLL a vice jazyku).

Pole je sice nize deklarovano do 100000 ale v GetMem si alokujes pouze,
kolik chces ty:

type
TPoleZaznamu = array [0..100000] of TZaznam;

Ing. Jiri Sokol napsal(a):
> Ahoj.
> Plynule navazuji na me dotazy z minuleho tydne.
> Mam takovy priklad:
> Type
> TSString = array [0..255] of Char;
>
> TZaznam = packed record
> id : integer;
> Datum : double;
> Cas : double;
> Hodnota : TSString;
> Prist : boolean;
> end;
>
> TPoleZaznamu = array of TZaznam;
>
> procedure Nejaka;
> var
> Zaznam : TZaznam;
> PoleZaznamu : TPoleZaznamu;
> begin
> GetMem (PoleZaznamu, SizeOf(Zaznam)*5010);
> try
> finally
> FreeMem (PoleZaznamu);
> end;
> end; //<-- tady to skonci na access violation
>
--
______________________________________________________
Karel Kral, reditel IT / IT manager
PURUS-MEDA, s.r.o., Palackeho 174, 621 00 Brno, CZ
E-Mail: kral(zv)purusmeda(tec)cz
______________________________________________________


ORACLE ODBCe problem - restricted data type attrib

[*] zmo <zmo(zv)volny(tec)cz> - 20.6.2005 18:14:21

Zdravim vsechny,

opet is odpovidam sam - pokud na to nekdo narazite, pomohlo nastaveni
ODBCDatabase - UseInt64 na False.

S pozdravem
Zdenek Moravec zmo(zv)volny(tec)cz

----- Original Message -----
From: "zmo" <zmo(zv)volny(tec)cz>
To: <delphi-l(zv)clexpert(tec)cz>

> pri praci s ODBCe na databazi ORACLE mam problem se ctenim nekterych
> tabulek. Po prostem selectu na nektere tabulce hlasi program:
> ODBCError:
> Native : [0] State : [07006]
> [Oracle][ODBC] Restricted data type atribute violation
>
> Dalsi analyzou jsem objevil, ze se to objevuje u tabulek , ktere maji pole
> typu NUMBER 10.
> Mate nekdo nejaky napad, jak toto resit ?

Navrh DB

[*] Roman Bradac <roman.bradac(zv)fotoinfo(tec)cz> - 20.6.2005 13:15:35

Zalezi na tom zda aktualizaci ceniku provadis prepsanim db nebo obmenou
polozek, v druhem pripade bych pridal sloupec "datum aktualizace" a pri
nahravani polozek pak vybral data odpovidajici datumu. Nasledne ja pak jedno
zda prehravas cely cenik nebo jen jednu polozku. Co se tyka ruznych cen pro
zakazniky v podtate se dostavas do problemu s poctem databazi (co zakaznik
to cenik, jestlize to vezmu do extremu), resil jsem to kategori zakazniku v
pocte 5, dale procentni slevou na zakaznika, doklad, nebo polozku dokladu.
Priklad: zakaznik ma kartu v kategorii 2 (napriklad dle trzeb), v ceniku
najdu cenu pro kategorii 2, dale zjistim zda v neni pro vybranou polozku
"reklamni akce" (tady ta prace jen za 350,-) a nasledne cenu vlozim do
dokladu. Zde bych si mel ohlidat zda ma dojit k secteni pripadnych slev
(sleva na dokladu+sleva zakaznika+reklamni akce).


Priklad DB
prace(kod_prace, popis, cena, datAkt,
cenaKat1,cenaKat2,cenaKat3,cenaKat4,cenaKat5,Akce).

Dalsi varianta je mit pro kategorii zakazniku procentni slevy, pri zadani
karty nebo adresy zakaznika na doklade pouzit procentni slevu.

Varianta 1
Priklad DB
prace(kod_prace, popis, cena, datAkt, Akce).
Zakaznik(cisloKarty, ICO, CisloKat)
Kategorie(CisloKat, Sleva)
Slozitejsi, ale prehlednejsi pro obsluhu (aktualizujes jen 5 cisel)

Varianta 2
Priklad DB
prace(kod_prace, popis, cena, datAkt, Akce).
Zakaznik(cisloKarty, ICO, Sleva)
Jednodusi pro tebe, vice flexibilnejsi na dodelavky (musis napsat program na
akutualizaci slev kazdemu zakazniku)

Na zaver :
> - niektory odberatel (zatial jeden) ma niektore svoje kody,
> ktore sa pouzivaju len pre neho.

Tak tomuhle bych se vyhnul. Presvedc obsluhu, ze do budoucna, sprava
takovych to ceniku je nudrzitelna (prilis namahy, malo uzitku)

Takto vytvoreny cenik je vhodne casove omezit idealne na ucetni obdobi.
Muzes v novem roce vyjmout polozky, ktere nebudes potrebovat. Nicmene pozor
na to, nemel bysi pouzivat cisla jiz pouzita, rozhodne ne v jednom ucetnim
roce.

Preji ti mnoho zdaru, vytvorit dobry prodejni program je docela fuska
nakonec zjistis ze se jedna o sbirku kompromisu, ktera musi vyhovovat nejen
tobe ale i obsluze.> -----Original Message-----
> From: delphi-l-owner(zv)clexpert(tec)cz
> [mailto:delphi-l-owner(zv)clexpert(tec)cz] On Behalf Of Pavol Svorc
> Sent: Monday, June 20, 2005 10:09 AM
> To: delphi-l(zv)clexpert(tec)cz
> Subject: Navrh DB
>
> Zacinam s Firebirdom a nejak som narazil.
> Mam navrhnut strukturu ciselnika s cca 5000 polozkami.
> Doteraz ten ciselnik v starom dosovom programe vyzeral nejak takto:
> prace(kod_prace, popis, cena).
> Udaje z ciselnika sa priamo zapisovali do dennych zaznamov
> vratane kodu a ceny.
> Odberatel, ktory mal specialne ceny mal vlastny ciselnik
> rozdielnych zaznamov.
> Pri vybere sa najprv hladal kod_prace vo vseobecnom a
> nasledne ak sa nasiel v rozdielovom ciselniku zobral sa ten.
>
> Denny zaznam vyzeral asi takto: denny_zaznam(datum,
> kod_odberatela, cislo_zakazky, kod_prace, cena)
>
> Ked nastala globalna zmena cien jednoducho sa v den zmeny
> ciselnik vymenil za aktualny.
> Precital som si na nete nejaku teoriu, stale mam ale problem
> ako to navrhnut nejak zmysluplne.
>
> Zjednodusene zadanie:
> - polozky ciselnika sa mozu menit globalne k urcitemu datumu
> = meni sa vacsina cien, zanikaju niektore kody a vznikaju
> ine. Toto sa deje s frekvenciou 1x mesacne az 1x rocne.
> - mozu sa menit len ciastocne - k urcitemu datumu sa zmeni
> cena alebo nejaky ten zaznam pribudne/ubudne.
> - niektory odberatel ma dohodnute specialne ceny pri niekolko
> malo polozkach, povedzme pri 50-tich
> - niektory odberatel (zatial jeden) ma niektore svoje kody,
> ktore sa pouzivaju len pre neho.
>
> Mam nadalej rozmyslat o normalizacii, alebo to nechat tak a
> robit to starou filozofiou?
> Na vytvorenie prehladov a statistik z denneho zaznamu by to
> bohato stacilo.
> Zase to vsak celkom odporuje nejakym tym zasadam o navrhovani db.
>
> Co mi poradite? Ako by ste navrhli ten ciselnik?
>
> Palo
>
>
>
>

Parametricke spracovani promenych a obektu

[*] Petr Brant <brant(zv)dcomm(tec)cz> - 20.6.2005 15:40:08

Pokud potrebujes menit hodnoty Caption, tak muze byt jmeno v podstate
libovolne. Dynamicky se ty labely mohou tvorit treba v cyklu (pisu z
hlavy, takze sorry for pripadne errors):


private
LblArray: Array[0..9] of TLabel;
....


for i:= 0 to 9 do
begin
LblArray[i]:= TLabel.Create(self); <--- self, pokud to budes vytvaret
v ramci tridy formu
LblArray[i].Parent:= self;
LblArray[i].Left:= ....
LblArray[i].Top:= ....
LblArray[i]...(pripadne dalsi vlastnosti jako Caption, Font,
Color,....)
end;

No a pak nekde napr. LblArray[7].Caption:= 'blablabla'

Zdravim

RNDr. Petr Brant [brant(zv)dcomm(tec)cz]
http://brant.wz(tec)cz


jak a jestli vubec je mozne pristupovat k
objektum a ruznym promennym tak, ze jejich jmeno vytvorim az za behu
programu. Napr. na formulari ma label1 : TLabel, label2 : TLabel
.... label10 : TLabel.

A chtel bych napriklad v cyklu menit hodnoty caption objektu label1
az label10. V PHP by se na to pouzilo funkci eval, popripade
vlastnosti chameleon promennych, ale v Delphi nevim jak na to.

Parametricke spracovani promenych a obektu

[*] Pavel Poles <delphi(zv)noni(tec)cz> - 20.6.2005 15:30:07

> A chtel bych napriklad v cyklu menit hodnoty caption objektu label1
> az label10. V PHP by se na to pouzilo funkci eval, popripade
> vlastnosti chameleon promennych, ale v Delphi nevim jak na to.


Napriklad by slo pri vytvareni si ty objekty uklad do nejakeho Listu,
a pak pristupovat pres nej, nebo funkce FindComponent.

Pavel Poles

ORACLE ODBCe problem - restricted data type attrib

[*] zmo <zmo(zv)volny(tec)cz> - 20.6.2005 15:24:07

Zdravim,

pri praci s ODBCe na databazi ORACLE mam problem se ctenim nekterych
tabulek. Po prostem selectu na nektere tabulce hlasi program:
ODBCError:
Native : [0] State : [07006]
[Oracle][ODBC] Restricted data type atribute violation

Dalsi analyzou jsem objevil, ze se to objevuje u tabulek , ktere maji pole
typu NUMBER 10.
Mate nekdo nejaky napad, jak toto resit ?

S pozdravem
Zdenek Moravec zmo(zv)volny(tec)cz


Parametricke spracovani promenych a obektu

[*] bendal(zv)volny(tec)cz - 20.6.2005 15:13:44

Chtel bych se zeptat jak a jestli vubec je mozne pristupovat k
obektum a ruznym promenym tak, ze jejich jmeno vytvorim az za behu
programu. Napr. na formulari ma label1 : TLabel, label2 : TLabel
... label10 : TLabel.

A chtel bych napriklad v cyklu menit hodnoty caption objektu label1
az label10. V PHP by se na to pouzilo funkci eval, popripade
vlastnosti chameleon promennych, ale v Delphi nevim jak na to.

Kdesi jsem cetl, ze se to nejak da, ale ze je to pomerne slozitejsi
konstrukce. Muze mi nekdo poradit jak na to?


--
Nechte si zasilat do mailu denni prehled nejzajimavejsich
clanku z portalu VOLNY. http://web.volny(tec)cz/mailinfo/

FB seznam indexu

[*] horky(zv)cominn(tec)cz - 20.6.2005 13:39:37

> From: votavaSW [mailto:mail(zv)votavasw.com]
> Sent: Monday, June 20, 2005 11:53 AM

> poradte mi prosim, kde ve FB najdu seznam indexu,

Uspesne pouzivame toto:

SELECT RDB$INDEX_NAME FROM RDB$INDICES
WHERE (RDB$SYSTEM_FLAG = 0 OR RDB$SYSTEM_FLAG IS NULL)
AND (RDB$UNIQUE_FLAG = 0 OR RDB$UNIQUE_FLAG IS NULL)

--
S pozdravem Karel Horky, D7, FB 1.5.2, IBX 7.08, WXP SP1
[mailto:horky(zv)cominn(tec)cz]

FB seznam indexu

[*] Libor Junek, Medisoft International <libor.junek(zv)medisoft(tec)cz> - 20.6.2005 12:07:25

V systemove tabulce RDB$INDICES
Libor

votavaSW napsal(a):

>poradte mi prosim, kde ve FB najdu seznam indexu,
>

Alokace pameti a Access violation - co delam spatn

[*] Ladislav Stary <stary(zv)ekodat(tec)cz> - 20.6.2005 12:05:25

Ing. Jiri Sokol napsal(a):

>Ahoj.
>Plynule navazuji na me dotazy z minuleho tydne.
>Mam takovy priklad:
>Type
> TSString = array [0..255] of Char;
>
> TZaznam = packed record
> id : integer;
> Datum : double;
> Cas : double;
> Hodnota : TSString;
> Prist : boolean;
> end;
>
>
>
A nebylo by lepsi pouzit misto toho recordu potomka TObject. Tato rada
je tu dost casta.

>Metodou pokus-omyl jsem prisel na to, ze nejvic, co funguje OK je 3561 - ci-li pokud je radek
> GetMem (PoleZaznamu, SizeOf(Zaznam)*3561);
>
>
Kdyz jsem to hrube pronasobil, tak mi vychazi velikost tohoto pole kolem
1MB pameti, coz muze byt maximum.
Zkus si precist v helpu kapitolu Memory management.

Ladislav Stary

>Diky vsem za cas.
>Jirka
>--------------------------------------------------
>Ing. Jiri Sokol; jiri.sokol(zv)seznam(tec)cz; 972 231 187
>D6Prof+SP3; WinXPProf+SP2; FB 1.5.2
>programator amater
>
>
>

FB seznam indexu

[*] votavaSW <mail(zv)votavasw(tec)com> - 20.6.2005 11:53:24

dobry den,
poradte mi prosim, kde ve FB najdu seznam indexu,
s pozdravem Votava D5Pro, WXPPro, FB1.5SS

Alokace pameti a Access violation - co delam spatn

[*] delphin(zv)post(tec)cz - 20.6.2005 11:31:22

> Ahoj.
> Plynule navazuji na me dotazy z minuleho tydne.
> Mam takovy priklad:
> Type
> TSString = array [0..255] of Char;
>
> TZaznam = packed record
> id : integer;
> Datum : double;
> Cas : double;
> Hodnota : TSString;
> Prist : boolean;
> end;
>
> TPoleZaznamu = array of TZaznam;

array of TZaznam je dynamicke pole.

> procedure Nejaka;
> var
> Zaznam : TZaznam;
> PoleZaznamu : TPoleZaznamu;
> begin
> GetMem (PoleZaznamu, SizeOf(Zaznam)*5010);
> try
> finally
> FreeMem (PoleZaznamu);
> end;
> end; //<-- tady to skonci na access violation

Spise takto:

procedure Nejaka;
var
Zaznam : TZaznam;
PoleZaznamu : TPoleZaznamu;
begin
SetLength(PoleZaznamu,5010);
end; //<-- tady to skonci na access violation

> Potrebuji si alokovat pamet pro pole typu TPoleZaznamu velikosti 5010
> zaznamu...
> Nechapu, proc vse v te procedure probehne vporadku, ale u posledniho
> "endu" vyskoci ta exception.

Protoze Delphi se o dynamicke pole stara automaticky a v end provadi
uvolneni. Spadne to proto, ze se uvolnuje jiz uvolnena pamet.

> Metodou pokus-omyl jsem prisel na to, ze nejvic, co funguje OK je 3561 -
> ci-li pokud je radek
> GetMem (PoleZaznamu, SizeOf(Zaznam)*3561);
> vse jede OK.
> Muzete mi, prosim, nekdo rict co delam spatne?
>
> Pak jsem zkousel pouzit "SetLength" - funguje to spravne, ale pri pouziti
> teto funkce si zase neumim pohlidat uvolneni pameti... V Helpu jsem k
> uvolnovani pameti alokovane pomoci SetLength nic nenasel... Jak se to
> resi? FreeMem mi nahlasi "invalid pointer".

Delphi se samo postara o uvolneni, viz Ctrl+Alt+C

>
> Diky vsem za cas.
> Jirka
> --------------------------------------------------
> Ing. Jiri Sokol; jiri.sokol(zv)seznam(tec)cz; 972 231 187
> D6Prof+SP3; WinXPProf+SP2; FB 1.5.2
> programator amater
>
>
>

SQL a desetinna carka

[*] Dalibor Faltynek <dalibor.faltynek(zv)orgrez(tec)cz> - 20.6.2005 11:21:21

Ahoj,
dekuji za podnety.
Udelal jsem to takhle, ale asi to neni univerzalni, takze budu radeji
zjistovat carku a menit na tecku.

if screen.ActiveControl is TDBEdit then
begin
if dm2.qKarta.FieldDefList.FieldByName((screen.ActiveControl as
TDBEdit).datafield).datatype = ftString then
podminka:= (screen.ActiveControl as TDBEdit).datafield + ' like
''' + dm2.qKarta.fieldbyname((screen.ActiveControl as
TDBEdit).datafield).asstring + ''''
else begin
a:=dm2.qKarta.fieldbyname((screen.ActiveControl as
TDBEdit).datafield).asFloat;
Str(a:15:10,podminka);
podminka:= (screen.ActiveControl as TDBEdit).datafield + ' = ' +
podminka
end;
end;
if screen.ActiveControl is TDBLookupCombobox then
podminka:= (screen.ActiveControl as TDBLookupCombobox).datafield + '
= ' + dm2.qKarta.fieldbyname((screen.ActiveControl as
TDBLookupCombobox).datafield).asstring;
if screen.ActiveControl is TDBMemo then
podminka:= (screen.ActiveControl as TDBMemo).datafield + ' like '''
+ dm2.qKarta.fieldbyname((screen.ActiveControl as
TDBMemo).datafield).asstring + '''';
end;
if podminka <> '' then
begin
dm2.qKarta.Close;
dm2.qKarta.sql.Clear;
dm2.qKarta.SQL.Add('select * from karta where ');
dm2.qKarta.SQL.Add(podminka);
dm2.qKarta.open;

Dalibor.

Alokace pameti a Access violation - co delam spatn

[*] Martin Schayna <mschayna(zv)aktis(tec)cz> - 20.6.2005 11:15:20

Ing. Jiri Sokol wrote:
> Mam takovy priklad:
> Type
...
> TPoleZaznamu = array of TZaznam;
>
> procedure Nejaka;
> var
> Zaznam : TZaznam;
> PoleZaznamu : TPoleZaznamu;
> begin
> GetMem (PoleZaznamu, SizeOf(Zaznam)*5010);
> try
> finally
> FreeMem (PoleZaznamu);
> end;
> end; //<-- tady to skonci na access violation
>

Pole "array of" jsou tzv. dynamicke pole, ktere se alokuji prave
pomoci SetLength. Jednou z vlastnosti dynamickych poli je
automaticka dealokace, takze zanikaji kdyz zanika promenna, ktera na
toto pole ukazuje.

Viz help, kap. "Dynamic arrays".

Martin Schayna

Alokace pameti a Access violation - co delam spatn

[*] Ludek Finstrle <ludek.finstrle(zv)pzkagis(tec)cz> - 20.6.2005 11:05:19

> Metodou pokus-omyl jsem prisel na to, ze nejvic, co funguje OK je
> 3561 - ci-li pokud je radek
> GetMem (PoleZaznamu, SizeOf(Zaznam)*3561);
> vse jede OK.
> Muzete mi, prosim, nekdo rict co delam spatne?

V tomto smeru netusim.

> Pak jsem zkousel pouzit "SetLength" - funguje to spravne, ale pri
> pouziti teto funkce si zase neumim pohlidat uvolneni pameti...
> V Helpu jsem k uvolnovani pameti alokovane pomoci SetLength nic
> nenasel... Jak se to resi? FreeMem mi nahlasi "invalid pointer".

Pokud se nepletu, tak v D5 bylo, ze se ma pouzit SetLength(pole,0);
V Helpu D6 uz jsem nic podobneho nenasel ...

Luf

Free FB server

[*] m.mrazik <m.mrazik(zv)stonline.sk> - 20.6.2005 11:01:18


<Vime. Vzhledem k tomu, ze to sem asi moc nepatri tak radsi na soukromy
mail.
Ja bz som mal yaujem tiey. Chcem odskusat rzchlost svojej aplikacie po
internete a adresa takeho servera bz sa hodila.

Dikz Miro


Alokace pameti a Access violation - co delam spatn

[*] Ing. Jiri Sokol <js-delphi(zv)email(tec)cz> - 20.6.2005 10:53:18

Ahoj.
Plynule navazuji na me dotazy z minuleho tydne.
Mam takovy priklad:
Type
TSString = array [0..255] of Char;

TZaznam = packed record
id : integer;
Datum : double;
Cas : double;
Hodnota : TSString;
Prist : boolean;
end;

TPoleZaznamu = array of TZaznam;

procedure Nejaka;
var
Zaznam : TZaznam;
PoleZaznamu : TPoleZaznamu;
begin
GetMem (PoleZaznamu, SizeOf(Zaznam)*5010);
try
finally
FreeMem (PoleZaznamu);
end;
end; //<-- tady to skonci na access violation

Potrebuji si alokovat pamet pro pole typu TPoleZaznamu velikosti 5010 zaznamu...
Nechapu, proc vse v te procedure probehne vporadku, ale u posledniho "endu" vyskoci ta exception.

Metodou pokus-omyl jsem prisel na to, ze nejvic, co funguje OK je 3561 - ci-li pokud je radek
GetMem (PoleZaznamu, SizeOf(Zaznam)*3561);
vse jede OK.
Muzete mi, prosim, nekdo rict co delam spatne?

Pak jsem zkousel pouzit "SetLength" - funguje to spravne, ale pri pouziti teto funkce si zase neumim pohlidat uvolneni pameti... V Helpu jsem k uvolnovani pameti alokovane pomoci SetLength nic nenasel... Jak se to resi? FreeMem mi nahlasi "invalid pointer".

Diky vsem za cas.
Jirka
--------------------------------------------------
Ing. Jiri Sokol; jiri.sokol(zv)seznam(tec)cz; 972 231 187
D6Prof+SP3; WinXPProf+SP2; FB 1.5.2
programator amater

Jak na UDF pro Firebird v Linuxu?

[*] Martin Schayna <mschayna(zv)aktis(tec)cz> - 20.6.2005 10:33:16

pilifs wrote:
> nejak se mi nedari se subjektem, muzete nekdo poradit?
> Stav je takovy:

Priklad z realneho nasazeni v ABRA G3 (pouzivame Kylix 3), podle me
tedy zadnou chybu nedelate:

interface

function IB_IsLeapYear(var AYear: integer): integer; cdecl;

exports
IB_IsLeapYear name 'ib_isleapyear';

implementation

function IB_IsLeapYear(var AYear: integer): integer;
begin
if IsLeapYear(AYear) then
Result := 1
else
Result := 0;
end;

Martin Schayna
www.abra(tec)cz

Urceni zda je bod na ohranicene plose

[*] Jaroslav Pivonka <jpivonka(zv)centrum(tec)cz> - 20.6.2005 10:27:16

To je tim zanetem spojivek, blbe ctu, prehlidl jsem ten end, jakoz i ze to,
mail o zitrejsim slunovratu nebyl vcerejsi, ale dnesni.
Omlouvam se vsem kdo cetli. J.

----- Original Message -----
From: "OndraG" <gebakonf(zv)centrum(tec)cz>
To: <delphi-l(zv)clexpert(tec)cz>
Sent: Monday, June 20, 2005 8:59 AM
Subject: Re: Urceni zda je bod na ohranicene plose


>
> ----- Original Message -----
> From: "Jaroslav Pivonka" <jpivonka(zv)centrum(tec)cz>
> To: <delphi-l(zv)clexpert(tec)cz>
>
>> SUM DING WONG:
>>
>> > if (A^.Y <= Point.Y) then begin
>> > if (Point.Y >= B^.Y) then
>> > Continue;
>> > end else if (B^.Y > Point.Y) then
>> > Continue;
>>
>> At na to koukam jak koukam, neni to nic jineho nez
>>
>> if (A^.Y <= Point.Y) then Continue
>>
>> Ty dalsi podminky se prece doplnuji do true takze VZDY plati prave jedna
>> z
>> nich.
>
> *********
> to neni pravda, prehledli jsi begin end, to else se vztahuje k 1. podmince
> .....
> Dalo by se to prepsat - mozna malicko prehledneji -jako
> if ((A^.Y <= Point.Y) and (Point.Y >= B^.Y) or (A^.Y > Point.Y) and
> (Point.Y > B^.Y)) then continue;
> ********
>
>> Hezke leto (zacina za 11 minut).
>
> *******************
> taky hezke leto, ale zacina az zitra :-)
>
> Ondra
> *******************
>
>
>
>

Jak na UDF pro Firebird v Linuxu?

[*] pilifs <pilifs(zv)seznam(tec)cz> - 20.6.2005 10:21:15

Karel Rys napsal(a):

>pilifs dne 20 Jun 2005 v 7:30:
>
>
>
>>function frand(var size: integer): integer; begin
>> Random;
>> Result := Randomize(size);
>>end;
>>
>>
>
>Nema to byt spise:
>
>result:=Random(size)
>
>A Randomize volat jen jednou, pri nejake inicializaci knihovny?
>
>Pravda, neresi to problem s volanim UDF ;-)
>
>Karel Rys
>
>
>
>
>
>
Mate pravdu, jednalo se mi ale jen o jednoduchy test (priklad).
Ze by opravdu nikdo nevedel? :-(

Free FB server

[*] Jiri Cincura <diskuze(zv)cincura(tec)net> - 20.6.2005 10:11:14

Milan Fabik wrote (on Monday, June 20, 2005 10:01 AM):
> Zdravim,
>
> rad by som sa spytal, ci viete o nejakom FB 1.5 serveri, ktory je
> viditelny na nete, ktory by mohla vyuzivat moja aplikacia. Ide o malu
> aplikaciu s min. narokmi databaze na miesto - register pozicanych knih.
>
> Dakujem Fabik.

Vime. Vzhledem k tomu, ze to sem asi moc nepatri tak radsi na soukromy mail.

--
Jiri Cincura
http://ID3renamer.cincura.net/
ICQ: 314711544; Yahoo!: x2develop
http://photo.cincura.net/

Navrh DB

[*] Pavol Svorc <svorc(zv)slovanet.sk> - 20.6.2005 10:09:13

Zacinam s Firebirdom a nejak som narazil.
Mam navrhnut strukturu ciselnika s cca 5000 polozkami.
Doteraz ten ciselnik v starom dosovom programe vyzeral nejak takto:
prace(kod_prace, popis, cena).
Udaje z ciselnika sa priamo zapisovali do dennych zaznamov vratane
kodu a ceny.
Odberatel, ktory mal specialne ceny mal vlastny ciselnik rozdielnych
zaznamov.
Pri vybere sa najprv hladal kod_prace vo vseobecnom a nasledne ak sa
nasiel v rozdielovom ciselniku zobral sa ten.

Denny zaznam vyzeral asi takto: denny_zaznam(datum, kod_odberatela,
cislo_zakazky, kod_prace, cena)

Ked nastala globalna zmena cien jednoducho sa v den zmeny ciselnik
vymenil za aktualny.
Precital som si na nete nejaku teoriu, stale mam ale problem ako to
navrhnut nejak zmysluplne.

Zjednodusene zadanie:
- polozky ciselnika sa mozu menit globalne k urcitemu datumu = meni
sa vacsina cien, zanikaju niektore kody a vznikaju ine. Toto sa deje
s frekvenciou 1x mesacne az 1x rocne.
- mozu sa menit len ciastocne - k urcitemu datumu sa zmeni cena alebo
nejaky ten zaznam pribudne/ubudne.
- niektory odberatel ma dohodnute specialne ceny pri niekolko malo
polozkach, povedzme pri 50-tich
- niektory odberatel (zatial jeden) ma niektore svoje kody, ktore sa
pouzivaju len pre neho.

Mam nadalej rozmyslat o normalizacii, alebo to nechat tak a robit to
starou filozofiou?
Na vytvorenie prehladov a statistik z denneho zaznamu by to bohato
stacilo.
Zase to vsak celkom odporuje nejakym tym zasadam o navrhovani db.

Co mi poradite? Ako by ste navrhli ten ciselnik?

Palo


Free FB server

[*] Milan Fabik <fabtech(zv)fabtech.sk> - 20.6.2005 10:01:13

Zdravim,

rad by som sa spytal, ci viete o nejakom FB 1.5 serveri, ktory je
viditelny na nete, ktory by mohla vyuzivat moja aplikacia. Ide o malu
aplikaciu s min. narokmi databaze na miesto - register pozicanych knih.

Dakujem Fabik.

SQL a desetinna carka

[*] Ladislav Stary <stary(zv)ekodat(tec)cz> - 20.6.2005 09:41:08

K tomu takovou poznamku.

Uvedeny sql dotaz nahrazuju za:

select * from karta where C1= :Cislo

a pak
Query1.ParamByName('Cislo').AsFloat = 0,333;

Upozornuju, ze to AsFloat je nezbytne, protoze, kdyz jsem tam dal AsString, tak to prave
havaruje na desetinne carce.

Ladislav Stary



Ing. Pavel Zilinec napsal(a):

>My taky jeste (z duvodu spousty udelanych veci) pouzivame BDE a carku
>nahrazujeme nepohodlne za tecku :-(
>Problem pro SQL je ten, ze on carku jako des. oddelovac nemuze
>prijmout, pze je to pro nej oddelovac mezi slovy, takze Ti asi nic
>jineho nezbyde ... navic je to nejjistejsi ...
>
>--
>ing. Pavel Zilinec
>MailTo:pavel.zilinec(zv)seznam(tec)cz
>
>

SQL a desetinna carka

[*] Peter Ondras <konfery(zv)pse.sk> - 20.6.2005 09:35:06

Este skuste vyskusat toto:
Query.Sql.Add('select * from karta where
C1='+QuotedStr(FloatToStr(0,333)));

> -----Original Message-----
> Problem pro SQL je ten, ze on carku jako des. oddelovac nemuze
> prijmout, pze je to pro nej oddelovac mezi slovy, takze Ti asi nic
> jineho nezbyde ... navic je to nejjistejsi ...> DF> zafokusovaneho dbeditu ve formulari. Ale beda, pokud je to
desetinne
> cislo s
> DF> oddelovecem jak jinak v lokalizaci nez carkou, tak zapis napriklad
>
> DF> select * from karta where C1=0,333


SQL a desetinna carka

[*] Ing. Pavel Zilinec <pavel.zilinec(zv)seznam(tec)cz> - 20.6.2005 09:15:02

My taky jeste (z duvodu spousty udelanych veci) pouzivame BDE a carku
nahrazujeme nepohodlne za tecku :-(
Problem pro SQL je ten, ze on carku jako des. oddelovac nemuze
prijmout, pze je to pro nej oddelovac mezi slovy, takze Ti asi nic
jineho nezbyde ... navic je to nejjistejsi ...

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

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

DF> Ahoj pratele,
DF> uz jsem z tech lokalizaci magor. Mam ceska xpecka, delfi 5 ent, BDE s
DF> cDecimalseparatorem carka (aji ho pred pouzitim v programu nastavuji),
DF> databazicku v Paradoxu. Tak jsem si myslel udelam rychly filtr podle
DF> zafokusovaneho dbeditu ve formulari. Ale beda, pokud je to desetinne cislo s
DF> oddelovecem jak jinak v lokalizaci nez carkou, tak zapis napriklad

DF> select * from karta where C1=0,333

DF> je pro pocitac nestravitelny a tvrde pozaduje desetinnou tecku. Pritom
DF> kontrolni Check(DbiGetNumberFormat(NF)) mi vraci cDecimalseparator carku,
DF> dbeditu se taky zobrazuje cislo s carkou. Da se provadeni podminky jeste
DF> zmenit nejakym jinym nastavenim, o kterem nevim, nebo musim pouzit nejaky
DF> nepohodlny postup na nahradu carky teckou? GRRRR.
DF> Vim, ze BDE uz vetsinou nepouzivate, ale furt v dane verzi Delfi mi pripada
DF> jako nejjednodussi varianta a celou aplikaci se mi stejne nechce predelavat.
DF> Diky Dalibor.

Jak na UDF pro Firebird v Linuxu?

[*] Karel Rys <delphi(zv)zas-me(tec)cz> - 20.6.2005 09:13:02

pilifs dne 20 Jun 2005 v 7:30:

> function frand(var size: integer): integer; begin
> Random;
> Result := Randomize(size);
> end;

Nema to byt spise:

result:=Random(size)

A Randomize volat jen jednou, pri nejake inicializaci knihovny?

Pravda, neresi to problem s volanim UDF ;-)

Karel Rys

Urceni zda je bod na ohranicene plose

[*] OndraG <gebakonf(zv)centrum(tec)cz> - 20.6.2005 08:59:00


----- Original Message -----
From: "Jaroslav Pivonka" <jpivonka(zv)centrum(tec)cz>
To: <delphi-l(zv)clexpert(tec)cz>> SUM DING WONG:
>
> > if (A^.Y <= Point.Y) then begin
> > if (Point.Y >= B^.Y) then
> > Continue;
> > end else if (B^.Y > Point.Y) then
> > Continue;
>
> At na to koukam jak koukam, neni to nic jineho nez
>
> if (A^.Y <= Point.Y) then Continue
>
> Ty dalsi podminky se prece doplnuji do true takze VZDY plati prave jedna z
> nich.*********
to neni pravda, prehledli jsi begin end, to else se vztahuje k 1. podmince
......
Dalo by se to prepsat - mozna malicko prehledneji -jako
if ((A^.Y <= Point.Y) and (Point.Y >= B^.Y) or (A^.Y > Point.Y) and
(Point.Y > B^.Y)) then continue;
********> Hezke leto (zacina za 11 minut).

*******************
taky hezke leto, ale zacina az zitra :-)

Ondra
*******************

Urceni zda je bod na ohranicene plose

[*] Jaroslav Pivonka <jpivonka(zv)centrum(tec)cz> - 20.6.2005 08:36:59

SUM DING WONG:

> if (A^.Y <= Point.Y) then begin
> if (Point.Y >= B^.Y) then
> Continue;
> end else if (B^.Y > Point.Y) then
> Continue;

At na to koukam jak koukam, neni to nic jineho nez

if (A^.Y <= Point.Y) then Continue

Ty dalsi podminky se prece doplnuji do true takze VZDY plati prave jedna z
nich.

Dalsi drobnou optimalizaci (nekontroloval jsem, zda to cele funguje:

Vynechat Count a pouzivat primo result, misto Inc(Count) pak result:=not
result
A odpadne i ten zaverecny test s count mod 2
Jen zpameti nevidim, zda na zacatku je result true nebo false, ale to uz
trial and error.

Hezke leto (zacina za 11 minut).
Jarda

----- Original Message -----
From: "Alexandr Stefek" <alex(zv)scova.vabo(tec)cz>
To: <delphi-l(zv)clexpert(tec)cz>
Sent: Wednesday, June 15, 2005 11:37 AM
Subject: Re: Urceni zda je bod na ohranicene plose


>>> Pocita se kolik pruseciku maji hranice s poloprimkou vedouci testovanym
>>> bodem. Pokud je pocet lichy, lezi bod uvnitr.
...
> Nasleduji kod jsem vykopiroval z vlastni leta uspesne pouzivane knihovny.
> Je to optimalizace vyse uvedeneho
>
> Alexandr Stefek
>
> function PointInRegion(var Point: T2DPoint; Region: TArrayOfT2DPoint):
> Boolean;
> var
> I : Integer;
> Count : Integer;
> A, B : ^T2DPoint;
> Len : Integer;
> begin
> Count := 0;
> Len := Length(Region) - 1;
> B := (zv)Region[0];
> for I := 1 to Len do begin
> A := B;
> B := (zv)Region[I];
>
> if (((B^.Y - A^.Y) * (Point.X - A^.X) - (B^.X - A^.X) * (Point.Y -
> A^.Y)) = 0)
> and ((Point.X - A.X) * (B.X - Point.X) >= 0)
> and ((Point.Y - A.Y) * (B.Y - Point.Y) >= 0) then begin
> Result := True;
> Exit;
> end;
>
> if (A^.Y <= Point.Y) then begin
> if (Point.Y >= B^.Y) then
> Continue;
> end else if (B^.Y > Point.Y) then
> Continue;
>
> if Point.X >= A^.X + (Point.Y - A^.Y) * ((B^.X - A^.X) / (B^.Y - A^.Y))
> then
> Inc(Count);
> end;
> if (Count mod 2) <> 0 then
> Result := True
> else
> Result := False;
> end;
>
>
>
>

SQL a desetinna carka

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

Ahoj pratele,
uz jsem z tech lokalizaci magor. Mam ceska xpecka, delfi 5 ent, BDE s
cDecimalseparatorem carka (aji ho pred pouzitim v programu nastavuji),
databazicku v Paradoxu. Tak jsem si myslel udelam rychly filtr podle
zafokusovaneho dbeditu ve formulari. Ale beda, pokud je to desetinne cislo s
oddelovecem jak jinak v lokalizaci nez carkou, tak zapis napriklad

select * from karta where C1=0,333

je pro pocitac nestravitelny a tvrde pozaduje desetinnou tecku. Pritom
kontrolni Check(DbiGetNumberFormat(NF)) mi vraci cDecimalseparator carku,
dbeditu se taky zobrazuje cislo s carkou. Da se provadeni podminky jeste
zmenit nejakym jinym nastavenim, o kterem nevim, nebo musim pouzit nejaky
nepohodlny postup na nahradu carky teckou? GRRRR.
Vim, ze BDE uz vetsinou nepouzivate, ale furt v dane verzi Delfi mi pripada
jako nejjednodussi varianta a celou aplikaci se mi stejne nechce predelavat.
Diky Dalibor.

polozky bez pohybu

[*] Ing. Slavomir Timko <timko(zv)novisoft.sk> - 20.6.2005 08:02:55



> No prave, ten left join tam proto doplni null a potom to ve where odchyti
> jen ty co tam nejsou.
> o tom je prave left join, ze nevadi ze v te tabulce odpovidajici zaznam
> neni.

a nemal by tam byt left outer join?

> >
> > v dokladech (faktura, prijemka, apod.) radky se zbozim bez pohybu vubec
> > nejsou,
> > s pozdravem Votava
> > Martin Pisarik napsal(a):
> > > schematicky:
> > >
> > > select ------
> > > from zbozi
> > > left join faktura on ----
> > > left join prijemka on ----
> > > ....
> > > where faktura.ID is NULL and prijemka.ID is NULL ....
> > >
> > > .
> > >
> >
> >
>
>
>
>
>
>

Jak na UDF pro Firebird v Linuxu?

[*] pilifs <pilifs(zv)seznam(tec)cz> - 20.6.2005 07:30:53

Zdravim,
nejak se mi nedari se subjektem, muzete nekdo poradit?
Stav je takovy:
1. udelam v Delphi ve Windows dll knihovnu, funkce pripojim do FB, vse
jede OK
2. Ten sam zdrojak zkompiluju v Kylixu3 (trial), funkce pripojim do FB,
po jejich zavolani mi, ale FB totalne zatuhne.
3. pouziji FreePascal, jak na Windows tak Linuxu, pokud nepredavam
parametry tak funkce bezi korektne. Pokud ma funkce parametry tak se mi
nedari je predat. Myslel jsem, ze to ovlivnim parametrem STDCAL nebo
CDECL, ale nepomohlo to.
-------------------------------------------------------
DLL:
-----------
function frand(var size: integer): integer;
begin
Random;
Result := Randomize(size);
end;
----------------------------------------------------
/* tato funkce mi u FreePascalu vrati vzdy nejake silene cislo :-( */
function ftest(var value: integer): integer;
begin
Result := value;
end;
---------------------------------------------------

Firebird 1.5.2, Kylix 3 (trial), FreePascal 1.9

Jak se pripojit na MSSQL?

[*] Zbysek Hlinka <konference(zv)hlinka(tec)cz> - 18.6.2005 10:30:56

> -----Original Message-----
> From: delphi-l-owner(zv)clexpert(tec)cz
> [mailto:delphi-l-owner(zv)clexpert(tec)cz] On Behalf Of koukal(zv)petrkoukal(tec)cz
> Sent: Saturday, June 18, 2005 10:01 AM
>
> Problem nastal v kombinaci MSSQL 7.0 v nem nainstalovan
> Great Plains Dynamics, bezi to na NT4 serveru, kolaps
> komunikace nastal pri pouziti ODBC na klient stanicich od
> win 95 az po win Xp prof.
> Rada slozitejsich SQL prikazu (hlavne specifickych pro
> MSSQL servery - detajly uz si nepamatuji) neprosla prez ODBC.
> Resenim byl MSSQL Client plus komponenty pro MSSQL prez BDE.
> Program byl napsan v D5- D6.

Zcela principialne - resenim proti MS SQL 7 neni ani ODBC, ani BDE, ale ADO.
Protoze i BDE se proti MS SQL 7 chova v jistych situacich nekorektne.

S pozdravem

Zbysek Hlinka
E-mail: hlinka zavin. hlinka(tec)cz

Jak se pripojit na MSSQL?

[*] koukal(zv)petrkoukal(tec)cz - 18.6.2005 10:00:54


-----Puvodni zprava-----
From: "Daniel Rott" roxton(zv)seznam(tec)cz
Date: Fri, 17 Jun 2005 09:59:12 +0200
To: delphi-l(zv)clexpert(tec)cz
Subject: Re: Jak se pripojit na MSSQL?

> From: <koukal(zv)petrkoukal(tec)cz>
> Jen poznamka - vychazi z me zkusenosti : Pozor na ODBC
> - ma omezenou mnozinu SQL prikazu, ne vse co MSSQL
> umi ODBC propusti.

Muzes byt konkretnejsi ?

Daniel

Ano.

Problem nastal v kombinaci MSSQL 7.0 v nem nainstalovan Great Plains Dynamics, bezi to na NT4 serveru, kolaps komunikace nastal pri pouziti ODBC na klient stanicich od win 95 az po win Xp prof.
Rada slozitejsich SQL prikazu (hlavne specifickych pro MSSQL servery - detajly uz si nepamatuji) neprosla prez ODBC. Resenim byl MSSQL Client plus komponenty pro MSSQL prez BDE. Program byl napsan v D5- D6.

Petr Koukal.

prevod kodu z VB do Delphi

[*] Jiri Koula <dino(zv)atrey.karlin.mff.cuni(tec)cz> - 17.6.2005 23:16:48

>
> A ty placene maji nejkou trial nebo neco ?
>

http://www.soft32.com/download_81831.html

Ovsem ma zkusenost s VB je nulova, takze netusim, zda to k necemu je...

Jiri Koula

polozky bez pohybu

[*] votavaSW <mail(zv)votavasw(tec)com> - 17.6.2005 18:10:26

toto jsem nechtel z duvodu rychlosti pouzit, ale pak jsem si rekl, ze
kdyz je to dobre pro abru...
po spravnem oindexovani je rychlost dotazu s asi 30k zaznamy pod 0.5s, diky

Martin Schayna napsal(a):
> votavaSW wrote:
>
>>dobry den,
>>nemohu nikde najit, jak zobrazit polozky bez pohybu, napadlo me pouze
>>toto reseni:
>>projedu tabulku zbozi a dotazuji se dalsich tabulek (fakt.,
>>prijemka...), zda idzbozi existuje, neexistuje-li, zapisu a nakonec
>>zobrazim seznam,
>>nenapada vas nejaky sql dotaz ci ulozena procedura?
>>s pozdravem Votava WXPPro, DPro, FB1.5SS
>
>
> Napr. realny priklad pro ABRA G3 vypise vsechny polozky nepouzite na
> radcich skladovych dokladu a objednavek prijatych i vydanych (union
> nelze v subselectu pouzit):
>
> select
> *
> from
> StoreCards sc
> where
> sc.id not in (select StoreCard_id from StoreDocuments2) and
> sc.id not in (select StoreCard_id from ReceivedOrders2) and
> sc.id not in (select StoreCard_id from IssuedOrders2) and
> /* bez makrokaret */
> sc.Category <> 3
>
> Martin Schayna
> www.abra(tec)cz
>
>
>
> .
>

polozky bez pohybu

[*] Rostislav Lekes <rlekes(zv)atlas(tec)cz> - 17.6.2005 18:06:25

Docela by me zajimalo, co je rychlejsi ... ja bych asi sahnul po tech
joinech, ale nemate to nekdo vyzkousene?
Rosta

> select ------
> from zbozi
> left join faktura on ----
> left join prijemka on ----
> ....
> where faktura.ID is NULL and prijemka.ID is NULL ....> select
> *
> from
> StoreCards sc
> where
> sc.id not in (select StoreCard_id from StoreDocuments2) and
> sc.id not in (select StoreCard_id from ReceivedOrders2) and
> sc.id not in (select StoreCard_id from IssuedOrders2) and
> /* bez makrokaret */
> sc.Category <> 3


FR 3, tisk stitku s DBGrid1.SelectedRow

[*] Jaroslav Uher <jarek(zv)iuher(tec)cz> - 17.6.2005 17:46:24

On 14 Jun 2005 at 19:55, Martin Burle wrote:

> > mam tisk stitku z celeho Datasetu,. funguje bez problemu a ted
> > potrebuji jeste vyresit tisk stiktu jen z vybranych recordu,
> > klasicky (DBGrid1.SelectedRows.Count > 0).
>
> FR pri vytvareni sestavy prochazi zdrojovy dataset. V AfterScroll toho
> DS muzes nastavovat nejakou interni promennou reportu, nebo primo
> pristupovat na prvky sestavy. Tak lze ovlivnovat vzhled, viditelnost,
> vysku jednotlivych radku sestavy. Mozna to zabere i na stitky, pokud
> to zkusis, dej vedet zda to neni nesmysl.

jedine, co pomohlo bylo osetrit vse v eventech First a Next
toto TfrxDBDataset(u).
Next mne napadnul ihned, jenze ty vysledky byly podivne presto, ze
jsme meli pred tim deklaraci
DBGrid1.DataSource.DataSet.First;

kolega ten samy kod pridal i do TfrxDBDataset.First a uspech se
dostavil.

procedure TFormPMtiskG.DBDatasetStitFirst(Sender: TObject);
begin
if DBGrid1.SelectedRows.CurrentRowSelected = false then
if not(DBDatasetStit.Eof) then DBDatasetStit.Next;
end;

Jarek U.


polozky bez pohybu

[*] Martin Pisarik <martin.pisarik(zv)seznam(tec)cz> - 17.6.2005 17:38:23

No prave, ten left join tam proto doplni null a potom to ve where odchyti
jen ty co tam nejsou.
o tom je prave left join, ze nevadi ze v te tabulce odpovidajici zaznam
neni.

> -----Original Message-----
> From: delphi-l-owner(zv)clexpert(tec)cz
> [mailto:delphi-l-owner(zv)clexpert(tec)cz]On Behalf Of votavaSW
> Sent: Friday, June 17, 2005 5:16 PM
> To: delphi-l(zv)clexpert(tec)cz
> Subject: Re: polozky bez pohybu
>
>
> v dokladech (faktura, prijemka, apod.) radky se zbozim bez pohybu vubec
> nejsou,
> s pozdravem Votava
> Martin Pisarik napsal(a):
> > schematicky:
> >
> > select ------
> > from zbozi
> > left join faktura on ----
> > left join prijemka on ----
> > ....
> > where faktura.ID is NULL and prijemka.ID is NULL ....
> >
> > .
> >
>
>

polozky bez pohybu

[*] Martin Schayna <mschayna(zv)aktis(tec)cz> - 17.6.2005 17:16:21

votavaSW wrote:
> dobry den,
> nemohu nikde najit, jak zobrazit polozky bez pohybu, napadlo me pouze
> toto reseni:
> projedu tabulku zbozi a dotazuji se dalsich tabulek (fakt.,
> prijemka...), zda idzbozi existuje, neexistuje-li, zapisu a nakonec
> zobrazim seznam,
> nenapada vas nejaky sql dotaz ci ulozena procedura?
> s pozdravem Votava WXPPro, DPro, FB1.5SS

Napr. realny priklad pro ABRA G3 vypise vsechny polozky nepouzite na
radcich skladovych dokladu a objednavek prijatych i vydanych (union
nelze v subselectu pouzit):

select
*
from
StoreCards sc
where
sc.id not in (select StoreCard_id from StoreDocuments2) and
sc.id not in (select StoreCard_id from ReceivedOrders2) and
sc.id not in (select StoreCard_id from IssuedOrders2) and
/* bez makrokaret */
sc.Category <> 3

Martin Schayna
www.abra(tec)cz

polozky bez pohybu

[*] votavaSW <mail(zv)votavasw(tec)com> - 17.6.2005 17:16:21

v dokladech (faktura, prijemka, apod.) radky se zbozim bez pohybu vubec
nejsou,
s pozdravem Votava
Martin Pisarik napsal(a):
> schematicky:
>
> select ------
> from zbozi
> left join faktura on ----
> left join prijemka on ----
> ....
> where faktura.ID is NULL and prijemka.ID is NULL ....
>
>
>
>
>>-----Original Message-----
>>From: delphi-l-owner(zv)clexpert(tec)cz
>>[mailto:delphi-l-owner(zv)clexpert(tec)cz]On Behalf Of votavaSW
>>Sent: Friday, June 17, 2005 4:34 PM
>>To: delphi-l(zv)clexpert(tec)cz
>>Subject: polozky bez pohybu
>>
>>
>>dobry den,
>>nemohu nikde najit, jak zobrazit polozky bez pohybu, napadlo me pouze
>>toto reseni:
>>projedu tabulku zbozi a dotazuji se dalsich tabulek (fakt.,
>>prijemka...), zda idzbozi existuje, neexistuje-li, zapisu a nakonec
>>zobrazim seznam,
>>nenapada vas nejaky sql dotaz ci ulozena procedura?
>>s pozdravem Votava WXPPro, DPro, FB1.5SS
>>
>>
>
>
>
>
>
> .
>

polozky bez pohybu

[*] Martin Pisarik <martin.pisarik(zv)seznam(tec)cz> - 17.6.2005 16:52:19

schematicky:

select ------
from zbozi
left join faktura on ----
left join prijemka on ----
....
where faktura.ID is NULL and prijemka.ID is NULL ....
> -----Original Message-----
> From: delphi-l-owner(zv)clexpert(tec)cz
> [mailto:delphi-l-owner(zv)clexpert(tec)cz]On Behalf Of votavaSW
> Sent: Friday, June 17, 2005 4:34 PM
> To: delphi-l(zv)clexpert(tec)cz
> Subject: polozky bez pohybu
>
>
> dobry den,
> nemohu nikde najit, jak zobrazit polozky bez pohybu, napadlo me pouze
> toto reseni:
> projedu tabulku zbozi a dotazuji se dalsich tabulek (fakt.,
> prijemka...), zda idzbozi existuje, neexistuje-li, zapisu a nakonec
> zobrazim seznam,
> nenapada vas nejaky sql dotaz ci ulozena procedura?
> s pozdravem Votava WXPPro, DPro, FB1.5SS
>
>

prevod kodu z VB do Delphi

[*] Peter Ondras <konfery(zv)pse.sk> - 17.6.2005 16:38:17

Myslel som tym napr. nejake syntakticke obmedzenia kde v Delphi musis
mat premenne najprv deklarovane na zaciatku a pod.
Dalej velky problem bude urcite v pouzitych komponentach. Je len mala
pravdepodobnost, ze by sa trafili vlastnosti a udalosti komponent, resp.
ci by vobec v Delphi bola nejaka komponenta, ktora sa do VB uzivatelsky
dopracovala (resp. aj naopak).

Ten prevod je realne IMHO mozny len pre velmi jednoduche programceky,
ktore pouziju len zakladnu paletu komponent a kod budu mat velmi
jednoduchy a podobny syntaktickym zalezitostiam Delphi (vo VB je myslim
mozne vypisat Integer medzi textom v Delphi je potrebne pouzit
IntToStr() - toto vsetko by si musel ten prekladac nejako ustrazit.
Akonahle by bol pouzity vlastny typ tak tam by to cele hned skoncilo).

Rychlejsie ako skusat tie kvazi prevodniky je to prepisat rucne v
Delphi. Ak nevies Delphi, tak potom nevidim vyznam prechodu na platformu
ktoru nepoznas. Ak ho poznas tak prepis z VB je vo vacsine pripadov dost
jednoduchy prave vdaka celkovej jednoduchosti VB (mozno preto je v nazve
Basic).

> -----Original Message-----
>
> > Sice o takom niecom neviem, ale poradim skor v tom zmysle, ze takyto
> > konvertor je nerealny. VB je vyrazne jednoduchsi aj s jednoduchsimi
> > pravidlami a IMHO prevod preto nie je mozny. Ja vidim ako jedinu
moznost
> > to prepisat rucne.
>
> Tohle mi neni jasne, pokud je VB jednodussi nez Delphi, coz si
> vysvetluju tak, ze co jde ve VB, jde v Delphi, kde je problem, proc by
> takovy konvertor nebyl mozny?
>
> >> prosim nevite nekdo o konvertoru z VB do delphi?
>
> http://www.google.com, dotaz typu "visual basic to delphi" convert,
> dalsi klicova slova source, code... Placenych veci to par najde, s
free
> programy to bude horsi...
>
> Jiri Koula


polozky bez pohybu

[*] votavaSW <mail(zv)votavasw(tec)com> - 17.6.2005 16:34:16

dobry den,
nemohu nikde najit, jak zobrazit polozky bez pohybu, napadlo me pouze
toto reseni:
projedu tabulku zbozi a dotazuji se dalsich tabulek (fakt.,
prijemka...), zda idzbozi existuje, neexistuje-li, zapisu a nakonec
zobrazim seznam,
nenapada vas nejaky sql dotaz ci ulozena procedura?
s pozdravem Votava WXPPro, DPro, FB1.5SS

Meranie odozvy z HW

[*] Jan Novak <delfin4(zv)volny(tec)cz> - 17.6.2005 16:30:16

> po dobe, za kterou by prisli 4 byty,

sorry, tam melo byt 8

Synapse a HTTPMethod

[*] Lukas Gebauer <gebylist(zv)mlp(tec)cz> - 17.6.2005 16:22:15

> To bych chapal, ale na strane ASP.NET se s daty vubec nepracuje, dokud
> nejsou nabrana v kolekci.
> Pak si pres tu kolekci sahnes na jejich datove streamy a ty si ulozis...
> Chyba ale nastava jeste drive, nez se dostane ke slovu muj skript... :(

Fakt neni problem v necem takovemhle?

http://helpdesk.inet-sciences.com/ISSSupportCustomer/ViewCase.asp?Casenum=1261&ReturnPage=FAQ



--
Lukas Gebauer.

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

Synapse a HTTPMethod

[*] Lukas Gebauer <gebylist(zv)mlp(tec)cz> - 17.6.2005 16:08:14

> > Jednou jeden mel uplne stejny problem, a nakonec se ukazalo, ze mel
> > blbe napsany prijimaci skript na strane serveru. (mel tam tusim
> > nejake ASP)
>
> No jo..
> To bych chapal, ale na strane ASP.NET se s daty vubec nepracuje, dokud
> nejsou nabrana v kolekci.
> Pak si pres tu kolekci sahnes na jejich datove streamy a ty si ulozis...
> Chyba ale nastava jeste drive, nez se dostane ke slovu muj skript... :(

A z neceho jineho ti POST funguje? ja fakt nemam se Synapsi problem
POSTem posilat desitky megabajtu dat...

(pochopitelne MUSIM nastavit WWW server, aby mi takhle velke objemy
bych ochoten prijmout, jinak mi pri dosazeni nejake nastavene
velikosti prasti se spojenim... coz se patrne deje i u tebe!)


--
Lukas Gebauer.

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

Synapse a HTTPMethod

[*] Milan Kajnar <mkajnar(zv)mikesoft(tec)cz> - 17.6.2005 16:00:11

> Jednou jeden mel uplne stejny problem, a nakonec se ukazalo, ze mel
> blbe napsany prijimaci skript na strane serveru. (mel tam tusim
> nejake ASP)

No jo..
To bych chapal, ale na strane ASP.NET se s daty vubec nepracuje, dokud
nejsou nabrana v kolekci.
Pak si pres tu kolekci sahnes na jejich datove streamy a ty si ulozis...
Chyba ale nastava jeste drive, nez se dostane ke slovu muj skript... :(

prevod kodu z VB do Delphi

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

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

Ahoj,

> Tohle mi neni jasne, pokud je VB jednodussi nez Delphi, coz si
> vysvetluju tak, ze co jde ve VB, jde v Delphi, kde je problem, proc by
> takovy konvertor nebyl mozny?
>
> >> prosim nevite nekdo o konvertoru z VB do delphi?
>
> http://www.google.com, dotaz typu "visual basic to delphi" convert,
> dalsi klicova slova source, code... Placenych veci to par
> najde, s free

A ty placene maji nejkou trial nebo neco ?

Moc never v nejakou superautomatickou konverzi. VB neni
tak slozity, ale i proto je lepe to ruico prepsat, protoze to v D napises
treba daleko efektivneji. Rozhodne (treba se mylim) nepocitej s tim, ze tomu
podstrcis kod ve VB a v D uz udelas budild a jede se dal, ani omylem.

S pozdravem a dikem
=====================================
> Pavel Malinsky; malinsky(zv)pmcom(tec)cz <
=====================================
> GSM: 602 652 203 | ICQ: 322015967 <
=====================================

Synapse a HTTPMethod

[*] Lukas Gebauer <gebylist(zv)mlp(tec)cz> - 17.6.2005 15:13:42

> Pri pouziti kodu Synapse presne pri odesilani dat pres
> HTTP.HTTPMethod('POST', ToUrl), kdy mam v HTTP.Document nabalena data,
> dojde k chybe prenosu a jako result code se mi vrati ze serveru chyba
> 500... Dela to nekdy hned, nekdy po chvili, nekdy to projde... Na
> lokalnim serveru se to vymlati hned, na externim po delsi dobe... Pri
> male delce dat to prochazi... Timeout mam nyni 300000 milisekund... Tim
> to nebude a nekoncilo by to v socketu ze serveru... Nepouzitelne to je
> zhruba od mega nahoru... Nevite nekdo prosim co s tim? Mozna Lukas, ale
> nejdrive se ptam ostatnich.

Jednou jeden mel uplne stejny problem, a nakonec se ukazalo, ze mel
blbe napsany prijimaci skript na strane serveru. (mel tam tusim
nejake ASP)


--
Lukas Gebauer.

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

Synapse a HTTPMethod

[*] Milan Kajnar <mkajnar(zv)mikesoft(tec)cz> - 17.6.2005 15:01:40

Ahoj...

Pri pouziti kodu Synapse presne pri odesilani dat
pres HTTP.HTTPMethod('POST', ToUrl), kdy mam v HTTP.Document nabalena data,
dojde k chybe prenosu
a jako result code se mi vrati ze serveru chyba 500... Dela to nekdy hned,
nekdy po chvili, nekdy to projde...
Na lokalnim serveru se to vymlati hned, na externim po delsi dobe... Pri
male delce dat to prochazi...
Timeout mam nyni 300000 milisekund... Tim to nebude a nekoncilo by to v
socketu ze serveru...
Nepouzitelne to je zhruba od mega nahoru...
Nevite nekdo prosim co s tim? Mozna Lukas, ale nejdrive se ptam ostatnich.

Diky,...

Milan

Meranie odozvy z HW

[*] Jan Novak <delfin4(zv)volny(tec)cz> - 17.6.2005 14:59:39

> Dostavam casi okolo 60 ms.

Roundtrip pri komunikaci pres RS-232 hodne zavisi od nastaveni FiFo
threshold. Bohuzel nevim, jak to nastavit programove, umim jen
klikanim ve vlastnostech portu Sprevce zarizeni v casti Upresnit menit
prah prijimaci a vysilaci pameti, t.j. pri kolika bytech zacne
generovat hw preruseni.

Kdyz napriklad nastavis prah prijimace na 8 byte a do pocitace prijde
jen jeden byte a pak nic, port zacne generovat zadost o preruseni az
po dobe, za kterou by prisli 4 byty, t.j. pri rychlosti 9600Bd za cca
8 ms. T.j. program se se zpozdenim 7 ms dozvi o tom, ze prisel 1 byte.
Ale vetsinou data chodi v chumacich a pro operacni system je
vyhodnejsi v rezii jednoho preruseni vyzvednout z portu vice bytu.

Po zmene nastaveni je potreba restartovat windows, nevim proc se to
neprojevi hned.

prevod kodu z VB do Delphi

[*] Milan Kajnar <mkajnar(zv)mikesoft(tec)cz> - 17.6.2005 14:15:34

Tvoje hlava... Jinak to moc nejde...

----- Original Message -----
From: "Zapletal Martin" <zapletal(zv)inoma(tec)cz>
To: <delphi-l(zv)clexpert(tec)cz>
Sent: Friday, June 17, 2005 12:51 PM
Subject: prevod kodu z VB do Delphi


> prosim nevite nekdo o konvertoru z VB do delphi?
>
> Zapletal Martin
>
>
>
>

Meranie odozvy z HW

[*] Dusan Nagy <dnagy(zv)inomacomp.sk> - 17.6.2005 13:53:32

JJ> Z popisu vyplyva, ze mate SW pocitani casu, coz by odpovidalo tomu, ze pri
JJ> zatizeni PC, je mnozstvi prideleneho casu a tim i vysledna hodnota mensi.
JJ> Doporucuji pri odeslani i prijmu provest odecet HW hodin na PC a provest
JJ> vyhodnoceni. HW hodiny (RT) nesjou ovlivneny zatizenim PC.

JJ> Ja.

Neopisal som to dobre proste cas sa meria v externom HW je to cas
mezdi poslednou prijatov spravov a novou spravov. Cize je to cas
medzi dvomi spravami prijatymi hardware na RS232.

Z toho mi vypiva ze sa castejsie obsluhuje com port na pc alebo tak
nieco a chel by som to dokazat spravit cielene.

DLL - jak predavat korektne pole typu record?

[*] Petr Vones <konference(zv)petrvones(tec)net> - 17.6.2005 13:39:31

From: "Ing. Jiri Sokol" <js-delphi(zv)email(tec)cz>
> No a co kdyby to pole vytvarela az ta DLL f-ce a predala aplikaci pointer,
> apolikace by si precetla hodnoty a pote by pozadala DLL o uvolneni toho
> PoleZaznamu?

Tohle je sice mozne, ale problematicke v tom, ze pak musis myslet na to ze
tuto pamet je treba uvolnit jinym zpusobem (DLL pouziva jiny alokator pameti).

Petr Vones


DLL - jak predavat korektne pole typu record?

[*] Petr Vones <konference(zv)petrvones(tec)net> - 17.6.2005 13:33:30

From: "Ing. Jiri Sokol" <js-delphi(zv)email(tec)cz>
> Jde mi o to, ze bych potreboval po volani urcite f-ce toho DLL predat zpatky
> pole az cca 5000 zaznamu recordu najakeho podobneho typu:

Pouzij standardni postup. Volajici aplikace preda do funkce pointer na predem
alokovany buffer a jeho velikost (budto v bytech nebo poctem zaznamu ktere se
predavaji). Tvoje funkce v DLL budto data vrati pokud je buffer dostatecne
velky, nebo vrati chybu + potrebnou velikost bufferu. Dale byva zvykem ze v
pripade predani nil jako pointeru na buffer se vrati pozadovava velikost
bufferu.

Dalsi moznost ktera se nabizi je misto DLL pouzit COM objekt.

Petr Vones


prevod kodu z VB do Delphi

[*] Jiri Koula <dino(zv)atrey.karlin.mff.cuni(tec)cz> - 17.6.2005 13:27:30

> Sice o takom niecom neviem, ale poradim skor v tom zmysle, ze takyto
> konvertor je nerealny. VB je vyrazne jednoduchsi aj s jednoduchsimi
> pravidlami a IMHO prevod preto nie je mozny. Ja vidim ako jedinu moznost
> to prepisat rucne.

Tohle mi neni jasne, pokud je VB jednodussi nez Delphi, coz si
vysvetluju tak, ze co jde ve VB, jde v Delphi, kde je problem, proc by
takovy konvertor nebyl mozny?

>> prosim nevite nekdo o konvertoru z VB do delphi?

http://www.google.com, dotaz typu "visual basic to delphi" convert,
dalsi klicova slova source, code... Placenych veci to par najde, s free
programy to bude horsi...

Jiri Koula

DLL - jak predavat korektne pole typu record?

[*] Vaclav Sazima <vaclav.sazima(zv)utilia(tec)cz> - 17.6.2005 13:13:29

Ahoj,
Ing. Jiri Sokol wrote:

> type
> TZaznam = packed record
> id : integer;
> code : array [0..255] of Char; //vazne nepouzivat shortstring ???
> //v nejakych predchozich diskuzich to bylo dokonce doporucovano...
Pozadavek byl, aby se to dalo volat z aplikaci napsanych v ruznych
jazycich. Myslim, ze shortstring je typucky pro Borland Pascal, ale jde
to jiste pouzit taky, ale rek bych, ze kdyz tu aplikaci bude psat nekdo
v C, bude trochu brblat.
> tm : array [0..255] of Char; //muzu, kdyz vim, ze vic potrebovat nebudu,
> //definovat to pole hned nebo to musi byt dynamicke pole?
> hodnota: double;
> end;
>
> TPointerNaPoleZaznamu = ^TPoleZaznamu;
> TPoleZaznamu = array of TZaznam;
>
> Je to spravne?
Ano
>
>>Aplikace by predala pointer na pole pri volani funkce.
>>Aplikace by musela ale dopredu vedet, kolik tech recordu bude (nebo by
>>dll musela pouzivat realokaci pameti}
>
> No a co kdyby to pole vytvarela az ta DLL f-ce a predala aplikaci pointer, apolikace by si precetla hodnoty a pote by pozadala DLL o uvolneni toho PoleZaznamu?
Ano
>
>> >Kdyz vytvorim nejake pole v tom DLL, jak ho predam aplikaci,
>>
>>jako pointer + pocet polozek
> >
> No a neslo by se tomu predavani poctu polozek vyhnout pouzitim klasickeho
> for i:=Low(PoleZaznamu) to High(PoleZaznamu) do ???
> To by mohlo fungovat, ne?

Obecne ne.
>
> V tom DLL, kde se bude alokovat pamet pro to vystupni PoleZaznamu:
> - nevim predem, kolik budu potrebovat mista => co je lepsi pripad:
> * alokovat pole hned na 5000 zaznamu
> * realokovat treba po 100 zaznamu => vstoupim do fce, alokuju pamet na 100 zaznamu; jdu do smycky plneni PoleZaznamu - kdyz se ma plnit 101 zaznam, provedu SetLength(PoleZaznamu, Length(PoleZaznamu)+100) - je to lepsi nez alokovat velkou pamet?
Alokace 5000 predem je rychlejsi, ale ukousne vzdy stejny kus pameti,
ale vzhledem k tomu, ze jsou to cca 3MB, tak bych se tim netrapil.
> Jak je spravna deklarace te DLL f-ce? Myslim jak je to s "var" popr "const". Pamatuji si, ze kdysi tady psal P.Vones o tom, ze je lepsi uvadet vzdy k cemu predavanou hodnotu pouziju, aby to nebylo na prekladaci...
>
> function TVypocet.NejakaFce: TPoleZaznamu;
> var
> PoleZaznamu: TPoleZaznamu;
> begin
> SetLength(PoleZaznamu, 100);
> while podminka do
> begin
> PoleZaznamu[i].id := ID;
> PoleZaznamu[i].Code := 'ABCDEFG';
> ...
> end;
>
> result := PoleZaznamu;
> end;
>
> procedure TVypocet.UvolniPoleZaznamu (var PoleZaznamu: TPoleZaznamu);
> begin
> FreeAndNil(PoleZaznamu);
> end;

Ja bych to udelal, velmi konzervativne, treba takhle, kdyz budes
alokovat 5000 zaznamu, kdyz ne, tak poterbujes pocet i pri uvolneni pameti :

//dll
procedure NejakaFce(var Pocet : dword; var Pole : PointerNaPoleZaznamu);
begin
Getmem (Pole,sizeof (TZaznam) * 5000);
...
Pocet := 2500;
..
end;

procedure TVypocet.UvolniPoleZaznamu (Pole : PointerNaPoleZaznamu);
begin
FreeMem (Pole,sizeof (TZaznam) * 5000));
end;
Vaclav Sazima

prevod kodu z VB do Delphi

[*] Peter Ondras <konfery(zv)pse.sk> - 17.6.2005 12:59:27

Sice o takom niecom neviem, ale poradim skor v tom zmysle, ze takyto
konvertor je nerealny. VB je vyrazne jednoduchsi aj s jednoduchsimi
pravidlami a IMHO prevod preto nie je mozny. Ja vidim ako jedinu moznost
to prepisat rucne.

> prosim nevite nekdo o konvertoru z VB do delphi?

prevod kodu z VB do Delphi

[*] Zapletal Martin <zapletal(zv)inoma(tec)cz> - 17.6.2005 12:51:27

prosim nevite nekdo o konvertoru z VB do delphi?

Zapletal Martin


Meranie odozvy z HW

[*] Dusan Nagy <dnagy(zv)inomacomp.sk> - 17.6.2005 12:15:24

Dobry den,

mam aplikaciu ktora komunikuje z HW cez RS232.
Skusali sme merat dobu odozvy.

Poslem hw prikaz tym sa nastavi odpocitavanie od 0 a pocita.
Poslem druhy prikaz pocitanie sa zastavi a dostamem hodnotu casu v ms.

Dostavam casi okolo 60 ms.


Kedze sme chceli vediet ako sa tato hodnota bude menit v zavislosti od
zatazenia systemu tak sme spustali rozne applikacie. cas sa skoro
vobec nemenil.

Zmenil sa az vtedy ked som pustil hru Age of empires II. Ale nie k
horsiemu ako by sa dalo predpokladat ale k lepsiemu cize zlepsila sa
doba odozvi na cas 40-42 ms.

Tak sa dostavam k otazke ako dokaze ina aplikacia zefektivnit pracu
operacenho systemu? Neviem si to vysvetlit.
Dokazem aj ja nejakym kodom spravit to iste?

V mojej aplikacii je 1 formular a 2 thready nastavene s relativnov
prioritou Priority := tpTimeCritical;

Poznate niekto odpoved?

CESTINA 8^(

[*] Venca Zaruba <zaruba(zv)elastoform(tec)cz> - 17.6.2005 12:01:23

Zdravim,

Bujuji s prenasenim databaze z mssql na mysql - PHP (uz jsem se jednou na to tady ptal).
Prenasim data pomoci app kde jsem konektnut pomoci ADO primo na MSSQL a ADO -MYODBC - MYSQL.

Na MSSQL vznikaji data (1250 cs) // omluvam za vlozene ceske/neceske znaky, abych uvedl priklad


aAcCdDeEeEiInNoOrRsStTuUuUyYzZ

vysledek na mysql (PHP)
aA????eE??iI??oO??sS??uU? (nektere znaky jsou uplne fuc)

Opacna cesta: vlozen opet retezec a-Z
vysledek v delphi:
aA????eE??iI??oO??sS????uUyYzZ

Polozka v databazi na mssql je definovana: sql_Czech_CP1250_CI_AS
na mysgl:
sql_Czech_CP1250_CS // dle mysql admina

Jakakoliv dalsi kombinace pri zobrazeni v PHP vede k cinctine.


Prijemny zbytek dne
Vasek Zaruba
8^)

MySQL a delphi

[*] Jiri Matejka <matejka(zv)stemmark(tec)cz> - 17.6.2005 11:15:17

Ja pouzivam komponety ZeosDBO a je tam mj. TZMySQLQuery (potomek TDataset)
ktera umoznuje provest dotaz (ve spojeni s TZMySQLDatabase a
TZMySQLTransaction), a da se na ni napojit na TDataSource a pres nej
TDBGrid, funguje to celkem v poho. Popr. je tam i komponenta TZMySQLTable,
ktera se da napojit primo na tabulku (obdoba TTable v BDE), ale rek bych, ze
v C-S aplikacich se moc nehodi, aspon ja ji nepouzivam.

Jirka Matejka


> Mam D2005Pro + komponenty od SCIBITu.
>
> Jsem novacek v problematice mySQL:
>
>
> Na server mySQL se z D2K5 pripojim OK.
>
> Pomoci Query umim zalozit DATABAZI i TABLE
>
> Pridam i polozky do TABLE v pohode,
>
>
> Ale
>
>
> Moje predstava byla, ze pak po pripojeni uvidim data treba v DBGRIDU, coz
se
> mi nedari, muze mi nekdo poradit, jak zobrazim vysledky
>
> Dotazu v GRIDU. Aby to chodilo podobne jako kdyz jsem delal s BDE ?
Nepomaha
> napojeni DataSource apod. Spis to ale delam ja blbe.

MySQL a delphi

[*] spravce(zv)dh-soft(tec)cz - 17.6.2005 11:07:16

Mam D2005Pro + komponenty od SCIBITu.

Jsem novacek v problematice mySQL:



Na server mySQL se z D2K5 pripojim OK.

Pomoci Query umim zalozit DATABAZI i TABLE

Pridam i polozky do TABLE v pohode,



Ale



Moje predstava byla, ze pak po pripojeni uvidim data treba v DBGRIDU, coz se
mi nedari, muze mi nekdo poradit, jak zobrazim vysledky

Dotazu v GRIDU. Aby to chodilo podobne jako kdyz jsem delal s BDE ? Nepomaha
napojeni DataSource apod. Spis to ale delam ja blbe.



Moc dik. Dan

Jak se pripojit na MSSQL?

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

> From: <koukal(zv)petrkoukal(tec)cz>
> Jen poznamka - vychazi z me zkusenosti : Pozor na ODBC
> - ma omezenou mnozinu SQL prikazu, ne vse co MSSQL
> umi ODBC propusti.

Muzes byt konkretnejsi ?

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

Jak se pripojit na MSSQL?

[*] koukal(zv)petrkoukal(tec)cz - 17.6.2005 09:19:08


Dobry den.

Jen poznamka - vychazi z me zkusenosti : Pozor na ODBC - ma omezenou mnozinu SQL prikazu, ne vse co MSSQL umi ODBC propusti.

Petr Koukal.

DLL - jak predavat korektne pole typu record?

[*] Ing. Jiri Sokol <js-delphi(zv)email(tec)cz> - 17.6.2005 09:39:10

> Od: Vaclav Sazima <vaclav.sazima(zv)utilia(tec)cz>
> Datum: 16.06.2005 18:25:09

Dekuji za odpoved, ale prece jenom kvuliporadku a vyhnuti se nejakemu nepochopeni jeste jednou...

Takze si to shrnme:
type
TZaznam = packed record
id : integer;
code : array [0..255] of Char; //vazne nepouzivat shortstring ???
//v nejakych predchozich diskuzich to bylo dokonce doporucovano...
tm : array [0..255] of Char; //muzu, kdyz vim, ze vic potrebovat nebudu,
//definovat to pole hned nebo to musi byt dynamicke pole?
hodnota: double;
end;

TPointerNaPoleZaznamu = ^TPoleZaznamu;
TPoleZaznamu = array of TZaznam;

Je to spravne?

> Aplikace by predala pointer na pole pri volani funkce.
> Aplikace by musela ale dopredu vedet, kolik tech recordu bude (nebo by
> dll musela pouzivat realokaci pameti}

No a co kdyby to pole vytvarela az ta DLL f-ce a predala aplikaci pointer, apolikace by si precetla hodnoty a pote by pozadala DLL o uvolneni toho PoleZaznamu?

> >Kdyz vytvorim nejake pole v tom DLL, jak ho predam aplikaci,
>
> jako pointer + pocet polozek

No a neslo by se tomu predavani poctu polozek vyhnout pouzitim klasickeho
for i:=Low(PoleZaznamu) to High(PoleZaznamu) do ???
To by mohlo fungovat, ne?


V tom DLL, kde se bude alokovat pamet pro to vystupni PoleZaznamu:
- nevim predem, kolik budu potrebovat mista => co je lepsi pripad:
* alokovat pole hned na 5000 zaznamu
* realokovat treba po 100 zaznamu => vstoupim do fce, alokuju pamet na 100 zaznamu; jdu do smycky plneni PoleZaznamu - kdyz se ma plnit 101 zaznam, provedu SetLength(PoleZaznamu, Length(PoleZaznamu)+100) - je to lepsi nez alokovat velkou pamet?

Jak je spravna deklarace te DLL f-ce? Myslim jak je to s "var" popr "const". Pamatuji si, ze kdysi tady psal P.Vones o tom, ze je lepsi uvadet vzdy k cemu predavanou hodnotu pouziju, aby to nebylo na prekladaci...

function TVypocet.NejakaFce: TPoleZaznamu;
var
PoleZaznamu: TPoleZaznamu;
begin
SetLength(PoleZaznamu, 100);
while podminka do
begin
PoleZaznamu[i].id := ID;
PoleZaznamu[i].Code := 'ABCDEFG';
...
end;

result := PoleZaznamu;
end;

procedure TVypocet.UvolniPoleZaznamu (var PoleZaznamu: TPoleZaznamu);
begin
FreeAndNil(PoleZaznamu);
end;

Je to OK?
Diky
Jirka
--------------------------------------------------
Ing. Jiri Sokol; jiri.sokol(zv)seznam(tec)cz; 972 231 187
D6Prof+SP3; WinXPProf+SP2; FB 1.5.2
programator amater

Instalacky Aplikace + Firebird + HWklic

[*] Stanislav ADAMCIK <konferencia(zv)stadas.sk> - 17.6.2005 09:03:07

skus program InnoSetup.

Stanislav ADAMCIK
www.stadas.sk

Instalacky Aplikace + Firebird + HWklic

[*] Maixner Adam <adam.maixner(zv)pvt(tec)cz> - 17.6.2005 08:25:04

Pekny den,

Mam aplikaci postavenou na DB Firebird a chranenou USB HW klicem, ktery vyzaduje instalaci driveru a potreboval bych vytvorit instalacky co nejvice uzivatelsky prijemne. Mate s tim nekdo zkusenost ?

Pripadne nebyl by je nekdo ochoten (za uplatu) vytvorit ?

Diky, AMX.

DLL - jak predavat korektne pole typu record?

[*] Vaclav Sazima <vaclav.sazima(zv)utilia(tec)cz> - 16.6.2005 18:24:06

Ahoj,
nikdo z tech, co to urcite vedej lip nez ja, na to asi zrovna nema cas,
tak aspon neco:

Ing. Jiri Sokol wrote:
> Ahoj vsem!
> Uz se to tady nakouslo posledne, ale nerozumnel jsem tomu uplne a tak si dovoluji zeptat se na podrobnejsi vysvetleni problemu.
> Potrebuji udelat DLL, ktere by melo byt univerzalni a s nejakym zakladnim popisem f-ci, ktere obsahuje, bych potreboval, aby je mohla pouzit jakakoli aplikace vytvorena v ruznych jazycich - na platformu Win32.
> Jde mi o to, ze bych potreboval po volani urcite f-ce toho DLL predat zpatky pole az cca 5000 zaznamu recordu najakeho podobneho typu:
> type
> TZaznam = record

Tady urcite packed record, kvuli zarovnavani v pameti

> id : integer;
> code : shortstring;
> tm : shortstring;

shortstring je nevhodny, neb ho ostatni jazyky nepodporuji, i v Delphi
je pouze kvuli kompatibilite {i kdyz nekdy se docela hodi), takze array
of char, pak musi byt vsem znama velikost toho array of char, nebo
PChar, ale tim se komplikuje alokace a dealokace.

> hodnota: double;//popr. extended - nevim, co je spravne pro predavani z DLL - obe?

extended je hw zavisly a asi nebude obecne podporovan, lepe double

> end;
> Ma si ta f-ce nejak rict o pointer na takove pole vytvorene v te aplikaci?

Aplikace by predala pointer na pole pri volani funkce.
Aplikace by musela ale dopredu vedet, kolik tech recordu bude (nebo by
dll musela pouzivat realokaci pameti}

>To by pak ale "hrozilo", ze by se k urcitemu pametovemu mistu mohli snazit dostat dva/vice procesy, ne?

Proc? Ty pametovy prostory by byly definovany tim pointerem.

>Kdyz vytvorim nejake pole v tom DLL, jak ho predam aplikaci,

jako pointer + pocet polozek

>kdo ho potom uvolni?

Obecne je dobre, kdyz ten, kdo alokuje, taky uvolnuje. Takze jedna
funkce v dll pole vygeneruje, druha ho, kdyz uz neni potreba, uvolni.
Ale je to spis kvuli poradku.

> Diky vsem za rady
> Jirka
Vaclav Sazima


Jak se pripojit na MSSQL?

[*] Borkovec Roman <roman.borkovec(zv)bluepixel(tec)cz> - 16.6.2005 16:15:57

Pro ADO jsem pouzival ALOHAOE, mam je na www.borkovec.com/comps/ado.zip
pro ODBC klasicky L.Fule ODBCe, ty mam na
www.borkovec.com/comps/odbce_310.zip
Roman

----- Original Message -----
From: "Petr Brant" <brant(zv)dcomm(tec)cz>
To: <delphi-l(zv)clexpert(tec)cz>
Sent: Thursday, June 16, 2005 3:47 PM
Subject: Jak se pripojit na MSSQL?> Ahoj vespolek, mam v ramci nasi aplikace cist z databaze MSSQL, v
> podstate jde o to, ze autor databaze pripravi VIEW a ja se mam na nej
> napojit a odchytit si vracena data. Pracuji s Firebirdem (komponenty
> IBExpress), ale nikdy jsem se nezkousel MSSQL. Jsou na to nejake (free)
> komponenty pripadne jina reseni? Mam Delphi 5 Pro/WinXP Pro
>
> RNDr. Petr Brant [brant(zv)dcomm(tec)cz]
> http://brant.wz(tec)cz
>
>
>

Jak se pripojit na MSSQL?

[*] Pavel Malinsky <malinsky(zv)pmcom(tec)cz> - 16.6.2005 16:11:57

> > -----Original Message-----
> > From: delphi-l-owner(zv)clexpert(tec)cz
> >
> > Ahoj vespolek, mam v ramci nasi aplikace cist z databaze MSSQL, v
> > podstate jde o to, ze autor databaze pripravi VIEW a ja se
> mam na nej
>
> Ahoj,
>
> pouzivam ku spokojenosti ODBCe. Jen dodas spolu s aplikaci
> malou dll. Diky za ne autorovi :)

Sorry. JEste link http://www.sct.sk/soft/odbc.php .

>
> S pozdravem a dikem
> =====================================
> > Pavel Malinsky; malinsky(zv)pmcom(tec)cz <
> =====================================
> > GSM: 602 652 203 | ICQ: 322015967 <
> =====================================
>
>

Sluzba

[*] Zapletal Martin <zapletal(zv)inoma(tec)cz> - 16.6.2005 16:09:57

Zacit psat rovnou jako Service v menu File-New. Bude to bez formulare.
Martin

> chystam se zpracovat jeden projekt. Program by mel obsluhovat zarizeni a
> chtel bych aby ten program bezel na pozadi, jako sluzba. Nevite nekdo,
> jak takovy program vytvorit?

Jak se pripojit na MSSQL?

[*] Pavel Malinsky <malinsky(zv)pmcom(tec)cz> - 16.6.2005 16:07:56

> -----Original Message-----
> From: delphi-l-owner(zv)clexpert(tec)cz
>
> Ahoj vespolek, mam v ramci nasi aplikace cist z databaze MSSQL, v
> podstate jde o to, ze autor databaze pripravi VIEW a ja se mam na nej

Ahoj,

pouzivam ku spokojenosti ODBCe. Jen dodas spolu s aplikaci
malou dll. Diky za ne autorovi :)

S pozdravem a dikem
=====================================
> Pavel Malinsky; malinsky(zv)pmcom(tec)cz <
=====================================
> GSM: 602 652 203 | ICQ: 322015967 <
=====================================

Sluzba

[*] Petr Berek <sojokl(zv)seznam(tec)cz> - 16.6.2005 15:51:55

Zdravim konferu,
chystam se zpracovat jeden projekt. Program by mel obsluhovat zarizeni a
chtel bych aby ten program bezel na pozadi, jako sluzba. Nevite nekdo,
jak takovy program vytvorit?
Diky


Jak se pripojit na MSSQL?

[*] Petr Brant <brant(zv)dcomm(tec)cz> - 16.6.2005 15:47:55

Ahoj vespolek, mam v ramci nasi aplikace cist z databaze MSSQL, v
podstate jde o to, ze autor databaze pripravi VIEW a ja se mam na nej
napojit a odchytit si vracena data. Pracuji s Firebirdem (komponenty
IBExpress), ale nikdy jsem se nezkousel MSSQL. Jsou na to nejake (free)
komponenty pripadne jina reseni? Mam Delphi 5 Pro/WinXP Pro

RNDr. Petr Brant [brant(zv)dcomm(tec)cz]
http://brant.wz(tec)cz

Pristup do databaze bez nutnosti instalace klientu

[*] Petr Vones <konference(zv)petrvones(tec)net> - 16.6.2005 14:55:51

From: "Sula Milos" <milos.sula(zv)musumperk(tec)cz>
> resim tedka problem. Potrebuji napsat DB aplikaci ( NE klient/server ale
> musi to byt neco jako dbf, mdb atd... ), ktera se jen zkopiruje na

A jak slozita ta databaze ma byt, nestacil by TClientDataSet a data v XML ?

Petr Vones

Nahodny zaznam ve FireBirdu

[*] Borkovec Roman <roman.borkovec(zv)bluepixel(tec)cz> - 16.6.2005 13:59:47

Ne, opravdu resim to co pises, jinak diky skip me nenapadl ... ach jo
Roman



----- Original Message -----
From: "Slavomir Skopalik" <skopalik(zv)elektlabs(tec)cz>
To: <delphi-l(zv)clexpert(tec)cz>
Sent: Thursday, June 16, 2005 1:13 PM
Subject: Re: Nahodny zaznam ve FireBirdu


> Jak ziskat nahodny zaznam je celkem jednoduche.
> Je treba nejprve si stanovit statisticke rozlozeni, pro jednoduchost
> uvazujme rovnomerne (jake jine na zaznamy ze), pak spocitat zaznamy
> a nasledne si vygenerovat cislo od 1 do poctu zaznamu (obvykle funkce
> random).
> A potom neco jako SELECT FIRST 1 SKIP cislo.
>
> Ale mam pocit, je resis uplne neco jineho. A to unikatni identifikator
> noveho zaznamu, je to tak ?
> Jestli ano, koukni se na generatory, nebo na UDF generujici GUID.
>
> Slavek
>
>> mam zpusob jak dohledat nahodny zaznam v MSSQL pomoci
>> newid() a order,
>> ale ve FireBirdu
>> se mi nejak nedari najit reseni. Mate nekdo nejaky napad?
>> Pridanim udf,
>> ktera vytvori guid a prida ho do
>> vraceneho seznamu to na Firebirdu bohuzel nechodi.
>> FB 1.5 (mozne i pro FB 1.0x)
>> Diky
>> Roman
>>
>>
>>
>>
>>
>
>
>
>

Nahodny zaznam ve FireBirdu

[*] Slavomir Skopalik <skopalik(zv)elektlabs(tec)cz> - 16.6.2005 13:13:43

Jak ziskat nahodny zaznam je celkem jednoduche.
Je treba nejprve si stanovit statisticke rozlozeni, pro jednoduchost
uvazujme rovnomerne (jake jine na zaznamy ze), pak spocitat zaznamy
a nasledne si vygenerovat cislo od 1 do poctu zaznamu (obvykle funkce
random).
A potom neco jako SELECT FIRST 1 SKIP cislo.

Ale mam pocit, je resis uplne neco jineho. A to unikatni identifikator
noveho zaznamu, je to tak ?
Jestli ano, koukni se na generatory, nebo na UDF generujici GUID.

Slavek

> mam zpusob jak dohledat nahodny zaznam v MSSQL pomoci
> newid() a order,
> ale ve FireBirdu
> se mi nejak nedari najit reseni. Mate nekdo nejaky napad?
> Pridanim udf,
> ktera vytvori guid a prida ho do
> vraceneho seznamu to na Firebirdu bohuzel nechodi.
> FB 1.5 (mozne i pro FB 1.0x)
> Diky
> Roman
>
>
>
>
>

rada pri koupi Delphi

[*] Martin Burle <mburle2(zv)volny(tec)cz> - 16.6.2005 13:29:45

> Tak Ty to mas jednoduche. Tobe staci jen koupit upgrade a ten zas tak
> mastnej neni. Pokud koupis Delphi8 tak tam je zdarma i Delphi7. Mne se ale
> jedna o koupi noveho...

Pokud vim, tak upgradovat se da i z jinych nastroju, nez Delphi. Napr. ja
jsem sveho casu upgradoval z Paradoxu. Obcas se da koupit v akci nejaka
starsi verze jineho vyvojoveho nastroje za par korun, z toho by se dalo
vyjit. Nekde v supliku mam nepouzite VS Studio 2002 , ktere stalo asi
1000,- :))

MB


rada pri koupi Delphi

[*] Zapletal Martin <zapletal(zv)inoma(tec)cz> - 16.6.2005 13:11:43

Tak Ty to mas jednoduche. Tobe staci jen koupit upgrade a ten zas tak
mastnej neni. Pokud koupis Delphi8 tak tam je zdarma i Delphi7. Mne se ale
jedna o koupi noveho...

> To by mne take zajimalo, mam jen D3.
> ----- Original Message -----
> Subject: rada pri koupi Delphi
>> Nevite nekdo jestli se jeste da nekde sehnat Delphi7. Borland sice nabizi
>> ale jako soucast Delphi8 za 31 600,-s DPH a to je pro mne moc. Nechci
>> prostredi pro .Net staci mi jen VCL Win32. Nebo mate nekdo prebytecnou
>> nejakou starsi verzi Delphi? Uplne by mi stacilo i D5. Nevyjde treba
>> levneji
>> nakoupit v zahranici napr. v SK? Existuje na takoveto produkty nejaky
>> leasing?

Tabulka stopwords pro slovenstinu

[*] Petr Fejfar <development(zv)callnet(tec)cz> - 16.6.2005 13:11:43

CP,


pri vytvareni full text indexu bych
potreboval tabulku stop words
pro slovenstinu.

Nema ji nekdo, kdo by ji byl ochoten poskytnout?
Popr. ji treba vytvorit podle ceskeho vzoru?


Diky, pf

rada pri koupi Delphi

[*] Ing. Pavel Spisar <pajastudio(zv)wo(tec)cz> - 16.6.2005 12:55:42

To by mne take zajimalo, mam jen D3.
----- Original Message -----
Subject: rada pri koupi Delphi
> Nevite nekdo jestli se jeste da nekde sehnat Delphi7. Borland sice nabizi
> ale jako soucast Delphi8 za 31 600,-s DPH a to je pro mne moc. Nechci
> prostredi pro .Net staci mi jen VCL Win32. Nebo mate nekdo prebytecnou
> nejakou starsi verzi Delphi? Uplne by mi stacilo i D5. Nevyjde treba levneji
> nakoupit v zahranici napr. v SK? Existuje na takoveto produkty nejaky
> leasing?

Nahodny zaznam ve FireBirdu

[*] Borkovec Roman <roman.borkovec(zv)bluepixel(tec)cz> - 16.6.2005 12:35:40

Ahoj,
mam zpusob jak dohledat nahodny zaznam v MSSQL pomoci newid() a order,
ale ve FireBirdu
se mi nejak nedari najit reseni. Mate nekdo nejaky napad? Pridanim udf,
ktera vytvori guid a prida ho do
vraceneho seznamu to na Firebirdu bohuzel nechodi.
FB 1.5 (mozne i pro FB 1.0x)
Diky
Roman

rada pri koupi Delphi

[*] Zapletal Martin <zapletal(zv)inoma(tec)cz> - 16.6.2005 12:23:39

Nevite nekdo jestli se jeste da nekde sehnat Delphi7. Borland sice nabizi
ale jako soucast Delphi8 za 31 600,-s DPH a to je pro mne moc. Nechci
prostredi pro .Net staci mi jen VCL Win32. Nebo mate nekdo prebytecnou
nejakou starsi verzi Delphi? Uplne by mi stacilo i D5. Nevyjde treba levneji
nakoupit v zahranici napr. v SK? Existuje na takoveto produkty nejaky
leasing?

m.zaplik(zv)volny(tec)cz


Jmena generovanych poli v TTable

[*] Jiri Foldyna <jiri.f(zv)avizo(tec)cz> - 16.6.2005 12:05:37

Ahoj,

nevite nekdo, zda a jak se da ovlivnit jmeno automaticky generovaneho pole
(TField) v TTable ? Standardne se prirazuje Name + nazev sloupce, coz je
ponekud neprehledne (tabulka tblUsers, nazev pole je pak napr. tblUsersid,
tblUsersfirst_name apod.).

D5Ent.

Diky

Jiri Foldyna

velikost prijateho bufferu

[*] mydelphi(zv)seznam(tec)cz - 16.6.2005 11:35:35

Dobry den,

mam komponentu TidTCPServer(Indy) a prijimam pomoci ni data. Nejaky
buffer. Kdyz ho prijmu pomoci TCPServer.Connection.ReadBuffer(Buf,
Size), tak potrebuji znat velikost (Size) toho bufferu (Buf).
Jelikoz odesilam Buffery o ruznych velikostech, jak pri prijmu
zjistim, jakou velikost dany buffer ma?
Dik.

--
S pozdravem,
Michal Adler
email: mydelphi(zv)seznam(tec)cz


Navrh app.

[*] Erik Salaj <winsoft(zv)netkosice.sk> - 16.6.2005 11:19:32

> > V tom je mozna ten problem, pokud vim tak tento system puvodne
> > thready nemel vubec
>
> stejne jako je puvodne nemely ani Windows, pokud se nepletu

16 bitove Windowsy asi nie, tam nebol ani preemtivny multitasking,
ale 32 bitove Windowsy uz multithreading mali

> >a byly nejak dodelany pozdeji, takze si na tuto
> > vlastnost mozna jeste nezvykli :-)
>
> to ze v Linuxu nebyla k dispozici podpora threadu neznamena, ze
> nebezelo vice procesu najednou a ze jeden proces nemohl rozjizdet
> najednou vice veci. Linux mel odjakziva podporu pro spousteni novych
> kopii procesu (fork() ), ktere byly/jsou pouzivany k podobnym ucelum
> jako thready ve Windows cili podporu pro nativni thready zase tak
> nutne k zivotu nepotreboval...

Unix bol a je robeny a pouzivany predovsetkym programatormi.
A jedna zo zaujimavych vlastnosti programatorov je, ze ked
objavia nejaku vec, tak sa ju potom snazia pouzivat vzdy a vsade,
aj tam kde to netreba. Uniz je tym znacne poznaceny, napr. pozerat
sa na vsetky data ako na subory je IMHO blbost, pozerat sa na kazdy
program ako na proces je IMHO tiez blbost, pozerat sa na kazdu utilitu
ako na programovaci jazyk je IMHO tiez blbost.

> >Typicky argument je, ze thready
> > jsou "prilis slozite". Toto plati snad jen pri neznalosti zakladnich
> > principu.
> >
>
> mas pravdu - za slozite muze thready povazovat jen nekdo kdo s nimi
> nikdy moc nepracoval. Naopak - nektere ulohy thready znacne
> zjednodusuji (takze napriklad 'odlozit' vypocet bokem do threadu je
> spravne a funkcni reseni jak se vyhnout problemum s problematickou
> reakci aplikace na obsluhu udalosti ci vyrobit rychle a jednoduse
> nejaky TCP/IP server je diky threadum jednoducha a v rade pripadu plne
> dostacujici zalezitost).

no spustit kus kodu ako thread zlozite nie je, ale ked treba
zabezpecit aby ten thread nieco zobrazil alebo komunikoval
s inym threadom, tak to uz zlozite obvykle je. A to nie je iba
problem threadov, to je obecne problem akehokolvek
paralelneho programovania. Samozrejme, su situacie, kde
pouzitie threadov je ziaduce a vyhodne (urcite su vyhodnejsie
ako triky a workaroundy so sluckou sprav a casovacmi
a podobne), na druhej strane, treba vzdy zvazit, ci thready
su adekvatnym riesenim a prinosom pre dany problem.

Erik

Chyba startu aplikace, vyjimka c0000025

[*] ZdeHar <zharinger(zv)seznam(tec)cz> - 16.6.2005 10:33:28

Ahoj vsem,

mam aplikaci vytvorenou pod D5 a pouzivajici MSSQL 2000. Na jednom konkretnim pocitaci vsak tato aplikace nenabehne a ihned po startu se ukonci aniz ohlasi chybu. Pouze v drwtsn32..log je nasledujici zaznam o chybe:
"CHYBA ->77fb1b2c e93c51feff jmp NtSetIoCompletion+0x248 (77f96c6d)"

Nesetkal jste se nekdo s podobnym problemem?

Navrh app.

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

Petr Vones wrote:
> From: "Ing. Radek Tomsik" <radek(zv)tomsige(tec)cz>
>> Taky obcas programuju neco pod linuxem, ale oproti win32 je to
>> diametralne odlisne ...
>
> V tom je mozna ten problem, pokud vim tak tento system puvodne
> thready nemel vubec

stejne jako je puvodne nemely ani Windows, pokud se nepletu

>a byly nejak dodelany pozdeji, takze si na tuto
> vlastnost mozna jeste nezvykli :-)

to ze v Linuxu nebyla k dispozici podpora threadu neznamena, ze
nebezelo vice procesu najednou a ze jeden proces nemohl rozjizdet
najednou vice veci. Linux mel odjakziva podporu pro spousteni novych
kopii procesu (fork() ), ktere byly/jsou pouzivany k podobnym ucelum
jako thready ve Windows cili podporu pro nativni thready zase tak
nutne k zivotu nepotreboval...

>Typicky argument je, ze thready
> jsou "prilis slozite". Toto plati snad jen pri neznalosti zakladnich
> principu.
>

mas pravdu - za slozite muze thready povazovat jen nekdo kdo s nimi
nikdy moc nepracoval. Naopak - nektere ulohy thready znacne
zjednodusuji (takze napriklad 'odlozit' vypocet bokem do threadu je
spravne a funkcni reseni jak se vyhnout problemum s problematickou
reakci aplikace na obsluhu udalosti ci vyrobit rychle a jednoduse
nejaky TCP/IP server je diky threadum jednoducha a v rade pripadu plne
dostacujici zalezitost).

Zdravi
D. Toman

mySQL a prace s databazemi

[*] Vaclav Halik <spravasd(zv)suz.cvut(tec)cz> - 16.6.2005 09:25:15

Ahoj,
podle mne si nedocet dokumentaci, raspektive delas chybu zde ..

Viz.:
In MySQL 3.22 or later, the table name can be specified as
/|db_name.tbl_name|/ to create the table in a specific database. This
works whether or not there is a current database. If you use quoted
identifiers, quote the database and table names separately. For example,
|`mydb`.`mytbl`| is legal, but |`mydb.mytbl`| is not.

>CREATE TABLE IF NOT EXISTS tbl_name
> [(create_definition,...)]
> [table_options] [select_statement]
>

Tedy spravne by si mnel napsat:

CREATE TABLE IF NOT EXISTS db_name.tbl_name
[(create_definition,...)]
[table_options] [select_statement]


Nezkousel jsem to, ale mnelo by to fungovat.

S pozdravem Vaclav Halik

DLL - jak predavat korektne pole typu record?

[*] Ing. Jiri Sokol <js-delphi(zv)email(tec)cz> - 16.6.2005 09:33:18

Ahoj vsem!
Uz se to tady nakouslo posledne, ale nerozumnel jsem tomu uplne a tak si dovoluji zeptat se na podrobnejsi vysvetleni problemu.
Potrebuji udelat DLL, ktere by melo byt univerzalni a s nejakym zakladnim popisem f-ci, ktere obsahuje, bych potreboval, aby je mohla pouzit jakakoli aplikace vytvorena v ruznych jazycich - na platformu Win32.
Jde mi o to, ze bych potreboval po volani urcite f-ce toho DLL predat zpatky pole az cca 5000 zaznamu recordu najakeho podobneho typu:
type
TZaznam = record
id : integer;
code : shortstring;
tm : shortstring;
hodnota: double;//popr. extended - nevim, co je spravne pro predavani z DLL - obe?
end;
Muzete mi s tim, prosim, nekdo pomoct?
Ma si ta f-ce nejak rict o pointer na takove pole vytvorene v te aplikaci? To by pak ale "hrozilo", ze by se k urcitemu pametovemu mistu mohli snazit dostat dva/vice procesy, ne? Kdyz vytvorim nejake pole v tom DLL, jak ho predam aplikaci, kdo ho potom uvolni?
Diky vsem za rady
Jirka
--------------------------------------------------
Ing. Jiri Sokol; jiri.sokol(zv)seznam(tec)cz; 972 231 187
D6Prof+SP3; WinXPProf+SP2; FB 1.5.2
programator amater

Navrh app.

[*] Petr Fejfar <development(zv)callnet(tec)cz> - 16.6.2005 09:29:17

delphin(zv)post(tec)cz wrote:

> Ano je to berlicka, spravne reseni je thread. Take jsem si myslel, ze
> Fiber asi smysl nema, ale kdyby me vadila asynchronni povaha threadu
> a mel bych provadet dlouhe vypocty v OnApplicationIdle,

O.K. Jenomze to provadeni invertovaneho vypoctu jako soucast smycky zprav
jsem uvadel jako alternativu k vytvareni threadu, kdyz se to
oponentovi nelibilo a mysli si, ze bez threadu a ze smycky by to bylo
lepsi...

> radeji zvolim Fiber, kde dosahnu to same, ale za podstatne min prace.

No jo, ale tam bys stejne musel vyrobit thread a ten zkonvertovat na fiber,
takze to by se tomu oponentovi mohlo libit jeste min ;-)

***

Ta asynchronnost neni sama o sobe pricinou onech "subtle bugs",
jak o nich psal ten Unixak. Samostatne procesy jsou taky asynchronni
a nicemu to nevadi. Ale je pravda, za na woknech je vytvareni oddelenych
procesu "cizokrajnym" prvkem.


pf

mySQL a prace s databazemi

[*] Jiri Matejka <matejka(zv)stemmark(tec)cz> - 16.6.2005 09:27:16

Pouzivam taky MySQL (momentalne 4.0.23) a "create table if not exists
tblname" mi funguje v pohode. Jinak zjistit existenci tabulky lze taky
pomoci "show tables" a nasledne projit vysledek, jestli tam hledana tabulka
je.

Jirka Matejka

----- Original Message -----
From: <spravce(zv)dh-soft(tec)cz>
To: <delphi-l(zv)clexpert(tec)cz>
Sent: Thursday, June 16, 2005 2:16 AM
Subject: mySQL a prace s databazemi


> Mam D2005Pro.
>
>
> Zadinam s pouzivanim mySQL databazi a marne si lamu hlavu nad tim, jak v
SQL
> dotazu muzu testovat existenci Table.
>
>
> Chci udelat test, zda je na serveru databaze "XXXXX" a pokud ne tak ji
> zavedu .. CREATE DATABASE IF NOT EXISTS XXXXXX - to mi funguje.
>
>
> Ale ..
>
>
> Jak otestuji zda je v te databazi Table ??
>
>
> Syntaxe:
>
> CREATE TABLE IF NOT EXISTS tbl_name
> [(create_definition,...)]
> [table_options] [select_statement]
>
>
> nefunguje a je v dokumentaci
>
>
>
>
> Muzete me nekdo nakopnout spravnym smerem, moc dik Dan
>
>
>

Navrh app.

[*] delphin(zv)post(tec)cz - 16.6.2005 08:41:12

>> Pro tyto ucely WIN32 umi "kooperativni thread" Fiber, ktery nema
>> uvedene negativni vlastnosti vyplyvajici z asynchronni podstaty
>> threadu.
>
> Tak to jsem nikdy nepouzil a ani si nedovedu predstavit,
> ze bych to nekdy k necemu chtel pouzit, protoze jestli
> jsem to spravne pochopil, tak bych musel mit jediny preemptivni
> thread (kdybych jich mel vic, tak by to neresilo problem
> se souperenim o sdilene prostredky) a v nem nejake mnozstvi
> kooperujicich fiberu, ktere si vzajemne predavaji rizeni pomoci
> SwitchToFiber.
>
> Asi by bylo mozne tela fiberu zinvertovat tak, aby se mimo exekuci
> vlastnich kroku nachazeli ve "fiber-safe" stavu a pokud by byly
> provazany treba do seznamu, tak predavat rizeni treba sousedovi
> napravo nebo vracet rizeni nejakemu fiberu-scheduleru, ale...
>
> Spis to na me dela dojem, ze je to nejaka berlicka pro toho,
> kdo by chtel prenaset aplikaci z kooperativniho prostredi
> 16-bitovych woken a na multi-threading si netroufa.

Ano je to berlicka, spravne reseni je thread. Take jsem si myslel, ze Fiber
asi smysl nema, ale kdyby me vadila asynchronni povaha threadu a mel bych
provadet dlouhe vypocty v OnApplicationIdle, radeji zvolim Fiber, kde
dosahnu to same, ale za podstatne min prace.

Navrh app.

[*] Lukas Gebauer <gebylist(zv)mlp(tec)cz> - 16.6.2005 08:33:12

> Asi by bylo mozne tela fiberu zinvertovat tak, aby se mimo exekuci
> vlastnich kroku nachazeli ve "fiber-safe" stavu a pokud by byly
> provazany treba do seznamu, tak predavat rizeni treba sousedovi
> napravo nebo vracet rizeni nejakemu fiberu-scheduleru, ale...
>
> Spis to na me dela dojem, ze je to nejaka berlicka pro toho,
> kdo by chtel prenaset aplikaci z kooperativniho prostredi
> 16-bitovych woken a na multi-threading si netroufa.

Podle mych nformaci je tam ta implementace fiberu jen kvuliva POSIX
systemum, aby se z nich daly snadno portovat programy pro Win32.

Znam jen jedny silence, kteri to v dnesni dobe hodlaji pouzivat, a to
je supercore od Indy. (taky to podle toho vypada... nejak porad jim
to ne a ne poradne fungovat! ;-))

--
Lukas Gebauer.

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

mySQL a prace s databazemi

[*] spravce(zv)dh-soft(tec)cz - 16.6.2005 02:16:38

Mam D2005Pro.



Zadinam s pouzivanim mySQL databazi a marne si lamu hlavu nad tim, jak v SQL
dotazu muzu testovat existenci Table.



Chci udelat test, zda je na serveru databaze "XXXXX" a pokud ne tak ji
zavedu .. CREATE DATABASE IF NOT EXISTS XXXXXX - to mi funguje.



Ale ..



Jak otestuji zda je v te databazi Table ??



Syntaxe:

CREATE TABLE IF NOT EXISTS tbl_name
[(create_definition,...)]
[table_options] [select_statement]



nefunguje a je v dokumentaci





Muzete me nekdo nakopnout spravnym smerem, moc dik Dan


Navrh app.

[*] Petr Fejfar <development(zv)callnet(tec)cz> - 15.6.2005 23:36:26

delphin(zv)post(tec)cz wrote:

> Pro tyto ucely WIN32 umi "kooperativni thread" Fiber, ktery nema
> uvedene negativni vlastnosti vyplyvajici z asynchronni podstaty
> threadu.

Tak to jsem nikdy nepouzil a ani si nedovedu predstavit,
ze bych to nekdy k necemu chtel pouzit, protoze jestli
jsem to spravne pochopil, tak bych musel mit jediny preemptivni
thread (kdybych jich mel vic, tak by to neresilo problem
se souperenim o sdilene prostredky) a v nem nejake mnozstvi
kooperujicich fiberu, ktere si vzajemne predavaji rizeni pomoci
SwitchToFiber.

Asi by bylo mozne tela fiberu zinvertovat tak, aby se mimo exekuci
vlastnich kroku nachazeli ve "fiber-safe" stavu a pokud by byly
provazany treba do seznamu, tak predavat rizeni treba sousedovi
napravo nebo vracet rizeni nejakemu fiberu-scheduleru, ale...

Spis to na me dela dojem, ze je to nejaka berlicka pro toho,
kdo by chtel prenaset aplikaci z kooperativniho prostredi
16-bitovych woken a na multi-threading si netroufa.


pf

Navrh app.

[*] delphin(zv)post(tec)cz - 15.6.2005 21:46:18

> Jenomze o to prece vubec nejde: pokud mas thready ve spolecnem adresnim
> prostoru, tak nikdo nezabrani libovolnemu threadu sahnout v podstate po
> jakemkoli objektu bez ohledu na to, jestli je system ve stavu,
> kdy to lze bezpecne udelat.

Pro tyto ucely WIN32 umi "kooperativni thread" Fiber, ktery nema uvedene
negativni vlastnosti vyplyvajici z asynchronni podstaty threadu.

Navrh app.

[*] Petr Fejfar <development(zv)callnet(tec)cz> - 15.6.2005 20:32:13

Jiri Cincura wrote:

> BTW ale souhlasis s nazorem, ze thread neni spatne a ze krome tebou
> uvedeneho reseni je to reseni spravne a vhodne?

Jasne, podruzny thread je zrejme optimum:
pravdepodobne nejmin prace a nejvyssi vykon
(ja bych se te jako oponent na ty rozdily v implementacich
zeptal ;-)

Jedinou vadou na krase je snad jen to kooperativni testovani
stavu Terminated. Ale co se da delat, kdyz OS nenabizi cestu,
jak to breaknout jinak.

Ostatne, ono uz tech dalsich cistych moznosti moc nebude:
jeste by slo vytvorit ten samostatny proces
treba v podobe nejaky consolovky. Ale to bude taky vic prace,
protoze pro ovladani/sledovani prubehu vypoctu bys
musel zridit nejakou IPC.


pf


Navrh app.

[*] Jiri Cincura <diskuze(zv)cincura(tec)net> - 15.6.2005 19:58:10

Petr Fejfar wrote (on Wednesday, June 15, 2005 7:46 PM):
> Jiri Cincura wrote:
>
>> Ale i tohle je nazor a rozhodne bude dobre se o tom zminit.
>
> To neni nazor ;-)
>
> To je jedna z moznosti, jak se takova uloha da naprgat. A pokud me neco

Jasne myslel to tak, ze je to nazor, jak to napsat. ;)

BTW ale souhlasis s nazorem, ze thread neni spatne a ze krome tebou
uvedeneho reseni je to reseni spravne a vhodne?

--
Jiri Cincura
http://ID3renamer.cincura.net/
ICQ: 314711544; Yahoo!: x2develop
http://photo.cincura.net/

Navrh app.

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

Jiri Cincura wrote:

> Ale i tohle je nazor a rozhodne bude dobre se o tom zminit.

To neni nazor ;-)

To je jedna z moznosti, jak se takova uloha da
naprgat. A pokud me neco neunika, tak je to vedle podruzneho
threadu dalsi cista implementace narozdil treba
od necisteho volani ProcessMessages, ktere duplikuje
smycku zprav a muze vest k nezadoucim rekurzim
a jinym pastavum.

A zminuju se o tom proto, ze kdyz narazim na nejaky slozity vypocet,
tak ho vetsinou navrhuju nejakou metodikou za pouziti nejakeho
vhodneho nastroje. A tam je ta inverze skoro zadarmo.

A jestli vypocet bude trvat 50 nebo treba 51 minut, tak na
tom IMHO nezalezi - schvalne si to srovnej treba s tridou
presnosti bezne pouzivanych mericich pristroju ;-)

pf


Navrh app.

[*] Ing. Radek Tomsik <radek(zv)tomsige(tec)cz> - 15.6.2005 19:44:09

Souhlasim, i kdyz muze pro nekoho byt obtiznejsi praci s thready
pochopit.
Sam jsem se s tim chvili trapil nez jsem to prokoukl :-)
Jsou pripady, kdy si lze pouzitim threadu znacne usnadnit zivot, typicky
pri nejakych sitovych aplikacich. Ja si pred casem napsal multithreadovy
prohledavac DC++ hubu a nedovedu si predstavit, jak bych to placal bez
threadu ...

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

Typicky argument je, ze thready jsou "prilis slozite". Toto plati
snad jen pri neznalosti zakladnich principu.

Navrh app.

[*] Jiri Cincura <diskuze(zv)cincura(tec)net> - 15.6.2005 19:30:08

Petr Fejfar wrote (on Wednesday, June 15, 2005 6:52 PM):
> Takze ne ze by to nemelo nejaky overhead, ale pokud u toho stroje nebude
> sedet nejaky onanista a jezdit mysi po obrazovce sem a tam, tak to
> nebude zase tak zle ;-)

No vzhledem k tomu, ze rychlost byla jednou z priorit by tohle mohlo byt
kritizovano.

A taky kdyz to bezi 50 minut, predpokladal bych, ze tam sekretarka bude
porad neco delat (soupat okynka, atp.) potom by to mohlo byt dost
neprakticke.

Ale i tohle je nazor a rozhodne bude dobre se o tom zminit.

--
Jiri Cincura
http://ID3renamer.cincura.net/
ICQ: 314711544; Yahoo!: x2develop
http://photo.cincura.net/

Navrh app.

[*] Petr Fejfar <development(zv)callnet(tec)cz> - 15.6.2005 18:52:05

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

> Tohle je ovsem velmi poplatne dobe a rekneme i celkove koncepcni
> zastaralosti dane platformy.
> Pokud jde o Win32, .NET (nebo rekneme i Javu) tak tam je pouziti
> threadu vcelku prirozenym resenim. Nemluve o tom, ze nektere
> platformy jiz sami poskytuji "optimalizovany" thread pool prave pro
> podobne situace.

Jenomze o to prece vubec nejde: pokud mas thready ve spolecnem adresnim
prostoru, tak nikdo nezabrani libovolnemu threadu sahnout v podstate po
jakemkoli objektu bez ohledu na to, jestli je system ve stavu,
kdy to lze bezpecne udelat.

Pokud jsou procesy v oddelenych prostorech a jejich rozhrani jsou
navrzena pro pozadovanou synchronizaci a komunikaci,
pak to neni mozne a vyznamne se snizi pocet "subtle bugs".

Pravda, problem s deadlocky zustane, protoze pokud vim, tak dosud
neexistuje zadna uspokojiva metodika, jak navrhovat synchronizaci
procesu bez nich ;-)

> To sice ano, ale ve vetsine pripadu to bude nakonec pracnejsi a
> nachylne vice na chyby.

Nemusi byt, zejmena kdyz pouzijes nejaky tool, ktery umi z nejakych
vyssich abstrakci generovat zdrojak - tomu je vetsinou jednou jestli
generuje primy nebo invertovany program.


pf


Navrh app.

[*] Petr Fejfar <development(zv)callnet(tec)cz> - 15.6.2005 18:52:04

Jiri Cincura wrote:

> No pri plnem vyuziti CPU trva vypocet asi 50 minut. Smysl aplikace je
> prave tento vypocet, takze se proste predpoklada, ze to bude delat (a
> ne ze to bude delat ve volnem case).

Uziti event OnApplicationIdle neznamena, ze je to ve volnem case,
ale v pripade, ze neni ve fronte zadna zprava. A to je docela rozdil.
Sam si urcujes, za jak dlouho se do message loop vratis.

Takze ne ze by to nemelo nejaky overhead, ale pokud u toho stroje
nebude sedet nejaky onanista a jezdit mysi po obrazovce sem a tam,
tak to nebude zase tak zle ;-)


pf


Navrh app.

[*] Jiri Cincura <diskuze(zv)cincura(tec)net> - 15.6.2005 18:42:04

Petr Fejfar wrote (on Wednesday, June 15, 2005 6:12 PM):
> No a zalezi na povaze vypoctu popr. na pouzitych nastrojich, jak pracne
> by bylo tu kooperativitu dotahnout do stavu uplne inverze vypoctu.
> Pokud je ta pracnost rozumne mala, tak by se dal ten vypocet poustet po
> castech treba z OnApplicationIdle handleru. Overhead by byl v tomto
> pripade trochu vyssi nez v tom threadu.

No pri plnem vyuziti CPU trva vypocet asi 50 minut. Smysl aplikace je prave
tento vypocet, takze se proste predpoklada, ze to bude delat (a ne ze to
bude delat ve volnem case).

Ale jinak diky za nazor.

> Takze pouziti samostatneho threadu pro vypocet je na woknech asi
> nejlepsim resenim jak z pohledu pracnosti tak z pohledu rychlosti
> vypoctu.

Diky za nazor.


--
Jiri Cincura
http://ID3renamer.cincura.net/
ICQ: 314711544; Yahoo!: x2develop
http://photo.cincura.net/

Navrh app.

[*] Petr Vones <konference(zv)petrvones(tec)net> - 15.6.2005 18:24:02

From: "Petr Fejfar" <development(zv)callnet(tec)cz>
> <CITE>
> My advice to all programmers is to never use more than one thread
> in the same address space. I have never in 20 years worked on a

Tohle je ovsem velmi poplatne dobe a rekneme i celkove koncepcni zastaralosti
dane platformy.

Pokud jde o Win32, .NET (nebo rekneme i Javu) tak tam je pouziti threadu
vcelku prirozenym resenim. Nemluve o tom, ze nektere platformy jiz sami
poskytuji "optimalizovany" thread pool prave pro podobne situace.

> No a zalezi na povaze vypoctu popr. na pouzitych nastrojich, jak pracne by
> bylo tu kooperativitu dotahnout do stavu uplne inverze vypoctu.
> Pokud je ta pracnost rozumne mala, tak by se dal ten vypocet poustet
> po castech treba z OnApplicationIdle handleru. Overhead by byl v tomto
> pripade trochu vyssi nez v tom threadu.

To sice ano, ale ve vetsine pripadu to bude nakonec pracnejsi a nachylne vice
na chyby.

Petr Vones


Navrh app.

[*] Petr Fejfar <development(zv)callnet(tec)cz> - 15.6.2005 18:12:01

Petr Vones wrote:

> vlastnost mozna jeste nezvykli :-) Typicky argument je, ze thready
> jsou "prilis slozite". Toto plati snad jen pri neznalosti zakladnich
> principu.

Odcituju nazor jednoho renomovaneho Unixaka, ktery
IMHO jejich pristup k mutlithreadingu docela dobre
ilustruje:

<CITE>
My advice to all programmers is to never use more than one thread
in the same address space. I have never in 20 years worked on a
multiple threaded program that actually got all of the threading
issues right. There are always subtle bugs that cause error that
are very difficult to reproduce and fix. Multithreading is the
fastest road to buggy code that I know of. Avoid it. If you
absolutely, positively must have multiple threads of control, put
each thread in its own address space (make it a process.)
</CITE>

Osobne bych souhlasil s tim, ze pokud spolu procesy komunikuji
vyhradne prostrednictvim sluzeb OS a jinak jsou od sebe oddeleny,
tak je to objektivne cesta, jak zvysit spolehlivost SW.

***

Kdyz se vratim k puvodnimu problemu: aby se ta aplikace chovala mravne,
stejne musi byt i v tom threadu ucineno za dost urcite mire kooperativity,
ktera spociva v tom, ze vypocet bude rozdelen do vhodnych logickych kroku a
mezi nimi se bude testovat/obsluhovat stav terminated.

No a zalezi na povaze vypoctu popr. na pouzitych nastrojich, jak pracne by
bylo tu kooperativitu dotahnout do stavu uplne inverze vypoctu.
Pokud je ta pracnost rozumne mala, tak by se dal ten vypocet poustet
po castech treba z OnApplicationIdle handleru. Overhead by byl v tomto
pripade trochu vyssi nez v tom threadu.

Takze pouziti samostatneho threadu pro vypocet je na woknech asi nejlepsim
resenim jak z pohledu pracnosti tak z pohledu rychlosti vypoctu.


pf

Navrh app.

[*] Petr Vones <konference(zv)petrvones(tec)net> - 15.6.2005 17:43:59

From: "Ing. Radek Tomsik" <radek(zv)tomsige(tec)cz>
> Taky obcas programuju neco pod linuxem, ale oproti win32 je to
> diametralne odlisne ...

V tom je mozna ten problem, pokud vim tak tento system puvodne thready nemel
vubec a byly nejak dodelany pozdeji, takze si na tuto vlastnost mozna jeste
nezvykli :-) Typicky argument je, ze thready jsou "prilis slozite". Toto plati
snad jen pri neznalosti zakladnich principu.

> Jakou udalostmi rizenou smycku ma na mysli .. nejak mi to nedochazi, co
> tim chtel rict ... jako ze bys ridil napr. to prekreslovani okna ? Nebo
> osetroval zpravy treba od mysi ??? To bych chtel videt, jak by tohle
> psal ..

Windows jsou typicky priklad udalostmi rizeneho prostredi (pomoci zprav). V
takovem prostredi by mela byt pouze jedna smycka ktera tyto zpravy vyzvedava
a dale rozesila ke zpracovani.

Udalostmi rizene prostredi vsak jeste neznamena "nahradu" multithreadingu.

Petr Vones


Navrh app.

[*] Jiri Cincura <diskuze(zv)cincura(tec)net> - 15.6.2005 17:33:58

Slavomir Skopalik wrote (on Wednesday, June 15, 2005 4:54 PM):
>> Je tento navrh spravny? Oponent me bakalarske prace napsal (dlouholety
>> UNIXak, nejsem si jist, jestli zna fungovani VCL), ze je to naprosto
>> zbytecne a ze by postacovala udalostmi rizena smycka.
>
> Otazkou co mel na mysli ?
> Bezne se to dela tak, ze pokud se chci vyhnout threadum, tak pravidelne
> (cca 10x/sec) volam Application.ProcessMessages. Efekt je stejny jako u

Application.ProcessMessages jsem se zamerne vyhnul. Lepsi oddeleni vypoctu a
take pro vykon.

> kooperativniho multytaskingu.
> Ma to ovsem sva uskali, ktera je nutno dodrzovat.
>
> Thready jsou obecne narocnejsi na synchronizaci, ale vhodnejsi na
> skutecne vypocty, pripadne blokujici operace.
> Dale thready lepe vyuziji vice CPU (HT) stroje.
>
> Slavek

Diky i za tvuj nazor. Vazim si toho.

--
Jiri Cincura
http://ID3renamer.cincura.net/
ICQ: 314711544; Yahoo!: x2develop
http://photo.cincura.net/

Navrh app.

[*] Jiri Cincura <diskuze(zv)cincura(tec)net> - 15.6.2005 17:27:57

Ing. Radek Tomsik wrote (on Wednesday, June 15, 2005 4:54 PM):
> Rekl bych ze tvuj zpusob je naprosto spravny .. pokud budes provadet
> nejaky slozitejsi a narocnejsi vypocet v hlavnim threadu, muze dojit k
> tomu, ze se ti treba nebude prekreslovat okno, reagovat na mys apod ..
> Taky obcas programuju neco pod linuxem, ale oproti win32 je to
> diametralne odlisne ...

Diky.

> Jakou udalostmi rizenou smycku ma na mysli .. nejak mi to nedochazi, co
> tim chtel rict ... jako ze bys ridil napr. to prekreslovani okna ? Nebo
> osetroval zpravy treba od mysi ??? To bych chtel videt, jak by tohle psal
> ..

Take nevim co tim presne myslel, ale domnivam se, ze to bylo to co rikas ty
(coz mi take pripada ponekud divne).

Diky i za tvuj nazor.

--
Jiri Cincura
http://ID3renamer.cincura.net/
ICQ: 314711544; Yahoo!: x2develop
http://photo.cincura.net/

Navrh app.

[*] Slavomir Skopalik <skopalik(zv)elektlabs(tec)cz> - 15.6.2005 16:53:54

> Je tento navrh spravny? Oponent me bakalarske prace napsal
> (dlouholety UNIXak, nejsem si jist, jestli zna fungovani
> VCL), ze je to naprosto zbytecne a ze by postacovala
> udalostmi rizena smycka.

Otazkou co mel na mysli ?
Bezne se to dela tak, ze pokud se chci vyhnout threadum, tak
pravidelne (cca 10x/sec) volam Application.ProcessMessages.
Efekt je stejny jako u kooperativniho multytaskingu.
Ma to ovsem sva uskali, ktera je nutno dodrzovat.

Thready jsou obecne narocnejsi na synchronizaci, ale
vhodnejsi na skutecne vypocty, pripadne blokujici operace.
Dale thready lepe vyuziji vice CPU (HT) stroje.

Slavek


Navrh app.

[*] Ing. Radek Tomsik <radek(zv)tomsige(tec)cz> - 15.6.2005 16:53:54

Rekl bych ze tvuj zpusob je naprosto spravny .. pokud budes provadet
nejaky slozitejsi a narocnejsi vypocet v hlavnim threadu, muze dojit k
tomu, ze se ti treba nebude prekreslovat okno, reagovat na mys apod ..
Taky obcas programuju neco pod linuxem, ale oproti win32 je to
diametralne odlisne ...

Jakou udalostmi rizenou smycku ma na mysli .. nejak mi to nedochazi, co
tim chtel rict ... jako ze bys ridil napr. to prekreslovani okna ? Nebo
osetroval zpravy treba od mysi ??? To bych chtel videt, jak by tohle
psal ..

Radek

-----Original Message-----
From: delphi-l-owner(zv)clexpert(tec)cz [mailto:delphi-l-owner(zv)clexpert(tec)cz]

Je tento navrh spravny? Oponent me bakalarske prace napsal (dlouholety
UNIXak, nejsem si jist, jestli zna fungovani VCL), ze je to naprosto
zbytecne a ze by postacovala udalostmi rizena smycka.


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