Archív konference Delphi
Zpět na výběr roku archívu nebo přejít na fulltextové vyhledávání v konferenci.
Zjisteni pripojenych uzivatelu na vzdalenem pocita
[*] Jiri Cincura <diskuze(zv)cincura(tec)net> - 15.8.2004 20:30:37
Benda Lukas wrote:
> Je nejaky zpusob jak zjisti uzivatele prihlasene ke vzdalenem pocitaci?
> Na vzdalenem pocitaci bezi WinXP. Je na win taky neco jako finger na
> Linuxu?
>
> Btw. vysilaji pocitace nejakou message do site, kdyz se uzivatel
> prihlasi? To je asi nepravdepodobne co?
>
> Lukas Benda
Na WinXP/2000 je prekvapive Finger take.
--
Jiri Cincura
e-mail: mailto:jiri(zv)cincura.net; mailto:xcincura(zv)informatics.muni(tec)cz
ICQ#: 314711544
web: http://www.cincura.net; http://photo.cincura.net
Zjisteni pripojenych uzivatelu na vzdalenem pocita
[*] Benda Lukas <bendal(zv)volny(tec)cz> - 15.8.2004 20:14:35
Je nejaky zpusob jak zjisti uzivatele prihlasene ke vzdalenem pocitaci?
Na vzdalenem pocitaci bezi WinXP. Je na win taky neco jako finger na Linuxu?
Btw. vysilaji pocitace nejakou message do site, kdyz se uzivatel
prihlasi? To je asi nepravdepodobne co?
Lukas Benda
Vyhledavani podle casti retezce II
[*] Pavel GRATZER <pavelg(zv)stbk.mcs(tec)cz> - 15.8.2004 18:56:30
od: "Lada" <lada.xt(zv)volny(tec)cz>
> Zdravim vsechny a opet prosim o pomoc...
>
> Vyhledavam v tabulce ve vice fieldech najednou podle casti retezce
> zadaneho v Editu..
> Bez problemu mne to funguje pokud jsou hledane polozky v polich typu
string.
> Ted bych ale potreboval vyhledavat soucasne podle casti retezce onoho
> editu jak cisla (integer) tak retezce...
>
> Tento kod bohuzel konci chybou pri zadani znaku s diakritikou v
> libovolne casti retezce.. bez diakritiky to beha normalne,
> vcetne hledani ciselnych polozek...
>
> IBQuery1.SQL.Add('Select * from Tabulka');
>
> IBQuery1.SQL.Add('Where Cislo LIKE :p1 '+
> 'or (UPPER(Jmeno COLLATE PXW_CSY) LIKE :p2) '+
> 'or (UPPER(Prijmeni COLLATE PXW_CSY) LIKE :p3) order
> by CISLO');
>
> IBQuery1.ParamByName('p1').AsString := editHledej.Text;
> IBQuery1.ParamByName('p2').AsString :=
> '%'+AnsiUpperCase(editHledej.Text)+ '%';
> IBQuery1.ParamByName('p3').AsString :=
> '%'+AnsiUpperCase(editHledej.Text)+ '%';
>
> Tedy nechci se ztrapnovat vic, nez je nutny.. ale myslim si, ze by to
> chtelo zkonvertovat 'Cislo' na retezec pomoci fce CAST...?
> Jestli je to tak, poradi prosim nekdo jak to v tom mem prikladu
provedu...?
>
> FB1.5, D6
>
> Dekuju moc za kazdou radu.
>
> Lada
>
A co takhle :
IBQuery1.SQL.Add('Select * from Tabulka');
IBQuery1.SQL.Add('Where (Cast(Cislo as Char(30)) like :p1)'
'or (UPPER(Jmeno COLLATE PXW_CSY) LIKE
:p2) '+
'or (UPPER(Prijmeni COLLATE PXW_CSY) LIKE
:p3) order by CISLO');
IBQuery1.ParamByName('p1').AsString := '%'+editHledej.Text+ '%';
IBQuery1.ParamByName('p2').AsString :=
'%'+AnsiUpperCase(editHledej.Text)+ '%';
IBQuery1.ParamByName('p3').AsString :=
'%'+AnsiUpperCase(editHledej.Text)+ '%';
Ja to pouzivam v aplikacich a funguje to (neni to s IB, ale SQL by melo byt
standart).
Pavel GRATZER
pavelg(zv)stbk.mcs(tec)cz
Vyhledavani podle casti retezce II
[*] Lada <lada.xt(zv)volny(tec)cz> - 15.8.2004 17:52:25
Zdravim vsechny a opet prosim o pomoc...
Vyhledavam v tabulce ve vice fieldech najednou podle casti retezce
zadaneho v Editu..
Bez problemu mne to funguje pokud jsou hledane polozky v polich typu string.
Ted bych ale potreboval vyhledavat soucasne podle casti retezce onoho
editu jak cisla (integer) tak retezce...
Tento kod bohuzel konci chybou pri zadani znaku s diakritikou v
libovolne casti retezce.. bez diakritiky to beha normalne,
vcetne hledani ciselnych polozek...
IBQuery1.SQL.Add('Select * from Tabulka');
IBQuery1.SQL.Add('Where Cislo LIKE :p1 '+
'or (UPPER(Jmeno COLLATE PXW_CSY) LIKE :p2) '+
'or (UPPER(Prijmeni COLLATE PXW_CSY) LIKE :p3) order
by CISLO');
IBQuery1.ParamByName('p1').AsString := editHledej.Text;
IBQuery1.ParamByName('p2').AsString :=
'%'+AnsiUpperCase(editHledej.Text)+ '%';
IBQuery1.ParamByName('p3').AsString :=
'%'+AnsiUpperCase(editHledej.Text)+ '%';
Tedy nechci se ztrapnovat vic, nez je nutny.. ale myslim si, ze by to
chtelo zkonvertovat 'Cislo' na retezec pomoci fce CAST...?
Jestli je to tak, poradi prosim nekdo jak to v tom mem prikladu provedu...?
FB1.5, D6
Dekuju moc za kazdou radu.
Lada
OLE Automation Event
[*] Benda Lukas <bendal(zv)volny(tec)cz> - 15.8.2004 15:42:17
Jak vytvorim a pouziju OLE Automation Event? Samtony server OLE
Automation neni problem vytvorit a pouzit, ale reakce na udalosti se mi
nedari. (I kdyz vytvorim ActiveX Automation s podporou Event). Nevim jak
ze serveru zavolat event a jak ji prevzit u klienta.
Muzete mi popsat jak na to?
Pripojeni k MS SQL 2000. Jak na to?
[*] Ing. Miroslav Vopalecky <m.vopalecky(zv)tiscali(tec)cz> - 15.8.2004 07:28:58
Ahoj vsichni.
Potreboval bych pomoci. Musel jsem predelat projekt s napojenim na databazi
Firebird (nepracuje pod IPX/SPX) na projekt s napojenim na databazi
Microsoft SQL. Muj problem spociva v tom, ze se nedokazi na MSSQL z Delphi
pripojit. Z instalovaneho pocitace WXP jsem se k me databazi pripojil z
Excelu a videl jsem data.
Vytvoril jsem si i soubor DNS, ktery je nasledujici:
[ODBC]
DRIVER=SQL Server
UID=jmeno
Regional=Yes
Trusted_Connection=Yes
Address=JmenoServeru,Port
Network=DBMSSOCN
Language=cestina
DATABAZE=EXPERTIZY
WSID=JmenoPrihlaseneho_WXP
APP=Microsoft Open Database Connectivity
SERVER=JmenoServeru
Z Delphi se na databazi nedostanu, nevim kam vrazit odkaz na DNS. Pokud jsem
obsah DNS dal do ADOConnection.ConnectionString, dostal jsem chybove
hlaseni: "Vstupni procedury GetIUMS se nepodarilo v dynamicky propojene
knihovne MSDART.DLL nalezt".
Problem je v tom, ze k zakaznikovi je daleko a nemam moc casu na zkouseni.
Pri vyvoji jsem mel nainstalovanu MSDBE 2000 a s tim to funguje dobre
S pozdravem Mirek Vopalecky, D7 W2000
Prava na zaznamy
[*] Roman <sw.maurice(zv)seznam(tec)cz> - 14.8.2004 21:06:19
> > Zdravim,
> > potrebuji poradit s pravy (select) nad radky tabulky (v Firebird 1 -
1.5).
> > Kazdy radek obsahuje identifikator skupiny (prefix). Uzivatele maji
> > nastaveno, ktere skupiny mohou videt. Uzivatel na urovni aplikace neni
> > uzivatel na urovni databaze, tj. vice uzivatelu v aplikaci muze byt
jeden
> > uzivatel v databazi. Uzivatele v aplikaci jsou ulozeni v tabulce
> Uzivatele,
> > PK je Id_uzivatele. Problem chci vyresit nejakym objektem na urovni
> databaze
> > (tj. nechci v aplikaci vytvaret kontrukce typu SELECT ... WHERE prefix
IN
> > (...)).
>
> Nejlepsi volbu asi stejne budes mit vytvaret dotazy v aplikaci.
> Kdyz si po pripojeni databaze nactes prefixy, na ktere ma uzivatel narok,
> bude pak celkem jednoduche tvorit selecty
> SELECT ... FROM ... WHERE (PREFIX IN (pref1, pref2...)) AND (...dalsi
> podminky...)
> Nebo mas nejaky specialni duvod, proc to chces resit na DB urovni?
Toto reseni se mi libi z pohledu rychlosti, ale uz mene z pohledu udrzby a
mam obavy z velikosti IN (nikde jsem tuto hodnotu v dokumentaci nenasel).
Omezeni zaznamu podle prefixu bude v kazdem dotazu s danou tabulkou.
Problem je s dotazy, kt. si muze uzivatel vytvorit sam (sestavy, exporty).
Reseni na urovni databaze se jevilo jednodussi pro udrzbu aplikace (tj. pro
mne ;-)).
Roman
farebny riadok v DBGrid
[*] Jirka Virt <virt(zv)volny(tec)cz> - 14.8.2004 20:22:15
Nic proti, ale tohle se tu a na jinych podobnych konferencich probiralo
snad tisickrat.Staci hledat.
Jirka Virt
FB a tabulka historie zmien
[*] hlas <hlas(zv)inmail.sk> - 14.8.2004 19:00:10
problemove vidim samozrejme triggre after update
nie after insert - to bol preklep
FB a tabulka historie zmien
[*] hlas <hlas(zv)inmail.sk> - 14.8.2004 18:38:08
Chcem urobit tabulku, v ktorej budu zapisovane zaznamy
obsahujuce historiu zmien(inserty, updaty alebo delete) v ostatnych tabulkach danej databazy.
Urobit to na klientovi asi viem. Skor ma zaujima ci sa to
da nejako jednoducho urobit aj na strane servera.
Moja predstava je ze by existovala tabulka HISTORY
s polami USER, DATUM, CAS, TABULKA, CISLO, DRUH ZMENY,POLE.
USER - cislo uzivatela
DATUM - datum zmeny akehokolvek zaznamu v akejkolvek tabulke
CAS - cas zmeny
TABULKA - nazov tabulky v ktorej sa zmena diala
CISLO - primarny kluc zaznamu, ktory sa menil alebo pridaval
DRUH ZMENY - ci sa jedna o insert alebo update alebo delete
POLE - ak sa jedna o update ake pole sa menilo
a teraz by som nad ostatnymi tabulkami napisal triggre.
afterinsert - ten by do tabulky history urobil zaznam o novom zazname v inej tabulke
afterdelete - podobne
afterupdate - to je uz horsie. viem si len predstavit dlhy trigger
kde bude
if new.pole1<>old.pole1 then insert into history ......
if new.pole2<>old.pole2 then insert into history ......
if new.pole3<>old.pole3 then insert into history ......
atd...
tie triggre after insert vyzeraju velmi pracne
neda sa tam napisat nejaky cyklus co by behal po poliach
tabulky? ako zistim v triggry napr. pocet poli danej tabulky?
da sa v triggry odvolavat na polia systemom fields[0], fields[1] atd
alebo nejako podobne?
farebny riadok v DBGrid
[*] Martin Burle <mburle2(zv)volny(tec)cz> - 14.8.2004 16:44:00
> existuje nieco aby som spravil v DBGride cely riadok farebny?
Zkus neco takoveho:
procedure TFrmPickItem.GridItemsDrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
function IsValid: Boolean;
begin
with GridItems.DataSource.dataset do begin
Result := FieldByName('VOLNYCH').AsFloat>0;
end;
end;
begin
if Isvalid then begin
GridItems.Canvas.Font.Color := clBlack;
GridItems.Canvas.Brush.Color := clWhite;
end else begin
GridItems.Canvas.Font.Color := clGray;
GridItems.Canvas.Brush.Color := clRed;
end;
GridItems.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;
HTH,
MB
OT RemObjects Chrome language for .NET
[*] Petr Vones <konference(zv)petrvones(tec)net> - 14.8.2004 16:03:58
Jazyk zalozeny na syntaxi Pascalu pro .NET:
http://www.drbob42.com/chrome
Petr Vones
IBClientDataSet - ApplyUpdate
[*] Martin Burle <mburle2(zv)volny(tec)cz> - 14.8.2004 15:55:57
> data neulozi. CommandText je jednoduchy SELECT, ale to nic nemeni na
> tom, ze po ApplyUpdates je pocet chyb nulovy, ale data se do DB
nedostanou.
Nezapominas commitovat transakci?
> Vite jak na to? Nebo se proste mam na IB uplne vykaslat?
To by byla myslim chyba ;)
MB
Synaser a prace s nim
[*] Jan Masek <jan.masek(zv)mcu(tec)cz> - 14.8.2004 08:51:29
> no teraz ma napadlo, ze Ty si si zrejme tie dva odstavce (pre ilustraciu
> su ponechane na zaciatku tohto mailu) spojil dohromady, t.j. dal do
> nejakych suvislosti (ZMIESAL) a preto za tym kritizujes miesanie.
>
> Lenze jeden odstavec je o jednom (odpoved na Tvoju
> otazku ohladom HTTP) a druhy o inom (linka
> na blocking/nonblocking). Lebo ten mail bol o tom,
> ze su tam linky na rozne komunikacne pojmy (aby
> si to mohol kazdy precitat a tie pojmy sa nemiesali).
> Tak skus snad najprv pozornejsie citat maily a az
> potom kritizovat. Lebo sranda je, ze presne to,
> co kritizujes (teda miesanie veci) si, zda sa, sam
> predviedol.
Ach tak je to, ma malickost opet nepochopila hloubku Tvych uvah :-)
Vzdyt Ty vlastne vnasis osvetu do davu nevedomych
Jednoduchou odpoved na jednoduchou otazku doplnis o neouvisejici
odkaz na jinou (byt pribuznou) tematiku. Promin, ale to mi prave pripada
jako michani jablek s hruskama :-)
Nezlob se, ale nemam chut, naladu ani dusevni sily vest s Tebou tuto plodnou debatu.
Po projiti archivu konference mi je naprosto jasne, ze uznavas pouze dve pravidla:
1) Mam vzdy pravdu
2) Pokud ne, plati bod jedna
Omlouvam se (zivot me naucil pokore) a uznavam, oproti ostatnim,
Ty mas VZDY a ve VSEM pravdu.
Ja se vrati zpet ke svym chybam, polopravdam a kompromisum :-)
J.Masek
farebny riadok v DBGrid
[*] X-Tech <marek(zv)x-tech.sk> - 14.8.2004 08:17:26
zdravim,
zacinam a potrebujem usmernit.
existuje nieco aby som spravil v DBGride cely riadok farebny?
dakujem,
Marek Janosik
Synaser a prace s nim
[*] Erik Salaj, Winsoft <winsoft(zv)netkosice.sk> - 14.8.2004 01:26:38
> > z uvedenej definicie mi vychadza, ze je to synchronny protokol (i ked
snad
> > trocha specificky)
> >
> > Celkom dobre informacie ohladom socket programovania a kedy pouzit
blocking
> > a kedy neblocking operacie su na
>
> Ne, Ty to opravdu nechapes :-(
> A bohuzel podle cele debaty nejsi sam. Michate do sebe fyzicke vrstvy,
transportni protokoly,
> aplikacni protokoly, jejich zpracovani a to vse jeste z pohledu konkretni
platformy :-))))
no teraz ma napadlo, ze Ty si si zrejme tie dva odstavce (pre ilustraciu
su ponechane na zaciatku tohto mailu) spojil dohromady, t.j. dal do
nejakych suvislosti (ZMIESAL) a preto za tym kritizujes miesanie.
Lenze jeden odstavec je o jednom (odpoved na Tvoju
otazku ohladom HTTP) a druhy o inom (linka
na blocking/nonblocking). Lebo ten mail bol o tom,
ze su tam linky na rozne komunikacne pojmy (aby
si to mohol kazdy precitat a tie pojmy sa nemiesali).
Tak skus snad najprv pozornejsie citat maily a az
potom kritizovat. Lebo sranda je, ze presne to,
co kritizujes (teda miesanie veci) si, zda sa, sam
predviedol.
Erik
Cteni pole bytu z ActiveX componenty
[*] Petr Zahradnik <clexpert(zv)clexpert(tec)cz> - 14.8.2004 01:18:37
Puvodni zprava ze dne 14.8.2004:
> Ten parametr je volany odkazem a je OleVariant, takze snad jedine lze
Kdyby byl odkazem, tak by se podle me nedimenzoval, to bude tutove
nejake pole, mozna tam cpe unicode, zkusil jsi ho jeste zvetsit?
Petr Zahradnik, pocitacovy expert
==========================================================
Petr Zahradnik, Computer Laboratory
web: http://www.clexpert(tec)cz, e-mail: clexpert(zv)clexpert(tec)cz
==========================================================
Cteni pole bytu z ActiveX componenty
[*] j.binder(zv)albacon(tec)cz - 14.8.2004 00:48:34
> Treba toto jsou zkousel?
>
> var S: String;
>
> SetLength(S, 76);
> XXX(S[1]);
>
> nebo misto posledniho radku:
> XXX((zv)S[1]);
>
> Petr Zahradnik, pocitacovy expert
Ten parametr je volany odkazem a je OleVariant, takze snad jedine lze
v: OleVariant;
....
v := S
XXX(v)
Takto jsem to zkousel, neproslo.
Tez mam porad pocit ze to chce ukazatel na to pole misto vararray, ale kdyz jsem zkusil rucne upravit xxxTLB.pas a podstrcit tam typ PSafeArray, tak jsem dostal chybu Ilegal type in OLE automation section a skoncil jsem.
Jiri Binder
Synaser a prace s nim
[*] Erik Salaj, Winsoft <winsoft(zv)netkosice.sk> - 14.8.2004 00:46:33
> Ne, Ty to opravdu nechapes :-(
>A bohuzel podle cele debaty nejsi sam. Michate do sebe fyzicke vrstvy,
transportni protokoly,
>aplikacni protokoly, jejich zpracovani a to vse jeste z pohledu konkretni
platformy :-))))
>
> Na asynchronni lince (fyzicke vrstve) mohu mit (a casto take mam)
synchronni transportni
> protokol. A to cele samozrejmne i naopak. Pro jednoduchost - TCP je
synchronni transportni
> protokol, UDP je asynchronni transportni protokol. Oba pritom mohou byt
prenaseny na ruznych
> synchronnich (Ethernet) ci asynchronnich (RS232) fyzickych vrstvach.
a tvrdil som nieco ine? Skus tu konkretnejsie napisat,
co som nepochopil a uviedol zle. Ze sa bavime o roznych
veciach, to neznamena, ze su to nepravdy. Ved ty si tu tiez prave
uviedol (namiesal?) x-pojmov ohladom komunikacie.
Poslal som tu linky, kde su jednotlive pojmy ohladom komunikacie
vysvetlene (nie mnou, ale suhlasim s nimi, nevidel som tam nejake
nezrovnalosti) - prave preto aby sme to nemiesali. Tak ako co tu
je problem teraz rozumiet, alebo v com je problem, su tie informacie
na tych web strankach nespravne?
> NEKDY je vhodne pouzit non-blocking zpracovani, NEKDY je vhodny opak.
cely cas sa o tom bavime a cely cas tvrdim to iste. A uz ma to nebavi
citovat to tu treti krat, tak si to pohladaj v archive a presvedc sa o tom.
> Proste vsichni mate v necem pravdu, tak nad cim debatujete ??
mozno chceme vediet (a mat?) celu pravdu, nielen cast pravdy ;-)
Erik
IBClientDataSet - ApplyUpdate
[*] Benda Lukas <bendal(zv)volny(tec)cz> - 14.8.2004 00:14:30
Chci pouzivat ClientDataSet protoze ma celkem dost vyhod. Problem je v
tom, ze pri pouzivani dohromady s IBX komponentama, samotny Provaider +
TClientDataSet nefunguje (ani kdyz presne zopakuju postup, ktery popsal
nekdo "chytry" od Borlandu). Samotny TIBClientDataSet je na tom dost
podobne, pokud nechci osetrovat udalost BeforeUpdateRecord, tak se zadne
data neulozi. CommandText je jednoduchy SELECT, ale to nic nemeni na
tom, ze po ApplyUpdates je pocet chyb nulovy, ale data se do DB nedostanou.
Vite jak na to? Nebo se proste mam na IB uplne vykaslat?
Cteni pole bytu z ActiveX componenty
[*] Petr Zahradnik <clexpert(zv)clexpert(tec)cz> - 13.8.2004 23:38:27
Puvodni zprava ze dne 13.8.2004:
> dim ReceiveData(76)
> ActiveXCtrl.XXX(ReceiveData(0))
> v dokumentaci je uvedena hlavicka
> XXX(VARIANT* ReceiveData)
Treba toto jsou zkousel?
var S: String;
SetLength(S, 76);
XXX(S[1]);
nebo misto posledniho radku:
XXX((zv)S[1]);
Petr Zahradnik, pocitacovy expert
==========================================================
Petr Zahradnik, Computer Laboratory
web: http://www.clexpert(tec)cz, e-mail: clexpert(zv)clexpert(tec)cz
==========================================================
Cteni pole bytu z ActiveX componenty
[*] j.binder(zv)albacon(tec)cz - 13.8.2004 23:18:25
Ahoj,
uz jsem se sice jednou neuspesne ptal, ale protoze s problemem nemuzu hnout, tak to zkusim jeste jednou.
Mam ActiveX komponentu, ktera mi vraci pole bytu. V importovanem rozhrani je v prislusna metoda deklarovana jako XXX(var ReceivedData: OleVariant)
Zkousel jsem zhruba toto
var v: OleVariant;
v := VarArrayCreate([0,76], varByte), resp.
v := VarArrayRef( VarArrayCreate([0,76], varByte))
....
XXX(v)
Zcela zjevne vsak metoda dostane neco jineho nez ceka, protoze misto dat se mi vraci chyby jako Acces violation, external exception, privilegid instruction, safe array locked ....
V chodicim prikladu HTML/VBScriptu je toto volani
dim ReceiveData(76)
ActiveXCtrl.XXX(ReceiveData(0))
v dokumentaci je uvedena hlavicka
XXX(VARIANT* ReceiveData)
Uz na tom visim dlouho a nevim co s tim. Chyba asi bude u mne, ale nemuze byt tez nejaka nekompatibilita mezi COM objekty vytvorenymi ve VC++ a kodem generovanym Delphi? Za kazdou pomoc predem moc dekuji.
Zdravi Jiri Binder
Nastaveni a parametry site
[*] Bronislav Klucka <bronislav.klucka(zv)pro2-soft(tec)com> - 13.8.2004 22:12:19
Zdar,
uz jsem se sice na to ptal a nikdo neodpovedel, tak doufam, ze prijeli z
dovoleny uz vsichni, kteri to vedi:) potrebuji toto:
1/ Sitova rozhrani na internet
Najit ethernetova zarizeni (sitovky) a zobrazit jejich parametry (viz.
Ritova a telefonicka pripojeni a Vlastnoti techto ptipojeni. Ip, DNS,
GateWay, apod.) a moci je nastavovat.
Nasel jsem prislusna API, ale kdyby to nekdo mel....
2/ Vypnout na internetovych rozhranich sdileni souboru a zapnout systemovy
firewall (WinXP)
3/ Naimportovat certifikat (crt)
4/ Nastavit domovskou stranku MSIE a Mozilly
5/ Nastavit POP,IMAP,SMTP servery pro velkyho Outlooka, Outllok Expres a
Mozillu
Nevi nekdo alespon neco? Melo by to byt funkcni od Win98 do WinXP
Brona
spousteni aplikace pres mail
[*] Jiri Cincura <diskuze(zv)cincura(tec)net> - 13.8.2004 21:00:12
Marek wrote:
> ahoj,
>
> uzivatel ma na disku ulozenou aplikaci a ja ji potrebuji spustit s
> parametrem. da se nejak poslat v mailu link s parametrem?
>
> diky
>
>
> Marek
Jak to myslis? Mohl bys ukazat priklad toho mailu (nejaky). Nejak to totiz
nechapu.
--
Jiri Cincura
e-mail: mailto:jiri(zv)cincura.net; mailto:xcincura(zv)informatics.muni(tec)cz
ICQ#: 314711544
web: http://www.cincura.net; http://photo.cincura.net
Synaser a prace s nim
[*] Jan Masek <jan.masek(zv)mcu(tec)cz> - 13.8.2004 19:52:06
> > Jen maly priklad - je HTTP protokol synchronni, nebo asynchronni, kdyz je
> jednou prenasen
> > po Ethernetu a podruhe po RS232 ??? Kdo to vi odpovi :-)))
>
> z uvedenej definicie mi vychadza, ze je to synchronny protokol (i ked snad
> trocha specificky)
>
> Celkom dobre informacie ohladom socket programovania a kedy pouzit blocking
> a kedy neblocking operacie su na
Ne, Ty to opravdu nechapes :-(
A bohuzel podle cele debaty nejsi sam. Michate do sebe fyzicke vrstvy, transportni protokoly,
aplikacni protokoly, jejich zpracovani a to vse jeste z pohledu konkretni platformy :-))))
Debatujete tu o vhodnosti te ci one metodiky pro zpracovani asynchonniho prenosu,
ale malokdo z Vas je ochoten pripustit, ze bloumate v zacarovanem kruhu
Na asynchronni lince (fyzicke vrstve) mohu mit (a casto take mam) synchronni transportni
protokol. A to cele samozrejmne i naopak. Pro jednoduchost - TCP je synchronni transportni
protokol, UDP je asynchronni transportni protokol. Oba pritom mohou byt prenaseny na ruznych
synchronnich (Ethernet) ci asynchronnich (RS232) fyzickych vrstvach.
A presne toto tu michate vesele dohromady, plus do toho vnasite dalsi zmatek vlastnim
zpracovanim v aplikaci a to vse promichavate nepresnou terminologii :-))))
NEKDY je vhodne pouzit non-blocking zpracovani, NEKDY je vhodny opak.
Ale to vzdy zalezi na konkretnim protokolu a aplikaci. Neznam, zadny generalne
aplikovatelny uzus a to delam s nejruznejsimi komunikacemi petadvacet let
od prostych 8b MCU po 64b dela :-)))))
Proste vsichni mate v necem pravdu, tak nad cim debatujete ??
J.Masek
Synaser a prace s nim
[*] Jiri Foldyna <jiri.f(zv)avizo(tec)cz> - 13.8.2004 12:30:53
> > Pro tebe to jsou mozna vzletne reci, ale spis mozna tomu jen proste
> > nerozumis. Nejsem zadny pedagog, a na to, abych poucoval
> vseznalky, jsem
> uz
> > dost stary.
>
> takze "skutek utek" ked prislo na lamanie chleba
Skutek utek ? Lamani chleba ? Hezke fraze... To, ze ti nejsou jasne
evidentni veci neznamena, ze ti je nekdo musi vysvetlovat, aby ti dokazal,
ze se mylis.
> > Pokud mas pocit, ze seriova komunikace stoji a pada s
> ovladanim mysi, pak
> > zkus pouvazovat o zpetne vazbe - neboli polopaticky -
> potrebuje mys vedet,
> > jestli udaje o jeji poloze nekdo prevzal, nebo ji to je
> sumafuk ? Co se
> > stane, kdyz nahodou par zprav nedojde ? Kulove, ze...
>
> a co tak priamo v obsluhe udalosti mysi spetne oznamit, ze som
> tie udaje prevzal? Co je na tom nespolahlive?
A mys bude cekat, az ji potvrzeni zasles ? A do te doby prestane posilat
udaje o poloze ? Nebo si bude zpravy cislovat a evidovat, jestli na ty
zpravy dostala potvrzeni ? Hmmm, velmi sofistikovane reseni trivialni ulohy
:-)))
> > > tak navrhujem "zabalit" aj eventy vsetkych Delphi komponentov,
> > > ked uz tu mame to nove, spolahlive riesenie komunikacie
> >
> > Proc, smim-li se zeptat ? Obsluhu stisknuti tlacitka
> povazujes za seriovou
> > komunikaci ?
>
> no predpokladal som, ze to "spoloahlive" riesenie seriovej komunikacie
> bude mozne zobecnit aj mimo seriovej komunikacie. A namiesto
> eventov budeme mat thready a timeouty a budeme volat nejake
> blokovacie procedury. Napr. pre to tlacitko urobime tento spolahlivy
> thread:
Evidentne chybny predpoklad, zahonky ruzi se prece taky neokopavaji
bagrem...
> procedure TThreadTlacitko.Execute;
> var Stlacenia: String;
> begin
> Timeout := 10000; // cakame max 10 sekund
>
> Koniec := False;
> while not Koniec do
> try
> Stlacenia := NacitajStlacenia(10); // 10 stlaceni naraz (aby sme
> prilis nezatazili system extra zistovanim kazdeho stlacenia tlacitka)
>
> // hura, mame ich
> Koniec := True;
>
> Synchronize(DajUdajeAplikacii(Stlacenia)); // nejako to
> zosynchronizujeme a posleme programu, alebo
> co s tymi stlaceniami teraz urobime?
> except
> on ETimeout: // este ich nemame nacitane tak pozrime,
> ci este nas
> thread vobec treba
> if KoniecAplikacie then
> Exit;
> end
> end;
>
> Erik
To muselo dat prace, vymyslet takovou blbost...
Zdravim
Jiri Foldyna
Synaser a prace s nim
[*] Lukas Gebauer <gebylist(zv)mlp(tec)cz> - 13.8.2004 11:32:46
> V okamziku, kdy ta nevyzadana data nebudou mit povahu prosteho
> indikatoru jako napr. RING, tak je budes muset prinejmensim strkat
> nekam do fronty a zase je z ni tahat. No a to bude o trochu vice nez
> malo instrukci, ale budiz ;-)
Ale to v pripade udalostmi rizeneho prijimani dat musis delat take!
Proto jsem tuto zatez navic nepocital, protoze ji musis udelat vzdy,
lhosteno na pouzitem rezimu komunikace.
Kdyz ti prijde z portu udalost, ze ti prisly dva baty 'RI', tak si to
stejne musis dat nekam do fronty, a pockat, dokud nebudes mit k
dispozici cely 'RING', ne?
Tedy ja demonstroval skutecnou zatez navic, ktera je skutecne dana
povahou blokujici komunikace. Tato zatez navic tu skutecne je, jen
jsem se ja konkretne jak snazil o to, aby tato zatez byla tak mala,
aby pro jeji zanedbatelnost nebyla nikomu naobtiz.
> Jak psal uz PZ, ani pri rucni transkripci protokolu te nic nenuti
> doprasit non-blocking implementaci tak, ze bude mene prehledna.
> Jen to chce trochu teoreticke prupravy a mene intuitivnich postupu ;-)
Totez lze rict i obracene... v pripade blocking rezimu te nic nenuti
udelat to zprasene tak, aby to chodilo hure nez non-blocking.
--
Lukas Gebauer.
E-mail: gebauerl(zv)mlp(tec)cz
http://www.ararat(tec)cz/synapse/ - Ararat Synapse - TCP/IP Lib.
Synaser a prace s nim
[*] Erik Salaj, Winsoft <winsoft(zv)netkosice.sk> - 13.8.2004 18:46:00
> Co kdyby jste si vse nejprve ujasnili a pak rozpoutali obdobny flame ale
trochu vyfutrovany
> vedomostmi a ne jen domnenkami ??
a teraz som este nasiel nieco dalsie, tiez celkom zaujimave
ohladom protokolov:
http://biomoby.org/S-MOBY/doc/TechAssessment/Protocols.html
====================================
Synchronicity
While the web is asynchronous, HTTP is a synchronous protocol.
====================================
Erik
Hyperthreading - padani aplikace
[*] Lukas Gebauer <gebylist(zv)mlp(tec)cz> - 13.8.2004 11:40:48
> vim, ze ted mate plno prace se Synaserem, ale mohl byste mi nekdo,
> prosim, poradit proc se mi aplikace nechce spoustet na nekterych
> novych masinach, kde je vic procesoru nebo kde je povoleny
> hyperthreading. Pri pokusu spustit aplikaci windows jen vyhodi hlasku
> "Faulting application...". Program se musi spustit v rezimu
> kompatibility s W95-98 a pak je vse OK.
Jsi si jistym, ze zadna z tech tebou pouzitych komponent nepouziva
interne treba thready?
V pripade multithreadoveho programovani opravdu mnoho lidi dela
zavazne chyby, ktere se na jednoprocesorovych strojich neprojevi!
Jakmile to ale zkusis na multiprocesorech, pripadne na
hyperthreadingu, tyto chyby vyskaci jak pupence pri nestovicich.
Je tedy mozne, ze nejakou takovouto zavaznou chybu obsahuje nejaka
tebou pouzita komponenta (nebo tvuj kod, pouzivas-li thready), a
proto ti to pada.
Nastaveni kompatibility na W9x v tomto pripade presne pomaha, protoze
tyto systemy nepodporovaly viceprocesorove stroje, a tak velmi
pravdepodobne nastaveni teto kompatibility zajisti, ze vsechny
thready v apliakci bezi na stejnem procesoru. tedy, apliakce se
tvari, jako kdyby bezela jen na jednorpocesorovem stroji.
--
Lukas Gebauer.
E-mail: gebauerl(zv)mlp(tec)cz
http://www.ararat(tec)cz/synapse/ - Ararat Synapse - TCP/IP Lib.
Synaser a prace s nim
[*] Jiri Foldyna <jiri.f(zv)avizo(tec)cz> - 13.8.2004 12:52:56
> Asynchronni zpracovani a casovani se vzajemne nevylucuji. Stejne jako
> ja mohu napriklad pracovat, zatimco cekam na udalost, ze nekdo zavola
> telefonem, a zaroven mam zapnuty budik a ten mi zapipa, ze uz dlouho
> nikdo nevolal, tak pocitac to take dokaze. Asynchronne.
Asynchronni zpracovani a casovani se navzajem vylucuje. Jakmile do
komunikace zavedes casove znacky, znamena to, komuikace prestane byt
asynchronni. Je pritom jedno, jestli za casove znacky povazujes hodinovy
signal UARTu, nebo pipnuti budiku.
> > Tak jeste jednou - programovani asynchronni komunikace je podstatne
> > jednodussi nez programovani synchronni komunikace.
>
> Synchronni komunikace je hlavne neco zcela jineho nez zeserializovana
> asynchronni komunikace. Vazne tedy nevim, o cem mluvis.
Z toho si nic nedelej, to je vzajemne :-)))
> Ty si koukam pletes pojmy. Asynchronni seriova komunikace zustane
> stale asynchronni, at s tim udelas cokoliv. Ze si to v aplikacni
> vrstve upravis a zeserializujes, aby se ti protokol lepe programoval,
> to je tvoje vec. Naopak slozitejsi je pomoci udalosti spravne udelat
> protokol. Pro cloveka, ktery umi programovat, neni problem udelat
> dlouhodobe fungujici asynchronni komunikaci zalozenou na udalostech,
> zrovna jako zalozenou na blokovani.
> A znovu opakuji - to stale neni a nikdy nebude zadna synchronni
> komunikace.
Pokud uvazujes v intencich 1 zprava = 1 znak precteny nebo odeslany z/do
UARTu, pak mas pravdu. Pokud potrebujes poslat obousmerne vetsi mnozstvi
znaku, na jejichz casove posloupnosti zavisi smysl komunikace, pak pravdu
nemas.
Preji hezky vikend.
Zdravim
Jiri Foldyna
Synaser a prace s nim
[*] Erik Salaj, Winsoft <winsoft(zv)netkosice.sk> - 13.8.2004 18:21:54
> Co kdyby jste si vse nejprve ujasnili a pak rozpoutali obdobny flame ale
trochu vyfutrovany
> vedomostmi a ne jen domnenkami ??
tak skusme, na webe
http://whatis.techtarget.com/definition/0,,sid9_gci213080,00.html
som nasiel tuto definiciu:
==================================================:
synchronous
In general, synchronous (pronounced SIHN-kro-nuhs, from Greek syn-, meaning
"with," and chronos, meaning "time") is an adjective describing objects or
events that are coordinated in time. In information technology, the term has
several different usages.
1) In telecommunication signaling within a network or between networks,
synchronous signals are those that occur at the same clock rate when all
clocks are based on a single reference clock. (plesiochronous signals are
almost but not quite in synchronization and asynchronous signals are those
that run from different clocks or at a different transition rate.)
2) In program-to-program communication, synchronous communication requires
that each end of an exchange of communication respond in turn without
initiating a new communication. A typical activity that might use a
synchronous protocol would be a transmission of files from one point to
another. As each transmission is received, a response is returned indicating
success or the need to resend. Each successive transmission of data requires
a response to the previous transmission before a new one can be initiated.
Synchronous program communication is contrasted with asynchronous program
communication.
==================================================:
> Jen maly priklad - je HTTP protokol synchronni, nebo asynchronni, kdyz je
jednou prenasen
> po Ethernetu a podruhe po RS232 ??? Kdo to vi odpovi :-)))
z uvedenej definicie mi vychadza, ze je to synchronny protokol (i ked snad
trocha specificky)
Celkom dobre informacie ohladom socket programovania a kedy pouzit blocking
a kedy neblocking operacie su na
http://tangentsoft.net/wskfaq/articles/io-strategies.html .
V podstate zhrnutie tychto pristupov je tam v bode 12:
=======================
Heuristic 12: Blocking sockets are simpler, non-blocking sockets are more
powerful.
This heuristic is almost a restatement of all the above material. It just
bears repeating that, while blocking sockets are attractive for their
simplicity, you may find that their disadvantages eventually force you to
redesign your program to use some form of non-blocking sockets. This is
especially true if your program will be supporting more than one socket.
(Virtuall all server programs fall into this category.) The only reasonable
way to use multiple blocking sockets at once is to use threads, but with
non-blocking sockets, you have many more design options.
=======================
Erik
Synaser a prace s nim
[*] Petr Fejfar <development(zv)callnet(tec)cz> - 13.8.2004 18:19:53
Lukas Gebauer wrote:
> non- blocking rezimu. Tedy, mam moznost uplne stejne reagovat na
> vnorene packety jako u non-blocking rezimu.
Data flow mas stejny, ale co control flow?
U non-blockling rezimu vyvolas event a tim spustis kod
pro zpracovani doslych dat pres standardni
rozhrani vrstvy. Ta si zjisti, jestli uz prijala packet
a zpracuje ho beznym zpusobem.
Ovsem v pripade blocking rezimu, i kdyz rozeznas v datech vnoreny packet
uvnitr blokujici logiky operace receive, jak predas rizeni na rozhrani
vrstvy k dalsimu zpracovani?
Ocekaval bych, ze u blocking rezimu je standardni rozhrani tvoreno nejakou
blokujici
funkci RecvXXXX, ne? Takze dalsi rozhrani pro spousteni eventu?
pf
Synaser a prace s nim
[*] Erik Salaj, Winsoft <winsoft(zv)netkosice.sk> - 13.8.2004 18:07:51
Automaticka zmena verze "build" pred kompilaci ote
[*] Karel Kral <kralkonf(zv)purus(tec)cz> - 13.8.2004 17:47:49
Tohle dela FreeVCS a jsou od toho zdrojaky, tak se staci podivat, jak to
delaji tam. Aha, ted si vzpominam, ze tam vytvareji asi vlastni resource
soubor.
Martin Pavera napsal(a):
> Zdravim,
>
> chtel bych si vytvoril vlastniho "experta" do Delphi 5 prof., ktery by mi
> automaticky pred kompilaci zvysil verzi projektu - cislo "build" (volba
> Project / Options / Version Info).
>
> Zjistil jsem, ze Delphi uklada verzi do souboru *.DOF. Tam se to da zmenit
> (sekce [Version Info] a [Version Info Keys]) nebo i pridavat dalsi
> informace o verzi EXE souboru. Dale Dephi stejne udaje uklada do souboru
> zdroju *.RES. Problem je v tom, ze Delphi kompiluji do *.EXE informace ze
> souboru *.RES a ten ja nedokazu zmenit.... Kdyz zase zmenim soubor *.DOF,
> tak se zmeny nedostanou do souboru *.RES. Musel bych ho smazat a Delphi by
> ho zase podle informaci ze souboru *.DOF znovu vytvorily.
>
> Pred pul rokem se v konferenci neco podobneho resilo - datum a cas
> kompilace. Tento priklad jsem chtel pouzit a do neho si doprogramovat
> zvysovani verze projektu - cislo "build".
>
> Pujde naprogramovat zmena verze "build" pred kompilaci otevreneho projektu v
> Delphi?
> Nebo existuje nejaky "expert"?
>
> Dik
> Martin Pavera
>
>
>
>
>
>
--
______________________________________________________
Karel Kral, vedouci odd. IT / IT manager
Purus, s.r.o., Cezavy 627, 664 56 Blucina, CZ
Tel: 547 235 000, 602 552 432, Fax: 547 231 203
E-Mail: mailto:kral(zv)purus(tec)cz, WWW: http://www.purus(tec)cz
______________________________________________________
Hledani v ListView WAS: Mnoho polozek v TListView
[*] Jiri Cincura <diskuze(zv)cincura(tec)net> - 13.8.2004 17:47:48
Martin Cajbik wrote:
> Prejdenie 40 tis zaznamov by malo byt aj na slabsom stroji velmi
> rychle.
No na 256MB RAM 1,13GHz Celeron na NB to trva 3-4s. :-(
--
Jiri Cincura
e-mail: mailto:jiri(zv)cincura.net; mailto:xcincura(zv)informatics.muni(tec)cz
ICQ#: 314711544
web: http://www.cincura.net; http://photo.cincura.net
Hledani v ListView WAS: Mnoho polozek v TListView
[*] Jiri Cincura <diskuze(zv)cincura(tec)net> - 13.8.2004 17:39:47
Martin Cajbik wrote:
> Prejdenie 40 tis zaznamov by malo byt aj na slabsom stroji velmi
> rychle.
> Skor by som hladal problem v naslednom spracovani udajov (neviem co
> presne obnasa v tomto pripade "vybrat vsechny Caption"). Pokial by si
Item[Cnt].Caption jsem myslel, ale to je jedno
> to prechadzanie chcel predsa len o nieco urychlit, mozes pouzit nieco
> taketo (v tomto pripade sa Caption ulozi do TMemo).
To s tim SelCount me nenapadlo, ale problem je pokud je vybrana prvni stovka
a pak posledni tisicovka.
Ale i tak je to zlepseni (pokud to nejni nejaky blby pripad).
Ale nevedel by stejne nekdo, jak na to?
--
Jiri Cincura
e-mail: mailto:jiri(zv)cincura.net; mailto:xcincura(zv)informatics.muni(tec)cz
ICQ#: 314711544
web: http://www.cincura.net; http://photo.cincura.net
Problem s Database Desktop
[*] Karel Halamasek <compro(zv)vol(tec)cz> - 13.8.2004 17:31:46
Ja jinem PC se stejnou konfiguraci HW to nedela. Stalo se mi to jiz
nekolikrat, ze to takto blbne.>> Zdravim vsechny.
>>
>> Vyskytl se mi problem u Database Desktop, ktery je s Delphi 5
>> Profesional.
>> Po instalaci programu jde normalne spustit, vse pracuje OK, ale pri
>> zavreni vyskoci okno se zpravou "Unexpected: General Protection
>> Violation". Stalo se to na PC s instalaci Windows Milenium i s
>> Windows 2000. Vzdy se jednalo o cistou instalaci. Nemate nekdo napad,
>> kde je problem?
>>
>> Diky, Karel Halamasek
>
> A jinde je to OK?
>
--
Tato zprava byla vytvorena revolucnim postovnim klientem, ktery je
standardni soucasti weboveho prohlizece Opera. Vice informaci najdete na
adrese http://www.opera.com/m2/
TListView - vymena pozice tazenim mysi
[*] Martin Cajbik <cajbik(zv)sct.sk> - 13.8.2004 17:09:44
Len doplnim:
Na zistenie polozky na urcitej pozicii sluzi metoda GetItemAt.
Vymenu budes musiet vykonat vytvorenim novej polozky cez Add, priradenim
povodneho obsahu cez Assign a zmazanim povodnej polozky (teda ak
nepouzivas virtualny mod).
Martin Cajbik
Jiri Cincura wrote:
> MUDr.Patrik Valenta wrote:
>
>>zdravim konferenci, nema nekdo please ukazku zmeny poradi zaznamu v
>>ListView tazenim mouse? V 1001 triku je ukazka pouze pro ListBox - ta
>>ale nejde aplikovat na ListView.
>>
>>Nebo hledam komponentu like vicesloupcovy ListBox
>>
>>diky valik
>
>
> Ahoj,
> nenapisu ti presny navod, ale postup, jak bych ne to sel.
>
> V OnDragDrop mas Sender typu TListItem, vis ktera to je. Potom mas X,Y takze
> by se snad dalo najit (vyska polozky vs. Y, X je ti celkem jedno), na ktere
> je to upustene. Potom uz je staci jen vymenit (treba pres Insert).
>
> No a na MouseDown/Up das Begin/EndDrag. A na DragOver Accept := Sender is
> TListItem (nebo pro testovani True natvrdo)
Hledani v ListView WAS: Mnoho polozek v TListView
[*] Martin Cajbik <cajbik(zv)sct.sk> - 13.8.2004 17:03:43
Prejdenie 40 tis zaznamov by malo byt aj na slabsom stroji velmi rychle.
Skor by som hladal problem v naslednom spracovani udajov (neviem co
presne obnasa v tomto pripade "vybrat vsechny Caption"). Pokial by si to
prechadzanie chcel predsa len o nieco urychlit, mozes pouzit nieco
taketo (v tomto pripade sa Caption ulozi do TMemo).
var
i, j: Integer;
begin
Memo1.Lines.BeginUpdate;
j:= ListView1.SelCount;
for i:= ListView1.Selected.Index to ListView1.Items.Count-1 do
if ListView1.Items[i].Selected then
begin
Memo1.Lines.Add(ListView1.Items[i].Caption);
Dec(j);
if j = 0 then
break;
end;
Memo1.Lines.EndUpdate;
Martin Cajbik
Jiri Cincura wrote:
> Ahoj,
> chtel bych jeste nevazat na predchozi dotaz. Potrebuji v LV po kliknuti na
> TButton vybrat vsechny Caption vsech Selected polozek. LV mam ve virtualnim
> modu. Problem je v tom, ze pri 40 tis. zaznamech to "chvili" trva (je to
> vlastne linearni prochazeni). Chtel jsem udelat pomocnou strukturu, kde bych
> si drzel jen ty Selected, ale mam MultiSelect na True a kdyz jich vyberu vic
> (pres Shift+klik) tak to jaksi nezachyti vsechny. Vedel by nekdo, jak z teto
> prekerni situace?
Problem s Database Desktop
[*] Jiri Cincura <diskuze(zv)cincura(tec)net> - 13.8.2004 17:01:42
Karel Halamasek wrote:
> Zdravim vsechny.
>
> Vyskytl se mi problem u Database Desktop, ktery je s Delphi 5
> Profesional.
> Po instalaci programu jde normalne spustit, vse pracuje OK, ale pri
> zavreni vyskoci okno se zpravou "Unexpected: General Protection
> Violation". Stalo se to na PC s instalaci Windows Milenium i s
> Windows 2000. Vzdy se jednalo o cistou instalaci. Nemate nekdo napad,
> kde je problem?
>
> Diky, Karel Halamasek
A jinde je to OK?
--
Jiri Cincura
e-mail: mailto:jiri(zv)cincura.net; mailto:xcincura(zv)informatics.muni(tec)cz
ICQ#: 314711544
web: http://www.cincura.net; http://photo.cincura.net
Synaser a prace s nim
[*] Lukas Gebauer <gebylist(zv)mlp(tec)cz> - 13.8.2004 16:07:34
> Tak mi vysvetli, jak prerusis blocking operaci a predas rizeni aplikaci,
> aby reagovala na obsah vlozeneho packetu, aniz bys vyvolal event.
> (ty pakety se vnoruji proto, ze neni cas cekat na jejich dovysilani)
No, ono zalezi na tom, kde je ta operace blokujici. Ja napriklad nikdy
nevolam API operaci na cteni dat tak, aby byla blokujici. Vzdy ctu jen
data, ktera prokazatelne existuji uz prectena v systemovych bufferech.
Tim se mi beh nikdy nezablokuje na operaci cteni z API.
Model je tady takovy:
Aplikace zadava pozadavek na precteni dejme tomu kilobajtu dat. Ja ted
periodicky ctu data ze systemovych bufferu, dokud neobdrzim potrebne
mnozstvi dat. Pokud pozadovana data nejsou v bufferech, jednoduse se
uspim a necham se driverem probudit az kdyz zase nejaka nova data
prijdou. Jakmile mam vsechna pozadovana data prectena, ukoncim beh me
funkce, cimz vratim rizeni volajici aplikaci.
Diky tomu se cela operace z pohledu volajiciho programu chova jako
blokujici. Nicmene fyzicky jsou data nacitana postupne po kouskach, po
uplne stejnych kouskach, ktere jsou ti predavany v pripade eventu u non-
blocking rezimu. Tedy, mam moznost uplne stejne reagovat na vnorene
packety jako u non-blocking rezimu.
--
Lukas Gebauer.
E-mail: gebauerl(zv)mlp(tec)cz
WEB: http://www.ararat(tec)cz/synapse - Synapse Delphi and Kylix TCP/IP
Library
TListView - vymena pozice tazenim mysi
[*] Jiri Cincura <diskuze(zv)cincura(tec)net> - 13.8.2004 16:45:40
MUDr.Patrik Valenta wrote:
> zdravim konferenci, nema nekdo please ukazku zmeny poradi zaznamu v
> ListView tazenim mouse? V 1001 triku je ukazka pouze pro ListBox - ta
> ale nejde aplikovat na ListView.
>
> Nebo hledam komponentu like vicesloupcovy ListBox
>
> diky valik
Ahoj,
nenapisu ti presny navod, ale postup, jak bych ne to sel.
V OnDragDrop mas Sender typu TListItem, vis ktera to je. Potom mas X,Y takze
by se snad dalo najit (vyska polozky vs. Y, X je ti celkem jedno), na ktere
je to upustene. Potom uz je staci jen vymenit (treba pres Insert).
No a na MouseDown/Up das Begin/EndDrag. A na DragOver Accept := Sender is
TListItem (nebo pro testovani True natvrdo)
--
Jiri Cincura
e-mail: mailto:jiri(zv)cincura.net; mailto:xcincura(zv)informatics.muni(tec)cz
ICQ#: 314711544
web: http://www.cincura.net; http://photo.cincura.net
Problem s Database Desktop
[*] Karel Halamasek <compro(zv)vol(tec)cz> - 13.8.2004 16:35:38
Zdravim vsechny.
Vyskytl se mi problem u Database Desktop, ktery je s Delphi 5 Profesional.
Po instalaci programu jde normalne spustit, vse pracuje OK, ale pri
zavreni vyskoci okno se zpravou "Unexpected: General Protection
Violation". Stalo se to na PC s instalaci Windows Milenium i s Windows
2000. Vzdy se jednalo o cistou instalaci. Nemate nekdo napad, kde je
problem?
Diky, Karel Halamasek
Synaser a prace s nim
[*] Petr Fejfar <development(zv)callnet(tec)cz> - 13.8.2004 10:40:41
Lukas Gebauer wrote:
> A ted ta sladka pointa na zaver... v pripade Synaseru je ten overhead
> velmi maly, v praxi nekolik malo instrukci za vterinu, nebo dokonce i
> za nekolik vterin!
V okamziku, kdy ta nevyzadana data nebudou mit povahu prosteho indikatoru
jako napr. RING, tak je budes muset prinejmensim strkat nekam do fronty
a zase je z ni tahat. No a to bude o trochu vice nez malo instrukci, ale
budiz ;-)
> Me to prijde jako velmi dobra cena za mnohem prehlednejsi kod (a
> tudiz i mnohem snaze pochopitelnejsi a udrzovatelnejsi kod).
Jak psal uz PZ, ani pri rucni transkripci protokolu te nic nenuti doprasit
non-blocking implementaci tak, ze bude mene prehledna.
Jen to chce trochu teoreticke prupravy a mene intuitivnich postupu ;-)
pf
Thread safe volani
[*] Jiri Cincura <diskuze(zv)cincura(tec)net> - 13.8.2004 12:36:54
Tomas Bradle wrote:
> Ja bych jeste doplnil, ze existuje TThreadList, ktery uz ma v sobe
> zamykani pomoci kriticke sekce.
Ano, to znam, jen my slo o to, jestli na to muzu sahat. Pokud bych to chtel,
nejakou synchronizaci si tam udelam. :)
--
Jiri Cincura
e-mail: mailto:jiri(zv)cincura.net; mailto:xcincura(zv)informatics.muni(tec)cz
ICQ#: 314711544
web: http://www.cincura.net; http://photo.cincura.net
Hledani v ListView WAS: Mnoho polozek v TListView
[*] Jiri Cincura <diskuze(zv)cincura(tec)net> - 13.8.2004 16:23:36
Ahoj,
chtel bych jeste nevazat na predchozi dotaz. Potrebuji v LV po kliknuti na
TButton vybrat vsechny Caption vsech Selected polozek. LV mam ve virtualnim
modu. Problem je v tom, ze pri 40 tis. zaznamech to "chvili" trva (je to
vlastne linearni prochazeni). Chtel jsem udelat pomocnou strukturu, kde bych
si drzel jen ty Selected, ale mam MultiSelect na True a kdyz jich vyberu vic
(pres Shift+klik) tak to jaksi nezachyti vsechny. Vedel by nekdo, jak z teto
prekerni situace?
--
Jiri Cincura
e-mail: mailto:jiri(zv)cincura.net; mailto:xcincura(zv)informatics.muni(tec)cz
ICQ#: 314711544
web: http://www.cincura.net; http://photo.cincura.net
Komponenta na vypalovani CD
[*] Jiri Cincura <diskuze(zv)cincura(tec)net> - 13.8.2004 16:19:35
David Klodner wrote:
> Zdravim,
>
> potreboval bych ze sve aplikace vypalovat CD. Zatim jsem to nikdy
> nedelal, ani si nepamatuju, ze by se to tady nekdy resilo. Nevite
> nekdo o nejake komponente na vypalovani?
>
NAPAD:
A co si uvarit cdrtools (cdrecord) jako DLL (nebo jako exac) a dat si to k
app? Vysledek nejisty, je to jen muj napad.
--
Jiri Cincura
e-mail: mailto:jiri(zv)cincura.net; mailto:xcincura(zv)informatics.muni(tec)cz
ICQ#: 314711544
web: http://www.cincura.net; http://photo.cincura.net
Komponenta na vypalovani CD
[*] Vaclav Krmela <krmela(zv)ustinadorlici(tec)cz> - 13.8.2004 15:25:30
> From: David Klodner
>
> potreboval bych ze sve aplikace vypalovat CD.
> Nevite nekdo o nejake komponente na vypalovani?
V prostredi Windows XP lze pouzit rozhrani ICDBurn:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc
/platform/shell/reference/ifaces/icdburn/icdburn.asp
Pokud chces toto rozhrani zapouzdrene do komponenty, najdes v balicku
komponent SineaVCL komponentu TCDBurnerSinea. Je to v souboru SiVcl6.zip
na strance http://www.sinea(tec)cz/default.asp?page=50
Obecne ASPI rozhrani na vsech verzich Windows pouziva komponenta Magic
CD Burner firmy Binary Magics, ta je ale placena.
http://www.binarymagics.com/site/magic_cddvd_burner_vcl.html
Pokud je nainstalovane NERO, lze pouzit jeho Nero API nebo commandline
verzi.
Vaclav Krmela
Komponenta na vypalovani CD
[*] David Klodner <d.klodner(zv)sofico(tec)cz> - 13.8.2004 14:49:25
Zdravim,
potreboval bych ze sve aplikace vypalovat CD. Zatim jsem to nikdy
nedelal, ani si nepamatuju, ze by se to tady nekdy resilo.
Nevite nekdo o nejake komponente na vypalovani?
David Klodner
D5, winXP
Firebird: StoredProc nebo View
[*] Jiri Fait <develop(zv)lmss(tec)cz> - 13.8.2004 14:13:20
Ahoj
Resim, mozna zbytecne, problem, zda je lepsi pouzivat, tam kde to jde, View
nebo vsude pouzivat StoredProc.
Je nejaky vykonnostni rozdil v techto pristupech k datum?
Je rozdil v zatizeni serveru?
Jedna se o databazi na Firebird 1.5
Dekuji
Automaticka zmena verze "build" pred kompilaci ote
[*] dphi_forum(zv)proces.sk - 13.8.2004 14:07:14
no nedavno sme nieco take robili vo firme. RES subor vytvoris skompilovanim
RC suboru. Vytvor si novy RC subor s nazvom projektu, vloz do neho prilohu
a skompiluj prikazom "brcc32 nazov.rc"
Stano
LANGUAGE LANG_SLOVAK, SUBLANG_DEFAULT
#pragma code_page(1250)
MAINICON ICON "mainicon.ico"
1 VERSIONINFO
FILEVERSION 1,1,161,79
PRODUCTVERSION 1,1,161,79
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x4L
FILETYPE 0x1L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "041B04E2"
BEGIN
VALUE "CompanyName", "ProCes\0"
VALUE "FileDescription", "Wisp.exe\0"
VALUE "FileVersion", "1.1.161.79\0"
VALUE "InternalName", "Wisp.exe\0"
VALUE "ProductName", "WISP\0"
VALUE "ProductVersion", "1.1.161.79\0"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x41b, 1250
END
END
Synaser a prace s nim
[*] Jiri Foldyna <jiri.f(zv)avizo(tec)cz> - 13.8.2004 13:51:10
> To pochopitelne neni pravda, co mi tu vypravis. Ze v ramci asynchronni
> komunikace probehne neco v ramci urciteho casoveho sledu, to rozhodne
> neznamena, ze se jedna o komunikaci synchronni. Jak jsi na to prosimte
> vubec prisel?
> Rozhodne s tebou nesouhlasim. O tom asynchronnost a synchronnost
> komunikace rozhodne neni.
>
> Petr Zahradnik, pocitacovy expert
Ja to vzdavam.
Zdravim
Jiri Foldyna
Synaser a prace s nim
[*] Petr Zahradnik <clexpert(zv)clexpert(tec)cz> - 13.8.2004 13:45:09
Puvodni zprava ze dne 13.8.2004:
>> Asynchronni zpracovani a casovani se vzajemne nevylucuji. Stejne jako
>> ja mohu napriklad pracovat, zatimco cekam na udalost, ze nekdo zavola
>> telefonem, a zaroven mam zapnuty budik a ten mi zapipa, ze uz dlouho
>> nikdo nevolal, tak pocitac to take dokaze. Asynchronne.
> Asynchronni zpracovani a casovani se navzajem vylucuje. Jakmile do
> komunikace zavedes casove znacky, znamena to, komuikace prestane byt
> asynchronni. Je pritom jedno, jestli za casove znacky povazujes
> hodinovy signal UARTu, nebo pipnuti budiku.
To pochopitelne neni pravda, co mi tu vypravis. Ze v ramci asynchronni
komunikace probehne neco v ramci urciteho casoveho sledu, to rozhodne
neznamena, ze se jedna o komunikaci synchronni. Jak jsi na to prosimte
vubec prisel?
>> A znovu opakuji - to stale neni a nikdy nebude zadna synchronni
>> komunikace.
> Pokud uvazujes v intencich 1 zprava = 1 znak precteny nebo odeslany
> z/do UARTu, pak mas pravdu. Pokud potrebujes poslat obousmerne vetsi
> mnozstvi znaku, na jejichz casove posloupnosti zavisi smysl
> komunikace, pak pravdu nemas.
Rozhodne s tebou nesouhlasim. O tom asynchronnost a synchronnost
komunikace rozhodne neni.
Petr Zahradnik, pocitacovy expert
==========================================================
Petr Zahradnik, Computer Laboratory
web: http://www.clexpert(tec)cz, e-mail: clexpert(zv)clexpert(tec)cz
==========================================================
Synaser a prace s nim
[*] Erik Salaj, Winsoft <winsoft(zv)netkosice.sk> - 13.8.2004 13:02:58
> Skutek utek ? Lamani chleba ? Hezke fraze... To, ze ti nejsou jasne
> evidentni veci neznamena, ze ti je nekdo musi vysvetlovat, aby ti dokazal,
> ze se mylis.
ale da to chapat aj tak, ze to jednoducho nevies vysvelit
a vyhovaras sa. Tvoje filozoficke uvahy o svete Windows
su mi na ... . Ukaz mi radsej riesenie, ak ho poznas.
A porovnajme rozne riesenia.
>To muselo dat prace, vymyslet takovou blbost...
no vidis a ja urobil tu pracu aby som ukazal, ze udalosti
maju svoj vyznam (nielen pri seriovej komunikacii ale
aj inde). Nefilozofoval som o "nerealnom" svete Windows
ale napisal kus kodu a mozme porovnat. A sam si
prisiel na to (gratulujem), ze tento "alternativny" sposob
je v tomto pripade blbost.
Erik
spousteni aplikace pres mail
[*] Marek <marek.rakowski(zv)trz(tec)cz> - 13.8.2004 13:23:07
ahoj,
uzivatel ma na disku ulozenou aplikaci a ja ji potrebuji spustit s
parametrem.
da se nejak poslat v mailu link s parametrem?
diky
Marek
Synaser a prace s nim
[*] Jiri Foldyna <jiri.f(zv)avizo(tec)cz> - 13.8.2004 13:17:05
> ale da to chapat aj tak, ze to jednoducho nevies vysvelit
> a vyhovaras sa. Tvoje filozoficke uvahy o svete Windows
> su mi na ... . Ukaz mi radsej riesenie, ak ho poznas.
> A porovnajme rozne riesenia.
Je mi celkem jedno, jak si to vysvetlis :-)) Pokud chces poradit, zeptej se
na konkretni vec, kdyz budu umet, poradim. Pokud potrebujes vyresit
konkretni problem, sem s nim, zkusime se dohodnout na cene a terminu. Pokud
chces vest akademicke diskuse, najdi si nekoho jineho.
> >To muselo dat prace, vymyslet takovou blbost...
>
> no vidis a ja urobil tu pracu aby som ukazal, ze udalosti
> maju svoj vyznam (nielen pri seriovej komunikacii ale
> aj inde). Nefilozofoval som o "nerealnom" svete Windows
> ale napisal kus kodu a mozme porovnat. A sam si
> prisiel na to (gratulujem), ze tento "alternativny" sposob
> je v tomto pripade blbost.
Velmi cenny prispevek, zejmena k tematu Synaser a prace s nim :-))
Preji prijemny vikend.
Zdravim
Jiri Foldyna
Thread safe volani
[*] Tomas Bradle <t.bradle(zv)sanet(tec)cz> - 13.8.2004 11:56:49
Ja bych jeste doplnil, ze existuje TThreadList, ktery uz ma v sobe zamykani
pomoci kriticke sekce.
Tomas Bradle
t.bradle(zv)worldonline(tec)cz
----- Original Message -----
From: "Ludvik Vlcek" <l.vlcek(zv)noel-plus(tec)cz>
To: <delphi-l(zv)clexpert(tec)cz>
Sent: Friday, August 13, 2004 7:38 AM
Subject: Re: Thread safe volani
> Jiri Cincura napsal(a):
> > Ahoj,
> > mam takovy dotaz. Mam ve Form1 promennou typu TList. Tu naplnuji
pomoci
> > threadu (cteni ze souboru - 40tis. zaznamu po asi 1kB). Pokud volam Add,
je
> > nutne to obalit do Synchronize? Nikdo jiny v te chvili s tim delat
nebude -
> > Form je disabled, cekam na dokonceni pomoci udalosti, v OnTerminate to
opet
> > povolim.
> >
> No, pokud je to tak jak pises, tak ne. Synchronize se pouziva pro
> manipulaci v vizualnima komponentama a je v zasade urceno k tomu, kdyz
> napr. vlakno (jine nez hlavni) potrebuje cosi vypsat na Form (zmenit
> nejaky capture u labelu, nebo tak neco), tak toto realizuje prave pomoci
> Synchronize. Coz TList (pokud vim) neni.
> A kdyz zajistis, ze s obsahem dane promenne nebude nikdo jiny
> manipulovat, dokud vlakno neukonci svoji bohulibou cinnost. Pokud by
> hrozilo, ze bude (treba) jine vlakno (napr. hlavni vlakno) chtit
> manipulovat s obsahem te promenne, tak pouzij kriticke sekce....
>
> good luck
>
>
Prava na zaznamy
[*] David Fajfr <davidfajfr(zv)seznam(tec)cz> - 13.8.2004 10:48:42
> Zdravim,
> potrebuji poradit s pravy (select) nad radky tabulky (v Firebird 1 - 1.5).
> Kazdy radek obsahuje identifikator skupiny (prefix). Uzivatele maji
> nastaveno, ktere skupiny mohou videt. Uzivatel na urovni aplikace neni
> uzivatel na urovni databaze, tj. vice uzivatelu v aplikaci muze byt jeden
> uzivatel v databazi. Uzivatele v aplikaci jsou ulozeni v tabulce
Uzivatele,
> PK je Id_uzivatele. Problem chci vyresit nejakym objektem na urovni
databaze
> (tj. nechci v aplikaci vytvaret kontrukce typu SELECT ... WHERE prefix IN
> (...)).
Nejlepsi volbu asi stejne budes mit vytvaret dotazy v aplikaci.
Kdyz si po pripojeni databaze nactes prefixy, na ktere ma uzivatel narok,
bude pak celkem jednoduche tvorit selecty
SELECT ... FROM ... WHERE (PREFIX IN (pref1, pref2...)) AND (...dalsi
podminky...)
Nebo mas nejaky specialni duvod, proc to chces resit na DB urovni?
Thread safe volani
[*] Ludvik Vlcek <l.vlcek(zv)noel-plus(tec)cz> - 13.8.2004 07:38:26
Jiri Cincura napsal(a):
> Ahoj,
> mam takovy dotaz. Mam ve Form1 promennou typu TList. Tu naplnuji pomoci
> threadu (cteni ze souboru - 40tis. zaznamu po asi 1kB). Pokud volam Add, je
> nutne to obalit do Synchronize? Nikdo jiny v te chvili s tim delat nebude -
> Form je disabled, cekam na dokonceni pomoci udalosti, v OnTerminate to opet
> povolim.
>
No, pokud je to tak jak pises, tak ne. Synchronize se pouziva pro
manipulaci v vizualnima komponentama a je v zasade urceno k tomu, kdyz
napr. vlakno (jine nez hlavni) potrebuje cosi vypsat na Form (zmenit
nejaky capture u labelu, nebo tak neco), tak toto realizuje prave pomoci
Synchronize. Coz TList (pokud vim) neni.
A kdyz zajistis, ze s obsahem dane promenne nebude nikdo jiny
manipulovat, dokud vlakno neukonci svoji bohulibou cinnost. Pokud by
hrozilo, ze bude (treba) jine vlakno (napr. hlavni vlakno) chtit
manipulovat s obsahem te promenne, tak pouzij kriticke sekce....
good luck
--
L.V.
jezevec
Synaser a prace s nim
[*] Petr Zahradnik <clexpert(zv)clexpert(tec)cz> - 13.8.2004 01:53:56
Puvodni zprava ze dne 13.8.2004:
> Prvni casti chci rict, ze nedodrzeni casovani protokolu muze byt
> kvalifikovano jako chybovy stav. Pokud budes pouze reagovat na
> udalosti (asynchronne, bez casovych udaju), na chybu neprijdes.
Asynchronni zpracovani a casovani se vzajemne nevylucuji. Stejne jako
ja mohu napriklad pracovat, zatimco cekam na udalost, ze nekdo zavola
telefonem, a zaroven mam zapnuty budik a ten mi zapipa, ze uz dlouho
nikdo nevolal, tak pocitac to take dokaze. Asynchronne.
> Druhou casti chci rict to, ze kdyz je nekdo tak tupej, ze umi
> uvazovat pouze v intencich obsluhy udalosti, tak se nema sr..t do
> aplikaci vyzadujicich vysokou spolehlivost.
Ehm. Bavime se tu o komunikaci. Takze chces tim rici, ze kdo
asynchronni komunikaci ovlada asynchronne a pouziva tedy napriklad
komponenty Async Professional, je takovej dement a nema se s...t do
toho, co ty udelas se SynaSer? Nooo... to je odvazne tvrzeni.
> Treti casti chci rict to, ze je vyhodne zvladnout obtiznou
> problematiku, protoze pak mi jednodussi problemy daji mene prace.
Jakou obtiznou problematiku? Co zase to ma s problematikou?
> Nikoli, ti by pri vyvoji aplikaci tohoto typu asi nebyli zvlastnim
> prinosem. Chci tim rict, ze poskladat dohromady udalostma rizenou
> aplikaci z Delphi komponent nevyzaduje zadnou zvlastni kvalifikaci.
Obavam se, ze poskladani komponent s jakymisi udalostmi je neco zcela
odlisneho od asynchronni komunikace. Ne nekdo umi udelat udalost
tlacitka, to nema s tematem nic spolecneho.
> Tak jeste jednou - programovani asynchronni komunikace je podstatne
> jednodussi nez programovani synchronni komunikace.
Synchronni komunikace je hlavne neco zcela jineho nez zeserializovana
asynchronni komunikace. Vazne tedy nevim, o cem mluvis.
> Kdo je schopen napsat a odladit dlouhodobe fungujici synchronni
> komunikaci, zvladne levou zadni i trivialni ulohy typu vytocit cislo
> na modemu apod. Opacne to rozhodne neplati. A pro usnadneni TEHLE
> prace se SYNASER naramne hodi.
Ty si koukam pletes pojmy. Asynchronni seriova komunikace zustane
stale asynchronni, at s tim udelas cokoliv. Ze si to v aplikacni
vrstve upravis a zeserializujes, aby se ti protokol lepe programoval,
to je tvoje vec. Naopak slozitejsi je pomoci udalosti spravne udelat
protokol. Pro cloveka, ktery umi programovat, neni problem udelat
dlouhodobe fungujici asynchronni komunikaci zalozenou na udalostech,
zrovna jako zalozenou na blokovani.
A znovu opakuji - to stale neni a nikdy nebude zadna synchronni
komunikace.
Petr Zahradnik, pocitacovy expert
==========================================================
Petr Zahradnik, Computer Laboratory
web: http://www.clexpert(tec)cz, e-mail: clexpert(zv)clexpert(tec)cz
==========================================================
Synaser a prace s nim
[*] Erik Salaj, Winsoft <winsoft(zv)netkosice.sk> - 13.8.2004 00:01:37
> zvyseni ostrazitosti. Tyto technologie (synchronizace komunikace) nejsou
> nijak zvlast obtizne implementovatelne, pouze vyzaduji schopnost
> abstraktniho a paralelniho uvazovani pri analyze a navrhu systemu. To muze
> byt pro mene kvalifikovane analytiky problem, avsak nepochopeni problemu a
> metodiky reseni jeste nediskvalifikuje metodu. Spousta lidi (i v teto
> konferenci) uvazuje pouze v dimenzich klikaciho sestavovani jakz takz
ak tym "klikacim sestavovanim" myslis programovanie udalosti,
tak (nielen) vo Windowsoch to odjakziva tak fungovalo a funguje
(vitaj vo svete udalostami riadeneho programovania).
Mozno namiesto vzletnych reci o kvalifikovanych analytikoch, by
si tu mohol popisat lepsi system, kde je to robene inac, teda lepsie
(ze by MS DOS? ale aj tam som si programoval seriovu komunikaciu
s preruseniami ;-( ). Rad sa poucim. Ja uz som tu sam navrhoval urobit
ovladanie mysi timeoutami pre tych, co su na udalosti alergicki ale nejak
sa tu zatial nestretlo s priaznivou odozvou.
> fungujicich programu. Lukas je jeden z mala, kteri chapou, ze udalost
> startuje nejaky proces, tedy ze neni entitou sama o sobe, a ze jeji
obsluha
> (lhostejno zda na urovni driveru, wrapperu API funkce nebo eventu v
> aplikaci) NEPOSTACUJE ke kompletnimu reseni komunikacni ulohy. Proto
mojej mysi to nastastie uplne POSTACUJE
> povazuji SYNASER za prinosny pristup k reseni komunikace pomoci RS-232 na
PC
> uz tim, ze se snazi do svych funkci zabalit krome proste obsluhy udalosti
i
> navazne cinnosti, nezbytne ke spolehlivemu reseni komunikace. To je
alespon
> meho pohledu (mozna deformovaneho lety prace v oblasti ridicich a mericich
> systemu) velmi cenne.
tak navrhujem "zabalit" aj eventy vsetkych Delphi komponentov,
ked uz tu mame to nove, spolahlive riesenie komunikacie
Erik
Problem s parametrem typu varArray
[*] j.binder(zv)albacon(tec)cz - 12.8.2004 23:41:34
From: "Marek Spisak" <spishark(zv)post(tec)cz>
> zkus to takhle
>
> procedure GetState;
> var
> Buf: OleVariant;
> i: integer;
> Data: PByteArray;
> begin
> Buf:= VarArrayCreate([0, 76], varByte);
> Data:= VarArrayLock(Buf);
> try
> for i := 0 to 76 do Data^[i]:= 0;
> finally
> VarArrayUnlock(Buf);
> end;
> Sense(Buf);
Diky za odpoved. Zkousel jsem, trochu jsem s tim poexperimentoval. Bohuzel jsme se nepohnul.
V ruznych variantach volani to hazi chyby dost nahodne, v kazdem pripade v Buf nic rozumneho neprijde,
a vse konci (casto i padem aplikace) pri vystupu z procedury, tj, pri destrukci variantu Buf.
Nabyl jsme presvedceni, ze metoda ocekava ne varArray, ale spis pointer na nej. Neco takoveho v importu type library byt nemuze, tak jsem zacal zkouset vytvareni objektu za chodu pomoci CreateOleObject. Tam jsem zatim moc neuspel, protoze objekt vytvorim, k predpokladanym metodam se zna, ale jejich volani skonci hlaskou katastroficke selhani". Kdyby mi nekdo mohl poradit byl bych dost vdecny.
Zdravi Jiri Binder
Synaser a prace s nim
[*] Jiri Foldyna <jiri.f(zv)avizo(tec)cz> - 12.8.2004 23:09:31
> Lukasi, kdyz tu posledni dva dny tak sleduji, co pises, tak se pomalu
> prestavam divit tomu, proc pouzivas ty klavesnicove ctecky caroveho
> kodu namisto seriovych.
>
> Jinak jen kratkou poznamku - opravdu, ale opravdu nechapu, proc se
> nekdo snazi asynchronni komunikaci (ktera je logicky asynchronni
> pocinaje uz svou podstatou, pres vlastni komunikacni obvod, driver, az
> do windows) synchronizovat ci spise serializovat na urovni aplikace.
> To se tyka jak komunikace seriove RS-232, tak i treba internetu TCP/IP
> apod.
>
> Tyto komunikacni kanaly jsou asynchronni a stale budou asynchronni,
> jediny mozny duvod, proc to delat, je snad kvuli UB programatorum,
> kteri si sice v aplikaci hraji na udalosti, protoze Delphi je plne
> udalosti, coz je zcela logicke, ale pak tam vrznou neco podobneho.
> Takovi UB programatori vetsinou neumeji thready, takze to pak vypada,
> jak to vypada.
>
> Obslouzeni asynchronni komunikace je malinko obtiznejsi nez kdyz cekam
> na 10 znaku (a UB programator ceka, dokud nekdo nevypne proud), ale to
> podle me neni duvod...
Asi takto - kazdy, kdo nekdy resil problem provozu 7x24 s error recovery bez
zasahu obsluhy, vi, ze se bez synchronizace komunikace neobejde. Proste
komunikacni session v techto pripadech zacit muze v podstate kdykoli, ale
skoncit MUSI podle definovanych pravidel. Prakticky vzdy se pouziva detekce
chyb nedodrzenim casovani protokolu, uz proto, ze nedodrzeni casovani
signalizuje bud chybu v algoritmu nebo nepredpokladany stav systemu, coz je
u solidne resenych systemu s vysokou pozadovanou spolehlivosti vzdy duvod ke
zvyseni ostrazitosti. Tyto technologie (synchronizace komunikace) nejsou
nijak zvlast obtizne implementovatelne, pouze vyzaduji schopnost
abstraktniho a paralelniho uvazovani pri analyze a navrhu systemu. To muze
byt pro mene kvalifikovane analytiky problem, avsak nepochopeni problemu a
metodiky reseni jeste nediskvalifikuje metodu. Spousta lidi (i v teto
konferenci) uvazuje pouze v dimenzich klikaciho sestavovani jakz takz
fungujicich programu. Lukas je jeden z mala, kteri chapou, ze udalost
startuje nejaky proces, tedy ze neni entitou sama o sobe, a ze jeji obsluha
(lhostejno zda na urovni driveru, wrapperu API funkce nebo eventu v
aplikaci) NEPOSTACUJE ke kompletnimu reseni komunikacni ulohy. Proto
povazuji SYNASER za prinosny pristup k reseni komunikace pomoci RS-232 na PC
uz tim, ze se snazi do svych funkci zabalit krome proste obsluhy udalosti i
navazne cinnosti, nezbytne ke spolehlivemu reseni komunikace. To je alespon
meho pohledu (mozna deformovaneho lety prace v oblasti ridicich a mericich
systemu) velmi cenne.
Zdravim
Jiri Foldyna
Prava na zaznamy
[*] Roman <sw.maurice(zv)seznam(tec)cz> - 12.8.2004 22:29:27
Zdravim,
potrebuji poradit s pravy (select) nad radky tabulky (v Firebird 1 - 1.5).
Kazdy radek obsahuje identifikator skupiny (prefix). Uzivatele maji
nastaveno, ktere skupiny mohou videt. Uzivatel na urovni aplikace neni
uzivatel na urovni databaze, tj. vice uzivatelu v aplikaci muze byt jeden
uzivatel v databazi. Uzivatele v aplikaci jsou ulozeni v tabulce Uzivatele,
PK je Id_uzivatele. Problem chci vyresit nejakym objektem na urovni databaze
(tj. nechci v aplikaci vytvaret kontrukce typu SELECT ... WHERE prefix IN
(...)). V uvahu prichazi pouziti:
1. view - nevim, jak zjistit aktualniho uzivatele (id_uzivatele) v aplikaci?
Je mozne vytvorit nejaky objekt (zapsat "nekam id_uzivatele") pouze v
kontextu aktualniho pripojeni po dobu jeho trvani? Popr. da se to resit
pomoci UDF? Jak?
2. ulozena procedura s IN parametrem id_uzivatele - toto reseni se mi moc
nezamlouvat vzhledem k nemoznosti pouziti domen a nutne specifikaci vsech
parametru zdrojove tabulky (=> dvoji udrzba).
3. nejak uplne jinak? :-)
Ktera varianta je efektivnejsi co do zpracovani dotazu napr. v joinech?
Diky za pripadne reakce,
Roman
Thread safe volani
[*] Jiri Cincura <diskuze(zv)cincura(tec)net> - 12.8.2004 22:11:25
Ahoj,
mam takovy dotaz. Mam ve Form1 promennou typu TList. Tu naplnuji pomoci
threadu (cteni ze souboru - 40tis. zaznamu po asi 1kB). Pokud volam Add, je
nutne to obalit do Synchronize? Nikdo jiny v te chvili s tim delat nebude -
Form je disabled, cekam na dokonceni pomoci udalosti, v OnTerminate to opet
povolim.
--
Jiri Cincura
e-mail: mailto:jiri(zv)cincura.net; mailto:xcincura(zv)informatics.muni(tec)cz
ICQ#: 314711544
web: http://www.cincura.net; http://photo.cincura.net
Synaser a prace s nim
[*] Lukas Gebauer <gebylist(zv)mlp(tec)cz> - 12.8.2004 21:07:19
> No to by nevadilo v pripade, ze ta zprava je dulezita jen pro chod aplikace.
> Neni aplikace - tudiz nepotrebuje zpravu.
Jiste, to je pravda.
To dulezite, co jsem chtel sdelit, je, ze pouzivat timer na to, abych v
pravidel;nych intervalech cetl data z nejakeho zarizeni, neni dpobry
napad, protoze udalosti timeru maji nejnizsi prioritu, a tak muze byt do
apliace durocovan znacne nepravidlene.
A to prave zpusobovalo ony problemy s pretecenim bufferu ve zminovane
testovaci aplikaci. Ve spatne naprogramovanem testu nemohl Synaser
fungovat dobre.
--
Lukas Gebauer.
E-mail: gebauerl(zv)mlp(tec)cz
WEB: http://www.ararat(tec)cz/synapse - Synapse Delphi and Kylix TCP/IP Library
Synaser a prace s nim
[*] delphin(zv)post(tec)cz - 12.8.2004 18:51:03
> > Pri 115200 baudech a zapnute vstupni FIFO se vyvola preruseni a
> > nasledne udalost cca 1000x za sekundu. Na aplikacni urovni to neni
> > sance spolehlivne zvladnout.
>
> Misto podobnych vypoctu bych spise doporucil nejakou literaturu, kde
> by ses dozvedel, jak to doopravdy funguje.
Zapomel jsem napsat, ze se jedna o maximalni hodnotu. Pochopitelne kdyz
nechodi data, nedeje se nic.
Synaser a prace s nim
[*] Petr Zahradnik <clexpert(zv)clexpert(tec)cz> - 12.8.2004 18:13:00
Puvodni zprava ze dne 12.8.2004:
> Pri 115200 baudech a zapnute vstupni FIFO se vyvola preruseni a
> nasledne udalost cca 1000x za sekundu. Na aplikacni urovni to neni
> sance spolehlivne zvladnout.
Misto podobnych vypoctu bych spise doporucil nejakou literaturu, kde
by ses dozvedel, jak to doopravdy funguje.
Petr Zahradnik, pocitacovy expert
==========================================================
Petr Zahradnik, Computer Laboratory
web: http://www.clexpert(tec)cz, e-mail: clexpert(zv)clexpert(tec)cz
==========================================================
Synaser a prace s nim
[*] Petr Zahradnik <clexpert(zv)clexpert(tec)cz> - 12.8.2004 18:10:59
Puvodni zprava ze dne 12.8.2004:
> Pro tebe zjevne ne, ale pro vsechny ostatni je komunikace nejen o
> nejakem nesourodem proudu dat, ale hlavne take o porozumneni a
> implementaci komunikacniho protokolu.
Lukasi, kdyz tu posledni dva dny tak sleduji, co pises, tak se pomalu
prestavam divit tomu, proc pouzivas ty klavesnicove ctecky caroveho
kodu namisto seriovych.
Jinak jen kratkou poznamku - opravdu, ale opravdu nechapu, proc se
nekdo snazi asynchronni komunikaci (ktera je logicky asynchronni
pocinaje uz svou podstatou, pres vlastni komunikacni obvod, driver, az
do windows) synchronizovat ci spise serializovat na urovni aplikace.
To se tyka jak komunikace seriove RS-232, tak i treba internetu TCP/IP
apod.
Tyto komunikacni kanaly jsou asynchronni a stale budou asynchronni,
jediny mozny duvod, proc to delat, je snad kvuli UB programatorum,
kteri si sice v aplikaci hraji na udalosti, protoze Delphi je plne
udalosti, coz je zcela logicke, ale pak tam vrznou neco podobneho.
Takovi UB programatori vetsinou neumeji thready, takze to pak vypada,
jak to vypada.
Obslouzeni asynchronni komunikace je malinko obtiznejsi nez kdyz cekam
na 10 znaku (a UB programator ceka, dokud nekdo nevypne proud), ale to
podle me neni duvod...
Petr Zahradnik, pocitacovy expert
==========================================================
Petr Zahradnik, Computer Laboratory
web: http://www.clexpert(tec)cz, e-mail: clexpert(zv)clexpert(tec)cz
==========================================================
Synaser a prace s nim
[*] Tomas Bradle <t.bradle(zv)sanet(tec)cz> - 12.8.2004 17:30:56
No to by nevadilo v pripade, ze ta zprava je dulezita jen pro chod aplikace.
Neni aplikace - tudiz nepotrebuje zpravu.
Tomas Bradle
t.bradle(zv)worldonline(tec)cz
----- Original Message -----
From: "Lukas Gebauer" <gebylist(zv)mlp(tec)cz>
To: <delphi-l(zv)clexpert(tec)cz>
Sent: Thursday, August 12, 2004 5:18 PM
Subject: Re: Synaser a prace s nim
> > No jasne, s tim jsem se uz setkal, doslo k takovemu zahlceni programu,
> > ze WM_TIMER dobehla az kdyz doslo k odlehceni procesoru, muze se ale
> > WM_TIMER uplne ztratit ? Kdyz mi nevadi, ze dorazi treba za 20s, ale
> > potrebuji aby dorazila.
>
> Nevim to na 100% (musim se doma podivat do chytre knizky), ale mam
> pocit, ze za urcitych okolnosti neni tato zprava vubec zarazena do
> fronty zprav. Snad si doma vzpomenu a najdu to presne. mozna se
> mylim...
>
> Nicmene co mne ted napada, tak klidne muze dojit k situaci, kdy ta
> zprava zpracovana nebude, protoze prijde zprava o ukonceni programu.
> V takovem pripade ta WM_time nebude zpracovana, i kdyz vznikla davno
> pred tim, nez vubec vzniknul pozadavek na ukonceni programu, ktery ji
> jednoduse predbehl, ne?
>
> --
> Lukas Gebauer.
Synaser a prace s nim
[*] Lukas Gebauer <gebylist(zv)mlp(tec)cz> - 12.8.2004 17:18:54
> No jasne, s tim jsem se uz setkal, doslo k takovemu zahlceni programu,
> ze WM_TIMER dobehla az kdyz doslo k odlehceni procesoru, muze se ale
> WM_TIMER uplne ztratit ? Kdyz mi nevadi, ze dorazi treba za 20s, ale
> potrebuji aby dorazila.
Nevim to na 100% (musim se doma podivat do chytre knizky), ale mam
pocit, ze za urcitych okolnosti neni tato zprava vubec zarazena do
fronty zprav. Snad si doma vzpomenu a najdu to presne. mozna se
mylim...
Nicmene co mne ted napada, tak klidne muze dojit k situaci, kdy ta
zprava zpracovana nebude, protoze prijde zprava o ukonceni programu.
V takovem pripade ta WM_time nebude zpracovana, i kdyz vznikla davno
pred tim, nez vubec vzniknul pozadavek na ukonceni programu, ktery ji
jednoduse predbehl, ne?
--
Lukas Gebauer.
E-mail: gebauerl(zv)mlp(tec)cz
http://www.ararat(tec)cz/synapse/ - Ararat Synapse - TCP/IP Lib.
Synaser a prace s nim
[*] Tomas Bradle <t.bradle(zv)sanet(tec)cz> - 12.8.2004 17:12:53
No jasne, s tim jsem se uz setkal, doslo k takovemu zahlceni programu, ze
WM_TIMER dobehla az kdyz doslo k odlehceni procesoru, muze se ale WM_TIMER
uplne ztratit ? Kdyz mi nevadi, ze dorazi treba za 20s, ale potrebuji aby
dorazila.
diky
Tomas Bradle
t.bradle(zv)worldonline(tec)cz
----- Original Message -----
From: "Lukas Gebauer" <gebylist(zv)mlp(tec)cz>
To: <delphi-l(zv)clexpert(tec)cz>
Sent: Thursday, August 12, 2004 3:56 PM
Subject: Re: Synaser a prace s nim
> Inu, protoze (citace z MSDN):
>
> "The WM_TIMER message is a low-priority message. The GetMessage and
> PeekMessage functions post this message only when no other higher-
> priority messages are in the thread's message queue."
>
> Tedy, wm_timer udalost je vesele predbihana vsemi ostatnimi
> udalostmi... a tak logicky, k udalosti timeru nemusi vubec dojit.
>
> Lukas Gebauer.
Synaser a prace s nim
[*] Erik Salaj, Winsoft <winsoft(zv)netkosice.sk> - 12.8.2004 16:42:50
> > no vidis, a ja taku komunikaciu vyuzivam v programoch, ked
> > je to vyhodne. A aj ine podobne komponenty (dokonca i od firiem
> > ako je MS) to takto umoznuju vyuzivat. Ze kazdy protokol potrebuje
> > timeouty - s takymito zjavnymi blbostami sa mozes (nielen) tu
> > maximalne ak zosmiesnit.
>
> Smesna je domnenka, ze protokol nepotrebuje timeout. Duvod je evidentni,
> zkus premyslet, nez neco napises.
no vidis a ja som vcera poslal zakaznikovi program, ktory komunikuje
a ziadne timeouty nepotrebuje
> Mozna bys mohl zkusit predvest realizaci jednoducheho protokolu bez
timeoutu
> pouze pomoci udalosti :-)))
>
> Zkus toto:
>
> Master = PC, 16 slave zarizeni pripojenych treba po RS-485.
>
> Master zahaji komunikaci odeslanim 5A, 00 az 0F a ceka na ACK (00 az 0F,
A5)
> Pokud do 2 sec ACK neobdrzi, zaloguje se chyba a adresuje se dalsi slave.
> Pokud ACK obdrzi, ceka 5 sec na prijeti 32 byte zpravy. Pokud zprava
> neprijde, zaloguje se chyba.
zase sme na zaciatku - jasne som napisal, tu to este raz citujem:
"vecsina komponentov AIK umoznuje pouzivat tak udalosti ako aj cakanie
s timeoutom. Obidva tieto moznosti maju svoje vyhody aj nevyhody
a obidva su podporovane Windowsom"
ze niekedy su timeouty vyhodne a niekedy nie. Niektori experti sa ma
ale snazia presvedcit, ze ich "alternativa" len s timeoutami (bez udalosti)
je lepsia. Alebo dokonca, ze timeouty su nevyhnutne pre komunikaciu.
V Tvojom konkretnom pripade komunikacie, ktoru si popisal SU timeouty
vyhodne, lebo ved pomocou nich je ten protokol definovany. Ale su
aj ine protokoly, kde timeouty vyhodne nie su. A uviedol som priklad
jednej mojej aplikacie, ktoru som takto bez timeoutov riesil (a
"jednoduchsie
riesenie" tejto aplikacie s timeoutami zatial akosi nikto neposlal na
porovnanie).
Takze je IMHO dobre mat a pouzivat TAK UDALOSTI AKO AJ TIMEOUTY
podla konkretnych podmienok.
Erik
Synaser a prace s nim
[*] Lukas Gebauer <gebylist(zv)mlp(tec)cz> - 12.8.2004 15:56:43
Inu, protoze (citace z MSDN):
"The WM_TIMER message is a low-priority message. The GetMessage and
PeekMessage functions post this message only when no other higher-
priority messages are in the thread's message queue."
Tedy, wm_timer udalost je vesele predbihana vsemi ostatnimi
udalostmi... a tak logicky, k udalosti timeru nemusi vubec dojit.
> Muzu se zeptat, jak k tomu muze dojit ?
>
> > neni z principu spolehlive... udalost timeru muze byt zcela legalne
> > systemem zahozena!)
--
Lukas Gebauer.
E-mail: gebauerl(zv)mlp(tec)cz
http://www.ararat(tec)cz/synapse/ - Ararat Synapse - TCP/IP Lib.
Synaser a prace s nim
[*] Jiri Foldyna <jiri.f(zv)avizo(tec)cz> - 12.8.2004 15:56:42
> skus si radsej najprv nastudovat tie obvody (UARTY) pouzivane
> v PC-ckach na seriovu komunikaciu. Obavam sa, ze ten hardware
> funguje rovnako a programuje sa rovnako vo Windowse aj v Linuxe
> aj v hocicom inom. Ci to je "idealni" to mozes asi skor diskutovat
> s vyrobcami tychto obvodov a pripadne vymysliet lepsie.
Neni potreba, mam to davno za sebou. S UARTy (a USARTy) jsem pracoval uz v
dobe, kdy se IBM PC teprve rodilo.
> no vidis, a ja taku komunikaciu vyuzivam v programoch, ked
> je to vyhodne. A aj ine podobne komponenty (dokonca i od firiem
> ako je MS) to takto umoznuju vyuzivat. Ze kazdy protokol potrebuje
> timeouty - s takymito zjavnymi blbostami sa mozes (nielen) tu
> maximalne ak zosmiesnit.
Smesna je domnenka, ze protokol nepotrebuje timeout. Duvod je evidentni,
zkus premyslet, nez neco napises.
> to je navrh pre tych, co si myslia, ze udalosti nie su vhodne
> na komunikaciu, nech vyskusaju komunikaciu bez nich.
Nikdo netvrdi, ze komunikaci nelze resit pomoci udalosti.
> Mozno by si mohol ten moj jednoriadkovy program
> na citanie dat pomocou udalosti prerobit na timeouty
> a ukazat nazorne vyhody tych timeoutov na tomto
> konkretnom priklade.
Mozna bys mohl zkusit predvest realizaci jednoducheho protokolu bez timeoutu
pouze pomoci udalosti :-)))
Zkus toto:
Master = PC, 16 slave zarizeni pripojenych treba po RS-485.
Master zahaji komunikaci odeslanim 5A, 00 az 0F a ceka na ACK (00 az 0F, A5)
Pokud do 2 sec ACK neobdrzi, zaloguje se chyba a adresuje se dalsi slave.
Pokud ACK obdrzi, ceka 5 sec na prijeti 32 byte zpravy. Pokud zprava
neprijde, zaloguje se chyba.
Zdravim
Jiri Foldyna
Synaser a prace s nim
[*] Erik Salaj, Winsoft <winsoft(zv)netkosice.sk> - 12.8.2004 16:20:48
> Pri 115200 baudech a zapnute vstupni FIFO se vyvola preruseni a nasledne
> udalost cca 1000x za sekundu. Na aplikacni urovni to neni sance
spolehlivne
> zvladnout.
od toho je tam ten driver, aby to zvladol. Ved aplikacia nemusi dostat
1000 eventov za sekundu. Aj mysou ked pohnes, tak aplikacia nedostane
tisic eventov generovanych od mysi.
Erik
Synaser a prace s nim
[*] Erik Salaj, Winsoft <winsoft(zv)netkosice.sk> - 12.8.2004 15:56:43
> Ty jsi fakt neskutecny... nevim jak ostatni, ale JA jsem tu zadny
> tvuj JEDNORADKOVY program opravdu, ale opravdu nevidel!
>
> Poslal si sem sice jeden radek kodu, ale ten volal tvoji proceduru
> 'spracuj'. To umi kazdy jakykoliv kod zabalit do procedury, pak sem
> dat v jednom radku volani te procedury a ohanet se tim, ze je to
> jednoradkove reseni. Neni, jen kalis vodu...
ale ved ide o tu komunikaciu a nie o spracovanie udajov.
To je uz uplne jedno co Spracuj s prijatymi udajmi urobi.
Ak nevies takto abstrakne mysliet, tak si namiesto
Spracuj napis Write (do suboru). A ten subor potom
este treba niekde otvorit a zatvorit - to si uz niekde
dufam nastudujes, ze ako. Alebo mam naozaj poslat
kompletny program?
Erik
Synaser a prace s nim
[*] Lukas Gebauer <gebylist(zv)mlp(tec)cz> - 12.8.2004 15:46:41
> Mozno by si mohol ten moj jednoriadkovy program
> na citanie dat pomocou udalosti prerobit na timeouty
> a ukazat nazorne vyhody tych timeoutov na tomto
> konkretnom priklade.
Ty jsi fakt neskutecny... nevim jak ostatni, ale JA jsem tu zadny
tvuj JEDNORADKOVY program opravdu, ale opravdu nevidel!
Poslal si sem sice jeden radek kodu, ale ten volal tvoji proceduru
'spracuj'. To umi kazdy jakykoliv kod zabalit do procedury, pak sem
dat v jednom radku volani te procedury a ohanet se tim, ze je to
jednoradkove reseni. Neni, jen kalis vodu...
--
Lukas Gebauer.
E-mail: gebauerl(zv)mlp(tec)cz
http://www.ararat(tec)cz/synapse/ - Ararat Synapse - TCP/IP Lib.
Synaser a prace s nim
[*] Lukas Gebauer <gebylist(zv)mlp(tec)cz> - 12.8.2004 15:36:39
> TBlockSerial lze primo v kodu threadu pouzivat bez nejake dalsi
> synchronizace ?
Proc by TBlockSerial potreboval nejakou synchropnizaci? ty potrebuje
maximalne tvuj kod okolo, aby sdelil hlavnimu thredu vysledek
operace, nebo tak nejak.
Synaser je jinak ve svem vlastnim threadu plne spokojeny.
--
Lukas Gebauer.
E-mail: gebauerl(zv)mlp(tec)cz
http://www.ararat(tec)cz/synapse/ - Ararat Synapse - TCP/IP Lib.
Synaser a prace s nim
[*] Erik Salaj, Winsoft <winsoft(zv)netkosice.sk> - 12.8.2004 15:34:38
> > obvody seriovej komunikacie, ci sa Ti to paci alebo nie, funguju
> > na udalostiach (preruseniach) a preto tento sposob je a bude
> > zakladnym a efektivnym sposobom seriovej komunikacie tak
> > vo Windowse ako aj mimo Windowsu. K tomu sa potom
> > moze dorobit softwarova nadstavba na rozne ucely,
> > predovsetkym zjednodusenie programovania komunikacie.
>
> Nesmysl, zalezi na konstrukci komunikacniho adapteru a reseni driveru. Ze
se
> to tak pouziva ve Windows, neznamena to automaticky, ze je to idealni.
skus si radsej najprv nastudovat tie obvody (UARTY) pouzivane
v PC-ckach na seriovu komunikaciu. Obavam sa, ze ten hardware
funguje rovnako a programuje sa rovnako vo Windowse aj v Linuxe
aj v hocicom inom. Ci to je "idealni" to mozes asi skor diskutovat
s vyrobcami tychto obvodov a pripadne vymysliet lepsie.
> Nesmysl. Je rozdil, jestli mne implementace komunikaciho rozhrani nuti k
> tomu, abych se staral o kazdy prijaty byte, nebo jestli mi umozni praci s
> bloky. Samozrejme, u jednoduche konzolove aplikace to neocenis, u
> protokolove orientovane komunikace je to velky prinos.
;-)
> Nesmysl. Komunikace po seriove lince bez timeoutu (at na urovni driveru ci
> aplikace) je pouzitelna maximalne pro demonstracni ucely, nebo pro
realizaci
> velmi jednoduche konzoly. Cokoli co pouzije nejaky protokol, potrebuje
taky
> timeouty. Pokud je nezajisti driver, musi je realizovat aplikace.
no vidis, a ja taku komunikaciu vyuzivam v programoch, ked
je to vyhodne. A aj ine podobne komponenty (dokonca i od firiem
ako je MS) to takto umoznuju vyuzivat. Ze kazdy protokol potrebuje
timeouty - s takymito zjavnymi blbostami sa mozes (nielen) tu
maximalne ak zosmiesnit.
> > Na zaver doporucujem skusit uplne zrusit udalosti Windowsu,
> > ak su "zatazujuce" a urobit nadstavbu na blokovacie citanie
> > pohybu mysi, okien, atd. Pekne s timeoutami a threadmi.
> > Presvedcit sa prakticky ako to bude fungovat a ake je to
> > jednoduche, vyhodne a svizne ;-).
>
> Tomu nerozumim, to je pokus o ironicky zert ????
to je navrh pre tych, co si myslia, ze udalosti nie su vhodne
na komunikaciu, nech vyskusaju komunikaciu bez nich.
Mozno by si mohol ten moj jednoriadkovy program
na citanie dat pomocou udalosti prerobit na timeouty
a ukazat nazorne vyhody tych timeoutov na tomto
konkretnom priklade.
Erik
Synaser a prace s nim
[*] Tomas Bradle <t.bradle(zv)sanet(tec)cz> - 12.8.2004 15:18:36
Muzu se zeptat, jak k tomu muze dojit ?
diky
Tomas Bradle
t.bradle(zv)worldonline(tec)cz
----- Original Message -----
From: "Lukas Gebauer" <gebylist(zv)mlp(tec)cz>
To: <delphi-l(zv)clexpert(tec)cz>
Sent: Thursday, August 12, 2004 10:13 AM
Subject: Re: Synaser a prace s nim
> neni z principu spolehlive... udalost timeru muze byt zcela legalne
> systemem zahozena!)
>
> Lukas Gebauer.
Synaser a prace s nim
[*] Jiri Foldyna <jiri.f(zv)avizo(tec)cz> - 12.8.2004 15:08:34
> obvody seriovej komunikacie, ci sa Ti to paci alebo nie, funguju
> na udalostiach (preruseniach) a preto tento sposob je a bude
> zakladnym a efektivnym sposobom seriovej komunikacie tak
> vo Windowse ako aj mimo Windowsu. K tomu sa potom
> moze dorobit softwarova nadstavba na rozne ucely,
> predovsetkym zjednodusenie programovania komunikacie.
Nesmysl, zalezi na konstrukci komunikacniho adapteru a reseni driveru. Ze se
to tak pouziva ve Windows, neznamena to automaticky, ze je to idealni.
> Ze generovane eventy "zatazuju aplikaciu" - ano, ved od toho su,
> aby moju aplikaciu informovali, ked pridu udaje alebo dojde k chybe.
> Aj mys ked pohnem, tak sa generuju udalosti, ktore "zatazuju
> aplikaciu",
> a to je akoze zle, ze ma informuju o pohybe mysi? To maju prist
> len raz kazdu sekundu, aby "aplikaciu nezatazovali", alebo len vtedy
> ked zavolam nejaku blokovaciu funkciu an mys? Myslim, ze Ti
> unika alebo nechces vidiet vyznam udalosti. To je dost zvlastne
> na programatora Windows aplikacii, ktore su kompletne
> postavene na udalostami riadenom programovani.
Nesmysl. Je rozdil, jestli mne implementace komunikaciho rozhrani nuti k
tomu, abych se staral o kazdy prijaty byte, nebo jestli mi umozni praci s
bloky. Samozrejme, u jednoduche konzolove aplikace to neocenis, u
protokolove orientovane komunikace je to velky prinos.
> Na porovnanie - problem timeoutov je ten, ze zbytocne zatazuju system
> aj ked sa nekomunikuje (t.j. povedzme neprichadzaju udaje). Chcem
> napriklad precitat dva bajty. Tak musim vymysliet nejaky timeout,
> podla moznosti ani dlhy (aby som mohol monitorovat v rozumnom
> case co sa deje) ani kratky (lebo bude zbytocne zatazovat system).
> Aby aplikacia mohla nezavisle fungovat, tak k tomu este musim
> dorobit thread a zabezpecit jeho synchronizaciu. Potom zavolam
> blokovaciu funkciu, ze chcem precitat dva bajty. Zariadenie posle
> hned jeden bajt a povedzme o hodinu druhy. Medzitym ma timeouty
> povedzme raz za sekundu, cize spolu 3600 krat zbytocne informovali,
> ze dva bajty este neprisli. A aj prvy bajt ziskam az o
> hodinu, ked pride
> ten druhy bajt, hoci uz je davno prijaty (alebo ho pri timeoute mozem
> precitat, niekde ulozit a pocitat si kolko zvysnych bajtov este treba
> dalej citat?). A ak ten druhy bajt nepride do ukoncenia programu,
> tak bud nedostanem ani ten precitany prvy bajt, alebo si ich musim
> rucne skladat pocas timeoutov. V prvom pripade potom najlepsie
> asi bude citat udaje vzdy po jednom bajte. Lenze ked budem citat
> velke mnozstvo udajov, tak zase mam reziu volania funkcie citania
> na kazdy bajt (eventov v tomto pripade dostane apliacia o dost menej).
> V druhom pripade (skladania bajtov pocas timeoutov) sa straca efekt
> jednoduchosti, ze zavolam si funkciu Precitaj100bajtov a nemusim
> sa o nic starat. A pritom cely tento "naokolo blizsie" system
> mozem elegantne vyriesit sledovanim udalosti prichodu znakov
> a ich okamzitym spracovanim bez akychkolvek timeoutov,
> threadov a dalsich vymyslanin. A dostanem v tomto pripade
> dva eventy za hodinu ak mi za hodinu pridu dva bajty - zda sa
> mi to teda vyhodne.
Nesmysl. Komunikace po seriove lince bez timeoutu (at na urovni driveru ci
aplikace) je pouzitelna maximalne pro demonstracni ucely, nebo pro realizaci
velmi jednoduche konzoly. Cokoli co pouzije nejaky protokol, potrebuje taky
timeouty. Pokud je nezajisti driver, musi je realizovat aplikace.
> Na zaver doporucujem skusit uplne zrusit udalosti Windowsu,
> ak su "zatazujuce" a urobit nadstavbu na blokovacie citanie
> pohybu mysi, okien, atd. Pekne s timeoutami a threadmi.
> Presvedcit sa prakticky ako to bude fungovat a ake je to
> jednoduche, vyhodne a svizne ;-).
Tomu nerozumim, to je pokus o ironicky zert ????
> Erik
Zdravim
Jiri Foldyna
FireBird IBEventAlerter pro DBX
[*] Viktor Doubek <viktordoubek(zv)centrum(tec)cz> - 12.8.2004 14:20:30
Hi *,
nevedel by nekdo prosim o nejake nadstavbe DBExpress pro FireBird umoznujici pouzivat IBEvents? Mam uz nejakou lehkou (mozna naivni) predstavu, jak si to dopsat, ale preci jen, kdyby to uz mel nekdo vyreseno...
Diky moc za kazdou stopu. VD.
TListView - vymena pozice tazenim mysi
[*] MUDr.Patrik Valenta <valentapat(zv)volny(tec)cz> - 12.8.2004 14:06:28
zdravim konferenci, nema nekdo please ukazku zmeny poradi zaznamu v ListView
tazenim mouse?
V 1001 triku je ukazka pouze pro ListBox - ta ale nejde aplikovat na
ListView.
Nebo hledam komponentu like vicesloupcovy ListBox
diky valik
TDateTimePicker
[*] Pavel GRATZER <pavelg(zv)stbk.mcs(tec)cz> - 12.8.2004 13:02:19
Od "In g. Zdenek Reznicek" <reznicek(zv)pce(tec)cz>
> Zdravim,
> nevite nekdo, jak zobrazit prazdnou polozku (prazdny text) v komponente
> TDateTimePicker ?
>
> Diky, Zdenek
Ja jsem to vyresil v metode Paint takhle :
procedure TMujDateTime.Paint;
var r:Trect;
begin
inherited;
if (not aktivni) // needituji hodnotu
and (Date<StrToDate('1.1.1950')) then
begin
Canvas.Font:=font;
Canvas.brush.style:=bsSolid;
Canvas.brush.color:=color;
r:=Clientrect;
r.right:=r.right-17; // rozbalovaci tlacitko
Canvas.Fillrect(r);
end;
end;
Pavel GRATZER
pavelg(zv)stbk.mcs(tec)cz
pekny ScrollBar
[*] Jan Rizek <jan_rizek(zv)centrum(tec)cz> - 12.8.2004 14:02:27
nevite o nejakem peknem Scrollbaru? Potreboval bych ho posouvat pomoci nejakych tlacitek (vlevo a vpravo) a standartni ScrollBar s Vertikalnim ScrollBarem se mi strasne nelibi... :-)
Prepis C hlavicky
[*] Ludek Finstrle <ludek.finstrle(zv)pzkagis(tec)cz> - 12.8.2004 13:52:25
> Zdar, pac nikdo nevi, prepisuji C knihovnu pro ziskani seznamu pripojeni
> (sitovek) a jejich parametru (IP, Masky), ale narazil na konstrukci, se
> kterou si nevim rady :(
>
> char Tmp[128];
> char Buffer[512];
>
> strncpy(Tmp,"\\Device\\",sizeof(Tmp) - 1);
> strncat(Tmp,DevName,sizeof(Tmp) - 1);
>
> nevite nekdo, jak to previst do delphi???
Neco jako:
var Tmp, Buffer : PChar;
...
Begin
...
StrAlloc(tmp,128);
StrAlloc(Buffer,512);
...
StrLCopy(Tmp,"\\Device\\",127);
StrLCat(Tmp,DevName,127);
...
StrDispose(Tmp);
StrDispose(Buffer);
...
End;
Luf
Description pre TService
[*] Petr Vones <konference(zv)petrvones(tec)net> - 12.8.2004 13:36:24
From: "Robert Suska" <robert.suska(zv)fnusa(tec)cz>
> Napisal som si service. Funguje velmi pekne, ale jedna vec mi neda spat a to
> jej popis v computer managery, nejedna sa mi o DisplayName, ale po
> description. Neviete ci existuje okrem priameho zapisu do registrov nejaka
> f() ktora to zapise sama ?
http://cc.borland.com/ccweb.exe/listing?id=18100
Petr Vones
Description pre TService
[*] tondrej(zv)t-online.de - 12.8.2004 13:02:20
> Napisal som si service. Funguje velmi pekne, ale jedna vec mi neda spat a to
> jej popis v computer managery, nejedna sa mi o DisplayName, ale po
> description. Neviete ci existuje okrem priameho zapisu do registrov nejaka
> f() ktora to zapise sama ?
Je na to API ChangeServiceConfig2
http://cc.borland.com/ccweb.exe/listing?id=18100
HTH
TOndrej
Prepis C hlavicky
[*] Bronislav Klucka <bronislav.klucka(zv)pro2-soft(tec)com> - 12.8.2004 13:02:18
Zdar, pac nikdo nevi, prepisuji C knihovnu pro ziskani seznamu pripojeni
(sitovek) a jejich parametru (IP, Masky), ale narazil na konstrukci, se
kterou si nevim rady :(
char Tmp[128];
char Buffer[512];
strncpy(Tmp,"\\Device\\",sizeof(Tmp) - 1);
strncat(Tmp,DevName,sizeof(Tmp) - 1);
nevite nekdo, jak to previst do delphi???
Brona
Prepis C hlavicky
[*] Bronislav Klucka <bronislav.klucka(zv)pro2-soft(tec)com> - 12.8.2004 13:12:21
>
>
> Zdar, pac nikdo nevi, prepisuji C knihovnu pro ziskani seznamu
> pripojeni (sitovek) a jejich parametru (IP, Masky), ale narazil
> na konstrukci, se kterou si nevim rady :(
>
> char Tmp[128];
> char Buffer[512];
>
> strncpy(Tmp,"\\Device\\",sizeof(Tmp) - 1);
> strncat(Tmp,DevName,sizeof(Tmp) - 1);
>
> nevite nekdo, jak to previst do delphi???
> Brona
Jeste neco tam chybi...
char *DevName
Brona
Description pre TService
[*] little_bobes(zv)centrum(tec)cz - 12.8.2004 12:50:11
> Napisal som si service. Funguje velmi pekne, ale jedna vec mi neda spat a
to
> jej popis v computer managery, nejedna sa mi o DisplayName, ale po
> description. Neviete ci existuje okrem priameho zapisu do registrov nejaka
> f() ktora to zapise sama ?
procedure TMyServer.MyServerAfterInstall(Sender: TService);
var
reg: TRegistry;
begin
reg := TRegistry.Create;
try
with reg do begin
RootKey := HKEY_LOCAL_MACHINE;
if OpenKey('SYSTEM\CurrentControlSet\Services\'+Name, false) then
WriteString('Description', 'Popis sluzby');
CloseKey;
end;
finally
reg.Free;
end;
end;
S pozdravem Bob
D4 c/s, FB1.5
Firebird Server Implementation
[*] Pavel Cisar <pcb(zv)atlas(tec)cz> - 12.8.2004 12:00:07
Haj hou!
On 12 Aug 2004 at 11:14, Pavel Malinsky wrote:
> snazim se pomoci IBO zjistit, na jake platforme FB server
> bezi, ale ve strukture TIB_ConnectCharacteristics je server
> implementation intrpretovano jako byte. Kde se da najit prevod
> z byte na nejaky text(konstanty?)? Pripadne jak zjistit tu platformu jinak?
>
> Potreboval bych to neco jako to dela napr IBExpert:
>
> Server Implementation: Firebird/x86/Windows NT
Pokud vim, tak polozka Server Implementation uz neni dlouho
pouzivana, a ve strukture je ponechana kvuli kompatibilite. Informace
o platforme kterou vypisuje IBExpert je soucasti retezce popisujiciho
verzi (versionInfoString).
S pozdravem
Pavel Cisar (ICQ: 89017288)
Mobil: 724 281429
http://www.ibphoenix(tec)cz
Vse co potrebujete pro Firebird a InterBase
Prevod komunikace s RS232 pomo ci MSCOMM32.OCX na
[*] Ing. Jiri Sokol <js-delphi(zv)email(tec)cz> - 12.8.2004 10:53:56
> Od: Lukas Gebauer <gebylist(zv)mlp(tec)cz>
> Datum: 12.08.2004 09:40:23
> RTS slouzi jen ke cteni stavu signalu RTS. Pokud jde o to, ze chces
> mit komunikaci riozeou pomocu RTS/CTS signalu, musis to synaseru rict
> v Config metode. viz ten muj priklad.
A jak to muzu ovladat? Chapu to dobre, ze mam menit cely konfig? Tzn.:
----------
Pozadavek na "RTS:=false;"
Config (9600, 8, 'N', 2, false, true); //pry se musi pri pokusu nastaveni false vzdy udelat toto - je to pravda?
Config (9600, 8, 'N', 2, false, false);
---------
Pozadavek na "RTS:=true;"
Config (9600, 8, 'N', 2, false, true);
---------
> > Pak mam problem s jednou property puvodniho Comm a sice OpenPort. Jeji
> > typ je boolean a navazuje/ukoncuje spojeni - aspon to tak chapu z toho
> > kodu
>
> Pokud se chces pripojit k portu, volas metodu Conenct, pokud se chces
> odpojit, volas metodu CloseSocket. (pripadne kdyz likvidujes objekt,
> zje port automaticky uzavren.)
Ta promenna (objekt) Comm je globalni. Da se nejak zjistit, jestli jsem k portu porad pripojen? To by pak slo udelat tu prperty
OpenPort...
/*
Da se na property objektu postavit nejaka f-ce? Tzn. tak, jak to je ted - bool:=Com.PortOpen zjisti jestli otevren read a pri write
by se zavolala nejaka procedura. Muzete me nakopnout? Jde to urcite... viz napr.. iBDatabase.Connected. Pri wite true bych volal Connect(Port) a pri write false budu volat CloseSocket - a je to!
*/
Pokud jde o o ten Connect a CloseSocket - muzu nastavit vsechny parametry, otevrit spojeni a potom na zadost aplikace ten port
zavrit pres CloseSocket a pri dalsim pozadavku ho otevrit pres Connect(port) aniz bych musel nastavovat ostatni parametry? Objekt
Com je globalni. Vytvorim ho pri creatu a uvolnuju v ondestroy fromulare. Pujde to tak? No neni az tak velky problem udelat si nejaky record s parametry a pri volani Connect(port) je vzdy dosazovat... Co je lepsi?
> > domence, ze tahle procedura slouzi hlaven pro visulani objekty) a jak
> > na Input (prop OleVariant - pravdepodobne neco s Buf ferem) a Output
> > (prop OleVariant - pravdepodobne neco s Bufferem) - jak to prevest do
> > Synaseru?
>
> Podivej se na metody, ktere zacinaji na send* a recv*. Nejake
> povidani o techtometodach mas jednak na:
>
> http://synapse.ararat(tec)cz/wiki/index.php?page=Article014
>
> A druhak v dokumentaci, ktera je u posledni verze Synaseru pritomna
> primo ve zdrojovem kodu.
OK, je to anglicky, ale snad to pochopim :) Problem je spis v tom, ze nevim co delaji ty Input a Output v tom MSCOMM32.OCX - k tomu
zadnou dokumentaci nemam... :( To je ten problem...
Diky za pomoc!
Jirka
--------------------------------------------------
Ing. Jiri Sokol; jiri.sokol(zv)seznam(tec)cz; 972 231 187
D6Prof+SP3; WinXPProf+SP1; FB 1.5.0
programator amater
Synaser a prace s nim
[*] Lukas Gebauer <gebylist(zv)mlp(tec)cz> - 12.8.2004 10:13:52
> Neni problem upravit projekt tak, ze se na timer osahaji vsechny
> aktivni porty a kdyz neco prislo, zavola se OnDataRecived. Problem je,
> ze pri urcite zatezi uz se OnTimer prestava stihat volat, ale data se
> sypou a sypou a asyncfree je jeste stiha kontrolovat. Synaseru se
> casem preplni buffery a zacina ztracet bajty.
No to je prave typicke spatne pouziti Synaseru. Uvedom si, ze Synaser
a Asyncfree pouzivaji zcela odlisnou filozofii prace... nejde vzit
jednu filozofii a napcat ji na oboje.
Testovat pritomnost dat pomoci timeru je skutecne blbost, to nikdy
nemuze fungovat spravne. (uz jen pro to, ze doruceni udalosti timeru
neni z principu spolehlive... udalost timeru muze byt zcela legalne
systemem zahozena!)
> Jina moznost by byla mit pro prijem na kazdem portu svuj thread, to
> jsem nezkousel.
To kdybys skusil, nemel bys zadny problem! ;-)
--
Lukas Gebauer.
E-mail: gebauerl(zv)mlp(tec)cz
http://www.ararat(tec)cz/synapse/ - Ararat Synapse - TCP/IP Lib.
Problem s parametrem typu varArray
[*] Marek Spisak <spishark(zv)post(tec)cz> - 12.8.2004 09:41:47
j.binder(zv)albacon(tec)cz wrote:
>mam problem s volanim metody COM objektu pres ktery se nejak nemuzu prenest (D7 Pro + Update).
>Kdyby mi nekdo mohl poradit, byl bych moc vdecny.
>
>Metoda je deklarovana
>
> function Sense(var ReceiveData: OleVariant): Integer; dispid 17;
>
>Receive Data ma byt buffer delky 77 bytu
>
>Predopokladal jsem, ze bude fungovat toto:
>
>procedure GetState;
>var
> Buf: OleVariant;
> i: integer;
>begin
> Buf := VarArrayCreate([0..76], varByte);
> for i := 0 to 76 do Buf[i] := 0;
> Sense(Buf);
> ...
>end;
>
>Pri vystupu z procedury mi to hazi chybu
> Variant or safe array is locked
>
>
zkus to takhle
procedure GetState;
var
Buf: OleVariant;
i: integer;
Data: PByteArray;
begin
Buf:= VarArrayCreate([0, 76], varByte);
Data:= VarArrayLock(Buf);
try
for i := 0 to 76 do Data^[i]:= 0;
finally
VarArrayUnlock(Buf);
end;
Sense(Buf);
...
end;
pisu to z hlavy, doufam, ze to pojede... neco podobneho pouzivam (D5 prof).
Marek
Synaser a prace s nim
[*] Jan Novak <delfin4(zv)volny(tec)cz> - 12.8.2004 09:51:49
>> nekde kolem 38kbit na 6 portech CPU totalne ucpala
> To je skoda ze nemas ten kod, protoze jsi tam musel
> mit neco evidentne spatne.
Neni problem upravit projekt tak, ze se na timer osahaji vsechny
aktivni porty a kdyz neco prislo, zavola se OnDataRecived. Problem je,
ze pri urcite zatezi uz se OnTimer prestava stihat volat, ale data se
sypou a sypou a asyncfree je jeste stiha kontrolovat. Synaseru se
casem preplni buffery a zacina ztracet bajty.
Jina moznost by byla mit pro prijem na kazdem portu svuj thread, to
jsem nezkousel.
Pochopitelne v praxi se takova situace nevyskytuje, vetsinou druha
strana ceka na nejake potvrzeni a ten sileny tok dat se zastavi, ale
testovaci programy jsou prave na to, aby overili mezni stavy.
> Bezne komunikuji na cca 400kilobitech (s virtualnim
> seriakem na USB) a procesor o tom ani nevi,
> natoz aby se nekde neco ucpavalo.
Halfduplex na jednom kanalu v pohode i s obycejnym (rychlym) UARTem.
Zkus full na osmi ;-) na 400 Celeronu a s FiFo tresholdem=1. Jinak,
jaka je velikost FiFo u tech USB? To je vlastne jedno, u tohoto testu
se pri nestihacce jakykoliv buffer preplni za par sec.
Prevod komunikace s RS232 pomo ci MSCOMM32.OCX na
[*] Lukas Gebauer <gebylist(zv)mlp(tec)cz> - 12.8.2004 09:29:45
> Com:=TMsComm.Create(nil); with Comm do
> begin
> CommPort := CisloSerPort; //CisloSerPort - smallint - parametr
> procedury - vybere uzivatel pri spusteni app Settings :=
> '9600,N,8,2'; InputLen := 5; InputMode := 0; NullDiscard := false;
> end;
V pripade Synaseru, nejprve port musis otevrit pomoci Copnnect, a pak
jej pomoci Config nakonfigurujes (pokud to potrebujes...). Pak uz
muzes hned s portem komunikovat dokud jej zase nezavres.
Config muzes na otevrenem portu volat i nekolikat a tak za behu menit
komunikacni parametry.
Tedy, v tvem pripade:
Com:=TBlockSerial.Create;
try
com.connect('COM'+IntToStr(CisloSerPort));
com.Config(9600, 8, 'N', 2, false, true); //to posledni true zapina
RTS rizeni toku
//nyni uz vesele komunikuj pomoci send* a recv* funkci.
...
finally
com.free; //uzavreni portu
end;
> // InputLen := 5; <<-- uz nevim co a jak nastavit - tipoval jsem, ze
> by to mohlo byt MaxLineLength := 5; - je to spraven??? // InputMode :=
> 0; //typ - TOleEnum <<-- vubec zadny napad co a jak nastavit... :( //
> NullDiscard := false; <<-- vubec zadny napad co a jak nastavit... :(
nenastavuj nic, tyto parametry ignoruj...
> WordBoll prop RTSEnabled jsem identifikoval v synaseru jako RTS -
> spravne?
RTS slouzi jen ke cteni stavu signalu RTS. Pokud jde o to, ze chces
mit komunikaci riozeou pomocu RTS/CTS signalu, musis to synaseru rict
v Config metode. viz ten muj priklad.
> Pak mam problem s jednou property puvodniho Comm a sice OpenPort. Jeji
> typ je boolean a navazuje/ukoncuje spojeni - aspon to tak chapu z toho
> kodu
Pokud se chces pripojit k portu, volas metodu Conenct, pokud se chces
odpojit, volas metodu CloseSocket. (pripadne kdyz likvidujes objekt,
zje port automaticky uzavren.)
> domence, ze tahle procedura slouzi hlaven pro visulani objekty) a jak
> na Input (prop OleVariant - pravdepodobne neco s Buf ferem) a Output
> (prop OleVariant - pravdepodobne neco s Bufferem) - jak to prevest do
> Synaseru?
Podivej se na metody, ktere zacinaji na send* a recv*. Nejake
povidani o techtometodach mas jednak na:
http://synapse.ararat(tec)cz/wiki/index.php?page=Article014
A druhak v dokumentaci, ktera je u posledni verze Synaseru pritomna
primo ve zdrojovem kodu.
--
Lukas Gebauer.
E-mail: gebauerl(zv)mlp(tec)cz
http://www.ararat(tec)cz/synapse/ - Ararat Synapse - TCP/IP Lib.
TDateTimePicker
[*] In g. Zdenek Reznicek <reznicek(zv)pce(tec)cz> - 12.8.2004 09:25:44
Zdravim,
nevite nekdo, jak zobrazit prazdnou polozku (prazdny text) v komponente
TDateTimePicker ?
Diky, Zdenek
Prevod komunikace s RS232 pomo ci MSCOMM32.OCX na
[*] Ing. Jiri Sokol <js-delphi(zv)email(tec)cz> - 12.8.2004 09:09:42
Ahoj panove!
Predem podotykam, ze komunikaci po RS232 delam poprve - budte, prosim, shovivavi. Diky.
Mam predelavat aplikaci, kde je pro komunikaci pouzito reseni objektu TMSComm (externi knihovna MS MSCOMM32.OCX). Jelikoz jsem byl pozadan, aby komunikace nebyla zavisla na teto knihovne, rozhodle jsem se pouzit SYNASER.
Mam ale problem s prevodem nekterych f-ci a nastaveni nekterych property.
Byli byste tedy tak moc laskavi a pomohli se zorientovat? Pochopeni SYNASERu snad az takovy problem neni, ale funguje trochu jinak nez zminene *.ocx a tak bych chtel chybejici f-ce doplnit, abych nemusel predelavat celou aplikaci.
Takze mam globalni promennou "Com" - vytvarim objekt TMsComm. Pak nastavuju parametry komunikace:
Com:=TMsComm.Create(nil);
with Comm do
begin
CommPort := CisloSerPort; //CisloSerPort - smallint - parametr procedury - vybere uzivatel pri spusteni app
Settings := '9600,N,8,2';
InputLen := 5;
InputMode := 0;
NullDiscard := false;
end;
To jsem prevedl pod SNASER takto:
Com:=TBlockSerial.Create;
with Comm do
begin
CommPort := ('COM'+IntToStr(CisloSerPort)); //CisloSerPort - smallint - parametr procedury - vybere uzivatel pri spusteni app
Config(9600, 8, 'N', 2, false, false);
// InputLen := 5; <<-- uz nevim co a jak nastavit - tipoval jsem, ze by to mohlo byt MaxLineLength := 5; - je to spraven???
// InputMode := 0; //typ - TOleEnum <<-- vubec zadny napad co a jak nastavit... :(
// NullDiscard := false; <<-- vubec zadny napad co a jak nastavit... :(
end;
WordBoll prop RTSEnabled jsem identifikoval v synaseru jako RTS - spravne?
Pak mam problem s jednou property puvodniho Comm a sice OpenPort. Jeji typ je boolean a navazuje/ukoncuje spojeni - aspon to tak chapu z toho kodu
Dale pak nevim co dela Refresh (Tohle neni k Objektu TMsComm, ale k TControls a moc dobre tomu nerozumim... asi jsem zil ve spatne domence, ze tahle procedura slouzi hlaven pro visulani objekty) a jak na Input (prop OleVariant - pravdepodobne neco s Bufferem) a Output (prop OleVariant - pravdepodobne neco s Bufferem) - jak to prevest do Synaseru?
Jsem bezradny, protoze mi chybi jakakoliv dokumentace k te *.ocx. Snad pry existuje help Comm96.Hlp - to jsem vycetl z te *.ocx, kdyz jsem se na ni kouknul pres TotalCommandera "F3" - ten jsem ale nikde nenasel.
Muzete mi, prosim, pomoct?
Diky
Jirka
--------------------------------------------------
Ing. Jiri Sokol; jiri.sokol(zv)seznam(tec)cz; 972 231 187
D6Prof+SP3; WinXPProf+SP1; FB 1.5.0
programator amater
Synapse: velikost najednou prijimanych dat
[*] Lukas Gebauer <gebylist(zv)mlp(tec)cz> - 12.8.2004 09:03:40
> stahuju data (IMAP-SSL) pomoci synapse a zda se mi to nejake pomale...
> 750k dat stahuju 35s... Dokousal jsem se az k funkci
> TBlockSocket.RecvPacket, kde je x := WaitingData; a nasledne stahuje x
> bytu dat. x v mem pripade vykazuje zhruba prumerne 3k... neda se nejak
> zvetsit pocet najednou prijmanych bytu? netvrdim, ze tomu zcela
> rozumim, takze muj dotaz muze byt nesmyslny...
Maximalni velikost dat, kterou jsi schopen v jednom kroku ze socketu
precist, zalezi na dou vecech:
- jak velke pakety dat prichazeji po siti
- jak velke prijimaci buffery ma winsock nastavene
IMAPsend ma ale standardne nastavene buffery pomerne velke... 32
kilo! (Default ve windows je jen 8 kilo!)
Skoro si tipnu, ze ta pomalost timto zpusobena vubec neni, jsi si
jisty, ze ten tvuj IMAP server je schopen pracovat rychleji?
Pro zajimavost, Synapse je testovana na gigabitoven ethernetu, a nema
s touto rychlosti problem.
--
Lukas Gebauer.
E-mail: gebauerl(zv)mlp(tec)cz
http://www.ararat(tec)cz/synapse/ - Ararat Synapse - TCP/IP Lib.
Synaser a prace s nim
[*] Lukas Gebauer <gebylist(zv)mlp(tec)cz> - 12.8.2004 08:47:39
> Stejny projekt jsem udelal s ASYNCFREE i SYNASER, bohuzel se mi
> zachovala jen varianta ASYNCFREE, protoze ta druha uz nekde kolem
> 38kbit na 6 portech CPU totalne ucpala a nestihala prijimat, tak jsem
> ji smazal.
To je skoda ze nemas ten kod, protoze jsi tam musel mit neco
evidentne spatne. Bezne komunikuji na cca 400kilobitech (s virtualnim
seriakem na USB) a procesor o tom ani nevi, natoz aby se nekde neco
ucpavalo.
--
Lukas Gebauer.
E-mail: gebauerl(zv)mlp(tec)cz
http://www.ararat(tec)cz/synapse/ - Ararat Synapse - TCP/IP Lib.
Otevreni souboru do %TEMP%
[*] Karel Kral <kralkonf(zv)purus(tec)cz> - 12.8.2004 08:31:36
To jiste, ale to u nas zatim nehrozi.
Bronislav Klucka napsal(a):
>>Ja to resim docela jednoduse tak, ze si pri startu aplikace vytvorim
>>unikatni adresar jako podadresar Tempu, tam vytvarim vsechny soubory a
>>ten pri ukonceni aplikace smazu.
>>
>>Bronislav Klucka napsal(a):
>
> to je problem, pokud bude mit uzivatel soubor stale otevreny i pri zavreni
> software
>
>
> Brona
>
--
______________________________________________________
Karel Kral, vedouci odd. IT / IT manager
Purus, s.r.o., Cezavy 627, 664 56 Blucina, CZ
Tel: 547 235 000, 602 552 432, Fax: 547 231 203
E-Mail: mailto:kral(zv)purus(tec)cz, WWW: http://www.purus(tec)cz
______________________________________________________
Nastaveni site
[*] Bronislav Klucka <bronislav.klucka(zv)pro2-soft(tec)com> - 12.8.2004 00:30:58
>
>> Zdar, potrebuji
>>
>> 1/zjistit seznam sitovych rozhrani do internetu (+najit vychozi)
>> + informace
>> (ip, maska, gateway,dns) a zpusob, jak toto zmenit.
>> 2/ Na internetovem rozhrani vypnout sdileni souboru a zapnout firewall
>> (Win2000,WinXP)
>> 3/ nainstalovat certifikat (.crt)
>>
>> vubec netusim, kde zacit, muzete me nekdo nakopnout???
>>
>> Brona
>
> 1 - zkus prikaz NETSH.EXE (urcite je ve winXP)
> 2,3 nevim
>
> Michal
>
ale ja bych to potreboval do programu (za pouziti nativnich Win prikazu), ne
nejaky externi program :(
Brona
Synaser a prace s nim
[*] Erik Salaj, Winsoft <winsoft(zv)netkosice.sk> - 12.8.2004 00:30:59
> Potreboval jsem kdysi overit, jak pocitac bude snaset, kdyz bude
> komunikovat najednou 10 RS-232 plnou rychlosti in/out. Tak jsem si
> udelal programek, kde tlacitkem spustim/stopnu souvisle vysilani
> sekvence na libovolnem portu, checkboxem zapnu naslouchani s
> kontrolou, zda prijaty byte je o 1 vetsi nez predchozi. Porty jsem
> navzajem propojil kabliky. Pridavanim dalsich portu a zvysovanim
> rychlosti se zvysovalo zatizeni CPU.
sam som zvedavy ako pojde komunikacia u nasho zakaznika
so 64 COM portami. Data ale nebudeme citat z UARTov
ale zo 64 USB-Serial prevodnikov (virtualnych COM portov),
takze dufam, ze to pomocou USB utiahneme.
Erik
Synaser a prace s nim
[*] Jan Novak <delfin4(zv)volny(tec)cz> - 12.8.2004 00:10:56
> Takze nestras, ze by blokujici kod mel byt nejaky pomalejsi, nebo
> dokonce mene efektivni nez udalostmi rizeny kod.
Potreboval jsem kdysi overit, jak pocitac bude snaset, kdyz bude
komunikovat najednou 10 RS-232 plnou rychlosti in/out. Tak jsem si
udelal programek, kde tlacitkem spustim/stopnu souvisle vysilani
sekvence na libovolnem portu, checkboxem zapnu naslouchani s
kontrolou, zda prijaty byte je o 1 vetsi nez predchozi. Porty jsem
navzajem propojil kabliky. Pridavanim dalsich portu a zvysovanim
rychlosti se zvysovalo zatizeni CPU.
Stejny projekt jsem udelal s ASYNCFREE i SYNASER, bohuzel se mi
zachovala jen varianta ASYNCFREE, protoze ta druha uz nekde kolem
38kbit na 6 portech CPU totalne ucpala a nestihala prijimat, tak jsem
ji smazal.
Zajimave je, ze asyncfree varianta data prenasela bez chyby, i kdyz
refresh zobrazeni od timeru se uz nestihal volat.
Potreboval jsem tehdy rychle reagovat i na 1 prijaty byte, tak jsem
musel FiFo treshold in i out nastavit na 1 a opravdu se OnDataRecived
vyvolavala vetsinou po kazdem byte :-O a pekne to zatizilo CPU.
Bohuzel se po zmene fifo treshold musi restartovat windows. Neumite to
nekdo za jizdy?
Projekt (D4) vyzaduje instalovanou AsyncFree.
Soubor TestCom.rar je ulozen na adrese:
http://mail.volny(tec)cz/fs/81babcecc870bf8d312283f01fa6efb1
Heslo ke stazeni: faunlu808
U propojovaciho kabelu program umozni overit krome RxD/TxD i propojeni
RTC/CTS a DTR/DSR.
ComponentClass
[*] Svoboda Jiri <jsvoboda(zv)lekis(tec)cz> - 11.8.2004 14:56:02
Snad takhle ..
procedure SetColorProperty(Ctrl: TControl; FColor: TColor);
var i: integer;
begin
if Assigned(GetPropinfo(ctrl,'Color')) then
SetOrdProp(ctrl,'Color',FColor);
end;
Delphi 5
ComponentClass
[*] Marian Nykel <m.any(zv)centrum(tec)cz> - 11.8.2004 14:45:57
Ale TLabel neni (aspon v Delphi) potomkem TWinControl, takze zkus pouzit
"obecnejsiho" predka, treba TControl...
mANY
david(zv)nj.hcv(tec)cz wrote:
> With TWinControl(FindComponent(nazev)) do
> begin
> Color:=clRed;
> end;
>
> Nezmeni se nic.....
> a nebo
>
> With TLabel(FindComponent(nazev)) do
> begin
> Color:=clRed;
> end;
>
> tak se to zmeni.....tak nevim...
ComponentClass
[*] david(zv)nj.hcv(tec)cz - 11.8.2004 14:35:56
Ahoj!
Mno, snad dobre chapu. Mas nejaky kus kodu, ktery se hodi pro vice trid nez jen TButton. Pak ale tyhle tridy musi mit neco spolecneho, ne? Ze by nejakeho predka? ;o) Cili hledal bych spolecneho predka, od ktereho jsou pozadovane tridy odvozeny a je to!
Neco jako:
with TWinControl(FindComponent(jmeno)) do
No to je sice pekne tak by to bylo super kdyby to slo,ale bohuzel pokud chci nastavit treba barvu tak
nazev='Label1'
With TWinControl(FindComponent(nazev)) do
begin
Color:=clRed;
end;
Nezmeni se nic.....
a nebo
With TLabel(FindComponent(nazev)) do
begin
Color:=clRed;
end;
tak se to zmeni.....tak nevim.....
Lazarus
[*] tomsir1.edu(zv)mail.cez(tec)cz - 11.8.2004 14:03:52
no problemek je spis v tom, ze jsem se pokousel vytvorit nejakou vlastni
komponentu primo v Lazarusu ,
nicmene jsem nejak nemohl najit mezi predky napr. TComponent.
Tak jsem teda vysel s jine komponenty, ale stejne se mi nezadarilo :O(
Radek
Neni problem jen v tom, ze tvoje pridavana kompnenta nepodporuje
FreePascal? FrePascal totiz neni 100%-ne komaptibilni s Delphi!
Problem s parametrem typu varArray
[*] j.binder(zv)albacon(tec)cz - 11.8.2004 14:17:54
Ahoj,
mam problem s volanim metody COM objektu pres ktery se nejak nemuzu prenest (D7 Pro + Update).
Kdyby mi nekdo mohl poradit, byl bych moc vdecny.
Metoda je deklarovana
function Sense(var ReceiveData: OleVariant): Integer; dispid 17;
Receive Data ma byt buffer delky 77 bytu
Predopokladal jsem, ze bude fungovat toto:
procedure GetState;
var
Buf: OleVariant;
i: integer;
begin
Buf := VarArrayCreate([0..76], varByte);
for i := 0 to 76 do Buf[i] := 0;
Sense(Buf);
...
end;
Pri vystupu z procedury mi to hazi chybu
Variant or safe array is locked
V dokumentaci je metoda deklarovana
LONG Sense(VARIANT* ReceiveData)
a priklad VB skriptu, kde je volana takto
dim ReceiveData(76)
dim Length
Length = 76 For i = 0 To Length ReceiveData(i) = 0 Next
Sense(ReceiveData(0))
Za kazde postrceni moc dekuji Jiri Binder
Mnoho polozek v TListView
[*] Andreas Bednarek <bednarek(zv)digitus(tec)cz> - 11.8.2004 13:55:50
> potrebuji nacitat do TListView kolem 40 tisic polozek ze souboru.
Zaznamy
> jsou oddleny TAB. Nactu to do StringListu a z nej po radcich davam do
> sloupcu v ListView (vsReport styl). To samozrejme trva strasne dlouho.
Klasika, pouzij LV ve virtualnim rezimu. Tzn. OwnerData := True a v udalosti
OnData mu teprv predavej data k zobrazeni takto:
Item.Caption := "1. sloupec";
Item.SubItems.Add("2. sloupec");
...
atd.
Nejdriv take musis zadat pocet polozek LV (Items.Count..?).
Data si musis ulozit ve vlastnim formatu (pokud nebudes cist primo ze
StringListu) a pokud pro to pouzijes napr. tridu TList, muzes pak pekne
pouzit jeji metodu Sort pro razeni.
Mnoho polozek v TListView
[*] Martin Cajbik <cajbik(zv)sct.sk> - 11.8.2004 13:39:48
Zdravim,
najlepsie by bolo v tomto pripade pouzit virtualny mod ListView.
Martin Cajbik
Jiri Cincura wrote:
> Ahoj,
> potrebuji nacitat do TListView kolem 40 tisic polozek ze souboru. Zaznamy
> jsou oddleny TAB. Nactu to do StringListu a z nej po radcich davam do
> sloupcu v ListView (vsReport styl). To samozrejme trva strasne dlouho. Nevi
> nekdo, jak tento proces urychlit. Nejakou doprednou alokaci (nebot Destroy
> ListView trva take dlouho). Snazim se o co nejmensi "prehazovani" pismen ve
> StringListu. Delam pouze Delete a LeftStr, ktery davam do sloupcu. Zkousel
> jsem i Delete vypustit a jit na to pres MidStr, ale vysledek byl jeste
> horsi.
>
> Jak teda nacitani citelne zrychlit. Pripadne nejaky lepsi zpusob, do ceho to
> ukladat. Uvazoval jsem i pole recordu (a nezobrazoval bych to).
>
> Nejake napady sem.
>
> btw dale ten seznam prochazim sekvencne a porovnavam kazdy s kazdym coz take
> trva dlouho, vi nekdo, jak to urychlit (nemuzu s tim nic delat tridit atp.
> :[)?
>
> --
> Jiri Cincura
Delphi vs Olympus Camera
[*] Michael Janecek <mjanecek(zv)astapra(tec)cz> - 11.8.2004 13:01:44
Zdravim,
Pokusim se pripojit fotak (Olympus C5060 WideZoom) a nejak s nim
pracovat. Nutno dodat, ze mi to moc nejde :-( Olympus dodava SDK, jehoz
soucasti je ActiveX prvek pro Delphi. To se zda byt ok, ale kdyz se pokusim
nevo vyfotit, vraci mi to external error, takze po nem evidentne chci neco
spatnym zpusobem.
Jak je to spatne: viz kod kousek dole... neresil jste nekdo neco podobneho,
nebo stejneho? ... potrebuju trochu nakopnout.
Dik,
M. Janecek
Const
CamNum=0;
procedure TForm1.Button1Click(Sender: TObject);
var buffer:olevariant;
PicSize:integer;
p:PByteArray;
f:file;
written:integer;
begin
Camera.Capture (CamNum, 0);
Camera.propCurrentPicture [CamNum] := Camera.propPicCount [CamNum];
PicSize := Camera.propPicSize [CamNum];
VarArrayRedim (Buffer, PicSize-1);
Camera.GetPicture (CamNum, PicSize, Buffer);
P := VarArrayLock (Buffer);
AssignFile (F, ExtractFilePath (Application.ExeName) + 'picture.jpg');
Rewrite (F, 1);
BlockWrite (F, P^, PicSize, Written);
CloseFile (F);
VarArrayUnLock (Buffer);
Image1.Picture.LoadFromFile (ExtractFilePath (Application.ExeName) +
'picture.jpg');
end;
ComponentClass
[*] Ing. Jiri Sokol <js-delphi(zv)email(tec)cz> - 11.8.2004 13:01:43
> Od: david(zv)nj.hcv(tec)cz
> Datum: 11.08.2004 12:48:40
> With TButton(FindComponent(jmeno)) do - tohle je normalni vec ale musi to byt button ,chtel bych aby to bylo univerzalni a ja bych jen pres nejaky parametr udal co je to za typ ,ale kdyz dam promenou napr.Typ:TComponentClass....pak to zavolam jako Treba > With (FindComponent(jmeno) as Typ) do - tak to nejde....please help!!!
Ahoj!
Mno, snad dobre chapu. Mas nejaky kus kodu, ktery se hodi pro vice trid nez jen TButton. Pak ale tyhle tridy musi mit neco spolecneho, ne? Ze by nejakeho predka? ;o) Cili hledal bych spolecneho predka, od ktereho jsou pozadovane tridy odvozeny a je to!
Neco jako:
with TWinControl(FindComponent(jmeno)) do
Ahoj
Jirka
--------------------------------------------------
Ing. Jiri Sokol; jiri.sokol(zv)seznam(tec)cz; 972 231 187
D6Prof+SP3; WinXPProf+SP1; FB 1.5.0
programator amater
paradox, bde a 2 aplikacie
[*] Ing. Antonin Spurny <spurny(zv)kavlounky(tec)cz> - 11.8.2004 13:11:45
Podival bych se, jestli tabulky nahodou nemaji Active na True a v
DatabaseName cestu k te tabulce Skv.db pred nastavenim parametru tabulky.
From: "hlas" <hlas(zv)inmail.sk>> Ano ked tie aplikacie spustim samostatne vsetko funguje v pohode.
> Dokonca aj ked vymazem v bde aliasy ktore prave ta aktualna
> aplikacia nepotrebuje tak tiez vsetko chodi ok.
> To znamena ze som nezabudol v kode prepisat nejaku vazbu na stary alias
> a teda nechodi to po povodnych tabulkach.
> Dost cudne :-(
AfComPort - FlowControl
[*] jharman(zv)volny(tec)cz - 11.8.2004 12:55:41
----- PUVODNI ZPRAVA -----
Od: "Erik Salaj, Winsoft" <winsoft(zv)netkosice.sk>
> > pouzivam AfComPort a nedari se mi prepinat RTS pri ukonceni
> > vysilani. Co je potreba udelat aby se po skonceni vysilani
> > prepl
> > signal RTS? V DCB strukture by to mela byt hodnota
> > RTS_CONTROL_TOGGLE, ale kdyz ji nastavim "rucne", tak se sice
> > prepina ale s velkym zpozdenim (asi 11ms). Diky za radu.
>
> RTS je prepinane softwarom, takze s tym asi nic neurobis.
> Potrebujes hardware, ktory view RTS prepinat.
>
Takze najednou se to samo rozjelo, prepinalo se to uplne presne
jak potrebuji, ale asi po hodine to zas blbne a vypina se to
(RTS) se spozdenim 11ms. Velmi zajimave. Honza
--
Nejlevnejsi nabidka vysokorychlostniho internetu ADSL na trhu!
VOLNY ADSL 512/128kbit/s. Jiz za 549Kc bez DPH mesicne! Vice na
http://adsl.volny(tec)cz
Mnoho polozek v TListView
[*] Jiri Cincura <diskuze(zv)cincura(tec)net> - 11.8.2004 12:07:36
Ahoj,
potrebuji nacitat do TListView kolem 40 tisic polozek ze souboru. Zaznamy
jsou oddleny TAB. Nactu to do StringListu a z nej po radcich davam do
sloupcu v ListView (vsReport styl). To samozrejme trva strasne dlouho. Nevi
nekdo, jak tento proces urychlit. Nejakou doprednou alokaci (nebot Destroy
ListView trva take dlouho). Snazim se o co nejmensi "prehazovani" pismen ve
StringListu. Delam pouze Delete a LeftStr, ktery davam do sloupcu. Zkousel
jsem i Delete vypustit a jit na to pres MidStr, ale vysledek byl jeste
horsi.
Jak teda nacitani citelne zrychlit. Pripadne nejaky lepsi zpusob, do ceho to
ukladat. Uvazoval jsem i pole recordu (a nezobrazoval bych to).
Nejake napady sem.
btw dale ten seznam prochazim sekvencne a porovnavam kazdy s kazdym coz take
trva dlouho, vi nekdo, jak to urychlit (nemuzu s tim nic delat tridit atp.
:[)?
--
Jiri Cincura
e-mail: mailto:jiri(zv)cincura.net; mailto:xcincura(zv)informatics.muni(tec)cz
ICQ#: 314711544
web: http://www.cincura.net; http://photo.cincura.net
ComponentClass
[*] david(zv)nj.hcv(tec)cz - 11.8.2004 12:07:37
Zdravim...
With TButton(FindComponent(jmeno)) do - tohle je normalni vec ale musi to byt button ,chtel bych aby to bylo univerzalni a ja bych jen pres nejaky parametr udal co je to za typ ,ale kdyz dam promenou napr.Typ:TComponentClass....pak to zavolam jako Treba > With (FindComponent(jmeno) as Typ) do - tak to nejde....please help!!!****************************
David Go+AVk-ula, HCV group a.s.
Van+AQ0-urova 40,Nov+AP0- Ji+AQ0A7Q-n
www.nj.hcv(tec)cz/maddave/
www.hcv(tec)cz
AfComPort - FlowControl
[*] Erik Salaj, Winsoft <winsoft(zv)netkosice.sk> - 11.8.2004 11:59:34
> pouzivam AfComPort a nedari se mi prepinat RTS pri ukonceni
> vysilani. Co je potreba udelat aby se po skonceni vysilani prepl
> signal RTS? V DCB strukture by to mela byt hodnota
> RTS_CONTROL_TOGGLE, ale kdyz ji nastavim "rucne", tak se sice
> prepina ale s velkym zpozdenim (asi 11ms). Diky za radu.
RTS je prepinane softwarom, takze s tym asi nic neurobis.
Potrebujes hardware, ktory view RTS prepinat.
Erik
Editor iconek
[*] Jan Rizek <jan_rizek(zv)centrum(tec)cz> - 11.8.2004 09:49:24
nebo ACDSee takm je take prevod..
> Zdar,
> kreslim si obrazky do programu, ale formulare muzou byt pouze formatu ico,
> nevite nekdo o nejakem free editoru, ktery by umel prevadet bmp na ico
> (potrebuji i transparentni pozadi, coz jaksi editor v Delphi neda)?
>
> Brona
>
Kolko je formularov v aplikacii otvorenych
[*] Jan Rizek <jan_rizek(zv)centrum(tec)cz> - 11.8.2004 09:47:22
pokud je tvoris s ownere Application:
TFrom.create(Application); tak muzes projet tento objekt..
wit Application do begin
for i:= 0 to CotrolCOunt-1 do
if Controls[i] is Tform then ...
end;
> Ako zistim pocet prave vytvorenych formularov a pripadne pocet
> zobrazenych formularov? D7
>
> martin
AfComPort - FlowControl
[*] jharman(zv)volny(tec)cz - 11.8.2004 08:33:16
Zdravim vsechny,
pouzivam AfComPort a nedari se mi prepinat RTS pri ukonceni
vysilani. Co je potreba udelat aby se po skonceni vysilani prepl
signal RTS? V DCB strukture by to mela byt hodnota
RTS_CONTROL_TOGGLE, ale kdyz ji nastavim "rucne", tak se sice
prepina ale s velkym zpozdenim (asi 11ms). Diky za radu.
Honza
--
Nejlevnejsi nabidka vysokorychlostniho internetu ADSL na trhu!
VOLNY ADSL 512/128kbit/s. Jiz za 549Kc bez DPH mesicne! Vice na
http://adsl.volny(tec)cz
Otevreni souboru do %TEMP%
[*] Karel Kral <kralkonf(zv)purus(tec)cz> - 11.8.2004 08:17:15
Ja to resim docela jednoduse tak, ze si pri startu aplikace vytvorim
unikatni adresar jako podadresar Tempu, tam vytvarim vsechny soubory a
ten pri ukonceni aplikace smazu.
Bronislav Klucka napsal(a):
> Ahoj,
> nektere programy oteviraji fyzicky neexistujici soubory do tempu (Outlook
> prilohy, total commander zipovane soubory) a prizavreni okna s timto
> souborem se soubor automaticky z tempu smaze. Jak to delaji? oteviraji novy
> thread a pouzivaji waitforsingleobject?
>
> Brona
--
______________________________________________________
Karel Kral, vedouci odd. IT / IT manager
Purus, s.r.o., Cezavy 627, 664 56 Blucina, CZ
Tel: 547 235 000, 602 552 432, Fax: 547 231 203
E-Mail: mailto:kral(zv)purus(tec)cz, WWW: http://www.purus(tec)cz
______________________________________________________
Editor iconek
[*] Lstiburek Pavel <lstiburek(zv)ceb(tec)cz> - 11.8.2004 08:15:14
Ahoj,
ale jo da, transparentni pozadi se vyrobi transparentni barvou,
to je ta s tou cervenou krivkou.
jinak prevod do ico je napr. v irfanu (free).
Pavel
> From: Bronislav Klucka [mailto:bronislav.klucka(zv)pro2-soft.com]
> kreslim si obrazky do programu, ale formulare muzou byt pouze
> formatu ico,
> nevite nekdo o nejakem free editoru, ktery by umel prevadet bmp na ico
> (potrebuji i transparentni pozadi, coz jaksi editor v Delphi neda)?
paradox, bde a 2 aplikacie
[*] hlas <hlas(zv)inmail.sk> - 11.8.2004 07:47:11
Tak toto ked som si precital, tak som myslel, ze si trafil
do cierneho. Ale nic nezabralo. Logiku to malo, lebo
vsetko funguje akurat sa zdvojnasobil pocet suborov
s ktorymi sa pracuje. Defaultova hodnota tam bola 48.
Zvysil som az na 348. A nic. Stale ta ista chyba.
Ale aj tak si myslim, ze to bude nieco na tento sposob.
Skusim sa tam pohrat aj s dalsimi parametrami bde.
Inak to ze bde na tu tabulku siaha to je ok. Ak su tabulky
poprepajane referencnymi integritami tak to tak funguje.
Ano ked tie aplikacie spustim samostatne vsetko funguje v pohode.
Dokonca aj ked vymazem v bde aliasy ktore prave ta aktualna
aplikacia nepotrebuje tak tiez vsetko chodi ok.
To znamena ze som nezabudol v kode prepisat nejaku vazbu na stary alias
a teda nechodi to po povodnych tabulkach.
Dost cudne :-(
----- Original Message -----
From: "Karel Chmel"
> Tohle spis vypada, ze se snazi otevrit tabulku Skv.db (z nejakeho duvodu)
a
> nedari se mu to.
>
> Nejdriv bych zacal patrat, zda ta tabulka se opravdu ma otevirat.
>
> Pokud jsem to pochopil dobre, tak pokud ty aplikace bezi kazda samostatne,
> tak zadny problem neni. Zkus se jeste podivat jaka je hodnota parametru
> MAXFILEHANDLES v konfoguraci BDE a pripadne ji zvetsit
>
> Karel
Synaser a prace s nim
[*] Erik Salaj, Winsoft <winsoft(zv)netkosice.sk> - 10.8.2004 23:46:37
> Synaser je jiny nez ostatni. Komponent, ktere uzivaji udalosti, tech jsou
> mraky. Opravdu jsem nepotreboval psat to co uz bylo mnohokrate napsano.
> Synaser pouziva zcela jinou filozofii pouzivani, a tim vytvari
> alternativu k jiz existujicim komponentam. At si kazdy vybere to co mu
> vice vyhovuje.
vecsina komponentov AIK umoznuje pouzivat tak udalosti ako aj cakanie
s timeoutom. Obidva tieto moznosti maju svoje vyhody aj nevyhody
a obidva su podporovane Windowsom.
Treba si uvedomit, ze kym udalosti su nativne pre seriovu komunikaciu
(t.j. priamo podporovane hardwerom), timeouty su uz cisto softwerova
zalezitost a preto viac zatazuju system. Nema preto vyznam pouzivat
ich aj tam, kde to nie je vyhodne. Dnes som robil program, ktory cita
sucasne zo 64 COM portov (pomocou USB-RS232 prevodnikov)
udaje a zapisuje ich do suboru. Neviem aky vyznam by malo komplikovat
riesenie pomocou timeoutov, ked mozem vyuzit udalost a udaje jednoducho
precitat ked pridu (a ja neviem vopred kedy pridu, ani ich dlzku, viem
len to, ze su to hexakody ukoncene urcitymi znakmi):
procedure TForm.ComPortRxChar(Sender: TObject);
begin
Spracuj(TComPort(Sender).ReadString);
end;
Erik
Editor iconek
[*] Bronislav Klucka <bronislav.klucka(zv)pro2-soft(tec)com> - 10.8.2004 23:06:33
Zdar,
kreslim si obrazky do programu, ale formulare muzou byt pouze formatu ico,
nevite nekdo o nejakem free editoru, ktery by umel prevadet bmp na ico
(potrebuji i transparentni pozadi, coz jaksi editor v Delphi neda)?
Brona
Synaser a prace s nim
[*] Lukas Gebauer <gebylist(zv)mlp(tec)cz> - 10.8.2004 22:38:31
> snazim se tu nastudovat praci se synaser-em.
> V podstate mi jde o to, byt schopen komunikovat s mobilem. Umim otevrit
> port, nastavit parametry prenosu a poslat AT prikaz podle prikladu.
> Nicmene nemam poneti, jakym zpusobem mam zpracovat tu cast, kde je napsano
Jsou tu dve naprosto odlisne veci.. jednak je tam metoda AtCommand, ktera
slouzi na posilani jednoduchych AT prikazu, tako "ATZ", atd. proste AT
prikazy, ktere konci bud odpovedi OK, nebo ERROR.
Pak je tam metoda ATConnect, ktera slouzi na poslani takoveho AT prikazu,
ktery zpusobi navazani datoveho spojeni s nejakym dalsim modemem. To muze
byt bud prikaz 'ATD', nebo treba i 'ATA'. Po skonceni tohoto prikazu mas
bud chybu spojeni, nebo je spojeni navazano, a vse co posles od te chvile
do modemu, bude predano modemu na druhe strane linky, a naopak.
> Delal jsem jiz nejake programy pro komunikaci s mobilem, ale pouzival jsem
> komponenty tretich stran, kde byla napr. udalost OnReceive, ktera se
> vyvolala po prichodu dat, muze se totiz stat, ze napr. pri vyzvaneni dojde
> k prijmu dat (retezec 'RING') ... jak toto osetrit pri pouziti synaser ?
Synaser je jiny nez ostatni. Komponent, ktere uzivaji udalosti, tech jsou
mraky. Opravdu jsem nepotreboval psat to co uz bylo mnohokrate napsano.
Synaser pouziva zcela jinou filozofii pouzivani, a tim vytvari
alternativu k jiz existujicim komponentam. At si kazdy vybere to co mu
vice vyhovuje.
Pochopitelne, principy pouzivani Synapse a Synaseru jsou popsany.
Napriklad vysvetleni, jak cist data, najdes na wiki strankach Synapse:
http://synapse.ararat(tec)cz/wiki/index.php?page=Article014
jednoduse, zadny event oznamujici prichod dat v Synaseru nenajdes. neni
tam! Kdyz chces precist nejaka data, specifikuj jaka data a precti si je.
Tvuj program tyu data bud precte z bufferu jiz prijmutych dat, nebo se
jednoduse beh proghramu zastavi do te doby, nez pozadovana data prijdou.
(pochopitelne mas moznost definovat timeout na celou operaci.)
Takze pokud chces cekat na zvoneni, neni nic jednodusiho, nez v nejake
smycce periodicky vpolat pozadavek na precteni retezce dat zakoncenych
odradkovanim. Nastav si nejaky rozumny timeout, a kdyz dostanech chybu
timeoutu, operaci suse zopakuj do te doby, nez prijmes nejaka data. Kdyz
se ti podari neco prijmout, tak se podivas, jestli data obsahuji RING.
Jednodusi je ale primo sledovat property 'ring', ktera je k tomuto
urcena. ;-)
--
Lukas Gebauer.
E-mail: gebauerl(zv)mlp(tec)cz
WEB: http://www.ararat(tec)cz/synapse - Synapse Delphi and Kylix TCP/IP Library
Otevreni souboru do %TEMP%
[*] Roland Turcan <konf(zv)rotursoft.sk> - 10.8.2004 22:20:27
<<< 10.8.2004 22:18 - Bronislav Klucka "bronislav.klucka(zv)pro2-soft.com" >>>
BK> Ahoj,
BK> nektere programy oteviraji fyzicky neexistujici soubory do tempu (Outlook
BK> prilohy, total commander zipovane soubory) a prizavreni okna s timto
BK> souborem se soubor automaticky z tempu smaze. Jak to delaji? oteviraji novy
BK> thread a pouzivaji waitforsingleobject?
Napada ma ze by som to riesil cestou, ze by som si zapisoval zoznam
mojich docasnych suborov, ktore by som umiestnoval do %temp%, ale pri
frmMain.OnDestroy alebo OnClose by som odmazal tie subory, ktore som
za jazdy navyrabal.
?
--
Best regards, TRoland
http://exekutor.rotursoft.sk
Lazarus
[*] Lukas Gebauer <gebylist(zv)mlp(tec)cz> - 10.8.2004 22:16:26
> No, ona tam zrejme nejaka moznost debuggovani je, jen se mi nepodarilo
> debugger nastavit. Dalsi vec, kterou se mi nepodarilo rozchodit, je pridani
> vlastni komponenty ... mas s tim nejakou zkusenost ??
Tak s timto nemam zkusenost zadnou. Nejsem zrovna typicky komponentovy
programator. ;-) Zajimam se o Lazarus hlavne proto, ze Synapse podporuje
FreePascal jako takovy.
Neni problem jen v tom, ze tvoje pridavana kompnenta nepodporuje
FreePascal? FrePascal totiz neni 100%-ne komaptibilni s Delphi!
--
Lukas Gebauer.
E-mail: gebauerl(zv)mlp(tec)cz
WEB: http://www.ararat(tec)cz/synapse - Synapse Delphi and Kylix TCP/IP
Library
paradox, bde a 2 aplikacie
[*] Karel Chmel <kchmel(zv)karneval(tec)cz> - 10.8.2004 21:30:19
Tohle spis vypada, ze se snazi otevrit tabulku Skv.db (z nejakeho duvodu) a
nedari se mu to.
Nejdriv bych zacal patrat, zda ta tabulka se opravdu ma otevirat.
Pokud jsem to pochopil dobre, tak pokud ty aplikace bezi kazda samostatne,
tak zadny problem neni. Zkus se jeste podivat jaka je hodnota parametru
MAXFILEHANDLES v konfoguraci BDE a pripadne ji zvetsit
Karel
----- Original Message -----
From: "hlas" <hlas(zv)inmail.sk>
To: <delphi-l(zv)clexpert(tec)cz>
Sent: Tuesday, August 10, 2004 3:51 PM
Subject: Re: paradox, bde a 2 aplikacie
> Exclusive na true nastavujem vynimocne
> v danej chvili, ked sa chyba ozve tak nie.
>
> Chyba je:
> Detail table open operation failed.
> Table : Skv.db
>
> Skratka ked naskakuje ta druha aplikacia tak sa pokusi otvorit tabulku
> Adr (adresar firiem) a vtedy vyhlasi chybu na napr. tabulke
> SkV. Medzi nimi je vztah master/detail
>
> Ako keby siahali po tych istych tabulkach,
> ale to v ziadnom pripade nemoze byt pravda.
>
> Ak vymazem aliasy tej povodnej aplikacie
> tak nova mi krasne chodi. Je to cele divne.
> Aj som si odkontroloval privat dir pre bde.
> kazda ma svoj. Fakt netusim o co tam moze ist.
>
> Skor ci bde si nevytvara nejake pracovne subory
> a pri nich dojde k nejakej kolizii.
> Ale ved na to je ten Session.PrivateDir nie?
>
> ----- Original Message -----
> From: "Karel Chmel">
> A maji v tech aplikacich nastaveny komponenty TTable nebo TDatabase
> > vlastnost Exclusive na true?
> > Jakou presne chybu to hlasi?
> >
> >
> > Karel
>
>
>
Synaser a prace s nim
[*] tomsir1.edu(zv)mail.cez(tec)cz - 10.8.2004 21:14:16
Ahoj,
snazim se tu nastudovat praci se synaser-em.
V podstate mi jde o to, byt schopen komunikovat s mobilem. Umim otevrit
port, nastavit parametry prenosu a poslat AT prikaz podle prikladu.
Nicmene nemam poneti, jakym zpusobem mam zpracovat tu cast, kde je napsano
:
// you are now connected to a modem at +420 ...
// you can transmit or receive data now
Zrejme se bude jednat o nejakou smycku, kdy budu posilat data a cekat na
odpoved, ale priznam se, ze si to nedovedu predstavit.
Proto bych chtel poprosit o nejaky funkcni priklad, pripadne o odkazy na
ne.
Delal jsem jiz nejake programy pro komunikaci s mobilem, ale pouzival jsem
komponenty tretich stran, kde byla napr. udalost OnReceive, ktera se
vyvolala po prichodu dat, muze se totiz stat, ze napr. pri vyzvaneni dojde
k prijmu dat (retezec 'RING') ... jak toto osetrit pri pouziti synaser ?
Doufam ze to neni moc zmatene ... a diky
Radek
Lazarus
[*] tomsir1.edu(zv)mail.cez(tec)cz - 10.8.2004 20:22:12
No, ona tam zrejme nejaka moznost debuggovani je, jen se mi nepodarilo
debugger nastavit. Dalsi vec, kterou se mi nepodarilo rozchodit, je pridani
vlastni komponenty ... mas s tim nejakou zkusenost ??
Radek
Nicmene soucasne betaverze pro Windows maji jeste dost nedodelku (hlavne v
oblasti debuggeru), ktere podle meho
brani praktickemu pouzivani.
Na druhou stranu, podle mne chybi uz jen malo k tomu, aby se z toho stalo
plnohodnotne IDE.
Lazarus
[*] Lukas Gebauer <gebylist(zv)mlp(tec)cz> - 10.8.2004 19:52:09
> na internetu jsem narazil na free nastroj Lazarus, postaveny na Free
> Pascalu. IDE vypada velmi podobne jako Delphi. Chci se zeptat. zda nekdo z
> vas ma s timto nastrojem zkusenosti.
Pod Linuxem je to uz pry nejaky ten patek pouzitelne, ale osobni
zkusenost s tim nemam. zajimam se o windows verzi, ktera byla po dlouhe
dobe pred nedavnem znovu uzivena. Nicmene soucasne betaverze pro Windows
maji jeste dost nedodelku (hlavne v oblasti debuggeru), ktere podle meho
brani praktickemu pouzivani.
Na druhou stranu, podle mne chybi uz jen malo k tomu, aby se z toho stalo
plnohodnotne IDE.
--
Lukas Gebauer.
E-mail: gebauerl(zv)mlp(tec)cz
WEB: http://www.ararat(tec)cz/synapse - Synapse Delphi and Kylix TCP/IP
Library
OT: Lazarus
[*] tomsir1.edu(zv)mail.cez(tec)cz - 10.8.2004 19:44:03
Ahoj,
na internetu jsem narazil na free nastroj Lazarus, postaveny na Free
Pascalu. IDE vypada velmi podobne jako Delphi. Chci se zeptat. zda nekdo z
vas ma s timto nastrojem zkusenosti.
Diky Radek
OT: Nabidka prace
[*] Adam Paclt <adam(zv)icewarp(tec)cz> - 10.8.2004 19:05:59
Dobry den,
Spolecnost, IceWarp Ltd, ktera jiz nekolik let uspesne pusobi na celosvetovem trhu se
serverovymi systemy hleda programatory na vyvoj sveho stezejniho produktu Merak Mail server
pro prostredi operacniho systemu Linux.
Vyvoj samotneho Meraka zacal v roce 1999 a je zalozen na vyvojovem prostredi Delphi.
Tim je bohuzel funkcne svazan s Ms-Windows. Radi bychom ale zacali vyvijet verzi pod operacni
system Linux a to formou prevedeni produktu z Delphi na Kylix.
Pro tuto praci hledame programatory schopne pomoci nam s prevodem aplikace.
Nabizime:
- Praci v kolektivu mladych lidi
- Moznost profesniho rustu na sefa vyvojoveho tymu
- Dobre platove ohodnoceni
- Moznost cestovani po svete
Pozadujeme:
- Casovou flexibilitu a ochotu ucit se novym vecem
- Znalost anglickeho jazyka
- Dobrou znalost operacniho systemu Linux i Windows, vyvojoveho prostredi Delpi
- Obecnou znalost sitovych protokolu
- Nejlepe praxi ve vyvojovem prostredi Kylix
Pokud si myslite, ze by Vam tato prace vyhovovala, zaslete mi prosim Vase CV.
Dekuji
S pozdravem
Adam Paclt
International sales manager
IceWarp Ltdd - http://www.icewarp.com
E-mail: adam(zv)icewarp.com
GSM: +420 (777) 600 351
paradox, bde a 2 aplikacie
[*] hlas <hlas(zv)inmail.sk> - 10.8.2004 15:51:45
Exclusive na true nastavujem vynimocne
v danej chvili, ked sa chyba ozve tak nie.
Chyba je:
Detail table open operation failed.
Table : Skv.db
Skratka ked naskakuje ta druha aplikacia tak sa pokusi otvorit tabulku
Adr (adresar firiem) a vtedy vyhlasi chybu na napr. tabulke
SkV. Medzi nimi je vztah master/detail
Ako keby siahali po tych istych tabulkach,
ale to v ziadnom pripade nemoze byt pravda.
Ak vymazem aliasy tej povodnej aplikacie
tak nova mi krasne chodi. Je to cele divne.
Aj som si odkontroloval privat dir pre bde.
kazda ma svoj. Fakt netusim o co tam moze ist.
Skor ci bde si nevytvara nejake pracovne subory
a pri nich dojde k nejakej kolizii.
Ale ved na to je ten Session.PrivateDir nie?
----- Original Message -----
From: "Karel Chmel">
A maji v tech aplikacich nastaveny komponenty TTable nebo TDatabase
> vlastnost Exclusive na true?
> Jakou presne chybu to hlasi?
>
>
> Karel
paradox, bde a 2 aplikacie
[*] Karel Chmel <kchmel(zv)karneval(tec)cz> - 10.8.2004 15:29:43
A maji v tech aplikacich nastaveny komponenty TTable nebo TDatabase
vlastnost Exclusive na true?
Jakou presne chybu to hlasi?
Karel
----- Original Message -----
From: "hlas" <hlas(zv)inmail.sk>
To: <delphi-l(zv)clexpert(tec)cz>
Sent: Tuesday, August 10, 2004 3:09 PM
Subject: Re: paradox, bde a 2 aplikacie
> local share mam samozrejme na true nastaveny
> a netdir je nastaveny tiez do jedneho adresara, tam nevidim
> co by to s tym mohlo suvisiet.
> samozrejme programovo ho nemenim
> v tom to nebude
>
> ----- Original Message -----
> From: "Lasevic, Martin"
> > Ahoj,
> >
> > podivej se, zda mas spravne nastaveny netdir......a hlavne se do rech
> > aplikaci podivej, zda si ten netdir natvrdo nenastavuje nektera z nich.
> >
> > A taky si nastav v BDE LocalShare na true.
> >
> > Martin
>
>
>
paradox, bde a 2 aplikacie
[*] hlas <hlas(zv)inmail.sk> - 10.8.2004 15:09:41
local share mam samozrejme na true nastaveny
a netdir je nastaveny tiez do jedneho adresara, tam nevidim
co by to s tym mohlo suvisiet.
samozrejme programovo ho nemenim
v tom to nebude
----- Original Message -----
From: "Lasevic, Martin"
> Ahoj,
>
> podivej se, zda mas spravne nastaveny netdir......a hlavne se do rech
> aplikaci podivej, zda si ten netdir natvrdo nenastavuje nektera z nich.
>
> A taky si nastav v BDE LocalShare na true.
>
> Martin
off kniha o win API
[*] Vaclav Sykora <vaclav.sykora(zv)accidis(tec)cz> - 10.8.2004 13:25:33
> chtel jsem se zeptat , zda nevite o nejake dobre knize o
> window API,optimalns pro delphi.pred asi 5 roky byla na
> trhu kniha 2 dily win32 api.Nyni se po 5 letech vracim k
> delphi 7 a nerad bych si koupil nekvalitni vec.
Knihu Win32API mam, ale osobne jsem ji nikdy moc nepouzival. Taky bych
rekl, ze je dnes docela zastarala - chybi v ni spousta veci napr. COM.
Davam prednost MSDN Library nebo Windows SDK, ktera je soucasti helpu v
Delphi.
vas
off kniha o win API
[*] Petr Vones <konference(zv)petrvones(tec)net> - 10.8.2004 13:05:30
From: "tomas Krmela" <krmela(zv)metra-su(tec)cz>
> chtel jsem se zeptat , zda nevite o nejake dobre knize o window
> API,optimalns pro delphi.pred asi 5 roky byla na trhu kniha 2 dily win32
> api.Nyni se po 5 letech vracim k delphi 7 a nerad bych si koupil
> nekvalitni vec.
Nejlepe Platform SDK nebo MSDN Online http://msdn.microsoft.com/
Petr Vones
off kniha o win API
[*] tomas Krmela <krmela(zv)metra-su(tec)cz> - 10.8.2004 12:53:28
Dobry den,
chtel jsem se zeptat , zda nevite o nejake dobre knize o window API,optimalns pro delphi.pred asi 5 roky byla na trhu kniha 2 dily win32 api.Nyni se po 5 letech vracim k delphi 7 a nerad bych si koupil nekvalitni vec.
Dekuji
Tomas Krmela
paradox, bde a 2 aplikacie
[*] Lasevic, Martin <mlasevic(zv)ratiopharm(tec)cz> - 10.8.2004 12:57:29
Ahoj,
podivej se, zda mas spravne nastaveny netdir......a hlavne se do rech
aplikaci podivej, zda si ten netdir natvrdo nenastavuje nektera z nich.
A taky si nastav v BDE LocalShare na true.
Martin
> -----Original Message-----
> From: hlas [mailto:hlas(zv)inmail.sk]
> Subject: paradox, bde a 2 aplikacie
>
>
> potrebujem na rychlo z jednej paradoxovskej aplikacie vytvorit inu.
> mam to spravene cez aliasy
> vytvoril som nove aliasy, tam som namieril vsetky datasety
> zadefinoval som pre tu druhu aplikaciu druhy pracovny adresar pre bde
> vsetko chodi ale obidve aplikacie naraz nechodia
> hlasi chybu v tabulkach (iba ak je zapnuta aj druha a naopak)
> nevie niekto cim by to mohlo byt?
>
>
paradox, bde a 2 aplikacie
[*] hlas <hlas(zv)inmail.sk> - 10.8.2004 07:53:06
potrebujem na rychlo z jednej paradoxovskej aplikacie vytvorit inu.
mam to spravene cez aliasy
vytvoril som nove aliasy, tam som namieril vsetky datasety
zadefinoval som pre tu druhu aplikaciu druhy pracovny adresar pre bde
vsetko chodi ale obidve aplikacie naraz nechodia
hlasi chybu v tabulkach (iba ak je zapnuta aj druha a naopak)
nevie niekto cim by to mohlo byt?
Kolko je formularov v aplikacii otvorenych
[*] Lebeda David <david.lebeda(zv)comarr(tec)cz> - 10.8.2004 07:03:01
> Ako zistim pocet prave vytvorenych formularov a pripadne pocet
> zobrazenych formularov? D7
Ahoj,
podivej se do helpu na TScreen, konkretne tusim TScreen.Forms.
(Nemam ted pustene Delphi, ale snad se to tak opravdu jmenuje). To
by mel byt seznam vytvorenych formularu. Projetim v cyklu a
zjistovanim Visible bys mel ziskat i seznam viditelnych formu.
David Lebeda
Kolko je formularov v aplikacii otvorenych
[*] martin <matrix(zv)inmail(tec)cz> - 10.8.2004 01:10:27
Ako zistim pocet prave vytvorenych formularov a pripadne pocet
zobrazenych formularov? D7
martin
Otevreni souboru do %TEMP%
[*] Tomas Grepl <delphi(zv)kapsw(tec)cz> - 10.8.2004 00:02:22
Bronislav Klucka wrote:
> nektere programy oteviraji fyzicky neexistujici soubory do tempu
> (Outlook prilohy, total commander zipovane soubory) a prizavreni okna
> s timto souborem se soubor automaticky z tempu smaze. Jak to delaji?
> oteviraji novy thread a pouzivaji waitforsingleobject?
Tusim, ze to ma na starosti nejake rozhrani, ktere soubor ulozi do tmp
adresare internet exploreru (napr.
C:\Documents and Settings\User\Local Settings\Temporary Internet Files) a
soucasne ho zaradi do nejakeho indexu docasnych souboru, ktery se pak
postara o smazani souboru, podobne jako se mazou stare stranky html.
Mozna to ma na starosti knihovna shdocvw.dll a jeji ActiveX Microsoft
Internet Controls. Dej vedet, kdyz neco zjistis.
Tomas
Nahravanie zvuku s TMediaPlayer
[*] Peter Ondras <peter.ondras(zv)pse.sk> - 9.8.2004 21:50:12
Ako mozem nahravat zvuk s pomocou komponenty TMediaPlayer?
Mam na formulari komponentu MediaPlayer a 2 tlacitka. Po kliknuti na
prve sa urobi CopyFile ktory prekopiruje subor empty.wav do test.wav.
Nasledne urobim MediaPlayer1.Open, MediaPlayer1.StartPos:=0 a
MediaPlayer1.StartRecording. Pri druhom tlacitku robim
MediaPlayer1.Save. Subor je vsak stale prazdny (mikrofon mam pripojeny a
aj funguje - aj je povoleny v OS)
Otevreni souboru do %TEMP%
[*] Bronislav Klucka <bronislav.klucka(zv)pro2-soft(tec)com> - 9.8.2004 19:56:02
Ahoj,
nektere programy oteviraji fyzicky neexistujici soubory do tempu (Outlook
prilohy, total commander zipovane soubory) a prizavreni okna s timto
souborem se soubor automaticky z tempu smaze. Jak to delaji? oteviraji novy
thread a pouzivaji waitforsingleobject?
Brona