Archív konference Delphi

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

Rozdeleni souboru

[*] Petr Voborn�k <vobornik(zv)ssakhk(tec)cz> - 15.9.1999 11:35:59

Nevite, jak rozdelit soubor treba na tri? Ja to umim jen prepisovanim jednotlivych charu, ale chtelo by to nejak rychlejc. Pri 20 Mb souboru uz to moc trva.

Pitr - Petr Vobornik
MIKMIK company
vobornik(zv)ssakhk(tec)cz
ICQ# 23132120
www.ssakhk(tec)cz/home/vobornik/

TStrings,TStringList, nebo neco jineho?

[*] Radim Kunz <rkunz(zv)ova(tec)comp(tec)cz> - 15.9.1999 11:50:14



>
>> Ahoj
>>
>> ta chyba je prave v tom, ze predavas ten StringList jako vysledek funkce,
>> ale UVNITR te funkce zavolas FREE = ZRUSIS ho.
>
>To je divny. Ja volam Dispeceri.Free. Dispeceri je lokalni promenna fce a
>rusim ji az jeji hodnotu predam do Result, protoze jinym zpusobem bych se
na
>ni uz nedostal a zustala by mi v pameti.Napadlo mi jeste provest

Dispeceri neni primo objekt, ale pointr na objekt.
Kdyz jsi udelal

Result := Dispeceri

Tak jsi do Result prekopiroval pointr, ne objekt. Obe promenne ukazovaly
na tentyz objekt.

A na dalsim radku jsi udelal

Dispeceri.Free;

Cimz jsi dealokoval objekt, na ktery ukazoval nejen Dispeceri, ale i
Result. Cela funkce
pak vratila pointr na dealokovany objekt, a spadlo to.

>
>>
>> function TMainForm.NactiDispecery:TStringList;
>> var IniF:TIniFile;
>> Dispeceri:TStringList;
>> Pom1,S:String;
>> I:Integer;
>> begin
>> Dispeceri:=TStringList.Create;
>> Dispeceri.Clear;
>> S:=ExtractFilePath(Application.ExeName)+'Dispecer.INI';
>> IniF := TIniFile.Create(S);
>> for .....
>> begin
>> .........
>> Pom1:=IniF.ReadString(.........);
>> .........
>> end;
>> IniF.Free;
>> Dispeceri.Add(Pom1)
>> Result:=Dispeceri; file://zkousel jsem i Result.Assign(Dispeceri); a
>> AddStrings
>> Dispeceri.Free;
>> end;
>>
>
>

PC speaker

[*] Zden�k B�hm - 15.9.1999 12:33:49

Ahoj,

mam doma Chip special - Zvuk a MIDI na PC a tam se o tomto hovori, pravda jeste v souvislosti s W3.1. Moc si na to nevzpominam, ale cele se to toci okolo souboru speaker.dll, ktery nejak zpusobi, ze speaker se chova jako zvukovka. Treba zvuky pri systemovych udalostech se pak prehravaji na speakeru.
Nijak jsem to nestudoval, protoze zvukovka stoji par penez a zvuk z ni je rozhodne lepsi nez ze speakeru.
Pokud te to i tak zajima, poslu ti ten speaker.dll s nejakym vycucem popisu na mejl.

Zdar Zdenek
----- Original Message -----
From: Martin Talian
To: delphi-l(zv)fwd(tec)cz
Sent: Tuesday, September 14, 1999 3:29 PM
Subject: PC speaker


da sa na PC bez zvuk karty, nejak naprogramovat nejaka melodia alebo pod(rec, zvuky) cez PC speaker pomocou Delphi?
Priklad by bodol.

martin


Funkcia z DLL - je opravdu nutne pouzit ShareMem

[*] voltrr1.epr(zv)mail.cez(tec)cz - 15.9.1999 11:39:26



ShareMem je nutno pouzit >

pokud pouzivas longstring (podle toho co se pise tak i pokud je v classu
nebo recordu) - nejlepe je to obejit pomoci ShortString nebo PChar me
osobne se osvedcilo ve funkci dat parametr PChar a pri volani si PChar
naalokovat
StrAlloc a naplnit ho datama.

Ono totiz nejde ani tak o tu unitu jako o tu opruzujici .dll kterou pak
musis mit u kazde sve .dll


Radek Voltr
P.S> Prave pracuju na programu kde to pouzivam (ty PChar)

RX & Delphi 5

[*] Vaclav_Lukes(zv)EUROTEL.CZ - 15.9.1999 12:43:50


Hi,

instaloval jste n�kdo RX na Delphi 5 ?

Va�ek

Klavesnice a menu

[*] Foldyna Ji�� <jiri.f(zv)avizo(tec)cz> - 15.9.1999 12:59:05

2) jak odchytit klavesovou zkratku Ctrl+/
-----------------------------------------

Ahoj, zkus pouzit tohle (obsluha eventu OnKeyDown):

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift:
TShiftState);

begin
if Key = 191 then // lomitko vraci kod 191, jestli ma nejakou
konstantu ve VK_ nevim
// kdybys chtel pouzit lomitko na keypadu, je na to
konstanta VK_DIVIDE
begin
if ssCtrl in Shift then
begin
MessageDlg('Byla klapka Ctrl + / !', mtConfirmation, [mbOK], 0);
Key := 0;
end;
end;
end;

Tohle je OnKeyDown z hlavniho formu, kdybys to chtel pouzit, pokud ma
fokus jiny objekt (napriklad modalni formular, musis nastavit KeyPrewiev
na true.

Preji pekny den

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


DBGrid and select

[*] Martin Bab�k <M.Babik(zv)mus(tec)cz> - 15.9.1999 13:03:39

Zdravim obec Delphinu!
Jiz jsem to jednouj zkousel, ale bohuzel nikdo nezareagoval, tak to zkousim jeste jednou. Mam takovy specificky problem, nevim jak vybrat nektere rekordy (treba 0 az 5, nebo uplne vsechny) v dbgridu, aniz by user odklikaval tyto jednotlive (pouze stiskne tlacitko vyber vse), a obracene. DBgrid je napojen na query. Pouzivam D4. Dik za radu. A netvrdte mi, ze jste to nikdo jeste nedelal! :-) M&B


Par dotazu (vsehochut)

[*] Daniel Rott <roxton(zv)atlas(tec)cz> - 15.9.1999 13:16:28

Zkus MessageBeep($FFFFFFFF)

The MessageBeep function plays a waveform sound. The waveform sound for each sound type is identified by an entry in the [sounds]
section of the registry.

BOOL MessageBeep(
UINT uType // sound type
);

Parameters
uType
Specifies the sound type, as identified by an entry in the [sounds] section of the registry. This parameter can be one of the
following values:
Value Sound
0xFFFFFFFF Standard beep using the computer speaker
MB_ICONASTERISK SystemAsterisk
MB_ICONEXCLAMATION SystemExclamation
MB_ICONHAND SystemHand
MB_ICONQUESTION SystemQuestion
MB_OK SystemDefault

Return Values

If the function succeeds, the return value is nonzero.
If the function fails, the return value is zero. To get extended error information, call GetLastError.

Ahoj
Daniel

----- P�vodn� zpr�va -----
Od: Kry�tof Hoder <hoder(zv)seznam(tec)cz>
Komu: <delphi-l(zv)fwd(tec)cz>
Odesl�no: 14. z��� 1999 21:22
P�edm�t: Re: Par dotazu (vsehochut)> 1) Pujde to pres asm a porty, podivej se na moje stranky
> mujweb(tec)cz/www/hoder. Tam nekde bude soubor SpeakerUnit.zip.
> 2) Nevim
> 3) Pres YForm.OnClose
> ----- Original Message -----
> From: Vlastimil Bardon <ineq-soft(zv)ova.eridan(tec)cz>
> To: <delphi-l(zv)fwd(tec)cz>
> Sent: Tuesday, September 14, 1999 4:17 PM
> Subject: RE: Par dotazu (vsehochut)
>
>

Par dotazu (vsehochut)

[*] Foldyna Ji�� <jiri.f(zv)avizo(tec)cz> - 15.9.1999 13:25:21

> 1) Jak lze v D3 vydat ze speakeru zvuk urcite frekvence a po urcitou
> dobu (tj. neco jako "klasicke" pascalovske Sound(x); Delay(y);
> Nosoud;) ? Obycejne Beep nebo MessageBeep mi nevyhovuje.

Ve WinNT to lze udelat napr. takhle:

procedure TForm1.Button1Click(Sender: TObject);
begin
Windows.Beep(440,500); // parametry jsou: frekv[Hz] 37 - 32767,
duration(delka) [ms]
Windows.Beep(880,500);
Windows.Beep(1760,500);
end;

ve Win95 to podle WinAPI Help nejde:
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
The Beep function generates simple tones on the speaker.

BOOL Beep(

DWORD dwFreq, // sound frequency, in hertz
DWORD dwDuration // sound duration, in milliseconds
);
Remarks

Windows NT:

The Beep function is synchronous in all but one case; the function does
not generally return control to its caller until the sound finishes. The
exception to this occurs when dwDuration has the value - 1. In that
case, Beep is asynchronous, returning control immediately to its caller
while the sound continues playing. The sound continues until the next
call to Beep.

Windows 95:

The Beep function ignores the dwFreq and dwDuration parameters. On
computers with a sound card, the function plays the default sound event.
On computers without a sound card, the function plays the standard
system beep.

DBGrid a barevn� ��dky

[*] supervisor(zv)unicontrols(tec)cz - 15.9.1999 11:34:35

Ahoj

Pouzij RXLibrary, tam je primo grid ktery podporuje co potrebujes


-----------------------------
- Vojtech Albrecht -
- supervisor(zv)unicontrols(tec)cz -
- ICQ 33995541 -
-----------------------------


Trvaly Vertcal ScrollBar u StringGridu

[*] Pavel �im��ek - 15.9.1999 13:52:53

Ahoj vsem!

Nevite nekdo jak se da zajistit aby u StringGridu byl vzdy viditelny
vertikalni scrollbar a ne jenom tehdy kdyz vsechny radky nevejdou do plochy
pro StrinGrid. Chtel bych to stejne jako u DBGridu. Tam je na mnozstvi radku
ci sloupcu zavisly jenom horizontalni scrollbar a vertikalni je viditelny
stale.
Mam podezreni ze u DBGridu je jeho viditelnost zajistovana nejak jinak,
protoze pri vytvareni je metode CreateParams hodnota Style pouze
ssHorizontal.

Diky za kazdou radu Pavel

Delphi 5 + ADO Express nekolik postrehu

[*] Marian Jonas <jonas(zv)ji(tec)cz> - 15.9.1999 13:03:35

Ahoj vsem.

Prave dneska jsem si nainstaloval trial Delphi 5, vsechno probehlo v poradku.
Vzal jsem nasi firemni knihovnu komponent ( editacni boxy, dbgrid atd ... )
prekompiloval v Delphi 5 a ono to fungovalo. (pri prechodu z D3 -> D4 jsem
na tom stravil nekolik bezesnych noci) :-)

Otevrel jsem jeden stredne velky projekt (MSSQL, 40 formularu, 30 reportu),
prebudoval jsem ho a take vse fungovalo jak ma :-)

Tak jsem si rekl, ze jeste zkusebne prevedu tento projekt na ADOExpress.
Ale ouha, zadna z komponent pro ADO nema property UpdateObject :-(((
bohuzel tuto vlastnost velice hojne pouzivam.
Stejne tak nektere metody, ktere byly v TQuery nebo TStoredProc dostupne
napr. RevertRecord v ADOExpress chybi :-(((

Skoda ze do ADO Expresu tyto vlastnosti neimplementovali. V porovnani
napr. s Adonisem je ADO Express jen chudy pribuzny. Adonis stoji polovinu
toho co stoji ADO Express, umi UpdateSQL. Nejspise bude mit i lepsi
technickou podporu a castejsi aktualizace.

Marian Jonas

PS. Nejsem nijak zainteresovan na prodeji Adonisu ani jinych ADO komponent.

Kresleni na formular...

[*] Fryz, Zdenek <fryz(zv)dcb(tec)cz> - 15.9.1999 14:06:38

Ahoj

Nevi nekdo jak zamezit blikani kurzoru pri kresleni na formular ?
Kresleni delam v udalosti MouseMove formulare.

Diky.

Zdenek Fryz


__________________________________________________________________
Tato komunikace je urcena vyhradne pro adresata a je duverna.
This communication is intended solely for the addressee and is confidential.

Skr�vac� panel

[*] Petr Brant <p.brant(zv)samo(tec)cz> - 15.9.1999 13:33:05

Snad by to slo tak, ze ten panel bude jako form s prislusnym obsahem a
pri jeho opusteni mysi (to je zprava snad CM_MOUSELEAVE nebo tak nejak)
by se pomoci timeru postupne menila property Top ci Left a okenko by
zalezlo.

**************************************************
Petr Brant [p.brant(zv)samo(tec)cz], programator v MSVC++,
obcas Delphi nebo Visual Basic
**************************************************
> -----P�vodn� zpr�va-----
> Od: ing.Pavel Cabalka [SMTP:pavel_cabalka(zv)vcshk(tec)cz]
> Odesl�no: 15. z��� 1999 10:14
> Komu: delphi-l(zv)fwd(tec)cz
> P�edm�t: Skr�vac� panel
>
> Preji vsem dobry a uspesny den !
> Mel bych jeden drobny dotazek. Rad bych v aplikaci realizoval neco
> podobneho jako panel aplikaci Office, ktery se mi schova do praveho
> (leveho, horniho, dolniho) okraje obrazovky a kdyz do tech mist najedu
> mysi, tak mi odtud vyleze. Ja na ten panel sice chci umistit nejaky
> ciselnik atp., ale jde mi o to schovavani.
> Muze mi prosim nekdo z vas poradit jak na to?
> Doufam, ze jsem se vymacknul srozumitelne.
> �
> Diky PavelC


Uvolnovani pameti

[*] Brabec Tom� <brabec(zv)nym.pvt(tec)cz> - 15.9.1999 14:35:45

Ahoj,

Potreboval bych poradit, mam nasledujici problem.
Mam aplikaci, ktera vola dva moduly (DLL) A a B a navic z obou techto modulu
lze zavolat jeste dalsi DLL - C.

Otevru modul A a z neho zavolam modul C, ktery vola svoje okna. Po ukonceni
modulu A potrebuji, aby se vsechny jiz zavolana okna zavrela a uvolnila po
sobe pamet. Zkousel jsem fci
DestroyWindow na udalosti ONCLOSEQUERY hlavniho menu modulu A a uz to
vypadalo, ze vsechno funguje.
Jestlize vsak po uzavreni modulu A zavolam opet modul A a z neho opet
zavolam modul C a jeho okna, tak se tyto okna jiz neotevrou normalnim
zpusobem - SHOW. Zkousel jsem tedy pouzit fci ShowWindow s parametrem
sw_shownormal a okno se otevrelo, ale jiz uplne prazdne, dokonce i bez
titulku. Jestlize jsem zkusil okno najit pomoci fce FindWindow, tak se
handle okna (ktere jiz predtim bylo !!! vymazano !!! z pameti prvnim
zavrenim modulu A) naslo. To by ale znamenalo, ze by fce DestroyWindow okno
sice z pameti vymazala, ale nechala tam ukazatel na toto okno, coz je divne.

Jestlize po uzavreni modulu A otevru opet modul B, tak vse funguje az do te
doby, dokud znovu neotevru jiz jednou zavreny modul (tedy zavru B a otevru
A) - coz nechapu ????

Neexistuje nejaka jina fce nez DestroyWindow, ktera opravdu okno z pameti
vymaze (jestlize znam jeho handle) a aplikace se bude chovat, jak ma? Nebo
co delam spatne?
Nebo jak se zavira okno s cizi aplikace, ale ne cela aplikace, jak to dela
wm_quit?

Zkousel jsem i PostMessage(Handle okna, ktere chci uvolnit z pameti,
wm_quit, 0, 0) - toto mi vsak zavrelo celou aplikaci, ale ja potrebuju, aby
mi to zavrelo a vymazalo z pameti jen okno s timto handle - je to v poradku
nebo lze nejak nastavit jine chovani wm_quit napriklad dalsimi dvema
parametry (0, 0) - nikde v helpu jsem totiz nenasel jine vysvetleni nez
prvni a druhy parametr fce PostMessage. To by resil parametr wm_destroy -
ale ten se chova stejne jako DestroyWindow.

Prosim, pomozte, uz jsem z toho zoufalej.

Po ukonceni jednoho z podprogramu bych tedy potreboval uvolnit z pameti
vsechna okna, ktera jsem z prave ukonceneho podprogramu kdy zavolal.
Z technickych duvodu nemohu pouzit fci ShowWindow na zavirani oken,
respektive schovavani a potom stejnou fci na jejich zobrazovani.

Doufam, ze jsem se vyjadril srozumitelne a dik za kzadou radu

C/S 3.02, W-NT 4.00

S pozdravem

Tom� Brabec
PVT Nymburk, a.s.
e_mail: brabec(zv)nym.pvt(tec)cz


Skr vac� panel

[*] petr.motlicek(zv)bcbrno(tec)cz - 15.9.1999 17:20:57

<color><param>0100,0100,0100</param>Ahoj,


jestli jsem to pochopil, tak bych to delal takto:


- pro zakryt=ED panelu (okna) bych nadefinoval (podle UODDF
<FontFamily><param>Times New Roman</param><bigger>{HYPERLINK "indexnf.htm"=
}<underline><color><param>0000,0000,FF00</param>http://www.gnomehome.demon=
.nl/uddf/indexnf.htm</underline><color><param>0100,0100,0100</param>

<FontFamily><param>Arial</param><smaller>) metodu pro odchyceni CM_MOUSELE=
AVE.<FontFamily><param>Courier New</param>procedure CMMouseEnter(var msg:TMess=
age); message
CM_MOUSEENTER;


procedure MyComponent.CMMouseLeave(var msg: TMessage);

begin

inherited;

{respond to mouse leave}

// tady pridat kod neco jako Hide;

end;<FontFamily><param>Arial</param>- pro odkryti bych hook-nul ze syst=E9mu W=
M_MOUSEMOVE pomoci
<FontFamily><param>Times New Roman</param><bigger>SetWindowsHookEx s param=
etrem WH_MOUSE (viz </color><FontFamily><param>Arial</param><smaller> UODD=
F
<FontFamily><param>Times New Roman</param><bigger>{HYPERLINK "indexnf.htm"=
}<underline><color><param>0000,0000,FF00</param>http://www.gnomehome.demon=
.nl/uddf/indexnf.htm</underline><color><param>0100,0100,0100</param> - {HY=
PERLINK "pages/mouse.htm" \l "mouse2"}<underline><color><param>0000,0000,F=
F00</param>Building Mouse
Hooks</underline><color><param>0100,0100,0100</param> , viz WIN32 help) (h=
andle 0 pro obrazovku)
zdravi Petr Motlicek

<FontFamily><param>Arial</param><smaller>

From: "ing.Pavel Cabalka" <<pavel_cabalka(zv)vcshk(tec)cz>

To: <<delphi-l(zv)fwd(tec)cz>

Subject: Skr vac=A1 panel

Date sent: Wed, 15 Sep 1999 10:13:53 +0200

Send reply to: delphi-l(zv)fwd(tec)cz


<color><param>7F00,0000,0000</param>> Preji vsem dobry a uspesny den !

> Mel bych jeden drobny dotazek. Rad bych v aplikaci realizoval neco podob=
neho jako panel aplikaci Office, ktery se mi schova do praveho (leveho, ho=
rniho, dolniho) okraje obrazovky a kdyz do tech mist najedu mysi, tak mi o=
dtud vyleze. Ja na ten panel sice chci umistit nejaky ciselnik atp., ale
jde mi o to schovavani.

> Muze mi prosim nekdo z vas poradit jak na to?

> Doufam, ze jsem se vymacknul srozumitelne.

>

> Diky PavelC

>

TStrings,TStringList, nebo neco jineho?

[*] Petr Sadovsky <petr(zv)slunce(tec)cz> - 15.9.1999 17:21:55


----- P�vodn� zpr�va -----
Od: Karel Vlcek <vlcekk(zv)hotmail.com>
P�edm�t: Re: TStrings,TStringList, nebo neco jineho?>
>
> >To je divny. Ja volam Dispeceri.Free. Dispeceri je lokalni promenna > fce
a
> >rusim ji az jeji hodnotu predam do Result, protoze jinym zpusobem bych se
> >na ni uz nedostal ...
>
> No Dispeceri je sice lokalni promenna, ale dobre jsi odhadl, ze je to
> vlastne jen pointer tedy vlastne adresa, ktera ukazuje urcity objekt. Ten
> jako takovy sam o sobe nemuze existovat, musi se "narodit - create" a
pokud
> "zemre - free" tak samozrejme prestava existovat a neda se s nim dal
> pracovat.
> Predstav si to jako paralelu v normalnim zivote.
>
> Pokud mas funkci, ktera ti vraci "objekt" - tedy presneji adresu na
objekt,
> tak si ji musis nekde zapamatovat a po ukonceni prace s tim objektem ho
> "zabit", aby nezabiral zbytecne misto, tedy receno jazykem programatoru -
> uvolnit pamet.

No prave.Jak se zabiji takovy objekt vytvoreny lokalne ve fci, kdyz uz jsem
z te fce venku?
Vrazdeny objekt nesmi byt deklarovan lokalne, nebo se likviduje automaticky
predanim Resultu (a tedy toho objektu, co vrazdime-myslim si ze kdyz ho
rucne vytvorim, musim ho i rucne znicit) do ListBox1.Items? :-))
Toto je jedine, co na tom jeste nechapu. Petr Sadovsk�
p.sadovsky(zv)atlas(tec)cz
ICQ 37042001

Koexistence verzi Delphi

[*] Ing. Jaroslav �ke��k - 15.9.1999 17:44:56

D5 s D4 funguje bez problemu a protoze D4 - D3 taky, tak nevidim zadny
problem. Horsi to bude se snahou dostat D3 na W2000
Jaro

> Dobre rano !
>
> Nemate nekdo zkusenosti jestli funguje soucasne nainstalovane
> Delphi 3 a 5 ???
> Oboji ve verzi Professional.
>
> Navic, s nejvetsi pravdepodobnosti pod Win2000 ...
> (No, v nejhorsim pod W98)
>
> Diky, atd...
>
> --
> Stepan "Chaosz" Cerny
> tvoric of software
> chaosz(zv)atlas(tec)cz
>

Ponekud off topic - boot.ini

[*] Zdenek Drvota <drvota(zv)zds(tec)cz> - 15.9.1999 17:00:59

A da se to udelat na fyzicky DRUHEM disku? neco jako
fdisk D: /mbr
???
P.S. nakonec jsem to obesel, ale docela by mne to zajimalo.

### Petr Smol�k napsal dne 15 Sep 99, v 8:33 :
> Je to v tom, ze NTloader zustal v master boot recordu.
> Muzes pouzit nedokumentovanou funkci Microsoftu asi takto
> fdisk /mbr
> to premaze master boot dosovou verzi a tim se navzdy zbavis ntldr.

-----------------------------------------------
Ing. Zdenek Drvota e-mail: drvota(zv)zds(tec)cz
director
ZDS, spol. s r.o.
Hronovicka 708 tel:+420-40-6613756
530 02 Pardubice fax:+420-40-6613756
Czech Republic http://www.zds(tec)cz
e-mail: info(zv)zds(tec)cz
Internet proti monopolu http://www.bojkot(tec)cz
Pripojte se k hledani mimozemskych civilizaci:
SETI(zv)Home http://setiathome.ssl.berkeley.edu


TStrings,TStringList, nebo neco jineho?

[*] Radim Kunz <rkunz(zv)ova(tec)comp(tec)cz> - 15.9.1999 19:01:20

>No prave.Jak se zabiji takovy objekt vytvoreny lokalne ve fci, kdyz uz
jsem
>z te fce venku?
>Vrazdeny objekt nesmi byt deklarovan lokalne, nebo se likviduje
automaticky
>predanim Resultu (a tedy toho objektu, co vrazdime-myslim si ze kdyz ho
>rucne vytvorim, musim ho i rucne znicit) do ListBox1.Items? :-))
>Toto je jedine, co na tom jeste nechapu.

Objekt neni lokalni, lokalni je pouze pointr na neho. Pokud predas pointr do
resultu, result stale ukazuje na stejny objekt, i kdyz z lokalni funkce
vyskocis.
Objekt musis zavrazdit, nema sebevrazedne sklony jako v Jave



Prvni moznost (nedoporucuji, neprehledne), vychazi to z tveho prikladu

function ZpracujDispecery:tstringlist;
var x:tstringlist;
begin
x := tstringlist.Create;
x.add('rrr'); // zpracovavam
Result := x; // !!! nedealokovat
end; // do Result predas pointr na objekt

// odtud funkci volas
xx := ZpracujDispecery;
xx.free; // tady objekt dealokujes


Druha moznost (mnohem vhodnejsi, cistsi)


procedure ZpracujDispecery(x:tstringlist) // (var x:tstringlist) neni
potreba, predava se pointr
begin
x.Add('rr');
end;

// odtud proceduru volas
xx := tstringlist.Create;
ZpracujDispecery(xx);
xx.Free;

Nebo jeste lepe a bezpecneji

xx := tstringlist.create;
try
ZpracujDispecery(xx);
finally
xx.Free;
end;>
>
> Petr Sadovsk�
>p.sadovsky(zv)atlas(tec)cz
> ICQ 37042001
>
>

Radim Kunz

MSDE

[*] Martin Kubecka <martin.kubecka(zv)amenit(tec)cz> - 15.9.1999 19:29:40

No problem, mel by si mit v Trayi ikonku "SQL server service manager" a
tam je checkbox "Autostart service when OS starts" - no a tu zaskrtni
;-)

Pokud tam ikonku nemas tak hledej:

..\MSSQL7\Binn\sqlmangr.exe

Mac

Martin Koran wrote:

> BTW nevi nekdo, jak po instalaci MSDE do Win95 ho primet
> k tomu, aby se po restartu PC spustil?

--
==============================================================
= Ing. Martin Kubecka - Amenit s.r.o. =
= Na Valech - budova Dytron, 741 01 Novy Jicin =
= telefon/fax: +420 656 706203 mobil: +420 603 265926 =
= http://www.amenit(tec)cz mailto:martin.kubecka(zv)amenit(tec)cz =
= ICQ: 8906773 GSM (SMS): martin.kubecka(zv)sms.paegas(tec)cz =
==============================================================

BDE, OLE DB, ADO - porovnani rychlosti

[*] Zbysek Hlinka <zhlinka(zv)login(tec)cz> - 15.9.1999 19:30:58

Ahoj,

nedalo mi to, abych znovu nezmeril rychlosti pristupu k databazim.
Protoze jsem jsem zjistil zajimave veci, ktere by mohly zajimat i
dalsi, rad se o ne podelim. Testovano na MS SQL 7, Delphi 5, Intel
III 450. Vzdy jsem program nastartoval, udelal nad vybranou
variantou nekolik testu, a program skoncil.

Testovaci tabulka:
CREATE TABLE testtable
(
id int NOT NULL IDENTITY(1,1) PRIMARY KEY,
name varchar(40) NOT NULL UNIQUE,
age int NULL,
date datetime DEFAULT GETDATE()
)
GO

Naplnil jsem ji takto:

Randomize;
Tab:=TDFOdbRecord.Create(self);
Tab.Connect:=Connect;
Tab.TableName:='testtable';
with Tab do
begin
Open;
First;
for i:=1 to 100000 do
begin
Len:=Random(36)+5;
SetLength(s,Len);
for j:=1 to Len do s[j]:=Char(Random(74)+48);
SQL.Text:=Format('insert into testtable(name, age)
values(''%s'', %d)',
[s, Random(200)+1]);
ExecSql;
end;
Close;
end;

Testovaci utilitka vypadala takto:

A:
t:=Time;
Open;
First;
while not Eof do
begin
Inc(Counter);
rID:=FieldByName('id').AsInteger;
if rID<>0 then;
rName:=FieldByName('name').AsString;
if rName<>'' then;
rAge:=FieldByName('age').AsInteger;
if rAge<>0 then;
rDate:=FieldByName('date').AsDateTime;
Next;
end;
Close;
DecodeTime(Time-t,h,m,s,ms);
Lab.Caption:=Format('%d:%.2d:%.2d:%.3d',[h,m,s,ms]);
Label3.Caption:=IntToStr(Counter);

a zvlastni pripad testu takto (vysvetlim dale):

B:
const
Pole:array[0..2] of TDirectStruct = (
(dsFldName:'id'; dsSize:4; dsType:DBTYPE_I4; dsPrecision:0;
dsScale:0),
(dsFldName:'name'; dsSize:41; dsType:DBTYPE_STR;
dsPrecision:0; dsScale:0),
(dsFldName:'age'; dsSize:4; dsType:DBTYPE_I4; dsPrecision:0;
dsScale:0)
);

DirectInit(3, (zv)Pole, p);
Open;
First;
Close;
FreeMem(pointer(p^));

Konstanta Pole plni data do takoveto struktury:
type
Tab=packed record
id:integer;
name:array[0..40] of char;
age:integer;
end;
ArTab=array of Tab;


Konfigrace pristupu k databazim:

Testovaci SQL:
select * from testtable order by name

1: BDE + nativni link pro MS SQL
2: BDE + ODBC
3: moje OLE DB komponenty
4: ADO express (z Delphi 5)

Namerene casy: (mm:ss:ms)

1: 0:31:650, 0:26:750, 0:27:840

2: 0:33:940, 0:20:770, 0:21:530
Casy prvniho mereni se pricitaji na vrub otevirani databaze

3: V OLE DB lze snadno ovladat, v jak velkych blocich vet se data
nacitaji. Vyhodnejsi je nacist vzdy vetsi pocet vet do vyrovnavaciho
bufferu.
I: podle A:
a) po 1 vete: 2:02:970, 2:05:450
b) po 20 vetach: 0:39:440, 0:40:530, 0:40:430
c) po 1000 vetach: 0:37:570, 0:37:510, 0:36:960

II: podle B - zde jsem udelal to, ze nacitam data primo do sveho
bufferu, ktery si urcim. OLE DB komponenta alokuje na p^ (pointer
na pointer na data) prislusnou pamet, do ktere pak sype data. Ja
zodpovidam za to, jak budou data v te pameti vypadat (mohu k nim
pristupovat pres ArTab, napriklad).
a) po 20 vetach: 0:36:410, 0:37:570, 0:36:630
b) po 1000 vetach: 0:33:830, 0:33:500

4: 14:32:380, 14:30:680

Zavery:

V OLE DB je treba definovat, v jake podobe chci data ziskat (nebo
zapsat). Uvnitr tedy dochazi k transformaci struktury podle mych
pozadavku, mezi databazi a OLE DB rozhranim. To je vykoupeno
urcitou ztratou na rychlosti, ktera vsak neni oproti BDE tak
vyznamna, zejmena prihledneme-li k tomu, ze OLE DB umi z MS
SQL vytahnout daleko vic informaci. Pricemz jsem zjistil, ze dost
velky dil casu zabira pripojovani k tabulce, takze mam zrejme jeste
jisty prostor k optimalizaci.

Horsi je situace u ADO. Zde bych ztratu vykonu pricetl
jednoznacne typu variant, ktery vychazi i podle jinych mereni
zhruba 20x pomalejsi nez primy pristup k "rozumnemu" datovemu
typu. Nemel jsem moznost porovnat s komponentami Adonis, ale
domnivam se, ze tam bude situace obdobna, pokud cte autor typ
variant bez rozlisovani jeho vnitrni podoby. Ale myslim, ze za
porovnani by to stalo.

ADO / OLE DB se stejne jednou nevyhnete, mezitim je vsak
vhodne pristup pres ADO v Delphi optimalizovat.


S pozdravem

Zbysek Hlinka
E-mail: zhlinka(zv)login(tec)cz, localizator(zv)localizator.com
Tel.: 02/795 29 56; GSM: 0603 551 282
Krystofova 1016, 149 00 Praha 4
CZ


ADO a Oracle

[*] Zbysek Hlinka <zhlinka(zv)login(tec)cz> - 15.9.1999 19:30:58

Pavel Cisar wrote:

> > obavam se, ze vcera na seminari mi castecne unikly duvody, proc by
> > melo byt BDE pro Oracle lepsi nez ADO. Muzete mi nekdo osvezit
> > pamet? Diky.
>
> BDE (resp. SQL link) a potazmo VCL (TField atd.) podporuji rozsirene
> vlastnosti Oracle 8i, coz OLE DB provider zatim ne.

To jsem postrehl. Ale ktere konkretne to jsou?


S pozdravem

Zbysek Hlinka
E-mail: zhlinka(zv)login(tec)cz, localizator(zv)localizator.com
Tel.: 02/795 29 56; GSM: 0603 551 282
Krystofova 1016, 149 00 Praha 4
CZ


Delphi 5 + ADO Express nekolik postrehu

[*] Martin Kubecka <martin.kubecka(zv)amenit(tec)cz> - 15.9.1999 19:39:22

A hele, vidim, ze se nasel nekdo, kdo ma na ADOExpress stejny nazor (ja
ho ale opravdu jen zbezne videl a hned jsem narazil na to, ze tam neni
UpdateSQL). Rekl bych IMHO, ze ADOExpress vypada jako Adonis pred rokem
;-) Ale zatim je to fakt jen first look, takze bych se nerad unahlil...

Mac

Marian Jonas wrote:

> Tak jsem si rekl, ze jeste zkusebne prevedu tento projekt na
> ADOExpress.Ale ouha, zadna z komponent pro ADO nema property
> UpdateObject :-(((bohuzel tuto vlastnost velice hojne pouzivam.Stejne
> tak nektere metody, ktere byly v TQuery nebo TStoredProc dostupnenapr.
> RevertRecord v ADOExpress chybi :-((( Skoda ze do ADO Expresu tyto
> vlastnosti neimplementovali. V porovnaninapr. s Adonisem je ADO
> Express jen chudy pribuzny. Adonis stoji polovinutoho co stoji ADO
> Express, umi UpdateSQL. Nejspise bude mit i lepsitechnickou podporu a
> castejsi aktualizace. PS. Nejsem nijak zainteresovan na prodeji
> Adonisu ani jinych ADO komponent.

--
==============================================================
= Ing. Martin Kubecka - Amenit s.r.o. =
= Na Valech - budova Dytron, 741 01 Novy Jicin =
= telefon/fax: +420 656 706203 mobil: +420 603 265926 =
= http://www.amenit(tec)cz mailto:martin.kubecka(zv)amenit(tec)cz =
= ICQ: 8906773 GSM (SMS): martin.kubecka(zv)sms.paegas(tec)cz =
==============================================================

Delphi 5 a plytvani zdroji GDI

[*] Leos Urban <Leos.Urban(zv)aitix(tec)cz> - 15.9.1999 19:55:47

Mohl byste se nekdo z BetaTesteru (ci uz majitelu) mrknout jestli je
opravena chyba ve VCL zpusobujici snizovani GDI zdroju pri pouzivani
Glyph???
Dik.
Leos


GIS: Mapa a autorsk� pr�vo

[*] petr.motlicek(zv)bcbrno(tec)cz - 15.9.1999 20:04:38

Zdravim vyvojare a pravniky zvlast

Snad to neni az moc off-topic....


Chci vytvorit mapu. Nejde mi o prostredky, ktere mi k tomu
pomohou. Jde mi o pravni stranku veci.
Ptam se tedy:

- porusim autorske pravo pokud mapu (kterou si koupim v obchode)
naskenuji a z digitalizuji - prevedu na vektory (prevedu do sveho
GIS produktu) - chti tim naznacit, ze urcite nepouziji pouheho
naskenovani do nejakeho grafickeho formatu a-la bitmapa

- je mapa dilo souborne - podle autorskeho zakoniku

- kdyz mapu prepracuji v chapani autorskeho zakoniku, stavam se
tedy autorem "nove" mapy

- kde mohu levne (za kolik) ci zdarma sehnat nejake geodata v
nekterem u nas pouzivanych souradnicoveho systemu - jestli teda
nevadi ze digitalizuji mapu (z obchodu)

- co si predstavit pod autorem mapoveho podkladu (napr. GS ACR),
co si predstavit pod autorem mapy (napr. Vojensky Kartograficky
ustav Dobruska - nebo tak nejak) - kde presne pravnicky lezi ona
hranice

Diky za kazdou podlozenou informaci

Petr Motlicek


Papir v tiskarne

[*] Miroslav NETRAIDER Mares <mmares(zv)mbox.vol(tec)cz> - 15.9.1999 21:28:10

Dobry den,

jsem zacinajici programator v DELPHI a dovoluji se obratit na Vas s prosbou:
Potreboval bych nejak zjistit, jaky papir je v tiskarne (volne listy nebo
traktor) a eventualne aktualni nastaveni tiskarny. Proste zkontrolovat pred
tiskem, ze vystupni sestava se na papir "vejde".

Diky za Vase rady, jak to udelat M. Mares


ADMIN: Pravidla konference

[*] Burger, Tomas <tomas.burger(zv)sap(tec)com> - 15.9.1999 21:32:41

DDV,
vyplynul z debaty, ktera bourlive probihala v srpnu, soubor pravidel, ktera
budou platit v teto konferenci. A jedno z pravidel rika, ze vam ta pravidla
budu pravidelne posilat. Toz tady je mate... Krome toho je aktualni stav
pravidel k dosazeni v sekci Soubory na Delphi foru
(http://www.delphi(tec)cz/soubory.asp).
Tomas

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

Konference delphi-l
- zavazna pravidla pouzivani v. 1.0 (8. zari 1999)
delphi-l(zv)fwd(tec)cz

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

1. Status konference
2. Admin
3. Co do konference patri?
4. Co do konference nepatri?
5. Co bych mel jeste vedet?
6. Who is who?

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

1. Status konference
====================

Konference delphi-l je venovana problematice programovani
v nastroji Delphi firmy Inprise a souvisejicim problemum
(C++Builder, programovani ve Win16, Win32 a WinNT obecne,
databazove technologie apod).

Konference se ridi vlastnimi pravidly s prihlednutim k nepsanym
pravidlum vsech podobne fungujicich konferenci a samozrejme
etickymi pravidly Internetu.

Tento dokument obsahuje posledni, a tudiz platnou verzi pravidel.
Vsechny predchozi dokumenty s podobnym obsahem jsou tudiz neplatne.

2. Admin
========

Administrator konference (nebo-li tez zkracene "admin") je osobou,
ktera se stara o chod konference jak po technicke strance, tak
po strance obsahove, kterou v nutnych situacich usmernuje.

Pokud admin potrebuje oslovit vetsi skupinu ucastniku konference,
udela tak pomoci mailu oznaceneho slovem ADMIN: v subjektu zpravy,
zpravu je mozno automaticky povazovat za dulezitou.

Admin ma pravo vyradit ucastnika konference, ktery i po upozorneni
opakovane porusuje pravidla konference.

Admin ma v administratorskych vecech vzdy pravdu.

Pokud mate k rozhodnuti ci opatreni admina pripominku, v zadnem
pripade se k veci nebudete vyjadrovat v konferenci, ale pouze
a jen na adresu admina.

3. Co do konference patri?
==========================

* prispevky psane ceskym ci slovenskym jazykem a to
spisovnou ci obecnou cestinou/slovenstinou, v duvodnych pripadech
(citace atp.) i anglictinou.
* prispevky psane vyhradne v ASCII bez hacku a bez carek
* prispevky tykajici se tematu a zaroven prinosne
pro ucastniky konference

4. Co do konference nepatri?
============================

* zadosti o odhlaseni z konference
* libovolna komercni nabidka ci poptavka
* prispevky psane v libovolnem jinem kodovani nez ASCII
* neobjektivni prosazovani libovolneho produktu na ukor
ucastniku konference
* varovani pred virem, krachem banky a vasi tchyni
(samozrejme, ze pokud nejaky blbecek posle do konference
neco ala HAPPY99.EXE, tak je to neco jineho)
* osobni korespondence
* libovolne hadky, flamewars, famy a pomluvy
* vykriky typu "jo, to se mi libi", "dobry", "to chci taky!"
* prispevky, ktere jsou v rozporu s platnou legislativou
statu odesilatele ci CR a SR (zejmena citace autorsky chraneneho
kodu, seriova cisla ci cracky komercnich produktu apod.)
* prispevky, ktere obsahuji binarni prilohy (velikost, resp.
malost neni omluvou)

5. Co bych mel jeste vedet?
===========================

* Kazdy prispevek do konference ma mit vystizny subject.
Subjecty typu "Help!", "Velky problem" nebo "Delphi nefunguje"
mezi takove nepatri. Rovnez prazdny subjekt se nepovazuje za vystizny.

* Pokud se na neco ptam, je stejne dulezite jako dotaz sam,
uvest nektere dalsi informace. K nim patri napriklad verze a update
Delphi, verze operacniho systemu, verze databazi, vycet
vsech aplikovanych servise packu apod.

* Pokud reaguji do konference na nektery z prispevku vcetne
jeho citace, ponecham jen nezbytne nutnou cast pro zachovani
navaznosti a pochopeni. V kazdem pripade odmazavam mailove
hlavicky a zbytecne casti signatur.

* Pokud preci jen mam pocit, ze bych zemrel ci porodil,
kdybych do konference nezaslal prispevek mimo jeji tema,
oznacim jej v subjectu "OT:" ci "OFF-TOPIC:". Takoveto oznaceni
prispevku neznamena, ze se na mne nebude admin zlobit.

* Pokud se nekdo prohresi proti pravidlum, dostane nejdriv soukromy
mail primo od admina. Pokud bude hresit dal, oznami admin do
konference jeho vylouceni. Pokud se ho v nasledujicich 48 hodinach
zastane na emailu admina dostatecne mnozstvi verohodnych osob,
muze admin svuj verdikt prehodnotit.

* Konferenci odebiraji stovky lidi. Pokud zaslu do konference
prispevek, odesle se kazdemu z nich. Z tohoto duvodu
prispivam do konference s uvazenim a rozvahou a nezli
nastavim do sve posty nejakou automatickou odpoved, presvedcim
ze nejsem-li prihlasen do nejake konference.

* Konference je provazana s web serverem http://www.delphi(tec)cz/.
Zkuste, nez se zeptate, prohledat archiv teto konference nebo
FAQ sekci. Pokud potrebujete predat ostatnim nejaky soubor,
obratte se na email webmaster(zv)delphi(tec)cz a pouzijte sekci "Soubory".

* Admini NEMAJI radi off-topicove diskuze.

6. Who is who?
==============

Administrator
-------------
Tomas Burger (Tomas.Burger(zv)delphi(tec)cz)

Provozovatele
-------------
Flamingo Web Design (http://www.fwd(tec)cz/)
- provozovatel list serveru
Projekt Magdalena (http://web.magdalena(tec)cz/)
- provozovatel serveru http://www.delphi(tec)cz/
MIUS a.s. (http://www.mius(tec)cz/)
- hostitel serveru http://www.delphi(tec)cz/
Inprise CZ
- vyrobce Delphi, vlastnik domeny delphi(tec)cz

Howgh!

Tvorba VXD

[*] Kry�tof Hoder <hoder(zv)seznam(tec)cz> - 15.9.1999 21:55:44

Nevis jak se jmenuje a kde o nem ziskat dalsi informace?
----- Original Message -----
From: Petr Brant <p.brant(zv)samo(tec)cz>
To: <delphi-l(zv)fwd(tec)cz>
Sent: Wednesday, September 15, 1999 7:39 AM
Subject: RE: Tvorba VXD


> Nedaji se - na to je specialni nastroj na bazi C++ a neni to zrovna
> dvakrat trivialni.
>
> **************************************************
> Petr Brant [p.brant(zv)samo(tec)cz], programator v MSVC++,
> obcas Delphi nebo Visual Basic
> **************************************************
>
>
> > -----P�vodn� zpr�va-----
> > Od: Kry�tof Hoder [SMTP:hoder(zv)seznam(tec)cz]
> > Odesl�no: 14. z��� 1999 22:01
> > Komu: delphi-l(zv)fwd(tec)cz
> > P�edm�t: Tvorba VXD
> >
> > Nevi nekdo, jestli by se daly v Delphi vytvaret soubory VXD? Vsiml
> > jsem si,
> > ze umi celkem pekny veci - napr. program RegMon s jejich pomoci
> > monitoruje
> > vsechny pristupy do registru.
> >
> > Thanks for ideas and help.
> > Krystof
>

Threads

[*] Petrik <petrik(zv)geocities(tec)com> - 15.9.1999 23:18:18

Nazdarek, Jak vytvorim thread, aby po spusteni zabiral
tolik %CPU kolik opravdu potrebuje ?

At ho vytvorim s nejnizsi prioritou - tak ma
100%, sice se jich rad vzda ve prospech jinyho
procesu, ale i pri idle ma 100%.
Pokud pouziju OnIdle (samozrejme bez threadu)
tak je to taky 100% ...

Moje procedura dela jenom par operaci na Canvas
(pres DirectX, ale to je fuk) a pri pouziti
cehokoliv ma CPU 100%. Kdyz pouziju Timer s asi 5ms
intervalem (samozrejme jinej TTimer nez ten blbej
co je ve VCL), tak mam vytizenost asi 11%, ale
to je furt moc - Vzdyt WinAmp, kterej dekoduje
jak silenec a jeste dela vizualizaci ma 5% !!!

Takze to asi nebude dobre delat tim timerem, ale
threadem. ALE JAK ??? jak sem jiz napsal na
zacatku - furt mi zabira 100% i kdyz je
zcela jiste nepotrebuje.
Me staci tu proceduru volat asi po 4-6 milisekundach.

DEKUJI za (slusne) navrhy :)))

(jde o scrolovaci text a chci mit CPU tak do 10% -
je mi jasny, ze za tu pomalost muze Delphi, takze optimalnich
hodnot (1%-2%) asi v Delphi nedosahnu!)


Cus,
Petrik mailto:petrik(zv)geocities.com

Beh dvoch procesov sucastne (po druhe).

[*] Martin Galik <m_g_66(zv)hotmail(tec)com> - 15.9.1999 22:09:18 pdt

Zdar.
Nie nieje.
Vdaka.
M.G.>From: "CHeckBow" <checkbow(zv)mail(tec)cz>
>Reply-To: delphi-l(zv)fwd(tec)cz
>To: <delphi-l(zv)fwd(tec)cz>
>Subject: Re: Beh dvoch procesov sucastne (po druhe).
>Date: Mon, 13 Sep 1999 10:09:42 -0700
>
>Neni to cekani v threadech zpusobene tim, ze v obou volas nejakou metodu
>pomoci synchronize ?
>
>----- Original Message -----
>From: Martin Galik <m_g_66(zv)hotmail.com>
>To: <delphi-l(zv)fwd(tec)cz>
>Sent: Sunday, September 12, 1999 10:26 PM
>Subject: Re: Beh dvoch procesov sucastne (po druhe).
>
> > ZDAR.
> >
> > Tak mi aspopn poradte ako definovat premenne (vstupne parametre) pre
> > uz skompilovany EXE program.
> >
> > Dakujem, a sorry ze s tym tolko otravujem, ale surne to potrebujem a
>fakt
>si
> > stym neviem rady.
> >
> >
> > >Ahoj.
> > >Ten TThread je pekna vec ale akosi mi to cez neho nejde.
> > >Potrebujem toto:
> > >
> > >Predstav si, ze su dva programi (samostatne a samostatne spustene),
>jeden
> > >komunikuje s portom Com1 a druhy s Com2 a to sucastne v tom istom
>case(toto
> > >mi funguje).
> > >
> > >No a toto iste potrebujem spravit tak, ze dva Form child-y sa budu
>spravat
> > >tak ako tie dva programi z predchadzajucej predstavy.
> > >Childy vytvaram v runtime lebo im konfigurujem premenne - toto je nutne
> > >(preto to nechcem spravyt ako spustanie exe programu).
> > >
> > >A toto sa mi nedary ani s tthread ( zakazdym caka jeden na druheho).
> >
> >
> > Vdaka za vsetky rady a napady.
> >
> > Martin Galik
> > Programator - zaciatocnik.
> > RB s r.o.
> > Bratislava
> >
> > ______________________________________________________
> > Get Your Private, Free Email at http://www.hotmail.com
>

______________________________________________________
Get Your Private, Free Email at http://www.hotmail.com


DCOM

[*] Martin Galik <m_g_66(zv)hotmail(tec)com> - 15.9.1999 22:36:48 pdt

Ked nechces ist cez ODBC skus to cez TCP/IP.
Martin Galik
Programator - zaciatocnik
RB s r.o.
Automatizacna a mikropocitacova technika
Bratislava


>From: "Milan Schembera" <milan(zv)missoftware(tec)cz>
>Reply-To: delphi-l(zv)fwd(tec)cz
>To: delphi-l(zv)fwd(tec)cz
>Subject: DCOM
>Date: Tue, 14 Sep 1999 08:45:11 +0200
>
>Ahoj Delphisti,
>
>mam svym zpusobem zacatecnickou otazku.
>Popisu situaci: Delam C/S aplikaci, kde na
>strane serveru (WinNT Server 4.0 SP 4) bude
>MS SQL 7, na strane klientu (Win95/98) bude
>takova vetsi aplikace. Stale hledam zpusob,
>jak nejjednodusim a nejelegantnejsim
>zpusobem zajistit pristup do DB klientovi.
>Dosud jsem delal na lokalnich DB (Paradox),
>maximalne do SQL pres ODBC.
>
>Nechce se mi na strane klienta instalovat
>takovy balasty jako je BDE a ODBC +
>konfiguracni programy pro MS SQL klienta.
>
>Zkousel jsem ted pouzit RemoteDataModule
>(pouzivam D4 C/S) s tim, ze se ze strany
>klienta konektim pres DCOMConnection nebo
>pres OLEEnterpriseConnection. Pokud mam
>AppServer i klienta na jednom PC, funguje vse
>v pohode. Pokud zkusim klienta na jinym
>pocitaci, nahlasi mi to EOleSysError s tim, ze je
>"Access denied". Zatim jsem neprisel na to,
>proc.
>
>Tak a ted se chci zeptat:
>1) Proc mi to u klienta (na jinem PC) hlasi
>"Access Denied" a co proti tomu muzu udelat
>?
>2) Pokud se rozhodnu pro toto reseni, co budu
>muset u klienta instalovat (DCOM95.EXE
>apod.) ?
>3) Jak je to s legalnosti pouziti techto
>technologii, pripadne, pokud ne, co s tim ;-)
>
>Patral jsem v helpu, ale ten je jako partyzan -
>mlci.
>
>Dokazete mi nekdo poradit, pripadne
>navrhnout lepsi reseni ?
>
>Diky moc.
>
>Milan
>(samouk)
>

______________________________________________________
Get Your Private, Free Email at http://www.hotmail.com


Aplikace ve stylu "DELPHI"

[*] eL <eL_z_Prahy(zv)seznam(tec)cz> - 16.9.1999 01:00:49

environment:Win98/95 CZ,Delphi STANDART 4.0 (Build 5.104)Update Pack 2
RxLib 2.60
keywords:Form

Zdravim.

Pravdepodobne to tady uz bylo ale nenasel jsem to. Jak mam udelat
aplikaci ve stylu Delphi. Tedy aby hlavni form byl prouzek nahore a
ostatni formy aby se skladaly pod nej.

Dik

eL..

TStrings,TStringList, nebo neco jineho?

[*] Karel Vlcek <vlcekk(zv)hotmail(tec)com> - 16.9.1999 00:30:39 pdt

>No prave.Jak se zabiji takovy objekt vytvoreny lokalne ve fci, kdyz > uz
>jsem z te fce venku?
>Vrazdeny objekt nesmi byt deklarovan lokalne, nebo se likviduje
>automaticky predanim Resultu (a tedy toho objektu, co vrazdime-
>myslim si ze kdyz ho rucne vytvorim, musim ho i rucne znicit) do
>ListBox1.Items? :-))
>Toto je jedine, co na tom jeste nechapu.

Ve funkci deklarujes lokalni promennou typu objekt - to ale znamena, ze
vytvoris jen misto pro ulozeni adresy na ten objekt(tedy 32(resp. 16) bitu).
Tato promenna se skutecne dealokuje (zrusi) pri ukonceni te funkce. Pokud
predavas takovouto lokalni promennou jako vysledek funkce (tedy Result),
zase se preda jen ta adresa, se kterou dal muzes pracovat.

Ted jak je to s vytvorenim objektu:

Nekde v pameti je ulozena definice tridy TTvujObjekt, ktera ma funkci
create (je to kus napr. exe souboru, nebo taky kus knihovny).
Zavolanim teto funkce (rika se ji constructor) se vymezi (alokuje) kus
pameti. Tady se vytvori "jedinec" (instance) typu TTvujObjekt (velikosti
treba 350 Bytu), a v tomto kousku pameti dale "zije". OS si pamatuje, ze
tenhle kus pameti je pouzivan("obydlen") a neprideli ji nikomu jinemu. No a
ta promenna v horni casti je jen adresou tohoto kusu pameti.
Pokud ale zapomenes tu adresu tak se k tomu objektu uz nikdy nedostanes
zpatky a on zbytecne zabira pamet a muze se stat, ze timhle zpusobem se
pamet naplni a uz neni misto pro vytvoreni dalsi instance objektu.
Takze je nutne volat funkci, ktera zrusi objekt a dealokuje pamet (tedy
rekne OS - "tady uz nikdo nebydli") a tim se ten kus pameti da opakovane
pouzit.

Tak to bylo jak se to ma delat.

Ted ale pozor. V ramci cele aplikace (to je taky instance - objekt) existuji
v Delphi formulare - taky objekty, ale ty je nevytvaris ani nerusis, protoze
to chytry objekt typu TApplication dela za tebe.
Je to tak, ze ve zdoji projektu *.dpr se vytvari formulare pomoci
metody Application.CreateForm. Ta udela to co ty v te funkci - tedy
TTvujObject.Create a navic si v nejake strukture pamatuje adresy vsech takto
vytvorenych objektu. No a tesne pred zavrenim projde tuhle strukturu a pro
kazdou instanci zavola destruktor a tim se uvolni pamet. Chytre a ucelne,
ale mozna trochu zavadejici pro nekoho, kdo s objekty neni zvykly pracovat.

Takze zaver :
1. Pokud se vytvori objekt, tak je potreba ho zase zrusit, proto si musim
pamatovat jeho adresu.
2. TApplication nam v tom pomaha a u jednoduchyh aplikaci nemusime myslet an
dealokuci formularu
3. Pokud vytvorim formular bez pomoci TApplication tak ho za mne nikdo
nezrusi a on mi sezere kus pameti


Sice trochu dlouhe, ale snazil jsem se to vysvetlit dost podrobne.
Klidne se ptej dal.


Karel Vlcek
===========================
poskytovani software
GSM : ++420 602 264812
mailto: Vlcekk(zv)hotmail.com
===========================

______________________________________________________
Get Your Private, Free Email at http://www.hotmail.com


Aplikace ve stylu "DELPHI"

[*] petr.motlicek(zv)bcbrno(tec)cz - 16.9.1999 07:10:55

<color><param>0100,0100,0100</param><FontFamily><param>Times New Roman</param><smaller><smaller>A<bigger>hoj,

asi ti jde hlavne o omezeni velikosti pri maximalizaci ci minimalizaci. Opet podle UODDF
({HYPERLINK "indexnf.htm"}<underline><color><param>0000,0000,FF00</param>http://www.gnomehome.demon.nl/uddf/indexnf.htm</underline><color><param>0100,0100,0100</param>

</color><FontFamily><param>Arial</param><bigger>{HYPERLINK "pages/forms.htm" \l "forms10"}Preventing the user from resizing my window vertically {HYPERLINK "pages/forms.htm" \l "forms11"}nebo Preventing a From
from Resizing

<color><param>0100,0100,0100</param><FontFamily><param>Times New Roman</param><smaller>):


TForm1 = class(TForm)

<underline><color><param>0000,0000,FF00</param><FontFamily><param>Arial</param><bigger><bigger> </underline></color><smaller><smaller>procedure WMGetMinMaxInfo(var Msg: TWMGetMinMaxInfo); <color><param>0100,0100,0100</param><FontFamily><param>Times New Roman</param>message
WM_GETMINMAXINFO; <underline><color><param>0000,0000,FF00</param><FontFamily><param>Arial</param><bigger><bigger>

</underline><color><param>0100,0100,0100</param><FontFamily><param>Times New Roman</param><smaller><smaller>end;<smaller>p<bigger>rocedure TForm1.WMGetMinMaxInfo(var Msg: TWMGetMinMaxInfo);

begin

inherited;

with Msg.MinMaxInfo^ do begin

ptMinTrackSize.x:= form1.width;

ptMaxTrackSize.x:= form1.width;

ptMinTrackSize.y:= form1.height;

ptMaxTrackSize.y:= form1.height;

end;

end; <underline><color><param>0000,0000,FF00</param><FontFamily><param>Arial</param><bigger><bigger>Zdravi Petr Motlicek
</underline><color><param>0100,0100,0100</param><FontFamily><param>Times New Roman</param><smaller><smaller>Date sent: Thu, 16 Sep 1999 01:00:49 +0200

From: eL <<eL_z_Prahy(zv)seznam(tec)cz>

To: "delphi-l(zv)fwd(tec)cz" <<delphi-l(zv)fwd(tec)cz>

Subject: Aplikace ve stylu "DELPHI"

Send reply to: delphi-l(zv)fwd(tec)cz


<smaller>></color><FontFamily><param>Arial</param><bigger><bigger> Jak mam udelat

<color><param>7F00,0000,0000</param>> aplikaci ve stylu Delphi. Tedy aby hlavni form byl prouzek nahore a

> ostatni formy aby se skladaly pod nej.
<nofill>

Kresleni na formular...

[*] Fryz, Zdenek <fryz(zv)dcb(tec)cz> - 16.9.1999 07:30:02

uz jsem na to prisel, k blikani dochazi, kdyz se
pouzije 16-ti barevny kurzor, pri pouziti "monochrome"
kurzoru blikani zmizelo, vi nekdo proc tomu tak je,
a jestli ve Win98 a NT4 to funguje stejne ?

Zdenek Fryz


> -----P�vodn� zpr�va-----
> Od: Fryz, Zdenek
> Odesl�no: 15.09.1999 14:11
> Komu: 'delphi-l(zv)fwd(tec)cz'
> P�edm�t: Kresleni na formular...
>
> Ahoj
>
> Nevi nekdo jak zamezit blikani kurzoru pri kresleni na formular ?
> Kresleni delam v udalosti MouseMove formulare.
>
> Diky.
>
> Zdenek Fryz
>
>
__________________________________________________________________
Tato komunikace je urcena vyhradne pro adresata a je duverna.
This communication is intended solely for the addressee and is confidential.

Tvorba VXD

[*] Petr Brant <p.brant(zv)samo(tec)cz> - 16.9.1999 06:43:57

Jak se jmenuje, to bohuzel nevim, protoze nize uvedenou informaci mam od
kolegy, ktery uz tu neni. Ale urcite by se neco dalo zjistit u
Microsoftu. Zkus se pripojit na www.microsoft(tec)cz a nekomu poslat mail.

**************************************************
Petr Brant [p.brant(zv)samo(tec)cz], programator v MSVC++,
obcas Delphi nebo Visual Basic
**************************************************
> -----P�vodn� zpr�va-----
> Od: Kry�tof Hoder [SMTP:hoder(zv)seznam(tec)cz]
> Odesl�no: 15. z��� 1999 21:56
> Komu: delphi-l(zv)fwd(tec)cz
> P�edm�t: Re: Tvorba VXD
>
> Nevis jak se jmenuje a kde o nem ziskat dalsi informace?
> ----- Original Message -----
> From: Petr Brant <p.brant(zv)samo(tec)cz>
> To: <delphi-l(zv)fwd(tec)cz>
> Sent: Wednesday, September 15, 1999 7:39 AM
> Subject: RE: Tvorba VXD
>
>
> > Nedaji se - na to je specialni nastroj na bazi C++ a neni to zrovna
> > dvakrat trivialni.
> >
> > **************************************************
> > Petr Brant [p.brant(zv)samo(tec)cz], programator v MSVC++,
> > obcas Delphi nebo Visual Basic
> > **************************************************
> >
> >
> >
> > > -----P�vodn� zpr�va-----
> > > Od: Kry�tof Hoder [SMTP:hoder(zv)seznam(tec)cz]
> > > Odesl�no: 14. z��� 1999 22:01
> > > Komu: delphi-l(zv)fwd(tec)cz
> > > P�edm�t: Tvorba VXD
> > >
> > > Nevi nekdo, jestli by se daly v Delphi vytvaret soubory VXD? Vsiml
> > > jsem si,
> > > ze umi celkem pekny veci - napr. program RegMon s jejich pomoci
> > > monitoruje
> > > vsechny pristupy do registru.
> > >
> > > Thanks for ideas and help.
> > > Krystof
> >

Aplikace ve stylu "DELPHI"

[*] Pavel �im��ek - 16.9.1999 08:06:19

Nerad bych te mystifackoval, ale myslim ze takoveto aplikace se jmenuji SDI
aplikace.
Viz New Application --> SDI
Ahoj Pavel


-----P�vodn� zpr�va-----
Od: eL <eL_z_Prahy(zv)seznam(tec)cz>
Komu: delphi-l(zv)fwd(tec)cz <delphi-l(zv)fwd(tec)cz>
Datum: 16. z��� 1999 2:32
P�edm�t: Aplikace ve stylu "DELPHI">environment:Win98/95 CZ,Delphi STANDART 4.0 (Build 5.104)Update Pack 2
>RxLib 2.60
>keywords:Form
>
>Zdravim.
>
>Pravdepodobne to tady uz bylo ale nenasel jsem to. Jak mam udelat
>aplikaci ve stylu Delphi. Tedy aby hlavni form byl prouzek nahore a
>ostatni formy aby se skladaly pod nej.
>
>Dik
>
>eL..
>

Ponekud off topic - boot.ini

[*] Petr Smol�k <psmolik(zv)fides(tec)cz> - 16.9.1999 08:12:26

> A da se to udelat na fyzicky DRUHEM disku? neco jako
> fdisk D: /mbr
> ???
> P.S. nakonec jsem to obesel, ale docela by mne to zajimalo.

Nevidim duvod proc by to nemelo jit na jakykoli fyzicky disk.
Ale asi by to neslo fdisk D: /mbr (ale to opravdu nevim, muzes to testnout)
Nejlepsi by bylo boot-ovat na druhy fyzicky disk, aby byl oznacen jako C:.
A pak to pouzit.

Petr Smol�k
psmolik(zv)fides(tec)cz
ICQ: 37413592
Tel.:0604 837652


Mapa a autorsk� pr�vo

[*] Viktor.Lostak(zv)chmi(tec)cz (Viktor Lostak) - 16.9.1999 08:21:10

> - kde mohu levne (za kolik) ci zdarma sehnat nejake geodata v
> nekterem u nas pouzivanych souradnicoveho systemu - jestli teda
> nevadi ze digitalizuji mapu (z obchodu)
>

Ja mam celou republiku (CR, ne CSR) 1:50 000 ( je to vlastne ta turisticka
mapa, akorat ze na ni nejsou ty turisticke znacky, jinak je tam vsechno) v
TIFFech. Jsou to takove dlazdice, u kazde je jeste soubor se souradnicemi,
podle ktereho se to da sestavit do kompletni mapy republiky. Myslim, ze je
to primo z toho VKU Harmanec.

Jestli to chces, tak mi napis a nejak se domluvime, ale jsou toho dve CD a
to nikam po internetu nedostanu, tak tlusty drat zase nemam.

Ovsem podle meho mineni (uz jsem o tom uvazoval) je to pro GIS prakticky
nepouzitelne, ackoli je to jiste lepsi (a levnejsi) nez skenovat mapu z
obchodu.

Viktor

P.S. I kdyz jsem prava nedodelal, podle meho nazoru je to porusovani
autorskych prav jak noha, nicmene tezko prokazatelne, pokud ty podklady
protahnes nejakym vektorizacnim programem a jeste ruzne poupravujes.

Threads

[*] MODROVSKY Daniel <modrovsky(zv)asset.sk> - 16.9.1999 08:26:25

Do vykonavajucej procedury threadu (vacsinou - Execute) pridaj
apifunkciu - Sleep(milisec)

> -----Original Message-----
> From: Petrik [SMTP:petrik(zv)geocities.com]
> Sent: 15. september 1999 23:18
> To: Delphi
> Subject: Threads
>
> Nazdarek,
>
>
> Jak vytvorim thread, aby po spusteni zabiral
> tolik %CPU kolik opravdu potrebuje ?
>
> At ho vytvorim s nejnizsi prioritou - tak ma
> 100%, sice se jich rad vzda ve prospech jinyho
> procesu, ale i pri idle ma 100%.
> Pokud pouziju OnIdle (samozrejme bez threadu)
> tak je to taky 100% ...
>
> Moje procedura dela jenom par operaci na Canvas
> (pres DirectX, ale to je fuk) a pri pouziti
> cehokoliv ma CPU 100%. Kdyz pouziju Timer s asi 5ms
> intervalem (samozrejme jinej TTimer nez ten blbej
> co je ve VCL), tak mam vytizenost asi 11%, ale
> to je furt moc - Vzdyt WinAmp, kterej dekoduje
> jak silenec a jeste dela vizualizaci ma 5% !!!
>
> Takze to asi nebude dobre delat tim timerem, ale
> threadem. ALE JAK ??? jak sem jiz napsal na
> zacatku - furt mi zabira 100% i kdyz je
> zcela jiste nepotrebuje.
> Me staci tu proceduru volat asi po 4-6 milisekundach.
>
> DEKUJI za (slusne) navrhy :)))
>
> (jde o scrolovaci text a chci mit CPU tak do 10% -
> je mi jasny, ze za tu pomalost muze Delphi, takze optimalnich
> hodnot (1%-2%) asi v Delphi nedosahnu!)
>
>
> Cus,
> Petrik mailto:petrik(zv)geocities.com
>

Aplikace ve stylu "DELPHI"

[*] Martin Bodlak <vyvoj(zv)atlascon(tec)cz> - 16.9.1999 08:30:57


eL wrote:
>
> environment:Win98/95 CZ,Delphi STANDART 4.0 (Build 5.104)Update Pack 2
> RxLib 2.60
> keywords:Form
>
> Zdravim.
>
> Pravdepodobne to tady uz bylo ale nenasel jsem to. Jak mam udelat
> aplikaci ve stylu Delphi. Tedy aby hlavni form byl prouzek nahore a
> ostatni formy aby se skladaly pod nej.
>
Reknu Ti, jak to delam ja.

HLAVNI PROGRAM
--------------
Prepsano WndProc, messages:

// tahle message se posila z jednotlivych modulu.
// Pokud je minimalizovana cela aplikace a dojde k restore modulu,
restorne se i hlavni program
if Message.Msg = MSG_FOCUSME then
begin
Application.Restore;
Application.BringToFront;
Message.Result := 0;
end {if MSG_FOCUSME};

// zakaz pohybu maximalizovaneho okna tam byt musi, nebot Windows... :)
if Message.Msg = WM_SYSCOMMAND then
begin
with TWMSysCommand(Message) do
if ((CmdType and $FFF0) = SC_MOVE) and (WindowState = wsMaximized)
then
CmdType := 0;
end {if WM_SYSCOMMAND};

// teprve ted se provede zdedeny stuff
inherited;

// minimalizace hlavniho programu musi zajistit i minimalizaci modulu
if Message.Msg = WM_SYSCOMMAND then
begin
with TWMSysCommand(Message) do
if (CmdType and $FFF0) = SC_MINIMIZE then
begin
for i := 0 to FormList.Count - 1 do

PostMessage(FormList.ItemByIndex(i).Handle,WM_SYSCOMMAND,SC_MINIMIZE,0);
FKMinimized := true;
end {if CmdType...};
end else

// zpetne obnoveni vseho pri aktivate hlavniho programu z
minimalizovaneho stavu
if Message.Msg = WM_ACTIVATE then
begin
if FKMinimized then
for i := 0 to FormList.Count - 1 do
ShowWindow(FormList.ItemByIndex(i).Handle,SW_SHOW);
FKMinimized := false;
end else

// prepsani standardniho chovani pro MAXIMIZE
if Message.Msg = WM_GETMINMAXINFO then
begin
with TWMGetMinMaxInfo(Message) do
begin
if XPosMax > 0 then XPosMax := MinMaxInfo.ptMaxPosition.X
else MinMaxInfo.ptMaxPosition.X := XPosMax;
if YPosMax > 0 then YPosMax := MinMaxInfo.ptMaxPosition.Y
else MinMaxInfo.ptMaxPosition.Y := YPosMax;
//MinMaxInfo.ptMaxSize.X := Screen.Width + XAddOn;
MinMaxInfo.ptMaxSize.Y := BackImage.Height + YAddOn;
end {with};
end else

// nepovolit zmenu vysky okna
if Message.Msg = WM_WINDOWPOSCHANGING then
begin
with TWMWindowPosMsg(Message) do
begin
WindowPos^.cy := BackImage.Height + YAddOn;
if WindowPos^.cx < 600 then WindowPos^.cx := 600;
end {with};
end else


MODULY (JAKO DLL)
-----------------

// maximalizovanym modulem se nesmi hybat...
case Message.Msg of
WM_SYSCOMMAND:
with TWMSysCommand(Message) do
begin
if (WindowState = wsMaximized) and (((CmdType and $FFF0) =
SC_MOVE) or ((CmdType and $FFF0) = SC_SIZE)) then
CmdType := 0;
end {WM_SYSCOMMAND};
end {case Message.Msg};

// zdedene osetreni messages
inherited;

// Pri restore modulu se musi provest restore hlavniho programu
case Message.Msg of
WM_SYSCOMMAND:
with TWMSysCommand(Message) do
begin
if (CmdType and $FFF0) = SC_RESTORE then
SendMessageFK(DLL_RESTORE,0);
end {WM_SYSCOMMAND};

// klicova cast - osetreni zmeny velikosti okna modulu v maximalizovanem
stavu
WM_GETMINMAXINFO:
with TWMGetMinMaxInfo(Message) do
begin
if Opt.FullScreen then tmp := 0 else tmp := AppForm.Height;
SystemParametersInfo(SPI_GETWORKAREA,0,(zv)rect,0);
MinMaxInfo^.ptMaxPosition.X := -BorderLeft;
MinMaxInfo^.ptMaxPosition.Y := tmp - BorderTop;
MinMaxInfo^.ptMaxSize.Y := rect.Bottom - rect.Top - tmp;
end {WM_GETMINMAXINFO};

// tohle se vola pri ziskani-ztrate fokusu okna modulu
WM_NCACTIVATE:
if boolean(Message.wParam) then
begin
SendMessageFK(DLL_ACTIVATE,Handle);
if (zv)FOnFocusReceive <> nil then FOnFocusReceive(Self);
end else
begin
if (zv)FOnFocusLoose <> nil then FOnFocusLoose(Self);
SendMessageFK(DLL_DEACTIVATE,Handle);
end {WM_NCACTIVATE};
end {case Message.Msg};

V pripade nejakych dotazu mi piste, poradim, odpovim.

Hezky den.
--
Martin Bodlak, ATLAS consulting, spol. s r. o.
Corporate: http://www.atlascon(tec)cz, bodlak(zv)atlascon(tec)cz
Private : http://members.xoom.com/bodlak, martin.bodlak(zv)iname.com
Tel. 069-6616432 (office), 0603-490135 (private)

Skr�vac� panel

[*] Miroslav Mare� <sm(zv)sct(tec)cz> - 16.9.1999 08:31:12

Nazdarek,
mam na disku html stranku z microsoftu, kde to je popsane, ale je to v cecku nebo bych Ti mohl poslat komponentu.

Miroslav Mares
----- Original Message -----
From: ing.Pavel Cabalka
To: delphi-l(zv)fwd(tec)cz
Sent: Wednesday, September 15, 1999 10:13 AM
Subject: Skr�vac� panel


Preji vsem dobry a uspesny den !
Mel bych jeden drobny dotazek. Rad bych v aplikaci realizoval neco podobneho jako panel aplikaci Office, ktery se mi schova do praveho (leveho, horniho, dolniho) okraje obrazovky a kdyz do tech mist najedu mysi, tak mi odtud vyleze. Ja na ten panel sice chci umistit nejaky ciselnik atp., ale jde mi o to schovavani.
Muze mi prosim nekdo z vas poradit jak na to?
Doufam, ze jsem se vymacknul srozumitelne.

Diky PavelC


Papir v tiskarne

[*] Miroslav Mare� <sm(zv)sct(tec)cz> - 16.9.1999 08:33:44

Nazdarek jmenovce,
zkus se mrknou do helpu na object TPrinter

Miroslav Mares



----- Original Message -----
From: Miroslav NETRAIDER Mares <mmares(zv)mbox.vol(tec)cz>
To: <delphi-l(zv)fwd(tec)cz>
Sent: Wednesday, September 15, 1999 9:28 PM
Subject: Papir v tiskarne


> Dobry den,
>
> jsem zacinajici programator v DELPHI a dovoluji se obratit na Vas s
prosbou:
> Potreboval bych nejak zjistit, jaky papir je v tiskarne (volne listy nebo
> traktor) a eventualne aktualni nastaveni tiskarny. Proste zkontrolovat
pred
> tiskem, ze vystupni sestava se na papir "vejde".
>
> Diky za Vase rady, jak to udelat M. Mares


Threads

[*] Petr Smol�k <psmolik(zv)fides(tec)cz> - 16.9.1999 08:43:29

Ahoj.
Nevim co ten thread presne dela, ale zkus
tam nekam dat funkci Sleep()
Asi tak:

procedure TYourThread.Execute;
begin
try
repeat
if flag then ... (*flag urcuje jsou-li pripravena data pro nejaky
vypocet*)
else Sleep(5);(*5= time in milliseconds *)
until Terminated;
except
...
end;

Petr Smol�k
psmolik(zv)fides(tec)cz
ICQ: 37413592

> Nazdarek,
>
> Jak vytvorim thread, aby po spusteni zabiral
> tolik %CPU kolik opravdu potrebuje ?
>
> At ho vytvorim s nejnizsi prioritou - tak ma
> 100%, sice se jich rad vzda ve prospech jinyho
> procesu, ale i pri idle ma 100%.
> Pokud pouziju OnIdle (samozrejme bez threadu)
> tak je to taky 100% ...
>
> Moje procedura dela jenom par operaci na Canvas
> (pres DirectX, ale to je fuk) a pri pouziti
> cehokoliv ma CPU 100%. Kdyz pouziju Timer s asi 5ms
> intervalem (samozrejme jinej TTimer nez ten blbej
> co je ve VCL), tak mam vytizenost asi 11%, ale
> to je furt moc - Vzdyt WinAmp, kterej dekoduje
> jak silenec a jeste dela vizualizaci ma 5% !!!
>
> Takze to asi nebude dobre delat tim timerem, ale
> threadem. ALE JAK ??? jak sem jiz napsal na
> zacatku - furt mi zabira 100% i kdyz je
> zcela jiste nepotrebuje.
> Me staci tu proceduru volat asi po 4-6 milisekundach.
>
> DEKUJI za (slusne) navrhy :)))
>
> (jde o scrolovaci text a chci mit CPU tak do 10% -
> je mi jasny, ze za tu pomalost muze Delphi, takze optimalnich
> hodnot (1%-2%) asi v Delphi nedosahnu!)
>
> Cus,
> Petrik mailto:petrik(zv)geocities.com


OT:Borland CodeCentral

[*] Hole�ek Radek <holecek.radek(zv)seznam(tec)cz> - 16.9.1999 08:47:55

env: WinNT 4.0, SP3,
keywords: Borland CodeCentral client

Zdravim.

Pri pouzivani ccClienta, ktery pracoval cca mesic bez problemu,
se mi pri startu zacala objevovat chyba:
Windows socket error: (10061), on API 'connect'
Could not connect to the CodeCentral server.

Nevite nahodou, jestli se mi podarilo neco poskodit nebo to muze byt
chyba
na strane serveru?

Mnohe diky

Radek Holecek

Kresleni na formular...

[*] Burger, Tomas <tomas.burger(zv)sap(tec)com> - 16.9.1999 08:47:09

> -----Original Message-----
> From: Fryz, Zdenek [mailto:fryz(zv)dcb(tec)cz]

> pouzije 16-ti barevny kurzor, pri pouziti "monochrome"
> kurzoru blikani zmizelo, vi nekdo proc tomu tak je,

Ja bych jenom rekl, ze dvoubarevny kurzor blika osmkrat rychleji nez
sestnacti barevny a ty to uz jenom nestihas pozorovat... Zkus to na nejake
pomalejsi masine... :-))

Tomas


Tvorba VXD

[*] Milan Vorisek <vorisek(zv)igtt(tec)cz> - 16.9.1999 09:03:15

> -----P�vodn� zpr�va-----
> Od: Kry�tof Hoder [SMTP:hoder(zv)seznam(tec)cz]
> Odesl�no: 15. z��� 1999 21:56
> Komu: delphi-l(zv)fwd(tec)cz
> P�edm�t: Re: Tvorba VXD
>
> Nevis jak se jmenuje a kde o nem ziskat dalsi informace?

Je to DDK (Device Development Kit).
Pro Win NT je to dokonce mozne stahnout

http://mssjus.www.conxion.com/download/winntwks40/Install/1998/NT4/EN-US/nt4ddk.zip

ale nestaci to. Je k tomu jeste potreba Win32 SDK a C++.
Vse je soucasti predplatneho Professional Subscription
(cca 25000.- Kc) informace na http://msdn.microsoft.com.

Zatim jsem neobjevil moznost, jak SDK koupit jako samostatny
produkt.
Kdyby nekdo vedel, ozvete se.
Diky.
M.Vorisek


TStrings,TStringList, nebo neco jineho? - konec

[*] Petr Sadovsky <petr(zv)slunce(tec)cz> - 16.9.1999 09:18:39


----- P�vodn� zpr�va -----
Od: Radim Kunz <rkunz(zv)ova.comp(tec)cz>
Komu: Delphi <delphi-l(zv)fwd(tec)cz>
Odesl�no: 15. z��� 1999 19:01
P�edm�t: Re: TStrings,TStringList, nebo neco jineho?> >No prave.Jak se zabiji takovy objekt vytvoreny lokalne ve fci, kdyz uz
> jsem
> >z te fce venku?
> >Vrazdeny objekt nesmi byt deklarovan lokalne, nebo se likviduje
> automaticky
> >predanim Resultu (a tedy toho objektu, co vrazdime-myslim si ze kdyz ho
> >rucne vytvorim, musim ho i rucne znicit) do ListBox1.Items? :-))
> >Toto je jedine, co na tom jeste nechapu.
>
> Objekt neni lokalni, lokalni je pouze pointr na neho. Pokud predas pointr
do
> resultu, result stale ukazuje na stejny objekt, i kdyz z lokalni funkce
> vyskocis.
> Objekt musis zavrazdit, nema sebevrazedne sklony jako v Jave

Jo uz to mam. V podstate object se alokuje v pameti jenom jeden a v ruznych
promennych se predavaji pouze pointery na neho a je uplne jedno "ze ktere
promenne object zabiju".

Takze jeste jednou : Diky vsem .

Petr Sadovsk�
p.sadovsky(zv)atlas(tec)cz
ICQ 37042001

Application.Terminate

[*] Iko <iko(zv)kamarad(tec)cz> - 16.9.1999 09:23:57

Caute

rad by som vedel, ak dam v programe application.terminate tak sa
mi vykona kod v udalosti OnClose hlavneho formulara?

iko
iko(zv)kamarad(tec)cz


Tvorba VXD

[*] Santik <santik(zv)pronetix.sk> - 16.9.1999 09:27:11



> Nevis jak se jmenuje a kde o nem ziskat dalsi informace?
> ----- Original Message -----
> From: Petr Brant <p.brant(zv)samo(tec)cz>
> To: <delphi-l(zv)fwd(tec)cz>
> Sent: Wednesday, September 15, 1999 7:39 AM
> Subject: RE: Tvorba VXD

Ahoj,

VxD sa daju pisat normalne vo Visual C++ (WinNT) resp. assembleri(Win95) -
potrebujes
akurat nejake hlavickove subory z SDK resp. DDK.
Ten nastroj co asi myslel P.Brant je VtoolsD od Vireo/NuMega technologies -
ale je to
pekne mastne - vid. www.numega.com.

P.S.: Ak ma niekto z vas C++ Builder - daju sa pisat VxD aj v nom ?

Bye
Santik

TForm.WindowState

[*] Petr Sadovsky <petr(zv)slunce(tec)cz> - 16.9.1999 09:41:16

Ahojte.

Chtel bych se dovedet:
1) jakym zpusobem dosahnu toho, aby se mi, kdyz z hlavniho formu aplikace
otevru jiny form jako modalni, pri minimalizaci jineho formu minimalizoval i
hlavni form aplikace.

2) jakym zpusobem udelam aplikaci tak, aby pri otevreni jineho okna (z
otazky 1) a pri kliknuti na ni na liste, aplikace "spadla na listu" a po
dalsim kliknuti se objevila.Delaji to tak aplikace ve W98.Moje to udela
pouze s hlavnim formem aplikace.

Mam D4 C/S a doufam, ze jsem se vyjadril srozumitelne.

Diky.

Petr Sadovsk�
p.sadovsky(zv)atlas(tec)cz
ICQ 37042001

MSDE

[*] Martin Koran <komar(zv)komar(tec)cz> - 16.9.1999 09:41:31

Ahoj,

> No problem, mel by si mit v Trayi ikonku "SQL server service
> manager" a
> tam je checkbox "Autostart service when OS starts" - no a tu zaskrtni
> ;-)
Jo, to je v poradku drahy jmenovce, ale ja bych rad, aby se to po instalaci
MSDE spustilo samo, bez toho zaskrtnuti nebo lepe, jak ten checkbox
zaskrtnout
jinak, nez zasahem uzivatele?


S pozdravem

Martin Koran


============================================
Martin Koran
KOMAR
Hilbertova 68
440 01 LOUNY

tel.: +420 (395) 65 40 19
fax: +420 (395) 65 53 85
hotline: +420 (602) 42 33 72

http://www.komar(tec)cz
mailto:info(zv)komar(tec)cz

>
> Martin Koran wrote:
>
> > BTW nevi nekdo, jak po instalaci MSDE do Win95 ho primet
> > k tomu, aby se po restartu PC spustil?
>

Aplikace ve stylu "DELPHI"

[*] Tomas Rosa <trosa(zv)seznam(tec)cz> - 16.9.1999 10:49:52

Ahoj,

kdysi jsem to delal, ale PERFEKTNI HW OD AUTOCONTU mi sezral vsechny data
(odesl mi disk (asi 5x, kazdej jinej a novej)), takze to nemam. Jinak staci
vyrobit hlavni formular jako nudlicku a ostatni formulare normale:

Form2:=TForm2.Create(application);
Form2.ShowModal;
Form2.Free;

Popripade jen to prvni a zbytek dat do hlavniho okna k FormDestroy. Pak mas
normale formulare. Uz je jen na tobe osetrit v TForm2.OnResize, pokud nekdo
da Maximize, tak aby jsi mu to smrsknul na to misto pod hlavnim oknem, aby
ti ho to neprekrylo. Tim mas neco ala Delphi. Mel jsem taklhe editor na CGI
skripty v Perlu, ale prisel jsem o nej, takze zdrojaky nemohu poslat.
Tomas Rosa

----- Original Message -----
> Pravdepodobne to tady uz bylo ale nenasel jsem to. Jak mam udelat
> aplikaci ve stylu Delphi. Tedy aby hlavni form byl prouzek nahore a
> ostatni formy aby se skladaly pod nej.
>

Par dotazu (vsehochut)

[*] Jezek Petr, Ing. (DELVINA) <PETR(zv)sevis.sk> - 16.9.1999 09:59:16

To uz si radej posli vlastni zpravu
z YForm.OnClose do XForm a v ni pak nastav buttony jak chces.+------------------------+
| Ing. Petr Jezek |
| Kuzmanyho 8 |
| 010 01 Zilina |
| Slovakia |
| mailto://petr(zv)sevis.sk |
+------------------------+


-----Original Message-----
From: Jiri Novotny [mailto:NOVOTNY(zv)ftknw.upol(tec)cz]
Sent: Thursday, September 16, 1999 11:11 AM
To: delphi-l(zv)fwd(tec)cz
Subject: Re: Par dotazu (vsehochut)


Ptal jsem se na:
>> 1) Jak lze v D3 vydat ze speakeru zvuk urcite frekvence a po
>> urcitou dobu (tj. neco jako "klasicke" pascalovske Sound(x);
>> Delay(y); > Nosoud;) ? Obycejne Beep nebo MessageBeep mi
>> nevyhovuje.

Diky vsem za rady, bohuzel Windows.Beep funguje jen na WinNT, ale
nikoliv na W95, takze resenim je SpeakerUnit od Krystofa Hodera.

A pak me jeste zajimalo reseni pro:
> > 3) Na formulari XForm mam OpenButton (zobrazi novy formular YForm) a
> > CloseButton (uzavre YForm). V udalosti OnCreate formulare XForm mam
> > YForm := TYForm.Create(Application);
> > OpenButton.Enabled := true;
> > CloseButton.Enabled := false;
> > Udalosti OnClick jednotlivych buttonu mam osetrene takhle:
> > procedure TXForm.OpenButtonClick(Sender: TObject);
> > begin
> > YForm.Show;
> > OpenButton.Enabled := not OpenButton.Enabled;
> > CloseButton.Enabled := not CloseButton.Enabled;
> > end;
> >
> > procedure TXForm.CloseButtonClick(Sender :TObject);
> > begin
> > YForm.Close;
> > OpenButton.Enabled := not OpenButton.Enabled;
> > CloseButton.Enabled := not CloseButton.Enabled;
> > end;
> >
> > Tohle mi funguje k uplne spokojenosti ovsem jen do te doby, nez
> > formular YForm zavru napr. pres jeho systemovou ikonu. Potreboval
bych
> > tedy poradit, jak v XForm zjistim, ze YForm byl uzavren jinak nez
> > z CloseButton, tj. jak po jeho zavreni spravne nastavit vlastnosti
> > Enabled u zminenych buttonu.

Pouzit udalost YForm.OnClose me napadlo taky, ale ma to jeden hacek.
Formular XForm mam v unitu XForm_f a YForm v unitu YForm_f. YForm_f
mam (pochopitelne) uvedeno v IMPLEMENTATION unitu XForm_f. Abych
ale mohl menit property buttonu v XForm pres YForm.OnClose, musel
bych mit XForm_f v IMPLEMENTATION YForm_f. Coz se mi z nejakych
iracionalnich duvodu moc nezamlouva. Nerad pouzivam takove to
"kr~iz~ove" propojeni unitu. Proto by me zajimalo, jestli vyse
popsany problem nelze resit nejak jinak. Napadla me treba takova
(asi) zhovadilost, ze pri udalosti YForm.OnClose si nastavim nejakou
public promennou formulare YForm a v XForm budu pres timer testovat
jeji stav a podle nej aktualizovat property buttonu. Ale ani tohle
reseni se mi nezde moc elegantni a programatorske.

Dovede nekdo poradit?
Jirka.
+-------------------------+---------------------------------+
| Jiri NOVOTNY, Olomouc, | e-mail: novotny(zv)ftknw.upol(tec)cz |
| Czech Republic | http://risc.upol(tec)cz/~novotnyj |
| | ICQ: 9495586 |
+-------------------------+---------------------------------+
| ... and objects in the rear view mirror can appear closer |
| than they are |
+-----------------------------------------------------------+

Tvorba VXD

[*] Burger, Tomas <tomas.burger(zv)sap(tec)com> - 16.9.1999 10:05:10

> -----Original Message-----
> From: Petr Brant [mailto:p.brant(zv)samo(tec)cz]

> kolegy, ktery uz tu neni. Ale urcite by se neco dalo zjistit u
> Microsoftu. Zkus se pripojit na www.microsoft(tec)cz a nekomu poslat mail.

To neco se jmenuje DDK (Driver Development Kit) a vsechno verejne dostupne
je k mani na adrese http://msdn.microsoft.com/library/, sekce DDK
Documentation...

Tomas


TForm.WindowState

[*] Martin Bodlak <vyvoj(zv)atlascon(tec)cz> - 16.9.1999 10:08:06


Petr Sadovsky wrote:
>
> 1) jakym zpusobem dosahnu toho, aby se mi, kdyz z hlavniho formu aplikace
> otevru jiny form jako modalni, pri minimalizaci jineho formu minimalizoval i
> hlavni form aplikace.
>
> 2) jakym zpusobem udelam aplikaci tak, aby pri otevreni jineho okna (z
> otazky 1) a pri kliknuti na ni na liste, aplikace "spadla na listu" a po
> dalsim kliknuti se objevila.Delaji to tak aplikace ve W98.Moje to udela
> pouze s hlavnim formem aplikace.
>
Myslim, ze oba dotazy jsem neprimo zodpovedel ve svem predchozim
prispevku "aplikace ala DELPHI".

1) je treba si mezi formy posilat messages (napr. WM_SYSCOMMAND s
SC_MINIMIZE)

2) dtto, viz ukazka meho zdrojaku v jiz zminenem mejlu.

Hezky den.
--
Martin Bodlak, ATLAS consulting, spol. s r. o.
Corporate: http://www.atlascon(tec)cz, bodlak(zv)atlascon(tec)cz
Private : http://members.xoom.com/bodlak, martin.bodlak(zv)iname.com
Tel. 069-6616432 (office), 0603-490135 (private)

Borland CodeCentral

[*] Libor Valka <valka(zv)brno.cas(tec)cz> - 16.9.1999 10:16:03

> Pri pouzivani ccClienta, ktery pracoval cca mesic bez problemu,
> se mi pri startu zacala objevovat chyba:
> Windows socket error: (10061), on API 'connect'
> Could not connect to the CodeCentral server.
>
> Nevite nahodou, jestli se mi podarilo neco poskodit nebo to muze byt
> chyba
> na strane serveru?
>

Ahoj,

mne to dela taky, takze chyba asi bude na serveru.


S pozdravem

Libor Valka

mailto:libor.valka(zv)volny(tec)cz
mailto:libor.valka(zv)centrum(tec)cz


Spusteni aplikace s parametrem

[*] Petr Brant <p.brant(zv)samo(tec)cz> - 16.9.1999 09:36:55

Ahoj,

naskytl se mi zajimavy problem: Mam aplikaci, ktera se spousti s
parametrem, pripadne i bez neho. To je jmeno souboru, ktery se ma
otevrit. Je to udelane v DPR souboru asi takto:

Application.CreateForm(TMainForm, MainForm);
(tvoreni dalsich formu...)
Application.CreateForm(TPrintPreview, PrintPreview);

if ParamCount = 1 then
MainForm.OpenFile(ParamStr(1));
Application.Run;
end;

Pohoda, funguje to. Aby neslo spoustet vice instanci, pouzil jsem
postupu nalezeneho na FAQ Inprise:

{Attempt to create a named mutex}
CreateMutex(nil, false, 'MyApp');
{if it failed then there is another instance}
if GetLastError = ERROR_ALREADY_EXISTS then
begin
{Send all windows our custom message - only our other}
{instance will recognise it, and restore itself}

SendMessage(HWND_BROADCAST,
RegisterWindowMessage('MyApp'),
0,
0);
{Lets quit}
Halt(0);
end else
begin
Application.CreateForm(TMainForm, MainForm);
(tvoreni dalsich formu...)
Application.CreateForm(TPrintPreview, PrintPreview);
.....atd. ...
end;

s tim, ze se doplni jeste neco kodu (osetreni toho message 'MyApp') do
hlavniho formu. Vsechno funguje dobre, ale chtel bych, kdyby se pri
pokusu o druhe spusteni s parametrem otevrel ten prislusny soubor.Pri
novem spusteni s jinym parametrem se pouze objevi puvodni okno aplikace,
ale nemohu ji vnutit ten novy soubor. Nemate nekdo napad, jak na to?

Diky za vsechny rady.

**************************************************
Petr Brant [p.brant(zv)samo(tec)cz], programator v MSVC++,
obcas Delphi nebo Visual Basic
**************************************************

OLE DB primy pristup

[*] Robert Kindl <rob(zv)exec(tec)cz> - 16.9.1999 10:42:40

> chtel bych si prosondovat nazory na jednu vec. Pojal jsem umysl
> udelat prime vycitani dat (z OLE DB) do struktury, bez okliky pres
> fieldy. Slibuji si od toho urcite urychleni prace s daty. Pro
> predstavu by to vypadalo asi nejak takto:
>
> file://deklarace pole
> var
> Pole=packed record
> ID:longint;
> Jmeno:array[0..24] of char;
> Vek:word;
> end;
>
> file://nazvy typu Type si pro nazornost vymyslim, takto lze
> file://vytahnout pole s jinym typem nez je v databazi;
> file://FldName je nazev pole v databazi, to je jen kvuli dohledani;
> file://zde by byl popis struktury, napr.:
> const
> Popis:array[0..2] of TPopis=(
> (FldName:'ID'; Type:typDWord; Size:4),
> (FldName:'Name'; Type:typString; Size:25),
> (FldName:'Age'; Type:typWord; Size:2));

No nic moc.
Uz takhle mne v BDE stve, ze pokud zmenim databazi a mam vytvorene fieldy
tak dostavam hlasky "Field not of expected type".
Tudiz mam databazi definovanou dvakrat 1. na serveru a 2. v clientskem
programu.
Pritom kdyz napr. zmenim delku pole Jmeno z 25 na 48 znaku tak clientu
to v zasade muze byt UPLNE jedno.

V konstrukci uvedene tebou mi to zacne automaticky delat nesmysly
bez jakekoliv moznosti hlidat jestli databaze a deklarace Pole sedi.

A prinos?
Znacne sporny. Hodi se to jen pokud potrebuji nacist vice nez tisice
zaznamu na klienta. Ale to prece v praxi neni normalni. To tak mozna
v nejakem gridu, ale pokud si grid programujes sam (panbuch s tebou)
tak prece grid muze automaticky pouzivat nejakou optimalizovanou metodu
pristupu k jiz nactenym datum a ne, ze to uzivatel rucne z Pole prenese
do stringgridu. Tim prece ztrati tolik casu (jak vlastniho tak CPU),
ze je bude k nicemu.

Navic BDE pouziva vesele fieldy a podle tvych vlastnich testu
je stale rychlejsi nez tve slavne OLEDB at s fieldy nebo timto direct
pristupem.
Takze tudy asi cesta nevede.

Rob

MSDE

[*] Martin Kubecka <martin.kubecka(zv)amenit(tec)cz> - 16.9.1999 10:42:18

Jo TAAAK, to mas rict hned ;-)

Hmm, to by melo jit vyeditovanim toho instalacniho scriptu (napr.
unattend.iss), momentik .. co todle:

v sekci

[DlgServices-0]
Local-Domain=3855
AutoStart=61455
Result=1

ta polozka AutoStart - zkusim to najit .... searching ....uff tu to je - hledej
v BOL "Creating a Setup Initialization File" - mimo jine je tam i to, jak
nastavit ceske trideni atd.

a tam pisou:

autoStart - Bitmask that defines whether services are configured to autostart

SQL_AUTO = 0xF
AGT_AUTO = 0xF0

takze 61455 je $FOOF

co z toho plyne? To, ze az zjistis, jak to pracuje, tak mi dej vedet ;-) Ja ted
nejak namam na to to vymyslet ;-) Bitove operace mi nikdy nesly :-)

Zatim zdar

Mac

Martin Koran wrote:

> Jo, to je v poradku drahy jmenovce, ale ja bych rad, aby se to po instalaci
> MSDE spustilo samo, bez toho zaskrtnuti nebo lepe, jak ten checkbox
> zaskrtnout
> jinak, nez zasahem uzivatele?

--
==============================================================
= Ing. Martin Kubecka - Amenit s.r.o. =
= Na Valech - budova Dytron, 741 01 Novy Jicin =
= telefon/fax: +420 656 706203 mobil: +420 603 265926 =
= http://www.amenit(tec)cz mailto:martin.kubecka(zv)amenit(tec)cz =
= ICQ: 8906773 GSM (SMS): martin.kubecka(zv)sms.paegas(tec)cz =
==============================================================

BDE, OLE DB, ADO - porovnani rychlosti

[*] Martin Kubecka <martin.kubecka(zv)amenit(tec)cz> - 16.9.1999 10:46:04

Mozna by stalo za to, prubnout i Adonis, co ty na to?

Mac

Zbysek Hlinka wrote:

> nedalo mi to, abych znovu nezmeril rychlosti pristupu k databazim.
> Protoze jsem jsem zjistil zajimave veci, ktere by mohly zajimat i
> dalsi, rad se o ne podelim. Testovano na MS SQL 7, Delphi 5, Intel
> III 450. Vzdy jsem program nastartoval, udelal nad vybranou
> variantou nekolik testu, a program skoncil.

BDE, OLE DB, ADO - porovnani rychlosti

[*] Robert Kindl <rob(zv)exec(tec)cz> - 16.9.1999 11:00:53

> 1: BDE + nativni link pro MS SQL
> 2: BDE + ODBC
> 3: moje OLE DB komponenty
> 4: ADO express (z Delphi 5)
> 1: 0:31:650, 0:26:750, 0:27:840
> 2: 0:33:940, 0:20:770, 0:21:530
> 3: I: podle A:
> a) po 1 vete: 2:02:970, 2:05:450
> b) po 20 vetach: 0:39:440, 0:40:530, 0:40:430
> c) po 1000 vetach: 0:37:570, 0:37:510, 0:36:960
> 3: II: podle B:
> a) po 20 vetach: 0:36:410, 0:37:570, 0:36:630
> b) po 1000 vetach: 0:33:830, 0:33:500
> 4: 14:32:380, 14:30:680

> Horsi je situace u ADO. Zde bych ztratu vykonu pricetl
> jednoznacne typu variant, ktery vychazi i podle jinych mereni
> zhruba 20x pomalejsi nez primy pristup k "rozumnemu" datovemu
> typu. Nemel jsem moznost porovnat s komponentami Adonis, ale
> domnivam se, ze tam bude situace obdobna, pokud cte autor typ
> variant bez rozlisovani jeho vnitrni podoby. Ale myslim, ze za
> porovnani by to stalo.
>
> ADO / OLE DB se stejne jednou nevyhnete, mezitim je vsak
> vhodne pristup pres ADO v Delphi optimalizovat.

Nerikej mi, ze nejakou konverzi variant-neco lze ztratit 14 minut!!!
U samostatneho testu pristupu do promenne typu integer
a typu variant mozna, ale u databaze tomu neverim.
Vzdy jsem si myslel, ze nejdelsi cas typicka
databazova aplikace travi prenosem dat mezi clientem a serverem.
Zpracovani (konverze) dat na klientovi provadi dnes jiz velmi vykonny
procesor a to zdrzeni je jiste meritelne, ale nebude to zpusobovat
zdrzeni 1:20.

Taky by jsi mohl zkusit o fieldu (varianta A) pouzivat pristup pomoci
AsVariant
a hned uvidis o kolik bude delsi. Taky zajimave cislo.

Nemohla se ti u ADO projevit nasledujici zajimava vlastnost MSSQL7?
Defaultne ma databaze nastaveno AutoClose na True.
Tudiz neni-li connection k databazi ta se zavre. Pri dalsim pristupu se
zase musi otevrit. ZKUS nastavit AutoClose na False a pak
testovat ADO. Ono by jsi tim mel teoreticky castecne potlacit
i onen rozdil u prvniho spusteni.

BTW: Pokud to neni tim AutoClosem tak jak chces
ADO optimalizovat aby to nebylo 20x pomalejsi?

Rob

Seriove cislo disku

[*] Martin Bodlak <vyvoj(zv)atlascon(tec)cz> - 16.9.1999 11:06:02


> Petr Voborn�k wrote:
>
> Nevite, jak zjistit seriove cislo disku?
>

GetVolumeInformation

Hezky den.
--
Martin Bodlak, ATLAS consulting, spol. s r. o.
Corporate: http://www.atlascon(tec)cz, bodlak(zv)atlascon(tec)cz
Private : http://members.xoom.com/bodlak, martin.bodlak(zv)iname.com
Tel. 069-6616432 (office), 0603-490135 (private)

Par dotazu (vsehochut)

[*] Jiri Novotny <NOVOTNY(zv)ftknw.upol(tec)cz> - 16.9.1999 09:10:49 met-1

Ptal jsem se na:
>> 1) Jak lze v D3 vydat ze speakeru zvuk urcite frekvence a po
>> urcitou dobu (tj. neco jako "klasicke" pascalovske Sound(x);
>> Delay(y); > Nosoud;) ? Obycejne Beep nebo MessageBeep mi
>> nevyhovuje.

Diky vsem za rady, bohuzel Windows.Beep funguje jen na WinNT, ale
nikoliv na W95, takze resenim je SpeakerUnit od Krystofa Hodera.

A pak me jeste zajimalo reseni pro:
> > 3) Na formulari XForm mam OpenButton (zobrazi novy formular YForm) a
> > CloseButton (uzavre YForm). V udalosti OnCreate formulare XForm mam
> > YForm := TYForm.Create(Application);
> > OpenButton.Enabled := true;
> > CloseButton.Enabled := false;
> > Udalosti OnClick jednotlivych buttonu mam osetrene takhle:
> > procedure TXForm.OpenButtonClick(Sender: TObject);
> > begin
> > YForm.Show;
> > OpenButton.Enabled := not OpenButton.Enabled;
> > CloseButton.Enabled := not CloseButton.Enabled;
> > end;
> >
> > procedure TXForm.CloseButtonClick(Sender :TObject);
> > begin
> > YForm.Close;
> > OpenButton.Enabled := not OpenButton.Enabled;
> > CloseButton.Enabled := not CloseButton.Enabled;
> > end;
> >
> > Tohle mi funguje k uplne spokojenosti ovsem jen do te doby, nez
> > formular YForm zavru napr. pres jeho systemovou ikonu. Potreboval bych
> > tedy poradit, jak v XForm zjistim, ze YForm byl uzavren jinak nez
> > z CloseButton, tj. jak po jeho zavreni spravne nastavit vlastnosti
> > Enabled u zminenych buttonu.

Pouzit udalost YForm.OnClose me napadlo taky, ale ma to jeden hacek.
Formular XForm mam v unitu XForm_f a YForm v unitu YForm_f. YForm_f
mam (pochopitelne) uvedeno v IMPLEMENTATION unitu XForm_f. Abych
ale mohl menit property buttonu v XForm pres YForm.OnClose, musel
bych mit XForm_f v IMPLEMENTATION YForm_f. Coz se mi z nejakych
iracionalnich duvodu moc nezamlouva. Nerad pouzivam takove to
"kr~iz~ove" propojeni unitu. Proto by me zajimalo, jestli vyse
popsany problem nelze resit nejak jinak. Napadla me treba takova
(asi) zhovadilost, ze pri udalosti YForm.OnClose si nastavim nejakou
public promennou formulare YForm a v XForm budu pres timer testovat
jeji stav a podle nej aktualizovat property buttonu. Ale ani tohle
reseni se mi nezde moc elegantni a programatorske.

Dovede nekdo poradit?
Jirka.
+-------------------------+---------------------------------+
| Jiri NOVOTNY, Olomouc, | e-mail: novotny(zv)ftknw.upol(tec)cz |
| Czech Republic | http://risc.upol(tec)cz/~novotnyj |
| | ICQ: 9495586 |
+-------------------------+---------------------------------+
| ... and objects in the rear view mirror can appear closer |
| than they are |
+-----------------------------------------------------------+

Refresh menu

[*] Jiri Novotny <NOVOTNY(zv)ftknw.upol(tec)cz> - 16.9.1999 09:14:38 met-1

Ahoj!

Na tohle tema se ptam jeste jednou, protoze dosud nikdo neprisel s
zadnym napadem a je mozny, ze tento muj dotaz byl zapomenut mezi mymi
ostatnimi. Takze:

V menu mam polozku, u niz menim property Checked za behu programu,
napr. v x-te sekunde se zmeni z false na true. Problem je ovsem v
tom, ze mam-li menu "rozbalene" a nastane prave x-ta sekunda, tak se
u zminene polozky neobjevi to zaskrtavatko. Teprve az menu sbalim a
vratim se na nej zpet, tak je vse OK. Da se udelat nejaky "refresh"
menu, i kdyz je rozbalene? A jestli jo, na jakou udalost to povesit?

Netusi nekdo co s tim a zda je to vubec resitelne? Moc by mi to
pomohlo.

Jirka.

+-------------------------+---------------------------------+
| Jiri NOVOTNY, Olomouc, | e-mail: novotny(zv)ftknw.upol(tec)cz |
| Czech Republic | http://risc.upol(tec)cz/~novotnyj |
| | ICQ: 9495586 |
+-------------------------+---------------------------------+
| ... and objects in the rear view mirror can appear closer |
| than they are |
+-----------------------------------------------------------+

Seriove cislo disku

[*] MODROVSKY Daniel <modrovsky(zv)asset.sk> - 16.9.1999 11:17:02

Vyskusaj tuto proceduru .


procedure ExamineDrive;
var
Serial:DWord;
SystemFlags: DWord;
FileSys:array[0..12] of Char;
DLabel:array[0..12] of Char;
begin
GetVolumeInformation(PChar(Drive+':\'),(zv)DLabel,12,(zv)Serial,
DirLen,SystemFlags,(zv)FileSys,12);
FDiskLabel:=DLabel;
FDiskSerial:=IntToHex(Serial,8);
FFileSystem:=FileSys;
FDriveType:=GetDriveType(PChar(Drive+':\'));
FDriveFlags:=SystemFlags;
end;

> -----Original Message-----
> From: Petr Voborn�k [SMTP:vobornik(zv)ssakhk(tec)cz]
> Sent: 15. september 1999 10:42
> To: delphi-l(zv)fwd(tec)cz
> Subject: Seriove cislo disku
>
> Nevite, jak zjistit seriove cislo disku?
>
> Pitr - Petr Vobornik
> MIKMIK company
> vobornik(zv)ssakhk(tec)cz <mailto:vobornik(zv)ssakhk(tec)cz>
> ICQ# 23132120
> www.ssakhk(tec)cz/home/vobornik/ <http://www.ssakhk(tec)cz/home/vobornik/>

Seriove cislo disku

[*] Josef A. Cerny <vyvoj(zv)atlascon(tec)cz> - 16.9.1999 11:28:24

> Petr Voborn�k wrote:
>
> Nevite, jak zjistit seriove cislo disku?

Pouziva se k tomu funkce GetVolumeInformation.
Funguje to pouze pro lokalni disk.

Nevite, jak zjistit seriove cislo disku pocitace pripojeneho siti peer-to-peer?

Josef Cerny

********************************************
* Josef A. Cerny
* analyst and programmer
*
* ATLAS consulting, spol. s r.o.
* Chocholouskova 9
* 709 16 Ostrava
* Czech Republic
*
* office : +420 69 661 64 32
* secretary: 661 33 33
* fax : +420 69 661 33 30
* e-mail : cerny(zv)atlascon(tec)cz
* private: peppa(zv)post(tec)cz
* WWW : http://www.atlascon(tec)cz
********************************************

Seriove cislo disku

[*] Miroslav Mare� <sm(zv)sct(tec)cz> - 16.9.1999 11:39:46

Zkus api funkci "GetVolumeInformation"

Miroslav Mares
----- Original Message -----
From: Petr Voborn�k
To: delphi-l(zv)fwd(tec)cz
Sent: Wednesday, September 15, 1999 10:42 AM
Subject: Seriove cislo disku


Nevite, jak zjistit seriove cislo disku?

Pitr - Petr Vobornik
MIKMIK company
vobornik(zv)ssakhk(tec)cz
ICQ# 23132120
www.ssakhk(tec)cz/home/vobornik/

SCSI

[*] Lubos <bruce(zv)pobox.sk> - 16.9.1999 12:00:06

Zdravim!
Mam takyto problemik, Kolegyna ma 2 SCSI HDD a jednu IDE CDRom nastavenu
ako primary
master. Ked nainstalujem BCB 4.0 a spustim ho tak zamrzne cely PC.
Kde by mohol byt problem ?
Vdaka.
/LH
--
"We are Microsoft. Resistance is futile. Open your source code and prepare
for assimilation."

MSDE

[*] Martin Koran <komar(zv)komar(tec)cz> - 16.9.1999 12:18:26

Ahoj,

> [DlgServices-0]
> Local-Domain=3855
> AutoStart=61455
> Result=1
To je prave to, co nefunguje. Nastavim to podle toho, co jsem nasel
na MSDN a h... vlastne nic. Musim to vzdycky spustit manualne.
BTW, kde se vzalo u AutoStart to cislo? V MSDN jsem tam k tomu nasel
jenom tohle:

Option Value (Hex) Value (Decimal)
MSSQLServer autostarts 0x000F 15
SQLServerAgent autostarts 0x00F0 240

ale i kdyz to nastavim podle toho, tak se to nespusti.


S pozdravem

Martin Koran


============================================
Martin Koran
KOMAR
Hilbertova 68
440 01 LOUNY

tel.: +420 (395) 65 40 19
fax: +420 (395) 65 53 85
hotline: +420 (602) 42 33 72

http://www.komar(tec)cz
mailto:info(zv)komar(tec)cz

Seriove cislo disku

[*] Burger, Tomas <tomas.burger(zv)sap(tec)com> - 16.9.1999 12:33:38

http://www.delphi(tec)cz/faq.asp?faq=25 <http://www.delphi(tec)cz/faq.asp?faq=25>

-----Original Message-----
From: Petr Voborn�k [mailto:vobornik(zv)ssakhk(tec)cz]
Sent: Mittwoch, 15. September 1999 10:42
To: delphi-l(zv)fwd(tec)cz
Subject: Seriove cislo disku


Nevite, jak zjistit seriove cislo disku?

Pitr - Petr Vobornik
MIKMIK company
vobornik(zv)ssakhk(tec)cz <mailto:vobornik(zv)ssakhk(tec)cz>
ICQ# 23132120
www.ssakhk(tec)cz/home/vobornik/ <http://www.ssakhk(tec)cz/home/vobornik/>

OT: omluva ADMINovi -- registracni pokladny

[*] Burger, Tomas <tomas.burger(zv)sap(tec)com> - 16.9.1999 12:35:03

> -----Original Message-----
> From: Ing. Jaroslav Ske��k [mailto:jaro(zv)sinea(tec)cz]
>
> PS. jaka je adresa primo na ADMINa

Zkus treba info(zv)delphi(tec)cz
...nebo pis primo me (treba Tomas.Burger(zv)sap.com nebo
Tomas.Burger(zv)delphi(tec)cz...)

Tomas


DBGrid and select

[*] marcant <marcant(zv)sct.sk> - 16.9.1999 12:55:31

Takto sa oznacuju jednotlive riadky
with DBGrid1.DataSource.DataSet, DBGrid1 do
begin
SelectedRows.Clear;
First;
while not EOF do
begin
if PODMIENKA then
SelectedRows.CurrentRowSelected:= True;
Next;
end;
First;
end;

A takto sa zistuje, ci je urcity riadok vybrany:
with DBGrid1.DataSource.DataSet, DBGrid1 do
begin
DisableControls;
First;
while not EOF do
begin
if SelectedRows.CurrentRowSelected then
ROBNIECO;
Next;
end;
EnableControls;
end;

----- Original Message -----
From: Martin Bab�k <M.Babik(zv)mus(tec)cz>
To: <delphi-l(zv)fwd(tec)cz>
Sent: Wednesday, September 15, 1999 1:03 PM
Subject: DBGrid and select


> Zdravim obec Delphinu!
> Jiz jsem to jednouj zkousel, ale bohuzel nikdo nezareagoval, tak to
zkousim jeste jednou. Mam takovy specificky problem, nevim jak vybrat
nektere rekordy (treba 0 az 5, nebo uplne vsechny) v dbgridu, aniz by user
odklikaval tyto jednotlive (pouze stiskne tlacitko vyber vse), a obracene.
DBgrid je napojen na query. Pouzivam D4. Dik za radu. A netvrdte mi, ze jste
to nikdo jeste nedelal! :-)
>
> M&B
>
>

Rozdeleni souboru

[*] voltrr1.epr(zv)mail.cez(tec)cz - 16.9.1999 12:08:42



Zkus todle (na 1kB kousky)

var
Source: TFileStream;
Targ: TFileStream;
I: Integer;
C: Longint;
begin
Source := TFileStream.Create('C:\XX.DAT', fmOpenRead);
I := 1;
repeat
C:=0;
Targ := TFileStream.Create('C:\PART' + IntToStr(I) + '.DAT', fmCreate);
try
C := Targ.CopyFrom(Source, 1024);
except
end;
Targ.Free;
Inc(I);
until C <> 1024;
Source.Free;
end;

Cus
Radek Voltr

Pristup do fyzickej pamati

[*] Peter Vlkovic <vlkovic(zv)minv.sk> - 16.9.1999 13:10:59

Zdravim vsetkych !

Potrebujem z D4 priamo pristupovat na fyzicku pamat
od urcitej adresy, neviete niekto poradit?

Peter


Primy pristup na disk

[*] Jan Skvor Ing. K337 <SKVORJAN(zv)feld.cvut(tec)cz> - 16.9.1999 11:14:53 met-1mest

Nevite prosim jak se we WIN API resi problem primeho pristupu na disk
(cteni po sektorech - neco jako absread() pod DOSem).
Defregmentace disku ji zrejme potrebuje, nejak by to jit melo.

Sikovne funkce nabizi DeviceIOControl, o ktere Widle tvrdi, ze
ovlada primo driver prislusneho zarizeni v 95/98 nejak selhava, nebo
se mi ji nepodarilo zprovoznit.

Diky za kazdy "tarifni program Eurotelu".

Honza Skvor
----------------------------------------------------------------------
>>> Ing. Jan Skvor skvorjan(zv)feld.cvut(tec)cz <<<
----------------------------------------------------------------------


OT:Borland CodeCentral

[*] Tomas =?iso-8859-2?Q?Michal=EDk?= <michalik(zv)proca(tec)cz> - 16.9.1999 12:27:13

Ahoj,

nekde na Borlandu jsem pred par dny cetl, ze CodeCentral se ma docasne
pouzivat pomoci web rozhrani, protoze server pro ten standartni zpusob
nebude chvili k dispozici.

Hole�ek Radek wrote:

> env: WinNT 4.0, SP3,
> keywords: Borland CodeCentral client
>
> Zdravim.
>
> Pri pouzivani ccClienta, ktery pracoval cca mesic bez problemu,
> se mi pri startu zacala objevovat chyba:
> Windows socket error: (10061), on API 'connect'
> Could not connect to the CodeCentral server.
>
> Nevite nahodou, jestli se mi podarilo neco poskodit nebo to muze byt
> chyba
> na strane serveru?

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

Tomas Michalik
ProCA, s. r. o.
V Luzich 818, Praha 4
Czech Republic

e-mail: michalik(zv)proca(tec)cz
tel: +420 2 67283446

Chyba - Lock file has grown too large

[*] mbartone(zv)Synthesia(tec)cz - 16.9.1999 13:27:05



Ahoj,

prevadim data z Pdx tabulky do dvou tabulek v MS SQL 6.5
pres TQuery+UpdateSQL (dela stridave update a insert)
po case mi aplikace nahlasi chybu (po kazde vzdy o kousek dal v poctu
prevedenych vet) - Lock file has grown too large

Nevite co tim mysli ?

Milan

Delphi a ORACLE

[*] BE Steiger Michal <MSTEIGER(zv)ste(tec)cz> - ep 99 13:30:22


Prosim, mate nekdo zkusenosti s aplikacemi psanymi proti ORACLE 8 ?
Situace:
aplikace je umistena na serveru lokani site, takze jednotlivy uzivatele
spousteji stejny EXE soubor.Aplikace pouziva BDE. Pri nacteni formulare,
kde jsou komponenty TQuery a TTable se v adresari, kde je umisten EXE,
vytvori soubor PDOXUSRS.LCK, ktery pri otevreni stejneho formulare jinym
uzivatelem vyvola chybove hlaseni:
"Directory is controlled by other.Net file.
Directory: C:\
File: R:\APS\PDOXUSRS.LCK"
Tim padem ostatni uzivatele nemohou pracovat. Nechapu, pro se (asi) BDE
snazi neco uzamykat. Vite co stim ?

Michal Steiger
Spravce GIS RZ Beroun
E-mail: msteiger(zv)ste(tec)cz


OAMAAA0FAABMWkZ1a9uf/f8ACgEPAhUCqAXrAoMAUANUCQIAY2gKwHNldDJ3BgAGwwKDMgPG
BxMCgzNTBEYReDM4AAAqAuFhfQeAIAhVB7ICgBX5FeBF3QKDNALkFs8CADUERxX7hQHxNhQY
cHJxMRXsLn0KgAjPCdk7HdkxMvI4HpkyNRmQHj8JqyCRDwKACoENsQtgbmcxMIYzFAALA2xp
MTgN8A8FECRiC1UZkXMxNyBGUANgAJBtLCAAwHQBFdBuZWtkbyB6FGt1EdBuJgB0aSAlBCBh
C1BpawDQZW35J6BwcwBwBsAocQNgJ5EAT1JBQ0xFIDiEID8KhVNpdHUoMUw6IAqFJ+YgahXQ
dXcoYCeACfBhJqAssBHQcvJ2BJB1IB1wKCADACewTSqQZSZAAZBreivyZKUnYHQkQHZ5LDB6
LyDJJnFsZQqFc3AIYCxxjmonoTCxKMAgRVgpwMZzCGAG4HIuQSuWMHHBL3IgQkRFLiXRJ6Ad
FaBjLIEnoAIQcm11+wtgHeAsCoUm0CvxMbE1QJ8DcDBwJrACMC9AVFEKUOZyL0AssFRUAaAv
0Czx9CB2J9BkHeAooAUQJkA/NVMsJzFiJkAKhS8wdHYPBbAnoTHDJdBET1hVgFNSUy5MQ0s4
YZ8mgDbRG+AnoCkwZXYd4PMtwjESZWgm8DRHLAALgHcGwAqFL2dtOiE6YAtgIM0RkHkG4C0w
IGgLYCdBxGk6CoUiRGkd4DPgvwWwL0AEAEAwAiEDYGwv0FhkIGIvQCkwaASQLssHwAVAZgMQ
ZS4KhUHHoSrwQzpcXAqFRkQhxSrwUkWRQVBTRaA7Kv4iCoUHYSiAN+A/oSdxJnD/LcEvZyah
BGA9kC1gG+AA0J9AgCZwM2AHwBGRcHUmQMspETeCKEDgaSkzIi/2vxWgL3AmoQWgL1EVsHko
IP1LEVYuAUKBMPFIcSoGJPy/CiArBgtGGzEloB/QYw3hWVDQTWkRkQMgUyaAaV5nBJAk/U9/
UIVTSqF2ySvhR0kF8FJaMyAEkP8IYAuQU69Uv1CwUlAS0FDQ/EUtAMADEEWQAZEmUCxxxVNS
QCxxLmN6V18KowsKhR0BAF3A


OT:Borland CodeCentral

[*] Santik <santik(zv)pronetix.sk> - 16.9.1999 13:31:13

> Pri pouzivani ccClienta, ktery pracoval cca mesic bez problemu,
> se mi pri startu zacala objevovat chyba:
> Windows socket error: (10061), on API 'connect'
> Could not connect to the CodeCentral server.

Chyba 10061 je WSAECONNREFUSED - tzn. ze vzdialeny
server odmieta spojenie - pravdepodobne nebezi serverova aplikacia.
Chyba s najvacsou pravdepodobnostou nie je na Tvojej starne.

Bye
Santik

BDE, OLE DB, ADO - porovnani rychlosti

[*] Zbysek Hlinka <zhlinka(zv)login(tec)cz> - 16.9.1999 14:01:05

Martin Kubecka wrote:

> Mozna by stalo za to, prubnout i Adonis, co ty na to?

Jestli mi ho Erik posle... :-)

BTW - rozhodl jsem se, ze to zkusim i s InterBase (ciste pro
srovnani) a s primym pristupem pres ADO s lepsim ctenim
variantu. Vysledny program pak pridam k OLE DB a vystavim to s
novou verzi komponent. Moje komponenty totiz dosahuji priznivych
vysledku. :-)

....

Takze zde jsou:

Prime pouziti ADO, data ctu takto:
rName:=PWChar(TVarData(Fields[1].Value).VOleStr);
Casy: 1:54:130, 1:58:370, 2:05:940

Takze je videt, ze ADO samotne tolik nebrzdi, pokud se dobre
pouzije. Problem je nekde v ADOExpress komponentach, kde je
jeste hodne prostoru pro optimalizaci.

A ted jeste InterBase, stejna datova struktura, radky jsou
generovany stejne jako u MS SQL. (Pozn: data se nahravala do
databaze neprijemne dlouho.)

IB + nativni link:
0:52:020, 0:31:470, 0:29:600

IBExpress (pouzil jsem TIBQuery):
4:09:300, 4:28:590, 4:26:830

Az bude program v Delphree (dozvite se z Delphree konference),
muzete ho pouzit pro vlastni testy nad vlastni databazi, ktere
pripojeni bude pro vas nejvhodnejsi.


S pozdravem

Zbysek Hlinka
E-mail: zhlinka(zv)login(tec)cz, localizator(zv)localizator.com
Tel.: 02/795 29 56; GSM: 0603 551 282
Krystofova 1016, 149 00 Praha 4
CZ


DBGrid_a_barevn�_��d

[*] Tibor Galik <tgalik(zv)vsz.sk> - 16.9.1999 14:19:19

Ahoj,
minule (asi tyzden alebo dva) som mal podobny problem. Chcel som aj rozputat dodatocnu debatu, ale nikto sa mi na to nechytil ;-)) Posielam to este raz (inac okrem tohot riesenia boli aj ine navrhy pozri sa na predchaduajuce maily so subjectom DBGrid)

Hned na uvod sa chcem ospravedlnit za dlzku svojho mailu.

Pri vytvarani DBGridu som hned na zaciatku nastavil DBGrid.DefaultDrawing=false, tak ako mi to bolo poradene.

Tvoj kod:
>>> "marcant" <marcant(zv)sct.sk> 09/09 10:09 dop. >>>
>Spravny kod vyzera trochu inak:

> procedure TDlgObjenavky.DBGrid1DrawColumnCell(Sender: TObject;
> const Rect: TRect; DataCol: Integer; Column: TColumn;
> State: TGridDrawState);
> begin
> if DBGrid1.DataSource.DataSet.FieldValues['Stav objedn�vky']=5 then
> DBGrid1.Canvas.Color:= clred;
> else
> DBGrid1.Canvas.Color:= clInfoBk;
DBGrid1.DefaultDrawColumnCell(rect,datacol,column,state);
> end;
>
>teda aspon predpokladam, ze chces cely riadok inou farbou (ak by si chcel
>inou farbou iba niektory stlpec tak si to uz iste upravis sam)


Dakujem, tento kod ma naviedol, ale su v nom male chyby. Vyriesil som to pokusom a omylom[alebo dufam, ze intuicou ;-)) ], ale nerozumiem preco to tak funguje. Rad by som to pochopil.
Takze:
1. Mala chybicka v syntaxi [compilator sa zasa nedal oklamat ;-)) ]. Ma byt DBGrid1.Canvas.Brush.Color
2. Tento kod mi spravil, ze vzdy posledny zaznam bol bez textu.
3. Inspirovala ma Tvoja poznamka o stlpci. Tak som tam dopisal

if DBGrid1.DataSource.DataSet.FieldValues['Stav objedn�vky']=5 then
begin
DBGrid1.Canvas.Color:= clred;
Column.Color:=clIBlue;
end
else
DBGrid1.Canvas.Color:= clInfoBk;
DBGrid1.DefaultDrawColumnCell(rect,datacol,column,state);

Teraz aj posledny zaznam mal viditelny text a vsetky stlpce boli modre. A co je zaujimave fungovalo mi to
aj ked som Column.Color:=clIBlue dal pred if a aj ked som odstranil DBGrid1.Canvas.Color:= clInfoBk;
Konecny kod vyzera takto:

if DBGrid1.DataSource.DataSet.FieldValues['Stav objedn�vky']=5 then
DBGrid1.Canvas.Color:= clred;
DBGrid1.DefaultDrawColumnCell(rect,datacol,column,state);

a funguje to. Riadok, ktory vyhovuje podmienke je cerveny. A nasledujuce riadky nevyhovujuce podmienke maju zase povodnu podkladovu farbu. PRECO????????? Cakal som ze teraz vsetky nasledujuce budu cervene.

Otazky:

1.Aky je vztah medzi Column.Color a Canvas.BrushColor?(tych Color je v Delphi akosi moc)
2.Co je potom ten Canvas ked existuje Column.Color? (Cital som to v helpe, ale z tohto prikladu som uplne domotany)
3.Kazda bunka v Gride je potom Control prvok?
4. Kde sa mi teraz podkladova farba resetuje


Dakujem vsetkym ktori to docitali az tu.

tg


Zdravim Vas/Regards

Tibor Galik
tgali(zv)vsz.sk


>>> <Vaclav_Lukes(zv)EUROTEL.CZ> 09/15 10:08 dop. >>>
Ahoj,

m��ete mi pros�m n�kdo poradit ?

v TQuery vyberu SELECTem ��dky z tabulky a p�es DataSource to spoj�m s DBGridem.

Jde mi o to, �e bych cht�l jednotliv� ��dky v DBGridu barevn� odli�it, nap�.
��dky, ve kter�ch sloupec CISLO obsahuje jednicku aby byly
zelen� a ty, kter� obsahuj� dvojku aby byly �erven�.

D�ky

Va�ek


RichEdit

[*] Milan Schembera <milan(zv)missoftware(tec)cz> - 16.9.1999 14:25:51

Hello,

netusite nekdo, jak programove vlozit do
RichEditu radek, kde bude vic formatovanych
bloku (pismo, barva) ? Umim vlozit radek, ktery
bude mit stejny format pro vsechny znaky, ale
s timhle se tady bastlim uz takovou dobu.

Diky moc.
Milan


Web

[*] "Ing. Toma? Tominec" - 16.9.1999 14:30:18

Ahoj Nekdo,
potreboval bych nejak pomoci delphi z web clienta dostat soubor (doc,txt) na web server. Na strance vyberu soubor pomoci
<input type=file ...> mam ho v request.content a nemohu ho dostat z request.content do streamu. A nevim co dal.
Dik za radu
tomas.tominec(zv)transgas(tec)cz


DBGrid_a_barevn�_��dky

[*] Jan Fiala <fiala(zv)infos(tec)cz> - 16.9.1999 15:39:07


----- P�vodn� zpr�va -----
Od: Tibor Galik <tgalik(zv)vsz.sk>

> Teraz aj posledny zaznam mal viditelny text a vsetky stlpce boli modre. A co je zaujimave fungovalo mi to
> aj ked som Column.Color:=clIBlue dal pred if a aj ked som odstranil DBGrid1.Canvas.Color:= clInfoBk;
> Konecny kod vyzera takto:
>
> if DBGrid1.DataSource.DataSet.FieldValues['Stav objedn�vky']=5 then
> DBGrid1.Canvas.Color:= clred;
> DBGrid1.DefaultDrawColumnCell(rect,datacol,column,state);
>
> a funguje to. Riadok, ktory vyhovuje podmienke je cerveny. A nasledujuce riadky nevyhovujuce podmienke maju zase povodnu podkladovu farbu. PRECO????????? Cakal som ze teraz vsetky nasledujuce budu cervene.
>

Proc by mely, prepisujes metodu, ktera vykresluje jednotlive bunky. Vyhovuje podmince, zmenis barvu a vykreslis. Nevyhovuje podmince, nezmenis barvu a vykreslis s default barvami. Co na tom neni jasne ?

> Otazky:
>
> 1.Aky je vztah medzi Column.Color a Canvas.BrushColor?(tych Color je v Delphi akosi moc)

Pres Column.Color nastavujes default barvu sloupce. Pokud si ji zmenis ve vykreslovani bunky (OnDrawColumnCell), tak budes mit tu svoji.

> 2.Co je potom ten Canvas ked existuje Column.Color? (Cital som to v helpe, ale z tohto prikladu som uplne domotany)

Canvas je platno. Muzes na nej psat, kreslit, menit jeho atributy. Pres Column.Color proste nastavis barvu sloupce v Gridu (nastavis barvu Canvas pro vsechny bunky ve sloupci)

> 3.Kazda bunka v Gride je potom Control prvok?

Kazda bunka v Gridu ma svuj Canvas, na ktery muzes psat, menit jeho barvy.

> 4. Kde sa mi teraz podkladova farba resetuje

Podkladovou barvu ve vyse uvedenem priklade nastavujes pro jednotlive bunky. Bud splnuji podminku a ty barvu menis nebo ji nesplnuji a barvu nemenis. Nic se neresetuje.

===============================
ing. Jan Fiala fiala(zv)infos(tec)cz
Prog-Soft s.r.o. Plzen
INFOS - informacni system pro napojare
===============================

Zavirani nemodalnich oken ze vzdalene knihovny

[*] Brabec Tom� <brabec(zv)nym.pvt(tec)cz> - 16.9.1999 15:43:49

Ahoj,
Jak uzavrit a VYMAZAT Z PAMETI nemodalni minimalizovana okna, ktera jsou v
DLL, jenz je volana z jine DLL, ve ktere je menu. Pri zavreni tohoto menu
prave potrebuji zavrit i zavolana okna z predchozi DLL, aniz bych tuto DLL
vymazal z pameti?
Na ONCLOSEQUERY hlavniho menu jsem zkousel:

***
var hwnd: THandle;

hwnd:= FindWindow(PChar('TJmenoOkna'),NIL);
IF hwnd <> 0 THEN DestroyWindow(hwnd);
***

Toto fungovalo, ale jiz pri druhem otevreni hlavniho menu se toto okno
nevyvolalo - proste se to okno nezobrazilo.


Diky za kazdou radu a jsem s pozdravem Help, please !!!!

Tom� Brabec
PVT Nymburk, a.s.
e_mail: Tomas.Brabec(zv)pvt(tec)cz
brabec(zv)nym.pvt(tec)cz
tel: 0325/513471 linka 639

Pristup do fyzickej pamati

[*] Vaclav Sazima <sazima(zv)comp(tec)cz> - 16.9.1999 16:08:24

Z normalniho programu to nejde. Jde to ale pres VXD.

Vaclav Sazima

Peter Vlkovic wrote:
>
> Zdravim vsetkych !
>
> Potrebujem z D4 priamo pristupovat na fyzicku pamat
> od urcitej adresy, neviete niekto poradit?
>
> Peter


Koexistence verzi Delphi

[*] Stepan Cerny <chaosz(zv)atlas(tec)cz> - 16.9.1999 16:14:27

Dobre rano !

Nemate nekdo zkusenosti jestli funguje soucasne nainstalovane
Delphi 3 a 5 ???
Oboji ve verzi Professional.

Navic, s nejvetsi pravdepodobnosti pod Win2000 ...
(No, v nejhorsim pod W98)

Diky, atd...

--
Stepan "Chaosz" Cerny
tvoric of software
chaosz(zv)atlas(tec)cz


Threads

[*] Petr Fejfar <callnet(zv)telecom(tec)cz> - 16.9.1999 16:17:01

Petrik <petrik(zv)geocities.com> wrote:

> Jak vytvorim thread, aby po spusteni zabiral
> tolik %CPU kolik opravdu potrebuje ?


Jedine tak, ze ho nechas delat jen uzitecnou cinnost a vse ostatni napr. cekani prenechas operacnimu systemu.
Mezi akce zbytecne ubirajici vykon je napr. testovani stavu Terminate v metode Execute. Aby to nebylo tak drasticke, vkladaji se ruzne sleep, jak uz Ti nekdo radil. Takova reseni jsou IMHO spatna a nize uvadim priklad, jak by mohl vypadat thread s dobrou efektivitou.

Nekolik poznamek:

* uvedene reseni predpoklada, ze misto tThread pouzijes vlastniho potomka, ktery ukonceni threadu indikuje nastavenim SetEvent(FEvents[eteKill])
* K mereni periody se z duvodu jendoduchosti nepouziva timer, ale time-out u operace WaitFor....., Pokud bys pouzil timer, mel bys na nej cekat take pomoci synchronizacnich prostredku woken.
* Thread se vzdy konstruuje do stavu SUSPENDED, aby se dala provadet pripadna dalsi inicializace v jeho konstruktoru.

Bye, pf


Tak ted ten priklad:


const
minScanPeriod = 5;
bManualReset = TRUE;
bNonSignaled = FALSE;
bSignaled = not bNonSignaled;
bWaitSingle = FALSE;
bWaitAll = not bWaitSingle;

type
eAnyThreadEvents = (eteKill,eteDoSomething);
tAnyThreadEvents = set of eAnyThreadEvents;

tAnyThread = class(tThread)
private
FEvents: array[eAnyThreadEvents] of tHandle;
public
constructor Create(CreateSuspended:boolean);
destructor Destroy; override;
procedure Execute; override;
end;

implementation

constructor tAnyThread.Create(CreateSuspended:boolean);
var
Idx: eAnyThreadEvents;
begin
inherited Create(TRUE);
for Idx:=low(FEvents) to high(FEvents) do
FEvents[Idx] := CreateEvent(nil,bManualReset,bNonSignaled,nil);
end;

destructor tAnyThread.Destroy;
var
Idx: eAnyThreadEvents;
begin
for Idx:=low(FEvents) to high(FEvents) do
if FEvents[Idx]<>0 then
CloseHandle(FEvents[Idx]);
inherited Destroy;
end;

procedure tAnyThread.Execute;
var
WxRes: dword;
begin
try
repeat
WxRes := WaitForMultipleObjects(ord(high(FEvents))-ord(low(FEvents))+1,addr(FEvents),bWaitSingle,minScanPeriod);
case WxRes of
WAIT_FAILED:
begin
end;
WAIT_TIMEOUT:
begin
// tady budes delat periodickou akci s periodou minScanPeriod
end;
WAIT_OBJECT_0+ord(eteKill):
begin
// tadu si ukoncis thread
ResetEvent(FEvents[eteKill]);
Break;
end;
WAIT_OBJECT_0+ord(eteDoSomething):
begin
// Tady si obslouzis pozadavek od eteDoSomething
ResetEvent(FEvents[eteDoSomething]);
end;
WAIT_ABANDONED_0..WAIT_ABANDONED_0+ord(high(FEvents)):
// raise xInternal.CreateFmt(sx_ThreadAbandoned,[WxRes-WAIT_ABANDONED_0])
;
else
;
end;
until FALSE;
except
on E:Exception do
// Log.Exception('tAnyThread.Execute',E);
end;
end;

RichEdit

[*] Vlastimil Bardon <ineq-soft(zv)ova.eridan(tec)cz> - 16.9.1999 16:31:06

Vloz radek, selectni blok, nastav SelAttributes

-----P�vodn� zpr�va-----
Od: Milan Schembera [SMTP:milan(zv)missoftware(tec)cz]
Odesl�no: 16. z��� 1999 14:26
Komu: delphi-l(zv)fwd(tec)cz
P�edm�t: RichEdit

Hello,

netusite nekdo, jak programove vlozit do
RichEditu radek, kde bude vic formatovanych
bloku (pismo, barva) ? Umim vlozit radek, ktery
bude mit stejny format pro vsechny znaky, ale
s timhle se tady bastlim uz takovou dobu.

Diky moc.
Milan

Par dotazu (vsehochut)

[*] Petr Fejfar <callnet(zv)telecom(tec)cz> - 16.9.1999 16:43:14

Jiri Novotny <NOVOTNY(zv)ftknw.upol(tec)cz> wrote:

>iracionalnich duvodu moc nezamlouva. Nerad pouzivam takove to
>"kr~iz~ove" propojeni unitu. Proto by me zajimalo, jestli vyse

Souhlasim, protoze takovy postup odporuje zakladnim pravidlum pri dekompozici systemu a je treba se ho vyvarovat vsude, kde je to mozne.

>popsany problem nelze resit nejak jinak. Napadla me treba takova

Nevim, jak konstruujes YForm resp. kdo je jeho Owner. Kdyby XForm napr. konstruoval sam YForm takto: YForm := tYForm.Create(self), pak by mohl napr. YForm v handleru OnClose() poslat zpravu XForm, ze se zavira:

PostMessage(Owner.Handle,UM_YFormClosed,0,0).

V deklaraci XForm bys pak udelal:

procedure UMYFormClosed(var aMsg:tMesasge); UM_YFormClosed;

a v implementaci:

procedure tXForm.UMYFormClose(var aMsg:tMessage);
begin
// tady si aktualizujes stav tlacitek
aMsg.Result := 0;
end;

Jeste by zbyvalo do nejake sdilene unit doplnit definici:

UM_YFormClosed = WM_USER+n;


bye pf, callnet(zv)telecom(tec)cz

Enters and leaves

[*] Ivan Zernovac <ivan(zv)gratis.sk> - 16.9.1999 17:26:03

Hi,

prekompiloval som jeden projekt so zapnutymi stack frames. Chvilu som
krokoval; dal som volat jednu proceduru s niekolkymi parametrami. Vobec
som vsak nenarazil na instrukcie ENTER ani LEAVE.....A pokial viem,
prave v nich je podstata stack frames. Alebo si kompilator vybera, kam
ich da? A ak ano, tak podla akych kriterii?

Ivan


Numericke problemy

[*] Ivan Zernovac <ivan(zv)gratis.sk> - 16.9.1999 17:26:09

Hi,

uz vyse roka si lamem hlavu nad niekolkymi numerickymi problemami. Pred
casom som robil experimenty s Delphi MAP subormi, pri ktorych som
zistil, ze adresy procedur a premennych v MAPoch nie su skutocne adresy,
ale treba ich odvodit. Clovek by cakal, ze to budu vsetko adresy
relativne na image base, kezde napr. entrypoint RVA v EXE hlavicke je
relativna na image base. Problem je v tom, ze adresy procedur sa neberu
vzhladom na image base ale na celkom ine cislo. To iste je s program
entry point. Inymi slovami, clovek by cakal, ze program entry point
odvodi tak, ze zoberie adresu z MAP suboru a pripocita ju k image base.
Ale ono ju treba pripocitat k celkom inemu cislu, to mam 100% overene.
Vie niekto podat racionalne vysvetlenie, preco je to tak?
A potom je tu dalsia zvlastna vec: ako som zistil, Delphi v drvivej
vacsine pripadov generuje relativne JMPy a CALLy. To by sedelo, lebo ked
program pouziva relativne adresy, dokaze prezit hocikde v pamati. Z casu
na cas som ale narazil aj na take CALLy, ktore boli absolutne (CALL
[adresa]). Naco pouzivat aj jednu aj druhu formu adresovania? Teoreticky
by to mohlo by volanie nejakej API, ale pochybujem, pretoze program ma
nepusti na adresu nizsiu ako image base a zrejme by ani nepustil na
vyssiu ako image base +.code + .data +.bss. (teda image base + sucet
velkosti vsetkych sekcii). Ak sa totiz pokusite o nieco ako

mov eax,ds:[$00400000]

skoncite s Access violation. Preto sa mi nechce verit, ze by to bolo
volanie API. A pokial je to volanie internej rutiny, preco sa nepouzije
klasicky sposob? (t.j. relativny CALL)?
Vycet paranormalnych javov vsak ani zdaleka nie je ukonceny. Delphi
(alebo je to vlastnost vsekych programov?) vygeneruje kod tak, ze
DS=SS=ES. Takze vyrazy typu

mov eax,ds:[$00400000]
mov eax,ss:[$00400000]
mov eax,es:[$00400000]

by mali vracat rovnaku hodnotu. To je OK, lebo aj vracaju. Skokujuce pre
mna bolo, ze hodnota CS je 1B, vyraz

mov eax,cs:[$00400000]

vracia tu istu hodnotu, ako tie predchadzajuce. (Opakujem CS<>DS,
CS<>ES, CS<>SS) A este vacsie prekvapenie je, ze vyraz

mov eax,[$00400000]

vrati tiez to iste! Inymi slovami, selector je akoby ignorovany a berie
sa do uvahy iba offset. Mam podozrenie, ze s tym ma nieco spolocne
direktiva MODEL FLAT, na ktoru som narazil pri prehliadke niektorych
zdrojovych ASM suborov. To, ze DS ES a SS sa rovnaju by ma az tak velmi
neprekvapilo, ale ze aj pri pouziti CS dostanem to iste, to uz mi je
trocha cudne.
A potom je tu este image base: pokial viem, image base je default
adresa, na ktoru sa Windows pokusi program namapovat, aby nemusel robit
rellocation fixups, a natahovanie je teda rychlejsie. Co ale presne
znamena rellocation fixups? Kod programu sa menit nemoze, ten je read
only, tak potom ake fixups?
A okrem toho, vsetky Delphi programy maju rovnaky image base. Je ale
jasne, ze nemozu byt dva programy v tej istej casti pamate, takze tu sa
zrejme pouziva niektory z mnohych trikov protected modu. Ale aky?

Ivan


Skr vac� panel

[*] ing.Pavel Cabalka <pavel_cabalka(zv)vcshk(tec)cz> - 16.9.1999 17:26:35

Diky za snahu, ale jednak jsem na stiru s casem abych mohl laborovat a jednak nejsem takovy Delhi (Win) king abych nize uvedene ztravil (doufam ze docasne). Urcite se k tomu ale za cas vratim.
Presto vrely dik
PavelC
----- Original Message -----
From: petr.motlicek(zv)bcbrno(tec)cz
To: delphi-l(zv)fwd(tec)cz
Sent: Wednesday, September 15, 1999 5:20 PM
Subject: Re: Skr vac� panel


Ahoj,

jestli jsem to pochopil, tak bych to delal takto:

- pro zakryt� panelu (okna) bych nadefinoval (podle UODDF {HYPERLINK "indexnf.htm"}http://www.gnomehome.demon.nl/uddf/indexnf.htm
) metodu pro odchyceni CM MOUSELEAVE.

procedure CMMouseEnter(var msg:TMessage); message CM MOUSEENTER;

procedure MyComponent.CMMouseLeave(var msg: TMessage);
begin
inherited;
{respond to mouse leave}
// tady pridat kod neco jako Hide;
end;

- pro odkryti bych hook-nul ze syst�mu WM MOUSEMOVE pomoci SetWindowsHookEx s parametrem WH MOUSE (viz UODDF {HYPERLINK "indexnf.htm"}http://www.gnomehome.demon.nl/uddf/indexnf.htm - {HYPERLINK "pages/mouse.htm" \l "mouse2"}Building Mouse Hooks , viz WIN32 help) (handle 0 pro obrazovku) zdravi Petr Motlicek

From: "ing.Pavel Cabalka" <pavel cabalka(zv)vcshk(tec)cz>
To: <delphi-l(zv)fwd(tec)cz>
Subject: Skr vac� panel
Date sent: Wed, 15 Sep 1999 10:13:53 +0200
Send reply to: delphi-l(zv)fwd(tec)cz

> Preji vsem dobry a uspesny den !
> Mel bych jeden drobny dotazek. Rad bych v aplikaci realizoval neco podobneho jako panel aplikaci Office, ktery se mi schova do praveho (leveho, horniho, dolniho) okraje obrazovky a kdyz do tech mist najedu mysi, tak mi odtud vyleze. Ja na ten panel sice chci umistit nejaky ciselnik atp., ale jde mi o to schovavani.
> Muze mi prosim nekdo z vas poradit jak na to?
> Doufam, ze jsem se vymacknul srozumitelne.
>
> Diky PavelC
>

Skr�vac� panel

[*] ing.Pavel Cabalka <pavel_cabalka(zv)vcshk(tec)cz> - 16.9.1999 17:30:37

Hi
Diky za namet, ale pripada mi to trochu tezkopadne kdyz si vezmu jak jednoduse se zda ze funguji obdobne panely ruznych aplikaci, ktere po spusteni tise cihaji za viditelnym okrajem obrazovky a kdyz se kolem nich mihne mys tak vylezou. Nicmene jeste jednou diky za podnet.
PavelC

----- Original Message -----
From: Petr Brant <p.brant(zv)samo(tec)cz>
To: <delphi-l(zv)fwd(tec)cz>
Sent: Wednesday, September 15, 1999 2:33 PM
Subject: RE: Skr�vac� panel


> Snad by to slo tak, ze ten panel bude jako form s prislusnym obsahem a
> pri jeho opusteni mysi (to je zprava snad CM MOUSELEAVE nebo tak nejak)
> by se pomoci timeru postupne menila property Top ci Left a okenko by
> zalezlo.
>
> **************************************************
> Petr Brant [p.brant(zv)samo(tec)cz], programator v MSVC++,
> obcas Delphi nebo Visual Basic
> **************************************************
>
>
>
> > -----P�vodn� zpr�va-----
> > Od: ing.Pavel Cabalka [SMTP:pavel cabalka(zv)vcshk(tec)cz]
> > Odesl�no: 15. z��� 1999 10:14
> > Komu: delphi-l(zv)fwd(tec)cz
> > P�edm�t: Skr�vac� panel
> >
> > Preji vsem dobry a uspesny den !
> > Mel bych jeden drobny dotazek. Rad bych v aplikaci realizoval neco
> > podobneho jako panel aplikaci Office, ktery se mi schova do praveho
> > (leveho, horniho, dolniho) okraje obrazovky a kdyz do tech mist najedu
> > mysi, tak mi odtud vyleze. Ja na ten panel sice chci umistit nejaky
> > ciselnik atp., ale jde mi o to schovavani.
> > Muze mi prosim nekdo z vas poradit jak na to?
> > Doufam, ze jsem se vymacknul srozumitelne.
> >
> > Diky PavelC


Pristup do fyzickej pamati

[*] Ivan Zernovac <ivan(zv)gratis.sk> - 16.9.1999 17:34:27

Hi,

pouzi ReadProcessMemory. Ale pozor, Windows Ta hocikde nepusti. Mozes
pripadne pouzit funkcie z TOOLHELP.DLL (ale tie idu len pod 9x), v PSAPI
(pod NT) by mali byt podobne funkcie.

Este raz upozornujem, ze pravdeodobne toho vela neprecitas, lebo na ring
3 toho vela dovolene nemas.

Ivan



Peter Vlkovic wrote:

> Zdravim vsetkych !
>
> Potrebujem z D4 priamo pristupovat na fyzicku pamat
> od urcitej adresy, neviete niekto poradit?
>
> Peter


BDE, OLE DB, ADO - porovnani rychlosti

[*] Zbysek Hlinka <zhlinka(zv)login(tec)cz> - 16.9.1999 18:26:37

Robert Kindl wrote:

> > Horsi je situace u ADO. Zde bych ztratu vykonu pricetl
> > jednoznacne typu variant, ktery vychazi i podle jinych mereni
> > zhruba 20x pomalejsi nez primy pristup k "rozumnemu" datovemu
> > typu. Nemel jsem moznost porovnat s komponentami Adonis, ale
> > domnivam se, ze tam bude situace obdobna, pokud cte autor typ
> > variant bez rozlisovani jeho vnitrni podoby. Ale myslim, ze za
> > porovnani by to stalo.
>
> Nerikej mi, ze nejakou konverzi variant-neco lze ztratit 14 minut!!! U
> samostatneho testu pristupu do promenne typu integer a typu variant
> mozna, ale u databaze tomu neverim. Vzdy jsem si myslel, ze nejdelsi
> cas typicka databazova aplikace travi prenosem dat mezi clientem a
> serverem. Zpracovani (konverze) dat na klientovi provadi dnes jiz
> velmi vykonny procesor a to zdrzeni je jiste meritelne, ale nebude to
> zpusobovat zdrzeni 1:20.

Mno, jeste jsem vyzkousel samotne ADO (viz dalsi zpravu), a i to
chodi mnohonasobne rychleji. Binec tedy bude nekde ve vlastnich
komponentach.

> Nemohla se ti u ADO projevit nasledujici zajimava vlastnost MSSQL7?
> Defaultne ma databaze nastaveno AutoClose na True. Tudiz neni-li
> connection k databazi ta se zavre. Pri dalsim pristupu se zase musi
> otevrit. ZKUS nastavit AutoClose na False a pak testovat ADO. Ono by
> jsi tim mel teoreticky castecne potlacit i onen rozdil u prvniho
> spusteni.

Vyzkousel jsem, tim to neni. Jinak rozdil u prvniho spusteni se
projevuje _zejmena_ u BDE, ne tak u ADO a OLE DB.

> BTW: Pokud to neni tim AutoClosem tak jak chces
> ADO optimalizovat aby to nebylo 20x pomalejsi?

Problem neni ani tak v ADO (je, pravda, pomalejsi nez OLE DB, ale
to je zrejme z principu), jako v ADOExpress. Dovolim si vyslovit
hypotezu (neoverenou), ze problem by mohl byt i ve snaze
napasovat to na TDataSet, ktery je preci jen primarne postaven pro
BDE. Mozna, ze kdybych napasoval OLE DB komponenty na
TDataSet, take by casy vypadaly jinak.


S pozdravem

Zbysek Hlinka
E-mail: zhlinka(zv)login(tec)cz, localizator(zv)localizator.com
Tel.: 02/795 29 56; GSM: 0603 551 282
Krystofova 1016, 149 00 Praha 4
CZ


OLE DB primy pristup

[*] Zbysek Hlinka <zhlinka(zv)login(tec)cz> - 16.9.1999 18:26:37

Robert Kindl wrote:

> > file://deklarace pole
> > var
> > Pole=packed record
> > ID:longint;
> > Jmeno:array[0..24] of char;
> > Vek:word;
> > end;
> >
> > file://nazvy typu Type si pro nazornost vymyslim, takto lze
> > file://vytahnout pole s jinym typem nez je v databazi;
> > file://FldName je nazev pole v databazi, to je jen kvuli dohledani;
> > file://zde by byl popis struktury, napr.: const
> > Popis:array[0..2] of TPopis=(
> > (FldName:'ID'; Type:typDWord; Size:4),
> > (FldName:'Name'; Type:typString; Size:25),
> > (FldName:'Age'; Type:typWord; Size:2));
>
> No nic moc.
> Uz takhle mne v BDE stve, ze pokud zmenim databazi a mam vytvorene
> fieldy tak dostavam hlasky "Field not of expected type". Tudiz mam
> databazi definovanou dvakrat 1. na serveru a 2. v clientskem programu.
> Pritom kdyz napr. zmenim delku pole Jmeno z 25 na 48 znaku tak clientu
> to v zasade muze byt UPLNE jedno.

Tohle je v OLE DB, tomu je zase jedno, k jake databazi
pristupujes. Melo by to tedy byt univerzalni, pokud mas stejne
deklarovana pole v databazi a pokud OLE DB chape stejnym
zpusobem typ pole v databazi, nebo aspon pokud lze typy pole
spravne konvertovat (tedy, name si muzes v databazi predeklarovat
treba na integer, a poleze ti do programu porad ten string). Pokud
pole natahnes, konec se ti v tomto pripade urizne, nebo si ho
muzes dopredu nadeklarovat vetsi, a pak budes mit pouze
neobsazeny prostor.

Tabulka v databazi muze vypadat treba takto, aniz by se neco delo
se strukturou, a data dostanes v poradku:

CREATE TABLE (
ID smallint,
Name varchar(10),
Age tinyint
)

Trebas Age muze byt deklarovane i jako varchar, a dostanes cislo,
pokud bude pole v databazi vyplnene jen cisly, aniz bys menil
cokoliv na vyse uvedene strukture.

Ale hned nazacatku jsem tvrdil, ze tohle neni pro vizualni
programovani, jako spis pro to, kdyz potrebujes natahnout tabulku
do nejakeho pole.

> V konstrukci uvedene tebou mi to zacne automaticky delat nesmysly bez
> jakekoliv moznosti hlidat jestli databaze a deklarace Pole sedi.

Ne vzdy. Ale hlidani typu (nebo povolenych konverzi typu) a
rozsahu je kazdopadne na tobe (tedy, na tom, kdo to pouzije :).

> A prinos?
> Znacne sporny. Hodi se to jen pokud potrebuji nacist vice nez tisice
> zaznamu na klienta. Ale to prece v praxi neni normalni. To tak mozna v
> nejakem gridu, ale pokud si grid programujes sam (panbuch s tebou) tak
> prece grid muze automaticky pouzivat nejakou optimalizovanou metodu
> pristupu k jiz nactenym datum a ne, ze to uzivatel rucne z Pole
> prenese do stringgridu. Tim prece ztrati tolik casu (jak vlastniho tak
> CPU), ze je bude k nicemu.

Napadaji me treba interni mensi ciselniky, ktere se drzi nekde v
pozadi v pameti. Ne vsechna data se ukazuji uzivatelum v gridu,
ze? :-)

Nicmene diky za nazor.


S pozdravem

Zbysek Hlinka
E-mail: zhlinka(zv)login(tec)cz, localizator(zv)localizator.com
Tel.: 02/795 29 56; GSM: 0603 551 282
Krystofova 1016, 149 00 Praha 4
CZ


OLE DB primy pristup

[*] Erik Salaj <winsoft(zv)napri.sk> - 16.9.1999 18:45:26

Na rovnakom principe pracuje VC++ extensions for ADO. Tam sa
do premennych automaticky uklada obsah pozadovanych poloziek
recordsetu a tento obsah sa aj aktualizuje pri zmene aktualneho zaznamu.
Je to jednoduche a zrejme aj dost rychle, takze sa mi to celkom pozdava.

Erik Salaj

----- Original Message -----
From: Zbysek Hlinka <zhlinka(zv)login(tec)cz>
To: <delphi-l(zv)fwd(tec)cz>
Sent: Wednesday, September 15, 1999 9:19 AM
Subject: OLE DB primy pristup


> Ahoj,
>
> chtel bych si prosondovat nazory na jednu vec. Pojal jsem umysl
> udelat prime vycitani dat (z OLE DB) do struktury, bez okliky pres
> fieldy. Slibuji si od toho urcite urychleni prace s daty. Pro
> predstavu by to vypadalo asi nejak takto:
>
> file://deklarace pole
> var
> Pole=packed record
> ID:longint;
> Jmeno:array[0..24] of char;
> Vek:word;
> end;
>
> file://nazvy typu Type si pro nazornost vymyslim, takto lze
> file://vytahnout pole s jinym typem nez je v databazi;
> file://FldName je nazev pole v databazi, to je jen kvuli dohledani;
> file://zde by byl popis struktury, napr.:
> const
> Popis:array[0..2] of TPopis=(
> (FldName:'ID'; Type:typDWord; Size:4),
> (FldName:'Name'; Type:typString; Size:25),
> (FldName:'Age'; Type:typWord; Size:2));
>
> ...
> with Table do
> begin
> DirectOpen(3, (zv)Popis);
> while not EOF do
> begin
> DirectRead((zv)Pole);
> ...
> Next;
> end;
> Close;
> end;
>
> V DirectRead by se vycetla data primo do recordu, bez cteni do
> mezibufferu a slozite adresace bufferu fieldy. Na druhe strane je
> treba prisne hlidat velikosti poli a podobne, kazda zmena struktury
> v "Pole" se promitne i do "Popis". Nemuseji se vsak promitnout
> zmeny v popisu tabulky v databazi, protoze pole je mozne vycitat
> vetsi nebo i mensi nez rika popis tabulky. Tohle je asi vyhradne pro
> rucni praci, do gridu a podobne by to bylo treba plnit rucne. Zajimal
> by me zajem o takovouhle konstrukci.
>
>
> S pozdravem
>
> Zbysek Hlinka
> E-mail: zhlinka(zv)login(tec)cz, localizator(zv)localizator.com
> Tel.: 02/795 29 56; GSM: 0603 551 282
> Krystofova 1016, 149 00 Praha 4
> CZ

Jeste dotaz na PC Speaker

[*] Tomas Holan <HOLAN(zv)ksvi.mff.cuni(tec)cz> - 16.9.1999 19:09:35

> mel bych taky dotaz, taky potrebuju "pipnout" pres speaker. Problem
> je, ze potrebuju VZDY pres speaker, i kdyz je na pocitaci

MessageBeep( -1 )

Tom


Kresleni na formular...

[*] Kry�tof Hoder <hoder(zv)seznam(tec)cz> - 16.9.1999 20:57:27

Pokud mas vicebarevny (ne cernobily) kurzor, tak to nen� problem programu,
ale windows - nestihaji jej vhodne prekreslovat (alespon podle me
zkusenosti - jak jsem zacak pouzivat CB kurzor, bylo hned vse OK).
Pokuj mas CB kurzor, tak nevim, ale urcite to bude ve windows - kurzor je
jejich zalezitost, s programem nema moc spolecneho (prg. urcuje jen, jak ma
kurzor nad jeho oknem vypadat).

----- Original Message -----
From: Fryz, Zdenek <fryz(zv)dcb(tec)cz>
To: <delphi-l(zv)fwd(tec)cz>
Sent: Wednesday, September 15, 1999 2:06 PM
Subject: Kresleni na formular...> Ahoj
>
> Nevi nekdo jak zamezit blikani kurzoru pri kresleni na formular ?
> Kresleni delam v udalosti MouseMove formulare.
>
> Diky.
>
> Zdenek Fryz
>
>
> __________________________________________________________________
> Tato komunikace je urcena vyhradne pro adresata a je duverna.
> This communication is intended solely for the addressee and is
confidential.
>
>
>

BDE, OLE DB, ADO - porovnani rychlosti

[*] Erik Salaj <winsoft(zv)napri.sk> - 16.9.1999 21:53:56

> Mno, jeste jsem vyzkousel samotne ADO (viz dalsi zpravu), a i to
> chodi mnohonasobne rychleji. Binec tedy bude nekde ve vlastnich
> komponentach.

U klienskeho ADO kurzora je velmi neefektivne naprogramovane (alebo
je tam niekde chyba) zistovanie AbsolutePosition (spomali to asi 10
nasobne).
V Adonise je preto mozne tuto funkciu vypnut. Urcite ADO nemoze
byt 20 krat pomalsie ako OLE DB, problem musi byt niekde inde.

Erik Salaj


Konference na CD

[*] Ond�ej H�gr - 16.9.1999 23:09:19

Vazeni, kdo ma zajem o %subj% necht se nejakym zpusobem ozve. Troufam si vypalit tak kolem 15 CD tydne (vic toho po vecerech nezvladam). Pevnou linku mam bohuzel jinde nez vypalovacku. :-(

Maily prosim nadepiste nejak vyrazne, treba OFF-LINE Delphi (at to v te ostatni poste neprehlidnu).

Cena by byla kolem 80,- + postovne.

Ondrej Hegr
Zatisi 143
281 03 Chotutice
e-mail: HEGRO(zv)volny(tec)cz
tel. 0321 792343


MSDE

[*] Martin Talian <geoplan(zv)pp.sinet.sk> - 17.9.1999 07:08:36

Spr�va vo form�te MIME rozdelen� na viac �ast�.

Zdravim,

Da sa MSDE niekde stiahnut na vyskusanie alebo je to iba sucast vyvojar. kitov od MS ?

Martin


Panel a-la task bar

[*] petr.motlicek(zv)bcbrno(tec)cz - 17.9.1999 07:43:16

Zdravim Delphisty a predevsim ty co chcou %subj%,

nekdo to chtel (jestli jsem ho pochopil), a ja radil a radil....
Ale moje rady nebyly vyzkousene, takze mi svedomi nedalo a
vytvoril jsem zakladni kostru - prazdny forms, kter� se chov�
presne jako task bar ve windows - alespon doufam, ze tam neni
podstatna chyba. Snad budou potreba male upravy.

Prislusny Delphi (D3) projekt zdroj zaslu zajemcum.

Petr Motlicek


Kde to najdem

[*] Andrej Skultety <askultety(zv)quelle.sk> - 17.9.1999 07:58:03

Nastupil som po kolegovi a mam za ulohu mierne upravit jeho program. V delphi som absolutny zaciatocnik ale zhruba viem co chcem upravit aj ako. No pri otvarani programu mi to hla si "TEDBGrid not found". Nevie nahodou kde to mozem najst ?? Alebo ak to niekto ma mohol by mi to poslat na mail ?? (je to freeware kolega ine nepouzival)

Dik

A. Skultety DV QUELLE sro askultety(zv)quelle.sk


QuickReport

[*] TUNGLI Jan <tungli(zv)pvt.sk> - 17.9.1999 08:04:36

Skus SQL Report Builder je to shareware. Cena je 3 000 Sk ako multilicencia
(aj so zdrojakmi). Na http://free.netlap.hu/4321/

TUNGLI J�nos
EMail: jan.tungli(zv)seznam(tec)cz
My Home Page: http://free.netlap.hu/4321/

-----P�vodn� zpr�va-----
Od: Iko <iko(zv)kamarad(tec)cz>
Komu: delphi-l(zv)fwd(tec)cz <delphi-l(zv)fwd(tec)cz>
Datum: 14. september 1999 17:06
P�edm�t: QuickReport


Zdravim konferakov

potreboval by som nejaku free komponentu na tvorenie zostav.
Nieco ako QuickReport, ale lepsie, lebo QR je nanic. Potrebujem
tam moznost dynamicky dodavat texty a obrazky (nie z DB).

Diky....

iko
iko(zv)kamarad(tec)cz

HideApp pri Alt+Tab

[*] Stepan Cerny <chaosz(zv)atlas(tec)cz> - 17.9.1999 08:28:52

Kasparek,

Da se to shodit vzdycky, pomoci skveleho programku Process Viewer Plus,
kterej jsem kdysi nekde stahnul ...
Zobrazuje bezici procesy, pocty threadu, nalinkovane dll a spoustu dalsich
/uzitecnych/ veci + moznost "zabit" proces ;-)
Podle aboutu je to FreeWare ;-)

Pokud si to chcete najit na ftp, tak exe se jmenuje "PViewPlus.exe",
nebo to muzu mailnout/uploadnout na ftp. Zazipovany to ma 141 kB.

--
Stepan "Chaosz" Cerny
tvoric of software
chaosz(zv)atlas(tec)cz


"Ing. Miroslav Ondrisek, BONNEL TECHNOLOGIE, s.r.o." wrote:
>
> ----- P�vodn� zpr�va -----
> Od: Petrik <petrik(zv)geocities.com>
> Komu: delphi <delphi-l(zv)fwd(tec)cz>
> Odesl�no: 9. z��� 1999 13:06
> P�edm�t: Re: HideApp pri Alt+Tab
>
> > Nazdarek,
> >
> > tak me to funguje takhle:
> > na formular dam tu komponentu Stealth :
> ...
> > (jedna z mala moznosti, jak ho shodit, je WinSightem ho aktivovat
> > a pak do slepa zmacknout ALT-F4)
>
> Pokud budes mit v OnCloseQuery formulare nastaveno natvrdo CanClose :=
> false, tak ne :-))
>
> Mira


HideApp pri Alt+Tab

[*] Jan Fiala <fiala(zv)infos(tec)cz> - 17.9.1999 09:01:45


----- P�vodn� zpr�va -----
Od: Stepan Cerny <chaosz(zv)atlas(tec)cz>> Kasparek,
>
> Da se to shodit vzdycky, pomoci skveleho programku Process Viewer Plus,
> kterej jsem kdysi nekde stahnul ...
> Zobrazuje bezici procesy, pocty threadu, nalinkovane dll a spoustu dalsich
> /uzitecnych/ veci + moznost "zabit" proces ;-)
> Podle aboutu je to FreeWare ;-)
>
> Pokud si to chcete najit na ftp, tak exe se jmenuje "PViewPlus.exe",
> nebo to muzu mailnout/uploadnout na ftp. Zazipovany to ma 141 kB.
>

Napr. na :
http://www.teamcti.com/pview/prcview.htm

===============================
ing. Jan Fiala fiala(zv)infos(tec)cz
Prog-Soft s.r.o. Plzen
INFOS - informacni system pro napojare
===============================

Pristup do fyzickej pamati

[*] Peter Vlkovic <vlkovic(zv)minv.sk> - 17.9.1999 09:28:04

> > Potrebujem z D4 priamo pristupovat na fyzicku pamat
> > od urcitej adresy, neviete niekto poradit?

> Z normalniho programu to nejde. Jde to ale pres VXD.

Ale ako ???
-----------
Ma s tym niekto nejake skusenosti?
Je takyto VXD-ovladac volne dostupny?
Islo by o zapis/citanie z pameti na adrese 0C800-0C900.

Peter


Chyba - Lock file has grown too large

[*] Jaroslav N�dhera <nadhera(zv)csh(tec)cz> - 17.9.1999 09:44:33

Tohle mi rikalo taky a stacilo nastavit PrivateDir (v TSession) jinam, nez
byla vlastni data (v nejakem TEMP adresari)

J. Nadhera

CSH spol. s r.o.
Velflikova 10, 160 00 Praha 6
tel: 02/2431 2344-5, fax: 02/652 28 92
Nedbalova 14, 701 00 Ostrava
tel: 069/663 56 87
e-mail: nadhera(zv)csh(tec)cz
WWW: http://www.csh(tec)cz
ICQ: 42714585
-----P�vodn� zpr�va-----
Od: mbartone(zv)Synthesia(tec)cz <mbartone(zv)Synthesia(tec)cz>
Komu: delphi-l(zv)fwd(tec)cz <delphi-l(zv)fwd(tec)cz>
Datum: 16. z��� 1999 15:08
P�edm�t: Chyba - Lock file has grown too large


>
>
>Ahoj,
>
>prevadim data z Pdx tabulky do dvou tabulek v MS SQL 6.5
>pres TQuery+UpdateSQL (dela stridave update a insert)
>po case mi aplikace nahlasi chybu (po kazde vzdy o kousek dal v poctu
>prevedenych vet) - Lock file has grown too large
>
>Nevite co tim mysli ?
>
>Milan
>
>
>

ADO a Oracle

[*] Pavel Cisar <pcisar(zv)aktis(tec)cz> - 17.9.1999 09:55:56

Haj hou!

> > BDE (resp. SQL link) a potazmo VCL (TField atd.) podporuji rozsirene
> > vlastnosti Oracle 8i, coz OLE DB provider zatim ne.
>
> To jsem postrehl. Ale ktere konkretne to jsou?

Pokud mi pamet dobre slouzi :) tak jde napr. o pole typu odkaz na objekt,
zanorene tabulky a par dalsich ktere si uz presne nevybavuji. Da se to
nalezt v helpu predevsim v popisu TField a potomku (pri trose hledani :).
Sorry, ale nejsem odbornik na Oracle 8i.

Hodne zdaru

Oprava - TOOLHELP

[*] Ivan Zernovac <ivan(zv)gratis.sk> - 17.9.1999 09:55:39

Hi,

zrejme som sa nespravne vyjadril o kniznici TOOLHELP. Pozrel som sa na
unit, ktory z nej importuje funkcie a zistil som, ze ich vlastne
importuje z kernel32.dll

Ivan


MS Access

[*] Ivan Zernovac <ivan(zv)gratis.sk> - 17.9.1999 09:55:27

Hi,

potrebujem pristupovat k MS Access databazam z Delphi 3, ale nechcem
pouzit ODBC. Tu ludia striedavo vychvaluju a zatracuju raz DAO, raz ADO.
Nemam s tym skusenosti. Co mam pouzit a odkial mam zohnat ake
komponenty? Uprednostnil by som freeware.

Ivan


Otazka na refresh menu

[*] Ivan Zernovac <ivan(zv)gratis.sk> - 17.9.1999 09:55:44

Hi,

aky zmysel ma, aby sa itemy zaskrtavali v urcitych casovych intervaloch?

Ivan


DestroyWindow, DLL a menu

[*] Ivan Zernovac <ivan(zv)gratis.sk> - 17.9.1999 09:55:16

Hi,

pises, ze potrebujes zatvorit a vymazat okno z pamate. DestroyWindow je
opak CreateWindow, takze si okno vlastne znicil a preto za zrejme uz
viac nezobrazi. Moja teoria sa da lahko overit: pozri sa vo WinSighte,
alebo MS Spy++, ci sa okno vytvara on the fly (po vybrati menu itemu).
Ak ano, potom neviem, kde je problem. Ale ak sa vytvori pri starte
programu, potom je vysvetlenie jasne: okno sa vytvori len raz, Ty ho
znicis, a preto sa nezobrazi.

Ivan


Dvojite spustanie programu

[*] Ivan Zernovac <ivan(zv)gratis.sk> - 17.9.1999 09:55:22

Hi,

bolo tu par otazok ohladne zabranenia dvojiteho spustenia programu.
Prikladam maly unit, ktory je kopiou jednej rutiny z knihy Mistrovstvi z
Delphi 2:


unit myUtils;

interface uses Windows,SysUtils;
function InstanceExists(ClassName:string):boolean;


implementation

type
PHWND = ^HWND;
var
ClsName:string;

function EnumWndProc (Hwnd: THandle;
FoundWnd: PHWND): Bool; export; stdcall;
var
ClassName, ModuleName, WinModuleName: string;
WinInstance: THandle;
begin
Result := True;
SetLength (ClassName, 100);
GetClassName (Hwnd, PChar (ClassName), Length (ClassName));
ClassName := PChar (ClassName);
if AnsiCompareText (ClassName, ClsName) = 0 then
begin
SetLength (ModuleName, 200);
SetLength (WinModuleName, 200);
GetModuleFileName ( HInstance,
PChar (ModuleName), Length (ModuleName));
WinInstance := GetWindowLong (Hwnd, GWL_HINSTANCE);
GetModuleFileName ( WinInstance,
PChar (WinModuleName), Length (WinModuleName));
if AnsiCompareText (ModuleName, WinModuleName) = 0 then
begin
FoundWnd^ := Hwnd;
Result := False;
end;
end;
end;

function InstanceExists(ClassName:string):boolean;
var OldHwnd: THandle;
begin
ClsName:=className;
OldHwnd := 0;
EnumWindows ((zv)EnumWndProc, Longint ((zv)OldHwnd));
if OldHwnd = 0 then result:=false //ked je OldHwnd=0 tak este druha
instancia nie je
else result:=true;
end;//
end.

Pouziva sa takto:{$R *.RES}

begin
if InstanceExists('TMyWndClass') then exit;
Application.Title := 'Nazov Aplikacie';
....
....
Ivan


Skr�vac� panel

[*] Tomas Balusek <tpplus(zv)zasova(tec)cz> - 17.9.1999 09:01:33

Nasel jsem v mem archivu "TAppBar Class". Myslim ze to je presne to co chces (source + demo + freeware :-). Hledej na Delphi sajtech TAppbar (pripadne Appbar) nebo ti to mohu zaslat (asi 65kB).

Bye T.B.
Od: ing.Pavel Cabalka <pavel cabalka(zv)vcshk(tec)cz>
P�edm�t: Re: Skr�vac� panel


Hi
Diky za namet, ale pripada mi to trochu tezkopadne kdyz si vezmu jak jednoduse se zda ze funguji obdobne panely ruznych aplikaci, ktere po spusteni tise cihaji za viditelnym okrajem obrazovky a kdyz se kolem nich mihne mys tak vylezou. Nicmene jeste jednou diky za podnet.
PavelC

Application.Terminate

[*] Pavel Cisar <pcisar(zv)aktis(tec)cz> - 17.9.1999 10:02:23

Haj hou!

> rad by som vedel, ak dam v programe application.terminate tak sa
> mi vykona kod v udalosti OnClose hlavneho formulara?

Ano.

At end of table

[*] Petr Slovak <petr(zv)trilog(tec)cz> - 17.9.1999 10:28:09

Problem s touhle chybovou hlaskou jsem zatim porad nevyresil, ale zjistil jsem dalsi veci.
Na jednom pocitaci jen koukam do dat. Na druhem pocitaci pridam do tabulky insertem jeden radek.
Na tom prvnim ale radek porad nevidim a program mi zacne hazet chybu "At end of table", asi proto ze u indexoveho souboru novy radek nasel, ale uz ne ve vlastni tabulce.
Jedine reseni tehle situace, na ktere jsem zatim prisel, je reindex. A ted pozor. Zacne to byt jeste zajimavejsi.
Kdyz reindexuju z druheho pocitace (kde vidim vse dobre), tak se mi definitivne ten novy radek ztrati.
Kdyz reindexuju z prvniho pocitace (kde ten radek nevidim), tak se mi podarilo definitivne novy radek zachranit.
Samozrejme se to nestava pri kazdem insertu do databaze, ale zatim se mi nepodarilo zjistit presnou konstelaci dat (nebo hvezd ?), pri ktere se to stava.
Zacinam mit podezreni na spolupraci BDE pod WinNT a BDE pro Win9x. Nejsou tam zname nejake bugy, ktere muzou takhle zafungovat?

==============================
Ing. Petr Slovak
e-mail: petr(zv)trilog(tec)cz
url: http://www.trilog(tec)cz
tel: 0603 / 501 642
SMS: +420603501642(zv)sms.paegas(tec)cz
==============================

----- Original Message -----
From: Petr Slovak <petr(zv)trilog(tec)cz>
To: <delphi-l(zv)fwd(tec)cz>
Sent: Monday, September 13, 1999 10:26 AM
Subject: At end of table


> Mam problem, nad kterym ve volnych chvilich sedim uz dva tydny a nemuzu s tim hnout.
> U zakaznika mam nainstalovany program, ktery donedavna bez problemu fungoval. Program je psan v Delphi 2, data jsou ve formatu DBF.
> V programu existuje jedna akce, pri ktere se muze stat, ze nekolik uzivatelu najednou ma "rozinsertovanou" novou vetu v jedne tabulce (kazdy svou). Nikdy s tim nebyly problemy. Vsechno bezi pod Win9x a vsichni spousti jeden a ten samy EXE ze sdileneho adresare na serveru (i data jsou sdilena na serveru).
> Ted se ale do systemu zapojil novy uzivatel, ktery pracuje na serveru, kde jsou WinNT (vim, ze je to blbost, delat na serveru, ale to je problem, kterehe se snad muj problem netyka). Spousti jiny EXE soubor (nektere funkce musely byt pro NT verzi z programu vyhozeny - nejsou podporovany entyckovym API), ktery pracuje nad stejnymi tabulkami. Zacalo se ale stavat, ze BDE vyhodi hlasku "At end of table" a neni jina cesta, nez vsechny programy zavrit, tabulku preindexovat (tim se casto ztrati jedenn z posledne pridanych zaznamu) a vsechno zase zacne fungovat.
> Udelal jsem dokonce zmenu v programu takovou, ze kazdy si porizuje data do sve pracovni tabulky a AfterPost se tato teprve prida do hlavni tabulky. Tim jsem prakticky vyloucil spolecne rozeditovani novych vet, ale nepomohlo to.
> Cim to muze byt? Rozdilnymi verzemi BDE? Nejakym bugem v Delphi nebo BDE? Tim, ze jde o Win9x a WinNT? Tim, ze ten jeden uzivatel nepracuje s daty na siti, ale vlastne na lokale? Tim, ze pracuji s ruznymi exe programy (to uz mi prijde jako nejvetsi blbost, ale chytam se kazdeho stebla)? Nemate nekdo podobne zkusenosti? Uz jsem fakt bezradny.
>
>
> ==============================
> Ing. Petr Slovak
> e-mail: petr(zv)trilog(tec)cz
> url: http://www.trilog(tec)cz
> tel: 0603 / 501 642
> SMS: +420603501642(zv)sms.paegas(tec)cz
> ==============================
>
>
>
>

aplikacia

[*] Martin Talian <geoplan(zv)pp.sinet.sk> - 17.9.1999 10:33:16

Spr�va vo form�te MIME rozdelen� na viac �ast�.

zdravim,

tak som napisal taku jednoduchsiu dat. aplikaciu, 2 formulare, asi 4 Ouery a jedn zlozitejsi Quick report.
Exe ma asi 1.2 MB . Trochu velke, nie ? A na pentiu 100 MHz a 32 MBRam ziadna velka rychlost. Odozva pri prechazdani zaznamov( su ale pri tom nejake sucty a delenia) nic moc. A to je tam len okolo 500 zaznamov.
To je optimalizovany kod ? Je to v D4.

Kde su zlate casi FoxPro .

Martin

HideApp pri Alt+Tab -> PViewPlus.exe

[*] Stepan Cerny <chaosz(zv)atlas(tec)cz> - 17.9.1999 10:40:18

Ahoj,

jelikoz ten programek vas chtelo vice, tak jsem to uploadnul ke svejm
strankam.

Odkaz primo na soubor je
http://chaosz.misto(tec)cz/_MAIL_/ftp/PViewPlus.zip

--
Stepan "Chaosz" Cerny
tvoric of software
chaosz(zv)atlas(tec)cz


Delhi3 a Oracle8

[*] BE Steiger Michal <MSTEIGER(zv)ste(tec)cz> - ep 99 10:55:35


"Directory is controlled by other.Net file.
Directory: C:\
File: R:\APS\PDOXUSRS.LCK"

Da se tento soubor presmerovat jinam? Nastava kolize pri pristupu
vice uzivatelu, protoze pro kazdeho se vytvari vlastni PDOXUSRS.LCK
bohuzel na stejnem miste.

Prosim poradte

Michal Steiger


6gEAADQDAABMWkZ1+JMbxv8ACgEPAhUCqAXrAoMAUANUCQIAY2gKwHNldDJ3BgAGwwKDMgPG
BxMCgzOnAuQIVQezQ0UCgzQDxRECAHBycRICc3Rl2m0CgzUERhYjMRRqAoM2NgRHGE43F1gR
ljM4dQAAKgLhYQeAGdwUfn2XCoAIzwnZOx9yMjUXQOMf3wmlMTI4IY8KBSDhDwKACoENsQtg
bmcxMIYzFAALA2xpMTgN8A8FECYCC1UZQXMxNyBIIkRpH4BjdAWweTogBAAgBaACMANgbGyJ
CYAgYigQb3RoBJCWLgfABUBmAxBlLgqFRSeXOhRgOlxcCoVGiynxKzBSK2FBUFMrcABQRE9Y
VVNSU2AuTENLIgqFKjZh2iAR0CAWwAIwby7ACGA/BuAFwBZAB5AHgANgdmGtBUBqC4AckD8H
sGEWsJJhMFAgawbwaXocsI0WQGkx4hawdXB1CoWIdmljHLB1emkwUdplCkAsL8EpQG8xwy9A
aGtheg2waC9BHLB27Hl0MFAyAXYLYBawAwBuICz6CoUG4GgzcDPQICccgC7AFsBqbhbQIG13
MlEqFwqFUANgAJA40HD5BbBhZBbALcwLRhdBJ0D1IsBjDeFiBdAzMBGgAyDyUxbAaWcEkCad
LcweoQIAQDA=

PDOXUSRS.LCK

[*] BE Steiger Michal <MSTEIGER(zv)ste(tec)cz> - ep 99 10:58:50


"Directory is controlled by other.Net file.
Directory: C:\
File: R:\APS\PDOXUSRS.LCK"

Da se tento soubor presmerovat jinam? Nastava kolize pri pristupu
vice uzivatelu, protoze pro kazdeho se vytvari vlastni PDOXUSRS.LCK
bohuzel na stejnem miste.

Prosim poradte

Michal Steiger


7gEAAEADAABMWkZ1TaWcEf8ACgEPAhUCqAXrAoMAUANUCQIAY2gKwHNldDJ3BgAGwwKDMgPG
BxMCgzOnAuQIVQezQ0UCgzQER5sUeQKDNQRGEXgzOAAAeioC4WEHgBY8FH8CADbjA8UCAHBy
cRLRF/gSEdBzdGVtAoM3F1gb0boxFjx9CoAIzwnZOyAyfDI1F0AgnwmrIaEiqjE8Mjgg9R9h
DaILYG5nGDEwMxQACwNsaTE+OA3wBRAmwgtVFaFzMSA3ICJEaSBAY3TpBbB5IAQAIAWgAjAD
YCRsbAmAIGIo0G90WmgEkC4HwAVAZgMQZRYuCoUoVzoUYDpcXC0KhUYqsSvwUiwhQVACUyww
UERPWFVTgFJTLkxDSyIKhWkq9mEgEdAgHRACMG//L4AIYAbgBcAb0AeQB4ADYLR2YQVAaguA
GPA/B7BKYR0AYTEQIGsG8Gk2ehkQG9BpMqIdAHVwInUKhXZpYxkQdXpqaTERZQpALDCBKgBv
ozKDMABrYXoNsGgwAbEZEHZ5dDEQMsF2C2C7HQADACAtugqFBuBoNDCdNJAgGOAvgB0Qam4d
INwgbTMRKtcKhVADYACQ5TmQcAWwYWQdEC6MC0bXHZEoACTQYw3hYgXQM/DLEaADIFMdEGln
BJAnXQsujB9hAEDw


BDE, OLE DB, ADO - porovnani rychlosti

[*] Erik Salaj <winsoft(zv)napri.sk> - 17.9.1999 11:01:14

> > Mozna by stalo za to, prubnout i Adonis, co ty na to?
>
> Jestli mi ho Erik posle... :-)

Je to na http://www.cybermagic.co.nz/winsoft/download/adonis.zip
Pri testovani daj do Options property opWithoutAbsolutePosition,
resp. otestuj obidva moznosti.

Erik Salaj


Pristup do fyzickej pamati

[*] Peter Vlkovic <vlkovic(zv)minv.sk> - 17.9.1999 11:03:07

Kedze potrebujem citat fyzicku (spodnu) pamet a nie pamat pridelenu
nejakemu beziacemu procesu, ReadProcessMemory mi velmi nepomoze.

Ide mi totiz o zaistenie komunikacie z jednou kartou, ktora cita
a zapisuje data na urcitu adresu fyzickej pamati.

Robil uz niekto nieco podobne?

Peter

>
> >
> > Potrebujem z D4 priamo pristupovat na fyzicku pamat
> > od urcitej adresy, neviete niekto poradit?
> >

>
> pouzi ReadProcessMemory. Ale pozor, Windows Ta hocikde nepusti....
>
> Ivan


aplikacia

[*] Pavel Cisar <pcisar(zv)aktis(tec)cz> - 17.9.1999 11:03:16

Haj hou!

From: Martin Talian

tak som napisal taku jednoduchsiu dat. aplikaciu, 2 formulare, asi 4 Ouery a jedn zlozitejsi Quick report.
Exe ma asi 1.2 MB . Trochu velke, nie ? A na pentiu 100 MHz a 32 MBRam ziadna velka rychlost. Odozva pri prechazdani zaznamov( su ale pri tom nejake sucty a delenia) nic moc. A to je tam len okolo 500 zaznamov.
To je optimalizovany kod ? Je to v D4.

Kde su zlate casi FoxPro .
To je prosim demagogie nejhrubsiho zrna (nic osobniho, ovsem :) Samozrejme ze je mozne napsat V DELPHI tu samou aplikaci ktera je min. 10x mensi a min. 2x rychlejsi. Stezovat si, ze pomoci komponent, par eventu, rutin, kliku a propojovani komponent nevznikne mala a rychla aplikace je uplne mimo misu. Jako doklad doporucuji k nahlednuti prezentacni programek Petra Vonese (ucastnici Delhi Days 99 maji na disketach, nepritomnym jiste rad zasle primo autor). Na prvni pohled k nerozeznani od PowerPointu, ale ma par kilobyte, psano v Delphi bez balicku. Spravne se ptas: To je optimalizovany kod ? Ale Delphi, za to vinit nelze. Dostal jsi presne to, co jsi chtel dostat. Neni nic takoveho, jako dobra aplikace "zadarmo". Vyhoda Delphi oproti VB a/nebo VC++ je v tom, ze kdyz chces, mas rychle fungujici (ale neprilis efektivni) aplikaci, nebo si muzes dat tu praci a mit efektivni aplikaci. VB ti poskytne jen tu prvni moznost, VC++ zase jen tu druhou. Delphi je jediny nastroj, ktery ti nabizi oboji v jedinem produktu.

Howgh!

Hodne zdaru preje

Pavel Cisar <pcisar(zv)atlas(tec)cz>
Delphree.org CEO
http://delphree.clexpert.com
Nexus project coordinator
http://delphree.clexpert.com/pages/projects/nexus/default.htm

Application.Terminate

[*] Jan Fiala <fiala(zv)infos(tec)cz> - 17.9.1999 11:07:21


----- P�vodn� zpr�va -----
Od: Pavel Cisar <pcisar(zv)aktis(tec)cz>
> Haj hou!
>
> > rad by som vedel, ak dam v programe application.terminate tak sa
> > mi vykona kod v udalosti OnClose hlavneho formulara?
>
> Ano.

Je to jako s tim vtipem o Motorole a Pentiu. Rychle, ale spatne.
Neprovede se! Zkousel jsi to ?
Form1, Button1 jehoz stiskem vyvolas Form2 na nem Button1, ktere udela Application.Terminate. V Form1.OnClose ShowMessage, ktere se neprovede.

===============================
ing. Jan Fiala fiala(zv)infos(tec)cz
Prog-Soft s.r.o. Plzen
INFOS - informacni system pro napojare
===============================

Wordperfect

[*] Krayzel Libor <Libor.Krayzel(zv)czech-tv(tec)cz> - 17.9.1999 11:10:14

Zdravim,

potreboval bych zpracovat soubory ve formatu Wordperfect (bez pouziti MS
produktu). Nevite nekdo o nejakem zpusobu?==[ Libor Krayzel ]================================
http://webhost(tec)cz/elka * mailto:libor.krayzel(zv)czech-tv(tec)cz
http://easypad.fwd(tec)cz * mailto:elka(zv)seznam(tec)cz
office: +420-69-620 1375
GSM: +420-603-937 947
==============================================

Threads - reseni, FillRect

[*] Petrik <petrik(zv)geocities(tec)com> - 17.9.1999 11:25:01

Nazdarek,

VSEM VAM MOC DEKUJU ZA SUPER odpovedi
na muj dotaz s threadama.

Jeden pitomej SLEEP(30) a UZ TO CHODiiiiiiii
tak jak ma.
CPU jsem stah na 3-4% ....

A ted jeste jedna drobnost :

FillRect( hdc, Rect(a,b,c,d), TEXTURA);
kde TEXTURA:HBRUSH;
a textura:=CreatePatternBrush(mybit.handle);
kde mybit:TBITMAP;

ok - funguje - ale v Win32 je napsano, ze umi pouze
textury (bitmapy) o velikosti 8x8 pixelu.
Ok .. na Win95 (DX6) to je opravdu pouze 8x8, ALE
na Win98 (DX6.1) je to cela bitmapa .. proc ?
- sem rad, ale proc to funguje tak dobre ???
- ale na jinejch Win95 tak naopak je bilej ctverec
a nechodi to VUBEC !!

MA s tim negdo zkusenosti ??????



P.S. Az dodelam ten super program, do kteryho
to mam tak vam ho vsem poslu :)))))


Cus,
Petrik mailto:petrik(zv)geocities.com

DestroyWindow, DLL a menu

[*] Brabec Tom� <brabec(zv)nym.pvt(tec)cz> - 17.9.1999 11:51:16

Ja ho potrebuju znicit. Jde mi o to, ze kdyz dam
hwnd:=FindWindow(PChar('TMojeOkno'),NIL);
DestroyWindow(hwnd);
a potom dam
hwnd:=FindWindow(PChar('TMojeOkno'),NIL);
tak se znovu najde jeho Handle - takze i po DestroyWindow zustalo v pameti
:-(

S pozdravem Tom


-----P�vodn� zpr�va-----
Od: Ivan Zernovac [mailto:ivan(zv)gratis.sk]
Odesl�no: 17. z��� 1999 9:55
Komu: Delphi
P�edm�t: DestroyWindow, DLL a menu


Hi,

pises, ze potrebujes zatvorit a vymazat okno z pamate. DestroyWindow je
opak CreateWindow, takze si okno vlastne znicil a preto za zrejme uz
viac nezobrazi. Moja teoria sa da lahko overit: pozri sa vo WinSighte,
alebo MS Spy++, ci sa okno vytvara on the fly (po vybrati menu itemu).
Ak ano, potom neviem, kde je problem. Ale ak sa vytvori pri starte
programu, potom je vysvetlenie jasne: okno sa vytvori len raz, Ty ho
znicis, a preto sa nezobrazi.

Ivan


Dialog pro vyber Adresare

[*] Va�k�� Martin <MVackar(zv)cpoj(tec)cz> - 17.9.1999 11:52:11

Ahoj, jak se prosim jmenuje funkce pro vyber cesty pro instalaci ?
Dekuji.

Martin Va�k��
mvackar(zv)cpoj(tec)cz

Application.Terminate

[*] Radim Kunz <rkunz(zv)ova(tec)comp(tec)cz> - 17.9.1999 11:53:49

>>
>> > rad by som vedel, ak dam v programe application.terminate tak sa
>> > mi vykona kod v udalosti OnClose hlavneho formulara?
>>
>> Ano.
>
>Je to jako s tim vtipem o Motorole a Pentiu. Rychle, ale spatne.
>Neprovede se! Zkousel jsi to ?
>Form1, Button1 jehoz stiskem vyvolas Form2 na nem Button1, ktere udela
Application.Terminate. V Form1.OnClose ShowMessage, ktere se neprovede.
>
>===============================
> ing. Jan Fiala fiala(zv)infos(tec)cz
> Prog-Soft s.r.o. Plzen
> INFOS - informacni system pro napojare
>===============================

V helpu prece je, ze OnClose se provede jenom tehdy, kdyz standartne zavres
okno, nebo zavolas Close.

Radim


Application.Terminate

[*] Pavel Cisar <pcisar(zv)aktis(tec)cz> - 17.9.1999 11:57:20

Haj hou!

From: Jan Fiala <fiala(zv)infos(tec)cz>
>>
>> Ano.
>
>Je to jako s tim vtipem o Motorole a Pentiu. Rychle, ale spatne.
>Neprovede se! Zkousel jsi to ?
>Form1, Button1 jehoz stiskem vyvolas Form2 na nem Button1, ktere udela
Application.Terminate. V >Form1.OnClose ShowMessage, ktere se neprovede.

Sorry, sorry, sorry :-))) Je to vskutku tak, nevola se ani OnClose ani
OnCloseQuery (Delphi 3). Ja jsem odpovidal na zaklade rychleho nakouknuti do
zdroju VCL, a tam to na prvni pohled vypadalo korektne. Ted jsem se na to
podival poradne a vskutku se nevola. Postne se WM_QUIT ktery zpusobi
vypadnuti ze smycky Run a vzapeti se vse surove odstreli. Je mozne se chytit
OnDestroy ale v tom okamziku uz neni zadne vizualni prostredi (nufunguje ani
ShowMessage :-) a nelze nic zvratit ani toho moc udelat. Bohuzel tahle vec
neni v dokumentaci vubec zminena.

Finalni result: Pouzivat Application.Terminate pouze ke "korektnimu
odstreleni" aplikace. V ostatnich pripadech pouzivat k ukonceni aplikace z
kodu konstrukt Application.MainForm.Close (pak se vse vola, lze se tomu
vzeprit v OnCloseQuery atd.).

Pomuze to ?

Jeste jednou se omlouvam za dezinformaci.

Hodne zdaru

Pavel Cisar <pcisar(zv)atlas(tec)cz>
Nexus project coordinator
http://delphree.clexpert.com/pages/projects/nexus/default.htm


Panel a-la task bar

[*] petr.motlicek(zv)bcbrno(tec)cz - 17.9.1999 12:05:19

Omlouvam se tem, kterym jsem jiz poslal %subj% - byl tam jeden
vazny nedostatek (jestli ze mys byla na jinem WinControlu tak se
panel skryl), ktery mi dosel pozde :-(.

Ted by se to snad melo chovat lepe.

Mailujte si pro opravenou verzi (Ja vas totiz mazu - neznam adresy).

A vsem zajemcum, kterym to poslu: prosim dejte mi vedet o
podobnych chybach (napr. jako vyse jmenovana) nebo vasich
doporucenich, co je nutne pridat (nemyslim nejake jemnustky).

Petr Motlicek


BDE, OLE DB, ADO - porovnani rychlosti

[*] Zbysek Hlinka <zhlinka(zv)login(tec)cz> - 17.9.1999 12:10:32

Erik Salaj wrote:

> > Mno, jeste jsem vyzkousel samotne ADO (viz dalsi zpravu), a i to
> > chodi mnohonasobne rychleji. Binec tedy bude nekde ve vlastnich
> > komponentach.
>
> U klienskeho ADO kurzora je velmi neefektivne naprogramovane (alebo je
> tam niekde chyba) zistovanie AbsolutePosition (spomali to asi 10
> nasobne). V Adonise je preto mozne tuto funkciu vypnut. Urcite ADO
> nemoze byt 20 krat pomalsie ako OLE DB, problem musi byt niekde inde.

Vsak jsem to psal - samotne ADO mi vyslo asi 3x pomalejsi nez
cteni pres me komponenty. Pokud jsem cetl OLE DB pouze po
jednom zaznamu (vnitrne, bez bufferovani), byla rychlost prakticky
stejna.

Mas pravdu - kdyz jsem AbsolutePosition vyhodil, dosahl jsem
casu kolem jedne minuty.

Chtel bych k tomu upozornit na jednu vec - kdyby nekdo chtel
ADOExpress pouzivat naostro a vyhodit to take, mel by si nejdrive
prostudovat ADO a vazby na RecordNumber v
TCustomADODataSet.


S pozdravem

Zbysek Hlinka
E-mail: zhlinka(zv)login(tec)cz, localizator(zv)localizator.com
Tel.: 02/795 29 56; GSM: 0603 551 282
Krystofova 1016, 149 00 Praha 4
CZ


Delhi3 a Oracle8

[*] Jaroslav N�dhera <nadhera(zv)csh(tec)cz> - 17.9.1999 12:27:48

V nastaveni BDE je treba u nastaveni driveru PARADOX v radku NETDIR nastavit
u vsech stanic cestu na sdileny disk do nejakeho spolecneho adresare.

J. Nadhera

CSH spol. s r.o.
Velflikova 10, 160 00 Praha 6
tel: 02/2431 2344-5, fax: 02/652 28 92
Nedbalova 14, 701 00 Ostrava
tel: 069/663 56 87
e-mail: nadhera(zv)csh(tec)cz
WWW: http://www.csh(tec)cz
ICQ: 42714585
-----P�vodn� zpr�va-----
Od: BE Steiger Michal <MSTEIGER(zv)ste(tec)cz>
Komu: delphi-l(zv)fwd(tec)cz <delphi-l(zv)fwd(tec)cz>
Datum: 17. z��� 1999 12:31
P�edm�t: Delhi3 a Oracle8


"Directory is controlled by other.Net file.
Directory: C:\
File: R:\APS\PDOXUSRS.LCK"

Da se tento soubor presmerovat jinam? Nastava kolize pri pristupu
vice uzivatelu, protoze pro kazdeho se vytvari vlastni PDOXUSRS.LCK
bohuzel na stejnem miste.

Prosim poradte

Michal Steiger

nastaveni systemoveho datumu

[*] Gebauer Lukas <gebylist(zv)mlp(tec)cz> - 17.9.1999 12:43:54

> nevite nekdo, jak nastavit z D3 aplikace systemove datum?
> Code snipets v assembleru z dob D1 nejsou pouzitelne.
> Predem dekuji za radu !

funkce Win32 api: SetSystemTime, je to ve winapi helpu a patricne
struktury jsou definovany ve windows.pas.

jen pozor, pouziva se GMT casove pasmo. Toho se da ale mnohdy
vyuzit, treba pomoci funkce GetSystemTime, ktera vraci aktualni
cas v GMT, takze kdyz to potrebujete, nemusite si uchylne brat
NOW cas a ten pak prepocitavat na casove pasma... ;-)

Louci se Lukas Gebauer.

E-mail: gebauerl(zv)mlp(tec)cz


BDE, OLE DB, ADO - porovnani rychlosti

[*] Erik Salaj <winsoft(zv)napri.sk> - 17.9.1999 13:00:17

Robil som merania s ADO, Adonisom a TTable cez ODBC:

1. ADO (adUseClient, adOpenKeyset, adLockOptimistic, adCmdTable)

0:00:08:322, 0:00:08:142, 0:00:08:312

2. Adonis

a) clClient, WithoutAbsolutePosition, CacheSize = 1, PageSize = 10

0:00:18:686, 0:00:19:478, 0:00:19:177

b) clClient, WithoutAbsolutePosition, CacheSize = 10000, PageSize = 10000

0:00:17:095, 0:00:17:184, 0:00:17:425

c) clServer, WithoutAbsolutePosition, Keyset, CacheSize = 1, PageSize = 10

0:02:10:107, 0:02:09:887, 0:02:09:787

d) clServer, WithoutAbsolutePosition, ForwardOnly, CacheSize = 10000,
PageSize = 10000

0:00:19:017, 0:00:19:228, 0:00:19:238

U clClient ak nie je nastavene WithoutAbsolutePosition, tak case dosahuj
desiatky minut,
u clServer to ovlyvni cas len malo.

3. TTable + ODBC

0:00:19:488, 0:00:16:103, 0:00:15:993

V bodoch 2 a 3 je mozne usetrit asi 3s ak sa zefektivni kod tym, ze
sa nebude pouzivat FieldByName, ale priamo TField. V bode 1 (ADO)
uz toto bolo zohladnene (tam by taketo dynamicke zistovanie sposobilo
asi minutu naviac).

Erik Salaj

----- Original Message -----
From: Zbysek Hlinka <zhlinka(zv)login(tec)cz>
To: <delphi-l(zv)fwd(tec)cz>
Sent: Wednesday, September 15, 1999 7:30 PM
Subject: BDE, OLE DB, ADO - porovnani rychlosti


> Ahoj,
>
> nedalo mi to, abych znovu nezmeril rychlosti pristupu k databazim.
> Protoze jsem jsem zjistil zajimave veci, ktere by mohly zajimat i
> dalsi, rad se o ne podelim. Testovano na MS SQL 7, Delphi 5, Intel
> III 450. Vzdy jsem program nastartoval, udelal nad vybranou
> variantou nekolik testu, a program skoncil.
>
> Testovaci tabulka:
> CREATE TABLE testtable
> (
> id int NOT NULL IDENTITY(1,1) PRIMARY KEY,
> name varchar(40) NOT NULL UNIQUE,
> age int NULL,
> date datetime DEFAULT GETDATE()
> )
> GO
>
> Naplnil jsem ji takto:
>
> Randomize;
> Tab:=TDFOdbRecord.Create(self);
> Tab.Connect:=Connect;
> Tab.TableName:='testtable';
> with Tab do
> begin
> Open;
> First;
> for i:=1 to 100000 do
> begin
> Len:=Random(36)+5;
> SetLength(s,Len);
> for j:=1 to Len do s[j]:=Char(Random(74)+48);
> SQL.Text:=Format('insert into testtable(name, age)
> values(''%s'', %d)',
> [s, Random(200)+1]);
> ExecSql;
> end;
> Close;
> end;
>
> Testovaci utilitka vypadala takto:
>
> A:
> t:=Time;
> Open;
> First;
> while not Eof do
> begin
> Inc(Counter);
> rID:=FieldByName('id').AsInteger;
> if rID<>0 then;
> rName:=FieldByName('name').AsString;
> if rName<>'' then;
> rAge:=FieldByName('age').AsInteger;
> if rAge<>0 then;
> rDate:=FieldByName('date').AsDateTime;
> Next;
> end;
> Close;
> DecodeTime(Time-t,h,m,s,ms);
> Lab.Caption:=Format('%d:%.2d:%.2d:%.3d',[h,m,s,ms]);
> Label3.Caption:=IntToStr(Counter);
>
> a zvlastni pripad testu takto (vysvetlim dale):
>
> B:
> const
> Pole:array[0..2] of TDirectStruct = (
> (dsFldName:'id'; dsSize:4; dsType:DBTYPE_I4; dsPrecision:0;
> dsScale:0),
> (dsFldName:'name'; dsSize:41; dsType:DBTYPE_STR;
> dsPrecision:0; dsScale:0),
> (dsFldName:'age'; dsSize:4; dsType:DBTYPE_I4; dsPrecision:0;
> dsScale:0)
> );
>
> DirectInit(3, (zv)Pole, p);
> Open;
> First;
> Close;
> FreeMem(pointer(p^));
>
> Konstanta Pole plni data do takoveto struktury:
> type
> Tab=packed record
> id:integer;
> name:array[0..40] of char;
> age:integer;
> end;
> ArTab=array of Tab;
>
> Konfigrace pristupu k databazim:
>
> Testovaci SQL:
> select * from testtable order by name
>
> 1: BDE + nativni link pro MS SQL
> 2: BDE + ODBC
> 3: moje OLE DB komponenty
> 4: ADO express (z Delphi 5)
>
> Namerene casy: (mm:ss:ms)
>
> 1: 0:31:650, 0:26:750, 0:27:840
>
> 2: 0:33:940, 0:20:770, 0:21:530
> Casy prvniho mereni se pricitaji na vrub otevirani databaze
>
> 3: V OLE DB lze snadno ovladat, v jak velkych blocich vet se data
> nacitaji. Vyhodnejsi je nacist vzdy vetsi pocet vet do vyrovnavaciho
> bufferu.
> I: podle A:
> a) po 1 vete: 2:02:970, 2:05:450
> b) po 20 vetach: 0:39:440, 0:40:530, 0:40:430
> c) po 1000 vetach: 0:37:570, 0:37:510, 0:36:960
>
> II: podle B - zde jsem udelal to, ze nacitam data primo do sveho
> bufferu, ktery si urcim. OLE DB komponenta alokuje na p^ (pointer
> na pointer na data) prislusnou pamet, do ktere pak sype data. Ja
> zodpovidam za to, jak budou data v te pameti vypadat (mohu k nim
> pristupovat pres ArTab, napriklad).
> a) po 20 vetach: 0:36:410, 0:37:570, 0:36:630
> b) po 1000 vetach: 0:33:830, 0:33:500
>
> 4: 14:32:380, 14:30:680
>
> Zavery:
>
> V OLE DB je treba definovat, v jake podobe chci data ziskat (nebo
> zapsat). Uvnitr tedy dochazi k transformaci struktury podle mych
> pozadavku, mezi databazi a OLE DB rozhranim. To je vykoupeno
> urcitou ztratou na rychlosti, ktera vsak neni oproti BDE tak
> vyznamna, zejmena prihledneme-li k tomu, ze OLE DB umi z MS
> SQL vytahnout daleko vic informaci. Pricemz jsem zjistil, ze dost
> velky dil casu zabira pripojovani k tabulce, takze mam zrejme jeste
> jisty prostor k optimalizaci.
>
> Horsi je situace u ADO. Zde bych ztratu vykonu pricetl
> jednoznacne typu variant, ktery vychazi i podle jinych mereni
> zhruba 20x pomalejsi nez primy pristup k "rozumnemu" datovemu
> typu. Nemel jsem moznost porovnat s komponentami Adonis, ale
> domnivam se, ze tam bude situace obdobna, pokud cte autor typ
> variant bez rozlisovani jeho vnitrni podoby. Ale myslim, ze za
> porovnani by to stalo.
>
> ADO / OLE DB se stejne jednou nevyhnete, mezitim je vsak
> vhodne pristup pres ADO v Delphi optimalizovat.
>
> S pozdravem
>
> Zbysek Hlinka
> E-mail: zhlinka(zv)login(tec)cz, localizator(zv)localizator.com
> Tel.: 02/795 29 56; GSM: 0603 551 282
> Krystofova 1016, 149 00 Praha 4
> CZ


At end of table

[*] Marek Stepina <cmt(zv)seznam(tec)cz> - 17.9.1999 13:14:00

Zkusil bych v BDE (na serveru, kde se pracuje) nastavit LOCAL SHARE na True.

Marek

----- P�vodn� zpr�va -----
Od: Petr Slovak <petr(zv)trilog(tec)cz>
Komu: <delphi-l(zv)fwd(tec)cz>
Odesl�no: 17. z��� 1999 10:28
P�edm�t: Re: At end of table


> Problem s touhle chybovou hlaskou jsem zatim porad nevyresil, ale zjistil
jsem dalsi veci.
> Na jednom pocitaci jen koukam do dat. Na druhem pocitaci pridam do tabulky
insertem jeden radek.
> Na tom prvnim ale radek porad nevidim a program mi zacne hazet chybu "At
end of table", asi proto ze u indexoveho souboru novy radek nasel, ale uz ne
ve vlastni tabulce.
> Jedine reseni tehle situace, na ktere jsem zatim prisel, je reindex. A ted
pozor. Zacne to byt jeste zajimavejsi.
> Kdyz reindexuju z druheho pocitace (kde vidim vse dobre), tak se mi
definitivne ten novy radek ztrati.
> Kdyz reindexuju z prvniho pocitace (kde ten radek nevidim), tak se mi
podarilo definitivne novy radek zachranit.
> Samozrejme se to nestava pri kazdem insertu do databaze, ale zatim se mi
nepodarilo zjistit presnou konstelaci dat (nebo hvezd ?), pri ktere se to
stava.
> Zacinam mit podezreni na spolupraci BDE pod WinNT a BDE pro Win9x. Nejsou
tam zname nejake bugy, ktere muzou takhle zafungovat?
>
> ==============================
> Ing. Petr Slovak
> e-mail: petr(zv)trilog(tec)cz
> url: http://www.trilog(tec)cz
> tel: 0603 / 501 642
> SMS: +420603501642(zv)sms.paegas(tec)cz
> ==============================
>
> ----- Original Message -----
> From: Petr Slovak <petr(zv)trilog(tec)cz>
> To: <delphi-l(zv)fwd(tec)cz>
> Sent: Monday, September 13, 1999 10:26 AM
> Subject: At end of table
>
>
> > Mam problem, nad kterym ve volnych chvilich sedim uz dva tydny a nemuzu
s tim hnout.
> > U zakaznika mam nainstalovany program, ktery donedavna bez problemu
fungoval. Program je psan v Delphi 2, data jsou ve formatu DBF.
> > V programu existuje jedna akce, pri ktere se muze stat, ze nekolik
uzivatelu najednou ma "rozinsertovanou" novou vetu v jedne tabulce (kazdy
svou). Nikdy s tim nebyly problemy. Vsechno bezi pod Win9x a vsichni spousti
jeden a ten samy EXE ze sdileneho adresare na serveru (i data jsou sdilena
na serveru).
> > Ted se ale do systemu zapojil novy uzivatel, ktery pracuje na serveru,
kde jsou WinNT (vim, ze je to blbost, delat na serveru, ale to je problem,
kterehe se snad muj problem netyka). Spousti jiny EXE soubor (nektere funkce
musely byt pro NT verzi z programu vyhozeny - nejsou podporovany entyckovym
API), ktery pracuje nad stejnymi tabulkami. Zacalo se ale stavat, ze BDE
vyhodi hlasku "At end of table" a neni jina cesta, nez vsechny programy
zavrit, tabulku preindexovat (tim se casto ztrati jedenn z posledne
pridanych zaznamu) a vsechno zase zacne fungovat.
> > Udelal jsem dokonce zmenu v programu takovou, ze kazdy si porizuje data
do sve pracovni tabulky a AfterPost se tato teprve prida do hlavni tabulky.
Tim jsem prakticky vyloucil spolecne rozeditovani novych vet, ale nepomohlo
to.
> > Cim to muze byt? Rozdilnymi verzemi BDE? Nejakym bugem v Delphi nebo
BDE? Tim, ze jde o Win9x a WinNT? Tim, ze ten jeden uzivatel nepracuje s
daty na siti, ale vlastne na lokale? Tim, ze pracuji s ruznymi exe programy
(to uz mi prijde jako nejvetsi blbost, ale chytam se kazdeho stebla)? Nemate
nekdo podobne zkusenosti? Uz jsem fakt bezradny.
> >
> >
> > ==============================
> > Ing. Petr Slovak
> > e-mail: petr(zv)trilog(tec)cz
> > url: http://www.trilog(tec)cz
> > tel: 0603 / 501 642
> > SMS: +420603501642(zv)sms.paegas(tec)cz
> > ==============================
> >
> >
> >
> >
>
>

Komponenta pro tisk caroveho kodu

[*] Pavel Medek <talema(zv)top(tec)cz> - 17.9.1999 13:24:43

Nevite nekdo o komponente, ktera umoznuje tisk carove kodu z QReportu ?
Mam D5.

Diky

Pavel M.

Koexistence verzi Delphi

[*] Polak Jiri <Jiri.Polak(zv)tconsult(tec)cz> - 17.9.1999 13:25:47

> Dobre rano !
>
> Nemate nekdo zkusenosti jestli funguje soucasne nainstalovane
> Delphi 3 a 5 ???
> Oboji ve verzi Professional.
>
> Navic, s nejvetsi pravdepodobnosti pod Win2000 ...
> (No, v nejhorsim pod W98)

Protoze Win2000 jsou nasledovnici NT, predpokladam, ze se
tam Delphi4 budou chovat stejne. Nepocitaji s viceuzivatelskym
prostredim. Na Win NT 4.0 Workstation jsem je nainstaloval
jako admin, potom jsem je spustil jako uzivatel polak a nebyly
tam toolbary s komponentama. Objevily se az po reinstalaci
v profile polak. Jak je to na W95 a W98 nevim.

Jura


EXE - files

[*] Jaroslav Mazanek <maza(zv)volny(tec)cz> - 17.9.1999 13:44:47

Pros�m u�astn�ky konference o radu....

Nev�te pros�m n�kdo jak se naprogramuje
1) spou�t�n� EXE soubor�
2) vypnut� Windows
v�m jen -> "rundll32 user,exitwindows" ... jde to i jinak

p�edem d�ky za Va�e rady :)))


----------------------------------------------------------------
Jaroslav Maz�nek
student VO� Liberec - po��ta�ov� syst�my
Email:maza(zv)volny(tec)cz
HTML:
-----------------------------------------------------------------

PDOXUSRS.LCK

[*] Pavel Junek <junek(zv)hrk.pvtnet(tec)cz> - 17.9.1999 13:48:17

Zdravicko,

navrhuji projit vsechny disky a smazat vsechny *.lck soubory, ktere se tam nekde vyskytuji.

Jinak u vsech uzivatelu musi byt nastavena stejna cesta v bdecfg.exe - Net dir. Lisit se to muze jen pismenem disku.
Priklad nastaveni Net dir:
Uzivatel1: F:\aplikace\moje_aplikace\pdoxusrs.net
Uzivatel2: G:\aplikace\moje_aplikace\pdoxusrs.net

Pavel

-----P�vodn� zpr�va-----
Od: BE Steiger Michal [SMTP:MSTEIGER(zv)ste(tec)cz]
Odesl�no: 17. z��� 1999 10:59
Komu: delphi-l(zv)fwd(tec)cz
P�edm�t: PDOXUSRS.LCK

"Directory is controlled by other.Net file.
Directory: C:\
File: R:\APS\PDOXUSRS.LCK"

Da se tento soubor presmerovat jinam? Nastava kolize pri pristupu
vice uzivatelu, protoze pro kazdeho se vytvari vlastni PDOXUSRS.LCK
bohuzel na stejnem miste.

Prosim poradte

Michal Steiger

<<Soubor: ATT00006.att>>

QuickReport

[*] Zdeno Jasek <zdeno.jasek(zv)corinex.sk> - 17.9.1999 13:58:34

Neviem, co mas proti QR. Ja mam zostavy v QR, v ktorych dynamicky
pridavam texty aj obrazky, pricom ich vobec netaham z databazy, ale z
textoveho suboru (nie cez TDataSet) a nemam s nim ziadne problemy...
Dokonca niektore zostavy dynamicky vytvaram na zaklade vysledku z SQL
prikazu.

Pozri si na www.qusoft.com subor tutorial, tam mas napisane, ako sa do
zostav dynamicky dodavaju texty aj obrazky.

Iko wrote:

> Zdravim konferakov
>
> potreboval by som nejaku free komponentu na tvorenie zostav.
> Nieco ako QuickReport, ale lepsie, lebo QR je nanic. Potrebujem
> tam moznost dynamicky dodavat texty a obrazky (nie z DB).
>
> Diky....
>
> iko
> iko(zv)kamarad(tec)cz


Aplikace bez formulare

[*] Tomas Rosa <trosa(zv)seznam(tec)cz> - 17.9.1999 14:59:37

Ahoj,

mozna se to tu jiz probiralo, ale asi potrebuji neco jineho. Potrebuji udelat program, ktery by nemel formular, ale potrebuji aby ten program na zacatku spustil TThread a cekal az dostane povel od Windows, ze se ma zavrit a pote ukoncil i to TThread. Nebo az dostane povel od TThread, aby se ukoncil. Prosim poradte.

Kde to najdem

[*] Ivan Zernovac <ivan(zv)gratis.sk> - 17.9.1999 13:59:51

Ahoy,

ten komponent tam mozno je, ale zrejme nie je nainstalovany, vtedy
delphi krici. Treba zistit, v ktorom subore sa nachadza.
Inak nejaky TEDBGrid je popisovany na
http://www.comp.it.bton.ac.uk/burks/burks/language/pascal/devfaq/pages/dbgrid.htm

Ivan



Andrej Skultety wrote:

> Nastupil som po kolegovi a mam za ulohu mierne upravit jeho program. V
> delphi som absolutny zaciatocnik ale zhruba viem co chcem upravit aj
> ako. No pri otvarani programu mi to hla si "TEDBGrid not found". Nevie
> nahodou kde to mozem najst ?? Alebo ak to niekto ma mohol by mi to
> poslat na mail ?? (je to freeware kolega ine nepouzival) Dik A.
> Skultety DV QUELLE sro askultety(zv)quelle.sk


Komponenta pro tisk caroveho kodu

[*] Tomas Rosa <trosa(zv)seznam(tec)cz> - 17.9.1999 15:01:46

Ozvi se mi na mail Tomas.Rosa(zv)pinknet(tec)cz a poslu ti TTF font na carkovy kod.
Ja to pouzivam a je to super. Ale bohuzel nevim co to je za normu, ale
hlavne ze funguje.

----- Original Message -----
From: Pavel Medek <talema(zv)top(tec)cz>
To: <delphi-l(zv)fwd(tec)cz>
Sent: Friday, September 17, 1999 2:24 PM
Subject: Komponenta pro tisk caroveho kodu


> Nevite nekdo o komponente, ktera umoznuje tisk carove kodu z QReportu ?
> Mam D5.
>
> Diky
>
> Pavel M.
>
>

Pristup do fyzickej pamati

[*] Ivan Zernovac <ivan(zv)gratis.sk> - 17.9.1999 14:02:56


Obavam sa, ze to nepojde. Pokial viem, take cosi sa da iba na ring 0,
takze treba napisat WxD pre Win9x a SYS pre NT.

Ivan

Peter Vlkovic wrote:

> Kedze potrebujem citat fyzicku (spodnu) pamet a nie pamat pridelenu
> nejakemu beziacemu procesu, ReadProcessMemory mi velmi nepomoze.
>
> Ide mi totiz o zaistenie komunikacie z jednou kartou, ktora cita
> a zapisuje data na urcitu adresu fyzickej pamati.
>
> Robil uz niekto nieco podobne?
>
> Peter
>
> >
> > >
> > > Potrebujem z D4 priamo pristupovat na fyzicku pamat
> > > od urcitej adresy, neviete niekto poradit?
> > >
>
> >
> > pouzi ReadProcessMemory. Ale pozor, Windows Ta hocikde nepusti....
> >
> > Ivan



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