Archív konference Delphi

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

Prepinani Unit

[*] Ota Maly <ota.maly(zv)volny(tec)cz> - 1.3.2001 16:49:59

Ahoj,
me osobne pripada pouziti Goto vzdy zneprehlednujici. Pokud totiz koukam do
ciziho kodu (nedejboze:), snazim se cosi pochopit a naleznu nejake navesti
pro Goto, tak nevim, odkud a za jakych podminek to na ten label skoci.
Samozrejme si muzu vyhledat vsechny Goto, ale to mi prave pripada zbytecne
slozite a neprehledne. To je sice jen muj nazor, ale tak nejak jsem se
naucil uvazovat bez Goto :-).

Ota


> -----Original Message-----
> From: owner-delphi-l(zv)fwd(tec)cz [mailto:owner-delphi-l(zv)fwd(tec)cz]On
> Behalf Of Dalibor Toman
> Sent: Thursday, March 01, 2001 10:55 AM
> To: delphi-l(zv)fwd(tec)cz
> Subject: Re: Prepinani Unit
>
>
> >
> > Co sa tyka Delphi, tak mas pravdu. Goto (resp. jeho vylepsene varianty
> > break, continue a exit) sa velmi casto pouzivaju a maju svoje
> opodstatnenie.
> > Je to dosledok nie najlepsieho navrhu jazyka Pascal. V
> niektorych jazykoch
> > goto ani jeho varianty neexistuju a zdrojovy kod je napriek tomu (alebo
> > prave preto?) podstatne prehladnejsi (a nielen prehladnejsi) a vysledny
> > program by mal byt aj rychlejsi.
>
> Mozna, ze Exit, Break a Continue jdou nahradit nejakymi
> konstrukcemi (dalsi
> IFy) ale vzdy to bude neprehlednejsi a hlavne pomalejsi. Jak
> zabranis tomu,
> aby aby se FOR cyklus nevykonaval zbytecne (napriklad po te co byl nalezen
> znak pri prohledavani stringa?) (samozrejme muze FOR nahradit napriklad
> Whilem ci Repeatem a manipulovat s ridici promenou cyklu - ale to rozhodne
> neni prehlednejsi.
> Jsem pro kazde rozsireni jazyka, ktere vede k tomu, ze muzu neco udelat
> jednoduseji a elegantneji nez drive (Break, Exit, Continue,
> Result,.....) a
> je mi uplne jedno, zda to odporuje nebo ne nejakym prihlouplym konvencim
> (at jde o nejake stolete definice jazyka Pascal nebo snahu o
> cistotu jazyka
> z nejakeho jineho pohledu). Uvital bych, kdyby Pascal prevzal ve
> vetsi mire
> nektere veci z C++ (moznost prirazeni hodnoty vice promennym najednou,
> prirazeni do promenne zaroven s moznosti porovnani v IFu, podporu maker, a
> naslo by si toho vic jen si ted nevzpomenu,....)
>
> Zdravi
> Dalibor Toman
>
>
>

Autoincrement + IB6

[*] Jan Diblik <jan.diblik(zv)lfmotol.cuni(tec)cz> - 1.3.2001 16:57:23

Ahoj,

http://ww6.borland.com/codecentral/ccweb.exe/author?authorid=102

> Cau,
>
> mas prosim ta link na tie nove IBX?
>
> Pavol Kakacka
> kasix(zv)atlas(tec)cz
>
> ----- Original Message -----
> From: "Jan Diblik" <jan.diblik(zv)lfmotol.cuni(tec)cz>
>
> > Ahoj,
> > nebo s pomoci poslednich verzi IBX (tusim, ze od 4.4, posledni je
> > 4.51) Tam uz staci mit v databazi jen generator, u datasetu nastavit
> > property GeneratorField a uz neni nutny trigger.
> >
> > Honza
> >
> > > Ahoj,
> > >
> > > podivej se sem: http://swnet(tec)cz/article.php?id=14046
> > >
> > > Slavek
> > >
> > > > Jak udelat %sub% .
> > >
> > >
> > > --------------------------------------
> > > http://atrey.karlin.mff.cuni(tec)cz/~rk
> > > http://swnet(tec)cz
> > > * K Jezisku, panacka, ja se budu kolebati...
> > > * Narodil jsem se, radujte se...
> > > --------------------------------------
> > >
> >
> >
>

Prepinani Unit

[*] Pavol Kaka�ka <paka(zv)aktis(tec)cz> - 1.3.2001 17:01:07

> Blablabla
> Muzete mi nekdo prozradit kde je problem kdyz GOTO pouziji?
> Jake problemy mohou nastat?
> Vetsina z vas se jen boji jakehosi imaginarniho zla,
> ktere vyplyva z dogmat starych desitky let!
> Neni to spise o kokretnim programatorovi?
> Napsat spatny kod lze totiz at s GOTO nebo bez nej.
> Napr. cela VCL je bez GOTO jak tu nekdo psal.
> A vysledek? Prinejmensim sporny!

** Tuto debatu sme uz skoncili, a volne ponechali na programatoroch :-)) ked
maju radi GOTO tak nech ho pouzivaju a ked ho z bezpecnostnych dovodov
nechcu pouzit tak nech ho nepouzivaju.

> Kez by totiz cely problem programatoru byl jen v (ne)pouzivani GOTO!

> Dnesni programator v Delphi totiz chce na vse komponentu
> a ne psat nejaky kod...

** Tak ja myslim ze trend je opacny. Ale diskutovat o tom zasa nic
nevyriesi. Zalezi na programatorovi. Samozrjeme ze je rozdiel medzi
komponentov vizualnov z Delphi a "suciastkov" COM.

S pozdravom

Pavol Kaka�ka
kasix(zv)atlas(tec)cz

QRep volany z DLL

[*] Starka <starka(zv)ticketpro(tec)cz> - 1.3.2001 17:06:34

Toto je zprava ve formatu MIME obsahujmcm vmce hastm.
Dobry den,
mam nasledujici problem:
udelal jsem si .EXE soubor, z tohoto souboru volam proceduru z .DLL knihovnu dynamicky nasledujicim kodem

var
hendl:integer;
dllProc:procedure;
begin
hendl:=LoadLibrary('repcall.dll');
if hendl <> 0 then begin
(zv)dllProc:=getprocAddress(hendl,'callreplist');
if (zv)dllProc <> nil then dllProc;
end;
FreeLibrary(hendl);
end;

a z teto knihovny volam druhou proceduru opet z .DLL knihovny stejnym kodem (jenom se jinak jmenuji promenne). Kod procedury je nasledujici:

procedure rep;
var
frmreport:tfrmreport;
begin
frmreport:=tfrmreport.create(nil);
// showmessage('ted bude preview');
frmreport.QuickRep1.PreviewModal;
// showmessage('ted mel byt preview');
frmreport.free;
end;

Na formulari frmreport je quickreport se dvema titulnimy radky a zadnym detailem. Neni napojeny na zadny zdroj dat.

A muj problem spociva v tom, ze kdyz tam jsou ty radky s showmessage, tak to beha. Kdyz je ale zalomitkuju,
nebo uplne zrusim, spadne mi to kdyz se to vraci z druheho .DLL na acces violation. Kdyz tam ale neni ten
preview, tak to taky beha jak z praku. Kdyz se to vola jen z jednoho .DLL, tak to taky nema zadny problem,
Nevite nekdo co by s tim mohlo byt? Diky Jarda

Jak na MS SQL?

[*] Pesek Michal <Michal.Pesek(zv)mnul(tec)cz> - 1.3.2001 17:13:22

Hi,

jak prevedu tento script do delphi, abych zjistil navratovou hodnotu?
Tento script nebude ulozen jako stored procedura.

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

Use Northwind
If exists(select orderId from orders where customerid = 'frank')
Print 'Nelze mazat'
else begin
delete customers where customerid = 'frank'
Print 'Smazano'
end

===========================
MS SQL7, Win 2000, D5Prof

Diky


Formular a datamodul.

[*] Jir� Foldyna <jiri.f(zv)avizo(tec)cz> - 1.3.2001 17:19:31

Ahoj,

nejsem si jisty, jestli nejsem mimo misu, ale co to udelat tak, ze
nepouzijes Autocreate na ten datamodul, treba nejak takto:

Do toho formu das

uses
MyDataModul;

var
Datamodul : TMyDataModul

do OnCreate das

DataModul := TMyDataModul.Create(...

a do OnDestroy das
DataModul.Release;

Pak by se Ti pro kazdou instanci formulare mela vytvorit vlastni instance
datamodulu - aspon myslim.

Je to jen idea z hlavy, tak to radsi neprekladej :-))

Ing. Jiri Foldyna
mailto:jiri.f(zv)avizo(tec)cz
> -----P�vodn� zpr�va-----
> Od: owner-delphi-l(zv)fwd(tec)cz [mailto:owner-delphi-l(zv)fwd(tec)cz]za u�ivatele
> Bohdan Voska
> Odesl�no: 1. b�ezna 2001 8:25
> Komu: delphi-l(zv)fwd(tec)cz
> P�edm�t: Re: Formular a datamodul.
>
>
>
> > Vazby provadet rucne, tj. nelze proves vazbu pres object inspector.
> > Asi nejlepsi je si primo v tom formulari vytvorit i ten DataModul
> > a pak nastavit odkazy.
>
> Myslis jako zrusit datamodul a tabulky a query nahazet na
> formular? Nebo jde
> nejakym zpusobem DataModul nahodit primo na formular, aby byl
> jeho soucasti.
> Abych rekl pravdu rucne se mi to moc delat nechce.
>
> Bohdan
>
>
>
>
>
>
>
>
> >
> > > Ahoj,
> > >
> > > mam formular a k nemu datamodul. Zalozim formular
> vicekrat a potrebuji,
> aby
> > > datovy modul byl ke kazdemu formulari zvlast. Problem je v tom, ze
> vsechny
> > > formulare se odkazuji na prvne zalozeny datovy modul.
> Prosim poradte,
> jak se
> > > tohle ma spravne resit. Predem diky.
> > >
> > >
>
>
>

Prepinani Unit

[*] Zbysek Hlinka <hlinka(zv)hlinka(tec)cz> - 1.3.2001 17:36:43

On 1 Mar 2001, at 10:54, Dalibor Toman wrote:

> > Je to dosledok nie najlepsieho navrhu jazyka Pascal. V niektorych
> > jazykoch goto ani jeho varianty neexistuju a zdrojovy kod je napriek
> > tomu (alebo prave preto?) podstatne prehladnejsi (a nielen
>
> Mozna, ze Exit, Break a Continue jdou nahradit nejakymi
> konstrukcemi (dalsi IFy) ale vzdy to bude neprehlednejsi a hlavne
> pomalejsi. Jak zabranis tomu, aby aby se FOR cyklus nevykonaval
> zbytecne (napriklad po te co byl nalezen znak pri prohledavani
> stringa?) (samozrejme muze FOR nahradit napriklad Whilem ci
> Repeatem a manipulovat s ridici promenou cyklu - ale to rozhodne
> neni prehlednejsi. Jsem pro kazde rozsireni jazyka, ktere vede k
> tomu, ze muzu neco udelat jednoduseji a elegantneji nez drive
> (Break, Exit, Continue, Result,.....) a je mi uplne jedno, zda to
> odporuje nebo ne nejakym prihlouplym konvencim (at jde o nejake
> stolete definice jazyka Pascal nebo snahu o cistotu jazyka z
> nejakeho jineho pohledu). Uvital bych, kdyby Pascal prevzal ve
> vetsi mire nektere veci z C++ (moznost prirazeni hodnoty vice
> promennym najednou, prirazeni do promenne zaroven s moznosti
> porovnani v IFu, podporu maker, a naslo by si toho vic jen si ted
> nevzpomenu,....)

Tak, tak. Zaplat Pan Buh za vsechny goto, exit, break a continue.
Skarohlidi jeste mohou pridat do sveho seznamu nedovolenych
konstrukci pretezovani funkci. Presto mi to nezabrani, abych nad
temito moznostmi radostne nejasal, ba naopak, jeste bych privital
pretezovani operatoru. Puriste by z toho jiste zesileli a houfne by
se odebirali treba do naruce Visual Basicu :-), ale jak by byla
napriklad nadherna a prehledna takovato konstrukce:

type
Rec = record
p1: integer;
p2: word;
p3: int64;
...
end;

var
r1, r2, r3, r4: Rec;
begin
r1 := (r2 + r3) div r4;
end;

Ojojojoj... Kdyz clovek vi co dela, pak muze vsechny [censored]
ochrance cistoty rasy a jazyka poslat do [censored]. :-)


S pozdravem

Zbysek Hlinka

http://www.hlinka(tec)cz http://www.slhaters(tec)cz
Phones: 02/795 29 56; GSM: 0603 551 282
Krystofova 1016, 149 00 Praha 4
CZ


Rozdeleni stringu do pole

[*] Petr Reichl <p.reichl(zv)gmc(tec)net> - 1.3.2001 17:53:48

Zdravim vsechny,

je v Delphi nejaka funkce, ktera rozdeli string do pole? Reknu, ze strednik
je oddelovac a ona mi vyvtori pole.


S pozdravem,

Petr


Ikona v EXE

[*] Hurricane <hurricane(zv)quick(tec)cz> - 1.3.2001 17:56:56

Muzu poslat ResourceHacker, ten umoznuje prohlizet, ukladat do souboru a
MENIT resourcy v PE souboru. Vymena MainIcony v EXE je otazkou par minut.

Hurricane
hurricane(zv)quick(tec)cz

----- Original Message -----
> Zdravim,
> mam mozna blbou otazku: Nejde nejak udelat, abych mohl zmenit ikonu v exe
> souboru? Neco opacneho nez Extracticon.

Zadani hodnoty null pres ParamByName - vyreseno

[*] radek cervinka <radek.cervinka(zv)centrum(tec)cz> - 1.3.2001 18:10:11

Tohle jsem nasel:

{This constant value is not needed in Delphi 5 since it has already been
declared. However, Delphi 3 and Delphi 4 do not have it. The initalization
code for this value is taken from Delphi 5.}
EmptyParam: OleVariant;
a inializacni cast pro ty co nemaji Delphi 5

initialization
{$IFNDEF VER130}
TVarData(EmptyParam).VType := varError;
TVarData(EmptyParam).VError := $80020004; {DISP_E_PARAMNOTFOUND}
{$ENDIF}

Prepinani Unit

[*] Adam Feistner <feistna(zv)volny(tec)cz> - 1.3.2001 18:11:03

----- Original Message -----
From: "Pavol Kakacka" <paka(zv)aktis(tec)cz>
Subject: Re: Prepinani Unit

> > jej je pro mne mnohem dulezitejsi, nez slepe se drzet prirucek.

Mne to neprijde jako drzeni se prirucek - zatim jsem ho vubec nepotreboval. Jak jsem to pochopil, byl goto uzitecny v dobe
AtariBasicu, ktery multitasking, multithreading a podobne vecicky neznal. Problem Goto/Label v ObjectPascalu: goto = tvrdy skok
z nadeklarovaneho prostredi do zcela jineho prostredi. Kdyz vynecham zruseni typove kontroly, existenci/neexistenci
ruznych/stejnych promennych, apod. muze se stale neco stat se systemem a takovy skok muze dopadnout kamkoli - mne to prijde
jako skok do tmy. Naproti tomu volani funkci/procedur nebo smycek bezi plne v danem kontextu (nikam mi nevyskakuje). Je
zarucena typova kontrola a navic jsou pro to procesory optimalizovany (predikce skoku, apod ?). S pozdravem,

Adam Feistner
feistna(zv)volny(tec)cz
www.volny(tec)cz/feistna/cz.htm


Zjisteni verze ADO

[*] radek cervinka <radek.cervinka(zv)centrum(tec)cz> - 1.3.2001 18:17:30

Podle MS:
Dva zpusoby:
1) podle verze DLL (pokud bys neved jak rekni, nedavno jsem to delal)

You will not be able to determine the MDAC version by just looking at the
filenames (since some MDAC 2.x files have the "15" in the filename...). The
only way to know the version is to look at the "\Program Files\Common
Files\System\OLE DB\msdadc.dll" file version:
MDAC 1.5c
1.50.3506.00

MDAC 2.0
02.00.3002.4
2)
you can look in the system registry:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DataAccess\Version

However, the Version key was not implemented in earlier versions of MDAC.
Therefore, to handle all cases, you will need to write some code that does
the following:

1) Using the ProgID "ADODB.Connection", get it's CLSID from the system
registry.
e.g. HKEY_CLASSES_ROOT\ADODB.Connection\CLSID
=> {00000514-0000-0010-8000-00AA006D2EA4}

2) Using the CLSID, get the path under
"HKEY_CLASSES_ROOT\CLSID\<CLSID>\InprocServer32" from the system registry.
e.g.
HKEY_CLASSES_ROOT\CLSID\{00000514-0000-0010-8000-00AA006D2EA4}\InprocServer3
2
=> C:\Program Files\Common Files\System\ADO\msado15.dll


----- Original Message -----
From: Petr Reichl <p.reichl(zv)gmc.net>
To: ListServ - Delphi (el. adresa) <delphi-l(zv)fwd(tec)cz>
Sent: Thursday, March 01, 2001 2:10 PM
Subject: Zjisteni verze ADO


> Zdravim vsechny,
>
> potreboval bych zjistovat pri startu aplikace jaka je nainstalovana verze
> ADO. Problem je v tom, ze to nelze zjistovat pres samotne ADO, protoze v
te
> dobe k nemu jeste nemam pristup. Je mozne tuto informaci nalezt nekde v
> systemu?
>
> S pozdravem,
>
> Petr
>
>

Jak na p�smo (fonty) 125%

[*] Lstiburek Pavel <Lstiburek(zv)ceb(tec)cz> - 1.3.2001 18:19:17

Ahoj,

nevi nekdo jak resit problem, zvetsenych fontu ?
(Plocha -Vlastnost-Nastaveni-Velikost pisma- Jina- 125%).

Mam aplikaci, ktera byla napsana v normalnim prostredi (tj. fonty 100%) a
uzivatele ji chteji pouzivat pri nastaveni 125% (udajne se jim obrazovky
lepe ctou-muze byt).

Problemem je, ze pokud navrhnu obrazovku v prostredi 125%, pak v prostredi s
nastavenim 100% je poloprazdna. Pokud je to naopak jdou texty a pole pres
sebe !
Nelze neja poradit komponentam, aby se prepocetly nejaka zmena meritka ?

Diky za napady Pavel.

zatizeni procesoru

[*] Petr Ha�lar <rincewind(zv)volny(tec)cz> - 1.3.2001 18:40:14

Ahoj,
da se zjistit jak moc (%) zatezuje libovolny ext. program pocitac (tedy ne
moje aplikace) - neco na zpusob TaskManageru?
S pozdravem

Petr Ha#lar
rincewind(zv)volny(tec)cz

ICQ #89356906


Zjisteni verze ADO

[*] Lstiburek Pavel <Lstiburek(zv)ceb(tec)cz> - 1.3.2001 18:40:29

Toto je kousek kodu z konference s�m jej pouzivam,
puvodnim autorem je Erik Salaj:
GetADOVersion robi velmi jednoduchy test: vytvori connection object,
ktory umozni zistit verziu ADO:

function GetADOVersion: String;
var Connection: Variant;
begin
try
Connection := CreateOleObject('ADODB.Connection');
Result := Connection.Version;
except
Result := '0.0';
end;
end;

Pavel


-----P�vodn� zpr�va-----
Od: Petr Reichl [mailto:p.reichl(zv)gmc.net]
Odesl�no: 1. b�ezna 2001 14:10
Komu: ListServ - Delphi (el. adresa)
P�edm�t: Zjisteni verze ADO


Zdravim vsechny,

potreboval bych zjistovat pri startu aplikace jaka je nainstalovana verze
ADO. Problem je v tom, ze to nelze zjistovat pres samotne ADO, protoze v te
dobe k nemu jeste nemam pristup. Je mozne tuto informaci nalezt nekde v
systemu?

S pozdravem,

Petr


DLL v C++ versus aplikace v DELPHI

[*] Jan Novak <megamax(zv)seznam(tec)cz> - 1.3.2001 19:15:55

Ahoj,
omlouv�m se, �e tady vytahuji u� probran� probl�m, ale tla�� m� �as:

M�m knihovnu napsanou v C++ (m�m zdroj) a nemohu ji p�inutit pos�lat zpr�vy
do m� aplikace. Nem�te n�kdo z v�s n�kde n�jak� jednoduch� p��klad? Moc mi
pom��ete.

Diky moc.
Pavel Nov�k, megamax(zv)seznam(tec)cz


---
Odchoz� zpr�va neobsahuje viry.
Zkontrolov�no antivirov�m syst�mem AVG (http://www.grisoft(tec)cz).
Verze: 6.0.226 / Virov� b�ze: 108 - datum vyd�n�: 5.1.2001


Autoincrement + IB6

[*] Frantisek Sevcik <sevcik(zv)anexis(tec)cz> - 1.3.2001 19:40:24

> DDV,
>
> > jo, akorat ze se mi to nepodarilo rozchodit.
> > schvalne to nekdo zkuste, treba jsem blb.
> > nebo je tam bug.
> >
> > > Ahoj,
> > > nebo s pomoci poslednich verzi IBX (tusim, ze od 4.4, posledni je
> > > 4.51) Tam uz staci mit v databazi jen generator, u datasetu
> > nastavit
> > > property GeneratorField a uz neni nutny trigger.
> > > Honza
>
> stejne byuch tam mel trigger, kdyz budu potrebovat inserovat z ISQL a ne z
> aplikace.

Urcite je tam bug. Chvili to chodi, chvili ne, ale podstatne je, ze
generovat hodnotu PK je lepsi triggerem nebo SP. Nechtel bych po sobe
predelavat aplikaci pokud by bylo treba portovat na jiny SQL server nebo
pouzit jine komponenty pro pristup k IB nebo FireBirdu.

Frantisek Sevcik, Anexis


Registry a DWORD, BINARY ...

[*] morzol(zv)atlas(tec)cz - 1.3.2001 20:26:30

Jestli pouzijes TRegIniFile skus ReadString a WriteString.
-----Original Message-----
From: "owner-delphi-l(zv)fwd(tec)cz" <owner-delphi-l(zv)fwd(tec)cz> on behalf of "Petr" <DelphiForum(zv)seznam(tec)cz>
Sent: Monday, February 26, 2001 3:22 PM
To: "delphi-l(zv)fwd(tec)cz" <delphi-l(zv)fwd(tec)cz>
Subject: Re: Registry a DWORD, BINARY ...

Hodnoty DWORD se zapisuji normalne jako integer (WriteInteger resp.
ReadInteger). S tim stringem je to trochu slozitejsi. Potreboval bych vedet
jako co deklarujes to X (pole znaku, PChar nebo string ?)

Petr Jur�k, Spr�vce s�t�, program�tor
COMET System s.r.o.
1.M�je 1220
756 61 Ro�nov pod Radho�t�m
tel. 0651/653990
fax. 0651/653993
www.cometsystem(tec)cz


----- Original Message -----
From: <milan_2(zv)sose-sou(tec)cz>
To: <delphi-l(zv)fwd(tec)cz>
Sent: Monday, February 26, 2001 11:09 AM
Subject: Registry a DWORD, BINARY ...> Cauky Delphini ...
>
> co se tyce registru, jsem uplny zacatecnik, ale zapsat a nacist
textovou
> promennou uz jakztakz zvladam.
>
> Problem : Zapisu-li do textove promenne napriklad retezec 'noname' a pote
> jej zase nactu z registru napriklad do promenne X, pak pri porovnavani x =
> 'noname' mi to hazi FALSE ! ... cim to je ??? Mala a velka pismena jsou
v
> poradku.
>
> Dalsi otazka zni :
> Jak zapsat do nejakeho klice promennou, jejiz hodnota je DWORD ?
>
> Dik za pomoc.
> Milan
> =============
> Milan
> Delphi beginner
> Delphi 3, W98
>
>


---
Odchoz� zpr�va neobsahuje viry.
COMET System Network Administrator.
Zkontrolov�no antivirov�m syst�mem AVG (http://www.grisoft(tec)cz).
Verze: 6.0.231 / Virov� b�ze: 112 - datum vyd�n�: 12.02.01


komponenty - nastaveni property

[*] Josef Semera <semera(zv)atlas(tec)cz> - 4.2.1999 00:13:18

Dosel jsem do doby kdy si potrebuju udelat vlastni komponentu ale uz se oni
snazim nekolik veceru a nic. Pro zacatek jsem si vzal jako predka
TWinControl, pomoci create v nem vytvorim dalsi dve componenty(TEdit a
DBLookUpListBox), zbytek dodelam az budou chodit tyto dve. A problem.
Property jako Text, Color nebo visible mi dosadi pomoci Set bezvadne ale
napriklad Font mi dosadi pouze pokuk v obj.insp. otevru dialog. A HLAVNE CO
SE ZMENOU VELIKOSTI. Same Aplikace zpusobila vyjimku, nebo " nema predka.
Zmena velikosti mi FEdit.Width = Width mi funguje pouze v porcedure Loaded.
Muze mi nekdo poradit.

komponenty - nastaveni property

[*] Josef Semera <semera(zv)atlas(tec)cz> - 4.2.1999 21:30:37

TFont mam vytvoreny, protoze do te doby mi to hlasilo ze nemuzu nic dela s
fontem ktery je null. Me ten font blbne tak ze pokud neco zadam do Property
v a otevru Dialogove okno fontu tak jiz zmenu uvidim. Takze zmenit property,
otevri dialog a stiskout OK. Divne. CM_FONTCHANGE, dik na to se mrknu. A co
s tim Width a Height.

Dik Pepa
semera(zv)atlas(tec)cz

-----Original Message-----
A mas vytvoreny objekt typu TFont ???
Dale doporucuji na promenne s tim fontem nastavit obsluhu udalosti OnChange
a
pak take odchytavani zpravy CM_FONTCHANGE.

S pozdravem

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

P.S.: Muzu poslat komponentu, kde jsem s tim pracoval (potomek TCustomLabel)

> Dosel jsem do doby kdy si potrebuju udelat vlastni komponentu ale uz se
oni
> snazim nekolik veceru a nic. Pro zacatek jsem si vzal jako predka
> TWinControl, pomoci create v nem vytvorim dalsi dve componenty(TEdit a
> DBLookUpListBox), zbytek dodelam az budou chodit tyto dve. A problem.
> Property jako Text, Color nebo visible mi dosadi pomoci Set bezvadne ale
> napriklad Font mi dosadi pouze pokuk v obj.insp. otevru dialog. A HLAVNE
CO
> SE ZMENOU VELIKOSTI. Same Aplikace zpusobila vyjimku, nebo " nema predka.
> Zmena velikosti mi FEdit.Width = Width mi funguje pouze v porcedure
Loaded.
> Muze mi nekdo poradit.

ukladani vice veci do jednoho souboru

[*] Vaclav Krejci <krejciv(zv)ssakhk(tec)cz> - 8.3.1999 16:58:31

Zdravim,

mam takovy mensi problem, potreboval bych
ulozit do jednoho souboru vice veci (par
integeru, stringu a hlavne array, pokud by to
bylo mozne tak i bitmapu...). Nevite nekdo, jak
to udelat ? Nekde jsem videl neco pouzivajici
fce BlockRead a BlockWrite, nemohl by me
nekdo strucne vysvetlit jejich vyznam ? dik
za vsechny reakce....

Konverze

[*] Jan Kravar <honzik_x(zv)volny(tec)cz> - 15.10.1999 19:45:52

Dobry den, nevite nekdo o nejake komponente, ktera provadi konverzi textu
mezi ruznym kodovanim (Hlavne windows-1250 -> ISO-8859-2)
S pozdravem, Jan Kravar


LCK soubory

[*] Michal Jiskra <jiskra(zv)eskon(tec)cz> - 8.3.2000 10:47:50

Ahoj,
chtel jsem se zeptat proc se tvori lck soubory, kdyz se pripojuji k databazi
SQL pres BDE a ODBC. Mylsel jsem si, ze se tyto soubory tvori pouze pro
paradoxovske databaze/tabulky. Mam problem s hlasenim "LockFile has grown
too large" coz znamena, ze lck soubor je prilis veliky. Aplikace je
aplikacnim serverem, ktery bezi neustale a po nejake dobe se objevi toto
hlaseni. Kdy dochazi k umazavani zaznamu z lck souboru nebo jak zabezpecit
aby se ten soubor nezvetsoval ? Aplikacni server vyrizuje pozadavky klientu
a pro nektere pozadavky spousti vlakna ve kterych se vytvareji nove spojeni
na databazi. Pokud se dejme tomu po vykonane praci datamodul(spojeni na SQL)
nezrusi, pak se asi nezmensi ani lck soubor, ze ? Coz by mohlo byt pricinou
problemu. Jinak BDE si asi praci s lck ridi samo, ale pokud by nekdo vedel
jak to ovlivnit ...

Diky za pomoc.

S pozdravem
Michal Jiskra


Outlook Express a OLE

[*] Ren� Otisk - 8.12.2000 14:26:47

Hi,

jen se chci zeptat, konstrukce ShellExecute(...PChar('mailto:
tadytady(zv)tojsemmelrictja')...) nefunguje s kazdym postovnim klientem?

Sroub


> From: <v.holy(zv)oku-rk(tec)cz>
> > Jde mi o rozesilani emailu z Delphi aplikace za pouziti Outlook
Express.=
>
> Ahoj,
>
> pouzi na vytvorenie emailu Simple MAPI a bude to fungovat s kazdym (?)
> postovym klientom, ktory Simple MAPI podporuje a je nastaveny ako default
> klient.
>
> Pavol Stolc
> pstolc(zv)sc.sknet.sk
>

Rozliseni tiskarny

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

> Ahoj,
>
> to funguje, ale jak se zjisti sirka a vyska stranky?
>
> Slavek
>
> > PrnDC := Printer.Handle; // device context
> > ....
> > ....
> > DPI.x := GetDeviceCaps(PrnDC, LogPixelsX);
> > DPI.y := GetDeviceCaps(PrnDC, LogPixelsY);
> >
> > a vraci mi to spravne hodnoty (zkousel jsem to na par
> tiskarnach - HP,
> > Minolta, i na Star LC-20). Zkus vypustit Canvas, melo by to
> chodit, pokud
> > mas alespon jednu tiskarnu jako Default.
> >

Ahoj,

podobne:
tohle vrati sirku stranky v bodech, kdyz to vydelis DPI v x-ovem smeru,
dostanes sirku v palcich
x := GetDeviceCaps(Printer.Handle, PHYSICALWIDTH);
tohle vrati vysku stranky v bodech, kdyz to vydelis DPI v y-ovem smeru,
dostanes vysku v palcich
y := GetDeviceCaps(Printer.Handle, PHYSICALHEIGHT);
tohle vrati x-offset (posunuti zacatku tisku vzhledem k levemu okraji
tiskove plochy) v bodech
ox := GetDeviceCaps(Printer.Handle, PHYSICALOFFSETX);
tohle vrati y-offset (posunuti zacatku tisku vzhledem k hornimu okraji
tiskove plochy) v bodech
oy := GetDeviceCaps(Printer.Handle, PHYSICALOFFSETY);

Rozmery stranky v bodech: sirka = x, vyska = y.
Tisknutelna plocha: sirka = x - 2*ox; zacatek = ox
vyska = y - 2*oy; zacatek = oy

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

Ukladanie obrazkov do databazy a nasledna tlac pom

[*] Roland Turcan - RoTurSoft <rotursoft(zv)nextra.sk> - 28.2.2001 22:48:22

Zdravim.

Co sa tyka tlace obrazkov som pochopil ze maju byt v adresari kde je tlacova
zostava. Ja pouzivam IB 6 a vsetky zostavy mam ulozene v databaze na
serveri. Je preto nemyslitelne, aby som pripadne obrazky drzal na disku, ked
uz samotna zostava absentuje. Ako by som vysvetlil Sinei aby si obrazok
brala zo servera ?

Thanx.

Roland.

Prepinani Unit

[*] Dalibor Toman <dtoman(zv)fortech(tec)cz> - 1.3.2001 20:34:18

> Muzete mi nekdo prozradit kde je problem kdyz GOTO pouziji?
> Jake problemy mohou nastat?
> Vetsina z vas se jen boji jakehosi imaginarniho zla,
> ktere vyplyva z dogmat starych desitky let!
> Neni to spise o kokretnim programatorovi?
> Napsat spatny kod lze totiz at s GOTO nebo bez nej.
> Napr. cela VCL je bez GOTO jak tu nekdo psal.
> A vysledek? Prinejmensim sporny!
>


Vsechno je jen vec nazoru a zkusenosti. Programovat jsem se ucil na Basicu a assembleru. Tam se clovek bez GOTO (JMP) neobejde. Pak jsem se naucil Pascal. Moje programy a rutiny se hemzily deklaracemi Labelu a Goto. Kdyz jsem cetl clanky o strukturovanem programovani, kde staveli Goto mimo zakon, zdalo se mi ze bez nej se obejdou opravdu jen ti co kresli vyvojove diagramy, programuji v jazyku, ktery z principu goto nema (Prolog, Forth...), ale programator v realnem svete se bez nej neobejde. Pak se objevila moznost pouzivat Exit ve funkcich a procedurach - parada uz nemusim deklarovat Label, nemusim se zamotavat do X urovni vnorenych IFu, kdyz chci "jen" predcasne vyskocit z procedury protoze nektery vstupni parametr nema spravne hodnoty, protoze se nepodarilo alokovat pamet, vytvorit soubor.... Pak pribylo Break a Continue a potreba pouzivat Goto zcela zmizela.

Bavi-li Te psat deklarace Labelu, pouzivej Goto klidne dal. Ale je tu cesta, ktera Ti muze usetrit kdyz uz nic tak alespon peknych par uderu do klavesnice.

> Kez by totiz cely problem programatoru byl jen v (ne)pouzivani GOTO!
> Dnesni programator v Delphi totiz chce na vse komponentu
> a ne psat nejaky kod...

nepouzivam goto a prakticky nepouzivam ani komponenty - drtiva vetsina me prace je non-visual programovani a kdyz potrebuju user interface pak zase neni mozne aby vysledny kod mel 300 kB jen kvuli tomu, ze prilinkuju Form unitu.
Prakticky vubec nepouzivam third party komponenty. Zkousel jsem par komponent okolo TCP/IP a vzdycky jsem narazil - bud na neschopnost autora komponenty nebo na odlisnou filozofii jejiho navrhu (a tedy i moznosti pouziti).

Komponenty jsou bezesporu skvela vec - urcite diky nim "programuje" daleko vic lidi a Borland se dostal diky nim do cernych cisel, takze nyni vznikaji veci jako Kylix a Borland je zase Borland. At si kdo chce rika o VCL co chce diky ni (resp hlavne diky moznosti namysovat vzhled aplikace v IDE) je schopen aplikaci do windows naprogramovat temer kazdy. Kdo nekdy podstupoval martyrium vytvareni oken pomoci API a ruznych dialogeditoru vi jak obrovsky je to rozdil. Jedine co ja vytykam VCL - je prilisna velikost kodu - Borland by mel vydat i nejakou odlehcenu variantu.

Faktem je, ze pokud se chci neco naucit naprogramovat jsou komponenty cestou do pekel. TCP/IP je toho skvelym prikladem - spousty lidi se snazi delat veci, ktere jim umozni neco poslat internetem. Najdou nejakou komponentu, ktera za jistych okolnosti funguje, pak najednou nastanou problemy a ty lidi vubec netusi co se deje, nejsou schopni si najit popisy chybovych kodu systemovych funkci (msdn.microsoft.com ma pritom kazdy pred nosem), netusi ze existuji nejake verejne pristupne standardy (RFC) atd atd. Staci se podivat do borlandich newsu, kolik lidi se tam pta stale dokola (proc pouzivat archivy a prohledavace newsu, kdyz zeptat se je tak jednoduche?) na samozrejme veci.

D. Toman


Zaokrouhlovani cisel vlkadanych do DBF

[*] morzol(zv)atlas(tec)cz - 1.3.2001 20:41:38

Ahoj vsichni,

Mam DBF tabulku s nejakyma polema typu realne cislo. Do te tabulky vkladam data z editacnich komponent PBNumEdit. Tabulku pak zobrazuji pres TExDBGrid.
Pokud do tabulky vlozim 0 (nulu) v nekterych pripadech se stane ze misto nuly mam cislo XXX EYY.

Vim ze pred dvema lety tady byl podobny problem.
Nevite nekdo co s tim ? Nevite jak by se to dalo odstranit.

Diky moc.

DATA Z KONFERENCE ZA UNOR 2001

[*] Slavek Rydval <rk(zv)atrey.karlin.mff.cuni(tec)cz> - 1.3.2001 20:56:46

Preji vsem pekneho dne,

data za unor 2001 naleznete na:

http://atrey.karlin.mff.cuni(tec)cz/~rk/DataZKonference.shtml

data za ostatni mesice naleznete mj. na:
* http://delphi.wsh(tec)cz/
* http://www.delphi(tec)cz/konfview/

Slavek


Setrete vodou. Sprchujte se s pritelem/pritelkyni.
-------------------------------------------------
http://atrey.karlin.mff.cuni(tec)cz/~rk
http://swnet(tec)cz
-------------------------------------------------


Prepinani Unit

[*] Erik Salaj <winsoft(zv)napri.sk> - 1.3.2001 21:38:40

> Muzete mi nekdo prozradit kde je problem kdyz GOTO pouziji?

Hrozi znacna neprehladnost programu.

> Jake problemy mohou nastat?

Napr. ze program nebude fungovat.

> Vetsina z vas se jen boji jakehosi imaginarniho zla,
> ktere vyplyva z dogmat starych desitky let!

Vzdy sa najdu aj taki, ktori sa GOTO neboja.

> Neni to spise o kokretnim programatorovi?

Mozno o tom, ci ma dost odvahy. Alebo o tom,
ci ma dost rozumu.

> Napsat spatny kod lze totiz at s GOTO nebo bez nej.

Dobra vyhovorka, pocul som uz podobnu ohladom
skodlivosti fajcenia.

> Napr. cela VCL je bez GOTO jak tu nekdo psal.
> A vysledek? Prinejmensim sporny!

VCL sa len tak hemzi s GOTO v podobe Break,
Continue a Exit. Vysledok tomu odpoveda.

Erik

NT40 a procesy

[*] Tom� Krest�n - 1.3.2001 21:52:34

Zdrav�m,

chyby�ka je v tom, �e WinNT do verze 4 nepodporuj� Tool Help funkce, ale
implementuj� svoje vlastn�, kter� zase nejsou implementov�ny ve Win9x a
WinMe (ve W2K lze pou��vat oboje). Tak�e odkazuji na funkce PSAPI ve WinNT
(EnumProcesses, EnumProcessModules atd.), kter� jsou tak�ka jej�mi
ekvivalenty. Detailn�j#� popis viz. API nebo l�pe SDK dokumentace. Jinak m�m
dojem, �e Delphi maj� junitu PSAPI.PAS implementovanou.


S pozdravem Tom�# Krest�n



----- Original Message -----
From: "Kov߰�k Ladislav" <Ladislav.Kovarik(zv)brno.aksignal(tec)cz>
To: <delphi-l(zv)fwd(tec)cz>
Sent: Thursday, March 01, 2001 1:56 PM
Subject: NT40 a procesy


> Zdravim vsechny.
>
> Na zjisteni jedoucich procesu pouzivam z TLHelp32
>
> .
> .
> Handler := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
> if Process32First(Handler, Data) then
> begin
> .
> .
>
> Pro W98 a W2k je to OK.
> Ale ve Win NT40 1.radek nevraci korektni cislo takze dale nic nezjistim.
> Prosim o radu kde je chyba.
>
> Dekuji Lada Kovarik
>
>

Prepinani Unit

[*] Erik Salaj <winsoft(zv)napri.sk> - 1.3.2001 22:00:23

> napriklad nadherna a prehledna takovato konstrukce:
>
> type
> Rec = record
> p1: integer;
> p2: word;
> p3: int64;
> ...
> end;
>
> var
> r1, r2, r3, r4: Rec;
> begin
> r1 := (r2 + r3) div r4;
> end;

Najviac na tej nadhere obdivujem to, ako z neznamych
hodnot r2, r3 a r4 umozni presne vypocitat r1 ;-)

Erik

Prepinani Unit

[*] Erik Salaj <winsoft(zv)napri.sk> - 1.3.2001 22:02:49

> > Je to dosledok nie najlepsieho navrhu jazyka Pascal. V niektorych
jazykoch
> > goto ani jeho varianty neexistuju a zdrojovy kod je napriek tomu (alebo
> > prave preto?) podstatne prehladnejsi (a nielen prehladnejsi) a vysledny
> > program by mal byt aj rychlejsi.
>
> Mozna, ze Exit, Break a Continue jdou nahradit nejakymi konstrukcemi
(dalsi

To si nespravne pochopil. Neide o nahradu Exit, Break a Continue ale o taky
system konstrukcie softwaru, kde Exit, Break a Continue nepotrebujes.

> IFy) ale vzdy to bude neprehlednejsi a hlavne pomalejsi. Jak zabranis
tomu,

A uz vobec nie dalsie IF-y. A teda to nemusi byt ani neprehladnejsie
ani pomalsie. Naopak, moze to poskytovat este ine vyhody.

> aby aby se FOR cyklus nevykonaval zbytecne (napriklad po te co byl nalezen
> znak pri prohledavani stringa?) (samozrejme muze FOR nahradit napriklad
> Whilem ci Repeatem a manipulovat s ridici promenou cyklu - ale to rozhodne
> neni prehlednejsi.

Stale uvazujes v jazyku "Delphi" a nepripustas moznost inych jazykovych
konstrukcii. Ved ja som napisal, ze v Delphi tieto prikazy maju svoje
opodstatnenie. Takze na urovni "Delphi" jazyka asi lepsie riesenie nenajdes.
To neznamena, ze lepsie riesenie nemoze existovat.

> Jsem pro kazde rozsireni jazyka, ktere vede k tomu, ze muzu neco udelat
> jednoduseji a elegantneji nez drive (Break, Exit, Continue, Result,.....)
a
> je mi uplne jedno, zda to odporuje nebo ne nejakym prihlouplym konvencim
> (at jde o nejake stolete definice jazyka Pascal nebo snahu o cistotu
jazyka
> z nejakeho jineho pohledu). Uvital bych, kdyby Pascal prevzal ve vetsi
mire

Mne neide o ziadne konvencie a uz vobec nie o "cistotu jazyka". Nema
vyznam "zakazat" goto, ked ho "potrebujem". Druha vec je mat taky
vyvojovy system, kde goto nikdy "nepotrebujem" (alebo len vynimocne)
a v takom pripade ma goto nezaujima, nepouzivam ho a nechyba mi.

Bol u mna kamarat, ktory programuje v C-cku a zaujimal sa o Delphi.
Prva vec, ktoru sa ma opytal bola, ci Delphi ma smerniky a smernikovu
aritmetiku, co je jedna zo zakladnych vlastnosti C-ka. Ukazal som mu
realny program v Delphi, kde nebol pouzity ziadny smernik. Nie preto,
ze mi ich niekto zakazal alebo ze odporovali nejakym
"prihlupym konvenciam" ale jednoducho neboli potrebne.

> nektere veci z C++ (moznost prirazeni hodnoty vice promennym najednou,
> prirazeni do promenne zaroven s moznosti porovnani v IFu, podporu maker, a
> naslo by si toho vic jen si ted nevzpomenu,....)

Vymenoval si prave tie oblasti jazyka C++, ktore su znacne problematicke
a niektore z nich su v jazyku C# zrusene. Ked sa pozries na C# (co je podla
mojho nazoru celkom dobry jazyk), zistis, ze z podstaty C++ tam nie je
takmer nic (okrem podobnej syntaxe, prevzatej este z C-cka, ktora ma
prilakat C/C++ programatorov). Naozaj neviem, co by Delphi mohlo
prebrat snad okrem generickych typov, ktore su ale v C++ katastrofalne
implementovane.

Erik


Prepinani Unit

[*] Adam Feistner <feistna(zv)volny(tec)cz> - 1.3.2001 23:38:52

----- Original Message -----
From: "Dalibor Toman" <dtoman(zv)fortech(tec)cz>
Subject: Re: Prepinani Unit

> > Mne to neprijde jako drzeni se prirucek - zatim jsem ho vubec nepotreboval. Jak jsem to pochopil, byl goto uzitecny v dobe
> > AtariBasicu, ktery multitasking, multithreading a podobne vecicky neznal. Problem Goto/Label v ObjectPascalu: goto = tvrdy
skok
> > z nadeklarovaneho prostredi do zcela jineho prostredi. Kdyz vynecham zruseni typove kontroly, existenci/neexistenci
> > ruznych/stejnych promennych, apod. muze se stale neco stat se systemem a takovy skok muze dopadnout kamkoli - mne to prijde
> > jako skok do tmy. Naproti tomu volani funkci/procedur nebo smycek bezi plne v danem kontextu (nikam mi nevyskakuje). Je
> > zarucena typova kontrola a navic jsou pro to procesory optimalizovany (predikce skoku, apod ?).
>
> Nezlob, se ale tohle je totalni nesmysl...
Hmm, to byla ma predstava. Dik za napravu :-)
>
> Vyskyt Goto samozrejme vubec neovlivnuje system :-).
Ma predstava byla, ze existuje bod, ktery ukazuje, kam ma Goto zkocit. A myslel jsem, ze tento bod je ovlivnitelny systemem.

> Krome toho GOTO nikdy neumoznovalo skok mezi logickymi bloky (z procedury do procedury, z unity do unity,...).
>
> PS. libovolny jazyk vyssi urovne je prekladan do prirozeneho jakyka CPU (instrukce CPU) a takovy kod je plny instrukci
podminenych a nepodminenych skoku >(JMP), coz jsou v podstate jinak pojmenovane GOTO ci ON GOTO.
Tohle vim, ale mel jsem na mysli, ze predikce skoku je uzpusobena na rozhodovani typu repeat-until / while apod. a ne na
obcasnem vyskytu skokove instrukce.

Z mlhaveho pohledu na assembler: jsr (jump sub routine) funguje jako volani funkce. Zato jmp je skok? A pokud mam v CPU inst.
cache, tak je podle me logiky pravdepodobnejsi, ze je v te instrukcni cache kod na jsr nez obcasne volany kod jmp. Ale jak
rikam, jsem amater a assembler jsem videl max. z rychliku. Pokud je to zase blbost :-) a mate chvilku, napiste mi to na
soukromy mail. Dik. S pozdravem,

Adam Feistner
feistna(zv)volny(tec)cz
www.volny(tec)cz/feistna/cz.htm


P.S.: to je tedy Goto/Label jen zalezitosti prehlednosti / struktury programu?

Rozdeleni stringu do pole

[*] Lauko #tefan <laukosw(zv)naex.sk> - 1.3.2001 23:49:57

Ahoj,
ja pouzivam tieto fce.

const
deliciZnaky:set of char=[';'];

Function PocetSlov(Co:String):Integer;
Var
I,j:Byte;
Slovo:Boolean;
begin
i:=0;
Slovo:=False;
For j:=1 to Length(Co) do
begin
if (Not(Co[j] in DeliciZnaky)) and (Not(Slovo)) then begin
i:=i+1;
Slovo:=True;
end;
if (Co[j] in deliciZnaky) then slovo:=False;
End;
PocetSlov:=i;
end;


Function VyberSlovo(Veta:String;Nte:Integer):String;
Var
I,j:Integer;
CeleSlovo:Boolean;
Slovo:String
begin
i:=0;
j:=0;
CeleSlovo:=False;
Slovo:='';
repeat
Inc(i);
If (Not (Veta[i] in deliciZnaky)) and (Not (CeleSlovo)) then begin
J:=J+1;
CeleSlovo:=True;
end;
If (Veta[i] in deliciZnaky) then CeleSlovo:=False;
until j = Nte;
Repeat
Slovo:=Slovo +Veta[i];
inc(i);
until (Veta[i] in DeliciZnaky) or (i>Length(Veta));
if Nte = 0 then Slovo:='';
Result:=Slovo;
end;

Pouzitie
Var
S,pom:String;
n:Integer;
begin
S:='a;bbb;ccccc;dddddddddd;';
For n:= 1 to PocetSlov(S) do
begin
Pom:= VyberSlovo(S,n);
...
end;
end;
verim, ze existuje aj lepsie riesenie...
Lauko.


----- Original Message -----
Od: Petr Reichl <p.reichl(zv)gmc.net>
Komu: ListServ - Delphi (el. adresa) <delphi-l(zv)fwd(tec)cz>
Odoslan�: 1. marec 2001 17:53
Predmet: Rozdeleni stringu do pole


> Zdravim vsechny,
>
> je v Delphi nejaka funkce, ktera rozdeli string do pole? Reknu, ze
strednik
> je oddelovac a ona mi vyvtori pole.
>
> S pozdravem,
>
> Petr
>

Ukladanie obrazkov do databazy a nasledna tlac pom

[*] Vaclav Krmela <krmela(zv)ustinadorlici(tec)cz> - 1.3.2001 23:51:00

From: "Roland Turcan - RoTurSoft" <rotursoft(zv)nextra.sk>

> Co sa tyka tlace obrazkov som pochopil ze maju byt v adresari kde je
tlacova
> zostava. Ja pouzivam IB 6 a vsetky zostavy mam ulozene v databaze na
> serveri. Je preto nemyslitelne, aby som pripadne obrazky drzal na disku,
ked
> uz samotna zostava absentuje. Ako by som vysvetlil Sinei aby si obrazok
> brala zo servera ?

Podobnym zpusobem jako u predlohy.
Tedy pres udalost OnNactiObraz. Priklad lze nalezt treba tady:

http://www.delphi(tec)cz/soubor.asp?rok=2000&mesic=Nov&den=15&first=31&soubor=dl
faaabs.htm


Vaclav Krmela

TOracleEvent

[*] Jan Skopov� <jsdelphi(zv)atlas(tec)cz> - 2.3.2001 00:04:42

Jasne, umim odchytava alerty, pokud je spustim prikazove pomoci execute
napriklad v PLSQL. Pokud ale execute umistim do trigeru nebo do procedury,
prekladac tomu nerozumi.

Navic by me zajimalo co jsou to PIPE. Komponenta TOracleEvent rozlisuje
odchytavani Alert nebo Pipe. Nemate nekdo kousek kodu ?

Diky

Jan Skopovy

----- Original Message -----
From: "cis" <cis(zv)atlas(tec)cz>
To: <delphi-l(zv)fwd(tec)cz>
Sent: Thursday, March 01, 2001 9:28 AM
Subject: Re: TOracleEvent


> Zdarec,
> s DAO to jde perfektne. Musis si zaregistrovat nazvy alertu, ktere chces a
> pak je odchytavat (vetsimou nejlepe v dalsim vlaknu).
> alda
>
>
> ----- Original Message -----
> From: Jan Skopov�
> To: delphi-l(zv)fwd(tec)cz
> Sent: Wednesday, February 28, 2001 10:45 PM
> Subject: TOracleEvent
>
>
> Neumite nekdo pracovat s udalostmi pod Oraclem ? Potrebuji odchytit
vsechny
> zmeny v urcite tabulce v databazi pro vsechny aplikace pripojene k
databazi.
>
> Objevil jsem komponentu TOracleEvent, ale neumim ji prakticky pouzit.
>
> Pouzivam komponenty DOA - DirectOracleAccess.
>
> Diky
>
> Jan Skopovy
>
>

Detaily chyby

[*] Petr Vones <pvones(zv)mbox.vol(tec)cz> - 2.3.2001 00:19:31

From: <brant(zv)dcomm(tec)cz>
> Ahoj vespolek, asi se ptam blbe, ale porad nemuzu prijit ne to, jakym
> zpusobem vypsat co nejkompletnejsi strom volani, pokud nastane neosetrena

Ahoj,

asi nejjednodusi mas pouzit ten ukazkovy dialog ExceptDlg. Postup mas popsan
tady:
http://www.delphi(tec)cz/soubor.asp?rok=2001&mesic=feb&den=04&soubor=dlfaaaax.htm

Petr Vones, amatersky programator

Autoincrement + IB6

[*] Ren� Otisk - 2.3.2001 05:37:17

Zavisi od konkretniho pripadu. Ja bych se trba bez StoredProc a navratove
hodnoty generatoru neobesel...

Sroub

----- Original Message -----
From: Zelen� Ales <azeleny(zv)csas(tec)cz>
To: <delphi-l(zv)fwd(tec)cz>
Sent: Thursday, March 01, 2001 2:48 PM
Subject: RE: Autoincrement + IB6


> DDV,
>
> > triggerem ne.
>
> Podle mne prave triggerem,
> predstavte si, ze pak potrebujete neco v ISQL vlozit do tabulky a musite
> myslet jeste na proceduru ,od toho je prece trigger.
>
> Jina vec je ze neni sptany napad insertit procedurama, muze se to hodit k
> ledascemu, mj je to dobra abstrakce od dat, ktera pak umoznuje nechat
> proceduru a zmeit tabulky ve kterych se hrabe.
>
> Klice prideluji v triggerech a nemam s tim problemy.
>
> Navic nic nikomu nebrani, aby si v aplikaci zjistil selectem hodontu
> generatoru a insertoval ji tam - tim odpoadnou namitky jak dohledat prave
> vlozeny zaznam.
>
> > Kombinaci generatoru a ulozene procedury. Sam jsem to mel
> > triggerem a byly s
> > tim silene problemy, pak mi Slavek Skopalik poradil tohle a
> > od te doby jsem
> > happy..:-)
> > Je ukrutny problem totiz potom skutecne dostat tu hodnotu z
> > DB, pokud mas
> > SP, tak zadny problem.
> > Ja mam na AfterInsert handleru IBDatasetu tenhle kod:
> >
> > IBspGetGEN.StoredProcName := 'JmenoSP';
> > IBspGetGEN.ExecProc;
> > DataSet.FieldByName('UNIQ').AsInteger :=
> > IBspGetGEN.ParamByName('GEN').AsInteger;
> >
> > procedura vypada nasledovne, ale da se napsat i lepe. Jeste jsem videl
> > kombinaci generatoru, procedury a triggeru, to chodilo moc
> > pekne, ale z
> > hlavy to nedam..
> >
> > CREATE PROCEDURE JmenoSP RETURNS (gen integer) AS
> > BEGIN
> > gen=gen_id(JmenoGeneratoru, 1);
> > END!
> >
> > Tohle je, myslim, uplne nejjednodussi, ale funkcni, vylepsenim se meze
> > nekladou.
>
> No IMHO to nejednodussi neni:-)
>
> Trigger ma tu vyhodu, ze je z hlediska aplikace tranpsarentni, ta porcuje
> proste s tabulkou.
>
> Cimz samozrejme nerikam, ze je to nemozne, nbeo nesmyslne, podle mne je to
> jen nemetodicke a nevhodne.
> a.

Autoincrement + IB6

[*] Petr Palicka <petr.palicka(zv)atlas(tec)cz> - 2.3.2001 06:14:56

> Urcite je tam bug. Chvili to chodi, chvili ne, ale podstatne je, ze
> generovat hodnotu PK je lepsi triggerem nebo SP. Nechtel bych po sobe
> predelavat aplikaci pokud by bylo treba portovat na jiny SQL
> server nebo pouzit jine komponenty pro pristup k IB nebo FireBirdu.
> Frantisek Sevcik, Anexis

to mas pravdu, ale pokut tam nedas klic jiz pred postem, nejses schopen
refresnout tu spravnou vetu, takze ja si tam dam klic pred postem, ale
mam tem trigger, kterej pokud neni klic vyplnen ho doplni.

dekuji PeC(zv)

CU onTheFutureOfMatrix
MatriX.CyberSpace.Cz

/~~~~~~~~~~~~~~~~~~~~~~~~~~~~\
|[smtp:petr.palicka(zv)atlas(tec)cz]|
|[smtp:peca(zv)email(tec)cz] |
\~~~~~~~~~~~~~~~~~~~~~~~~~~~~/

Autoincrement + IB6

[*] Ota Maly <ota.maly(zv)volny(tec)cz> - 2.3.2001 07:02:41

Ahoj,
na to vlozeni z ISQL je prave ten trigger doplnujici proceduru, jak jsem
psal, ze ho z hlavy nedam. Ale pokud potrebujes ladit a vrazit tam do toho
AutoInc pole urcitou hodnotu, tak musis trigger nejdrive vypnout..
Me osobne se nedarilo jednoduse (IB6; IBX) ziskat hodnotu toho
vygenerovaneho pole. Muze to byt take pouzitim urciteho pristupu (IBX),
pokud nekdo pouziva treba MS SQL, vubec ho to treba trapit nemusi, to ja
nevim..

S pozdravem
Ota Maly

PaPouch elektronika
http://www.papouch.com


> -----Original Message-----
> From: owner-delphi-l(zv)fwd(tec)cz [mailto:owner-delphi-l(zv)fwd(tec)cz]On
> Behalf Of Zelen� Ales
> Sent: Thursday, March 01, 2001 2:48 PM
> To: 'delphi-l(zv)fwd(tec)cz'
> Subject: RE: Autoincrement + IB6
>
>
> DDV,
>
> > triggerem ne.
>
> Podle mne prave triggerem,
> predstavte si, ze pak potrebujete neco v ISQL vlozit do tabulky a musite
> myslet jeste na proceduru ,od toho je prece trigger.
>
> Jina vec je ze neni sptany napad insertit procedurama, muze se to hodit k
> ledascemu, mj je to dobra abstrakce od dat, ktera pak umoznuje nechat
> proceduru a zmeit tabulky ve kterych se hrabe.
>
> Klice prideluji v triggerech a nemam s tim problemy.
>
> Navic nic nikomu nebrani, aby si v aplikaci zjistil selectem hodontu
> generatoru a insertoval ji tam - tim odpoadnou namitky jak dohledat prave
> vlozeny zaznam.
>
> > Kombinaci generatoru a ulozene procedury. Sam jsem to mel
> > triggerem a byly s
> > tim silene problemy, pak mi Slavek Skopalik poradil tohle a
> > od te doby jsem
> > happy..:-)
> > Je ukrutny problem totiz potom skutecne dostat tu hodnotu z
> > DB, pokud mas
> > SP, tak zadny problem.
> > Ja mam na AfterInsert handleru IBDatasetu tenhle kod:
> >
> > IBspGetGEN.StoredProcName := 'JmenoSP';
> > IBspGetGEN.ExecProc;
> > DataSet.FieldByName('UNIQ').AsInteger :=
> > IBspGetGEN.ParamByName('GEN').AsInteger;
> >
> > procedura vypada nasledovne, ale da se napsat i lepe. Jeste jsem videl
> > kombinaci generatoru, procedury a triggeru, to chodilo moc
> > pekne, ale z
> > hlavy to nedam..
> >
> > CREATE PROCEDURE JmenoSP RETURNS (gen integer) AS
> > BEGIN
> > gen=gen_id(JmenoGeneratoru, 1);
> > END!
> >
> > Tohle je, myslim, uplne nejjednodussi, ale funkcni, vylepsenim se meze
> > nekladou.
>
> No IMHO to nejednodussi neni:-)
>
> Trigger ma tu vyhodu, ze je z hlediska aplikace tranpsarentni, ta porcuje
> proste s tabulkou.
>
> Cimz samozrejme nerikam, ze je to nemozne, nbeo nesmyslne, podle mne je to
> jen nemetodicke a nevhodne.
> a.
>
>

Je mozne v registrech Win95 skryt hidden a system

[*] Tomas Vladik <tom.vladik(zv)swadvice(tec)cz> - 2.3.2001 07:06:27

> netusite nekde, zda je mozne v registrech Windows 95 nastavit schovani
> skrytych a systemovych souboru v okne pruzkumnika?
> We Win98 a WinNT to neni problem, tam to je v
>
> HKEY_CURRENT_USER,
> 'Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced', 'Hidden'
>
> Ale ve Win95 to tak zrejme neni. Nevide teda nekdo, kde to jde nastavit?
>

"Samoobsluha" (ne tak doslova):

This was for some version of Win95 I used to have but you will have to
check it out to ensure it applies to yours.

REGEDIT4

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer]

;1.Show all files
"ShellState"=hex:10,00,00,00,07,00,00,00,00,00,00,00,00,00,00,00


;2.Hide files of these types .DLL,.SYS etc
"ShellState"=hex:10,00,00,00,06,00,00,00,00,00,00,00,00,00,00,00

;3.Hide MS-DOS file extensions for registered types
"ShellState"=hex:10,00,00,00,05,00,00,00,00,00,00,00,00,00,00,00

;4.Hide files of these types.... AND Hide MS-DOS.... (2 & 3)
"ShellState"=hex:10,00,00,00,04,00,00,00,00,00,00,00,00,00,00,00


...Alan
--
Alan Edwards, MS MVP W95/98 Systems

Seriova komunikace

[*] Ota Maly <ota.maly(zv)volny(tec)cz> - 2.3.2001 07:07:42

Aha,
tak to jo, ja se nesnazim dostat pod 1 us, ale staci mi pod 1ms. To je to,
na co jsem se ptal, resit pres driver ( a ceho jsem se obaval, ze se dozvim
:). Cely problem vyplynul pri prechodu z DOSu do Win, tenkrat tu kolem toho
bylo docela halo..
Ja se ptal, jestli ve Win nejak nejde cist primo posledni odchozi bajt,
respektive vyprazdneni bufferu. Hmm, asi nejde..:-( Ona tam ta funkce je
(jak jsi psal), ale vraci "prazdny buffer" o jeden znak drive, nez tomu tak
skutecne je..:-((

Stejne diky
Ota Maly

PaPouch elektronika
http://www.papouch.com


> -----Original Message-----
> From: owner-delphi-l(zv)fwd(tec)cz [mailto:owner-delphi-l(zv)fwd(tec)cz]On
> Behalf Of Slavomir Skopalik
> Sent: Thursday, March 01, 2001 9:51 AM
> To: 'delphi-l(zv)fwd(tec)cz'
> Subject: RE: Seriova komunikace
>
>
> Nebyl to preklep, je zde spise problem jinde. Casovani PC (pod
> Win) neni uzpusobeno na presne
> casovani -> pouze pravdepodobnost ze se kod vykona a to i kdyz
> tam nebudes mit
> Sleep. Sleep je ale implementacne zavisly, takze je to pouze
> takova zaslepka (Sleep(1) trva standartne 5-10ms).
> Pokud opravdu trvas na okamzitem prepnuti, tak to nesmis resit
> pres OS (a musis zakazat preruseni).
> Pokud bys to resil jako driver, tak ses se schopen dostat na cca
> 15us (nastavit si casovac pro interni hodiny a ten si odchytavat).
> Takto se resi SoftPLC (Citech, nebo tak nejak se to pise), tam je
> to udelano tak,
> se se WinNT pousti jako dceriny process totohotu driveru (spise mini OS).
>
> Slavek
>
> >
> > Ahoj,
> > pokud mas na mysli 1 mikrosekundu, tak to mi samozrejme jako doba na
> > prepnuti postacuje, ale pokud to byl preklep a byla myslena
> milisekunda, tak
> > tomu tak neni.
> > Norma tez definuje linku 485 pro rychlosti okolo 1MBitu, tam je jedna
> > milisekunda naprosta vecnost. Pokud jsi vsak myslel skutecne
> mikrosekundu,
> > tak predchozi vetu ignoruj.
> > Podle pouziti sleep() asi mluvis o milisekunde, a pod ni se samozrejme
> > dostat lze uplne v pohode, nikoli vsak pri automatickem prepinani smeru,
> > proto jsem se ptal na moznosti rucniho prepinani.
> > U automatiky v prevodniku je jeste problem s tim, ze cim kratsi casova
> > konstanta na prepnuti, tim vyssi je minimalni rychlost (odporna definice
> > :-), napr. pri 3ms si na 1200Bd neskrtnes, prepne to klidne
> uprostred bytu.
> >
> > Ota Maly
>
>
>

OT: Rozdeleni disku

[*] Bednar��k Dalibor <dalibor(zv)torola(tec)cz> - 2.3.2001 07:17:21

Ahoj

Mohl by mi nekdo poradit jak bezpecne rozdelit 15GB disk na dva?
Jakou utilitu na to pouzit.

Predem dekuji
Dalibor
(Win2000)

TOracleEvent

[*] Slavek Rydval <rk(zv)atrey.karlin.mff.cuni(tec)cz> - 2.3.2001 07:46:56

> Navic by me zajimalo co jsou to PIPE. Komponenta TOracleEvent rozlisuje
> odchytavani Alert nebo Pipe. Nemate nekdo kousek kodu ?
****Ahoj, strucne receno PIPE je roura, kudy prochazi data.
Pouzivaji se k tomu, ze v PL/SQL tam hazes data a pak je nekde
odchytavas (klasicky se tak ladi kod na Oracle).

Slavek

> Jan Skopovy


Setrete vodou. Sprchujte se s pritelem/pritelkyni.
-------------------------------------------------
http://atrey.karlin.mff.cuni(tec)cz/~rk
http://swnet(tec)cz
-------------------------------------------------


Rozdeleni stringu do pole

[*] Milan Tome� <Milan.Tomes(zv)haida(tec)cz> - 2.3.2001 07:49:48

V Paradoxu se tato funkce jmenuje breakApart a ja ji taky tak pouzivam :)

type
TDynArrayOfString = array of string;

function BreakApart(const S : string; const Delimiter : Char) :
TDynArrayOfString;
var
i,j : integer;
Str : string;

begin
j := 0;
Str := S;
if copy(Str,Length(Str),1) <> Delimiter then
Str := Str + Delimiter;
repeat
for i := 0 to Length(Str) do begin
if Str[i] = Delimiter then begin
j := j + 1;
SetLength(Result,j);
Result[j-1] := copy(Str,1,i - 1);
Str := copy(Str,i + 1,Length(Str));
Break;
end;
end;
until Length(Str) = 0;
end;

Milan Tomes


> Zdravim vsechny,
>
> je v Delphi nejaka funkce, ktera rozdeli string do pole? Reknu,
> ze strednik
> je oddelovac a ona mi vyvtori pole.
>
> S pozdravem,
>
> Petr


Autoincrement + IB6

[*] Milan Tomes <Milan.Tomes(zv)haida(tec)cz> - 2.3.2001 08:00:33

Jak tak sleduji debatu ohledne Autoincrementu tak vam musim rict, ze tento
typ jsem si odvykl pouzivat. Velmi casto se mi pri jeho pouzivani totiz
stavalo, ze jsem musel vytvorit dalsi podrizenou tabulku a v tom okamziku
jsem nevedel ID a bylo to v [censored]. Presel jsem na rucne generovane ID a
musim rict, ze k plne spokojenosti - rozsireni databaze o dalsi podrizenou
tabulku jde bez vetsiho zasahu do progr. kodu.

S pozdravem

Milan Tome�
Vedouc� v�vojov�ho t�mu Windows
Softwarehouse HAiDA s.r.o.
Nov� Bor
tel: 0424/722291, 0424/33197
email: Milan.Tomes(zv)haida(tec)cz


> Zavisi od konkretniho pripadu. Ja bych se trba bez StoredProc a navratove
> hodnoty generatoru neobesel...
>
> Sroub
>
>
> > DDV,
> >
> > > triggerem ne.
> >
> > Podle mne prave triggerem,
> > predstavte si, ze pak potrebujete neco v ISQL vlozit do tabulky a musite
> > myslet jeste na proceduru ,od toho je prece trigger.
> >
> > Jina vec je ze neni sptany napad insertit procedurama, muze se
> to hodit k
> > ledascemu, mj je to dobra abstrakce od dat, ktera pak umoznuje nechat
> > proceduru a zmeit tabulky ve kterych se hrabe.
> >
> > Klice prideluji v triggerech a nemam s tim problemy.
> >
> > Navic nic nikomu nebrani, aby si v aplikaci zjistil selectem hodontu
> > generatoru a insertoval ji tam - tim odpoadnou namitky jak
> dohledat prave
> > vlozeny zaznam.
> >
> > > Kombinaci generatoru a ulozene procedury. Sam jsem to mel
> > > triggerem a byly s
> > > tim silene problemy, pak mi Slavek Skopalik poradil tohle a
> > > od te doby jsem
> > > happy..:-)
> > > Je ukrutny problem totiz potom skutecne dostat tu hodnotu z
> > > DB, pokud mas
> > > SP, tak zadny problem.
> > > Ja mam na AfterInsert handleru IBDatasetu tenhle kod:
> > >
> > > IBspGetGEN.StoredProcName := 'JmenoSP';
> > > IBspGetGEN.ExecProc;
> > > DataSet.FieldByName('UNIQ').AsInteger :=
> > > IBspGetGEN.ParamByName('GEN').AsInteger;
> > >
> > > procedura vypada nasledovne, ale da se napsat i lepe. Jeste jsem videl
> > > kombinaci generatoru, procedury a triggeru, to chodilo moc
> > > pekne, ale z
> > > hlavy to nedam..
> > >
> > > CREATE PROCEDURE JmenoSP RETURNS (gen integer) AS
> > > BEGIN
> > > gen=gen_id(JmenoGeneratoru, 1);
> > > END!
> > >
> > > Tohle je, myslim, uplne nejjednodussi, ale funkcni, vylepsenim se meze
> > > nekladou.
> >
> > No IMHO to nejednodussi neni:-)
> >
> > Trigger ma tu vyhodu, ze je z hlediska aplikace tranpsarentni,
> ta porcuje
> > proste s tabulkou.
> >
> > Cimz samozrejme nerikam, ze je to nemozne, nbeo nesmyslne,
> podle mne je to
> > jen nemetodicke a nevhodne.
> > a.

Preklad FreeUDFLib pod linuxem

[*] Marian Jonas <marian.jonas(zv)volny(tec)cz> - 2.3.2001 08:33:08

Toto je zprava ve formatu MIME obsahujmcm vmce hastm.
ib util malloc je funkce ktera se nachazi v IB pro Windows v IB UTIL.DLL v adresari BIN. Zkuste se podivat jestli nemate nekde v kodu #include <ib util.h>

Marian Jonas
----- Original Message -----
From: Pavel Bare#
To: delphi-l(zv)fwd(tec)cz
Sent: Tuesday, February 27, 2001 2:58 PM
Subject: Preklad FreeUDFLib pod linuxem


Zdravim vsechny

Zkousel jste uz nekdo prelozit FreeUDFLib pod LINUXEM (SuSe 6.3) ?

Mne to stale hlasi chybu: undefined reference to 'ib util malloc'

Potrebne funkce bych si i napsal sam, stejne potrebuji nejake vlastni. ale numim C a preklady kodu pod LINUXem taky moc nezvladam.
Pomohlo by mi i pokud ma nekdo nejake vlastni funkce + makefile.
Snad bych k nim ty svoje uz nejak dotvoril.

dekuji za kazdou pomoc

Pavel Bare#

zajimavy problem s UNION

[*] Ota Maly <ota.maly(zv)volny(tec)cz> - 2.3.2001 08:36:06

Ahoj,
ja vim, rozdil mezi UNION a UNION ALL uz znam, ale prohozeni SELECTu mi
trochu nesedi..
Bohuzel se k tomu nikdo moc nevyjadril, takze to pro me zustava zahadou..:-(

S pozdravem
Ota Maly

PaPouch elektronika
http://www.papouch.com


> -----Original Message-----
> From: owner-delphi-l(zv)fwd(tec)cz [mailto:owner-delphi-l(zv)fwd(tec)cz]On Behalf Of
> Ji�� G�th
> Sent: Thursday, March 01, 2001 8:20 AM
> To: delphi-l(zv)fwd(tec)cz
> Subject: Re: zajimavy problem s UNION
>
>
> Ahoj,
> k tvemu problemu bych chtel rici, ze pokud za UNION nenapises ALL, pak
> vysledna mnozina je DISTINCTem (tedy jednoznacnych (ci stejnych)radku)
> puvodnich dat. Aspon takhle to funguje na databazich, ktere znam ja -
> INFORMIX, ORACLE.
> Ale priznam se ze take moc nechapu to prohozeni poradi selektu- to by se
> snad melo chovat stejne...
>
> Jiri Goth
>
> -----P�vodn� zpr�va-----
> Od: Ota Maly <ota.maly(zv)volny(tec)cz>
> Komu: Delphi konference <delphi-l(zv)fwd(tec)cz>
> Datum: 28. �nora 2001 23:09
> P�edm�t: IB6: zajimavy problem s UNION
>
>
> >Ahoj,
> >resili jsem tu s kolegou zajimavy problem.
> >Predem upozornuji, ze v SQL zas tak jisty nejsem, mozna skutecne
> delam neco
> >spatne, ale mnoziny z prvni tridy mi napovidaji, ze by to melo fungovat.
> >
> >Mejme SQL dotaz (SELECTy byly samozrejme o neco slozitejsi):
> >SELECT neco FROM table1
> >UNION
> >SELECT necojineho FROM table2
> >
> >Samotne selecty vraci jeden a dva zaznamy. Cekal bych, ze kdyz udelam
> UNION,
> >tak vrati tri zaznamy. Nikoli, vratil dva.
> >-Pokud jsem prehodil poradi SELECTu, vratil tri - tohle me
> dostalo nejvice
> >:-O
> >-Pokud jsem misto UNION pouzil UNION ALL, vratil tri.
> >
> >Toto vse se projevuje pouze na jednom mem gdb souboru, udelal jsem
> >Backup&Restore, pak jeste sweep, a chova se to stale stejne.
> >Totez tady videl dalsi clovek z konference (Rene Otisk), skutecne nejsem
> >blazen :-).
> >
> >Zkouseno v IBConsole 323 a IBWISQL, tez v programu v Delphi,
> vsude stejne.
> >Pokud to chce nekdo zkusit, mohl bych i gdb soubor zaslat na soukr.mail.
> >
> >Win2000,D5P;IBX4.4;IB6;
> >
> >
> >S pozdravem
> >Ota Maly
> >
> >PaPouch elektronika
> >http://www.papouch.com
> >
> >
> >
> >
>
>

Formular a datamodul.

[*] Bohdan Voska <bohdan(zv)softok(tec)cz> - 2.3.2001 08:36:57

Ahoj,

tak jak navrhujes, jsem to zkousel uz taky, ale uspech moc velky nebyl.
Nakonec jsem na jedno pro me moc nehezke reseni prisel. Udelal jsem to tak
jak popisujes, ale u datoveho modulu jsem zalozil proceduru loaded, ktera
vypadala asi takhle.

procedure TDataModule3.loaded;
begin
inherited;
Name := 'XXXXX'; // zmenim nazev datamodulu
end;

Zjistil jsem, ze delphi se orientuje podle nazvu, takze kdyz ten formular
nazev datamodulu nenajde, tak se na nej nenazmeruje. Problem je, ale s
podrizenymi formulari, ktere jsou napojeny na uvedeny datamodul.


Bohdan Voska
bohdan(zv)softok(tec)cz
>----- Original Message -----
>From: "Jir� Foldyna" <jiri.f(zv)avizo(tec)cz>
>To: <delphi-l(zv)fwd(tec)cz>
>Sent: Thursday, March 01, 2001 5:19 PM
>Subject: RE: Formular a datamodul.
>

>Ahoj,
>
>nejsem si jisty, jestli nejsem mimo misu, ale co to udelat tak, ze
>nepouzijes Autocreate na ten datamodul, treba nejak takto:
>
>Do toho formu das
>
>uses
> MyDataModul;
>
>var
> Datamodul : TMyDataModul
>
>do OnCreate das
>
> DataModul := TMyDataModul.Create(...
>
>a do OnDestroy das
> DataModul.Release;
>
>Pak by se Ti pro kazdou instanci formulare mela vytvorit vlastni instance
>datamodulu - aspon myslim.
>
>Je to jen idea z hlavy, tak to radsi neprekladej :-))
>
>Ing. Jiri Foldyna
>mailto:jiri.f(zv)avizo(tec)cz
>
>
> -----P�vodn� zpr�va-----
> Od: owner-delphi-l(zv)fwd(tec)cz [mailto:owner-delphi-l(zv)fwd(tec)cz]za uzivatele
> Bohdan Voska
> Odesl�no: 1. b�ezna 2001 8:25
> Komu: delphi-l(zv)fwd(tec)cz
> P�edm�t: Re: Formular a datamodul.
>
>
>
> > Vazby provadet rucne, tj. nelze proves vazbu pres object inspector.
> > Asi nejlepsi je si primo v tom formulari vytvorit i ten DataModul
> > a pak nastavit odkazy.
>
> Myslis jako zrusit datamodul a tabulky a query nahazet na
> formular? Nebo jde
> nejakym zpusobem DataModul nahodit primo na formular, aby byl
> jeho soucasti.
> Abych rekl pravdu rucne se mi to moc delat nechce.
>
> Bohdan
>
>
>
>
>
>
>
>
> >
> > > Ahoj,
> > >
> > > mam formular a k nemu datamodul. Zalozim formular
> vicekrat a potrebuji,
> aby
> > > datovy modul byl ke kazdemu formulari zvlast. Problem je v tom, ze
> vsechny
> > > formulare se odkazuji na prvne zalozeny datovy modul.
> Prosim poradte,
> jak se
> > > tohle ma spravne resit. Predem diky.
> > >
> > >
>
>
>

Prepinani Unit

[*] Larry Lurex <DelphiForum(zv)seznam(tec)cz> - 02.3.2001 08:39:37

Mohl bys mi sdelit co je problematickeho natechto prikladech ? :

Priklad 1.
int x1 = x2 = x3 = 1;

Priklad 2.
if ((f=fopen("neco.txt",rt))==NULL)

Petr.

Dne 1.�b�ezen�2001, <delphi-l(zv)fwd(tec)cz> napsal:

> > nektere veci z C++ (moznost prirazeni hodnoty vice promennym najednou,
> > prirazeni do promenne zaroven s moznosti porovnani v IFu, podporu maker, a
> > naslo by si toho vic jen si ted nevzpomenu,....)
>
> Vymenoval si prave tie oblasti jazyka C++, ktore su znacne problematicke
> a niektore z nich su v jazyku C# zrusene. Ked sa pozries na C# (co je podla
> mojho nazoru celkom dobry jazyk), zistis, ze z podstaty C++ tam nie je
> takmer nic (okrem podobnej syntaxe, prevzatej este z C-cka, ktora ma
> prilakat C/C++ programatorov). Naozaj neviem, co by Delphi mohlo
> prebrat snad okrem generickych typov, ktore su ale v C++ katastrofalne
> implementovane.
>
> Erik
>
>

_____________________________________________________________________
Poctenicko pro kazdy den: http://www.novinky(tec)cz


Problem v Sinee

[*] David Lebeda <david.lebeda(zv)comarr(tec)cz> - 2.3.2001 08:39:53

Ahoj,

narazil jsem na takovyto problem se Sineou.

Mam D4 C/S, Sinea 3.39q z 9.2.2000. Jednoduchy formular, na
nem jedna Query, DBGrid, Sestava a Button. Po stisknuti Buttonu
se zavola Sestava1.Preview. V poradku se zobrazi i vytiskne, ale
po pokusu o skonceni prace s tim nahledem vznikne vyjimka
Record not found.
Zjistil jsem nasledujici. Pokud query neobsahuje parametry ve
WHERE, je vse v poradku, ale jakmile tam dam podminku s
parametrem, nastava uvedeny problem.

Setkal jste se s tim nekdo?

David


Rozdeleni disku

[*] Sula Milos <milos.sula(zv)oku-su(tec)cz> - 2.3.2001 08:44:53

Partition Magic 6

-----Original Message-----
From: Bednar��k Dalibor [mailto:dalibor(zv)torola(tec)cz]
Sent: Friday, March 02, 2001 7:17 AM
To: forum
Subject: OT: Rozdeleni disku


Ahoj

Mohl by mi nekdo poradit jak bezpecne rozdelit 15GB disk na dva?
Jakou utilitu na to pouzit.

Predem dekuji
Dalibor
(Win2000)

Prepinani Unit

[*] Pavol Kakacka <paka(zv)aktis(tec)cz> - 2.3.2001 08:53:16

> ----- Original Message -----
> From: "Pavol Kakacka" <paka(zv)aktis(tec)cz>
> Subject: Re: Prepinani Unit
>
> > > jej je pro mne mnohem dulezitejsi, nez slepe se drzet prirucek.
>

Tak toto som nepisal ja!!!!

Pavol Kakacka
kasix(zv)atlas(tec)cz


> Mne to neprijde jako drzeni se prirucek - zatim jsem ho vubec
nepotreboval. Jak jsem to pochopil, byl goto uzitecny v dobe
> AtariBasicu, ktery multitasking, multithreading a podobne vecicky neznal.
Problem Goto/Label v ObjectPascalu: goto = tvrdy skok
> z nadeklarovaneho prostredi do zcela jineho prostredi. Kdyz vynecham
zruseni typove kontroly, existenci/neexistenci
> ruznych/stejnych promennych, apod. muze se stale neco stat se systemem a
takovy skok muze dopadnout kamkoli - mne to prijde
> jako skok do tmy. Naproti tomu volani funkci/procedur nebo smycek bezi
plne v danem kontextu (nikam mi nevyskakuje). Je
> zarucena typova kontrola a navic jsou pro to procesory optimalizovany
(predikce skoku, apod ?).
>
> S pozdravem,
>
> Adam Feistner
> feistna(zv)volny(tec)cz
> www.volny(tec)cz/feistna/cz.htm
>

OT: Rozdeleni disku

[*] Milan Dvorak <Dvorak.Ucitel.GYMNAZIUM(zv)gymzn(tec)cz> - 2.3.2001 08:56:32

> Ahoj
>
> Mohl by mi nekdo poradit jak bezpecne rozdelit 15GB disk na dva?
> Jakou utilitu na to pouzit.
>

Ahoj,
Fdisk.


Milan Dvorak
dvorak(zv)gymzn(tec)cz


prepocet

[*] DHederer(zv)softip.sk - 2.3.2001 08:57:28

hi all,

tak som zistil ze CPI nemaju vplyv na vysku pretoze udavaju hustotu tlace
(character per inch).
takze to pojde cez DPI tej ktorej tlaciarne.

d za kazdy tip, ktory mi poslete.

Rozdeleni disku

[*] Pavol Kaka�ka <paka(zv)aktis(tec)cz> - 2.3.2001 09:04:49

> Mohl by mi nekdo poradit jak bezpecne rozdelit 15GB disk na dva?
> Jakou utilitu na to pouzit.

Partition Magic ak tam uz mas data. Alebo Win2000 a disk manager. Ak tam
data nemas tak stary dobry fdisk z DOSu.

Postup u fdisku: Vytvorit 1 hlavny odiel na XX MB. Potom 1 extended o
zvysnej velksoti. Na ten Extended vytvorit X logickych dalsich diskov podla
potreby v tovojom pripade 1. Nastavit aktivny oddiel ten prvy (potreba pre
start systemu). Naformatovat.

Pavol Kaka�ka
kasix(zv)atlas(tec)cz

Otvorenie word dokumentu

[*] Ing. Jozef Baranec <joba(zv)digitaldocuments.org> - 2.3.2001 09:04:38

Mam problem s otvorenim wordovskeho dokumentu (neviem mu zadat cestu k suboru). Zatial to robim nasledovne: WordApplication1.Documents.Open(...). Ale stale mi vyhadzuje chybu pri kompilacii.

Rozdeleni disku

[*] Milan Tome� <Milan.Tomes(zv)haida(tec)cz> - 2.3.2001 09:15:33

pokud je ten disk prazdny tak pouzij fdisk jinak Partition Magic

Milan Tomes

>
> Ahoj
>
> Mohl by mi nekdo poradit jak bezpecne rozdelit 15GB disk na dva?
> Jakou utilitu na to pouzit.
>
> Predem dekuji
> Dalibor
> (Win2000)
>
>

Prepinani Unit

[*] Tomas Vladik <tom.vladik(zv)swadvice(tec)cz> - 2.3.2001 09:41:41

> temito moznostmi radostne nejasal, ba naopak, jeste bych privital
> pretezovani operatoru. Puriste by z toho jiste zesileli a houfne by

Ony uz nektere operatory pretizeny jsou, napr. :

"+" funguje pro integerove i floatove typy, pro retezce ...
"-", "*" funguje pro integerove i floatove typy ...

Ale pokud clovek nehodla zapisovat nejake silene vyrazy, tak mu vetsinou
vystaci standardni volani funkci a nepotrebuje operatory ...


T.

_______________________________
Tomas Vladik
vladik(zv)swadvice(tec)cz
ICQ# 101763081

Prepinani Unit

[*] Martin =?iso-8859-2?Q?Pe=B9ava?= <jimx(zv)volny(tec)cz> - 02.3.2001 10:52:43

Uz sme sice debatu uzavreli ... ale ...
vzdyt stejne kazdej case, if, while, repeat/until, for je nakonec (do
ASM) prelozenej jako skok ... tak to nereste ... a radsi pudeme
programovat ... :-)

--
Martin Pe#ava

/--------------------------------------------------------------\
| E-Mail: mailto:mail(zv)jimx.net ICQ# 18148896 |
| WebMaster of |
|http://miss.jimx.net - Neofici�ln� str�nka MISS #R a CyberMiss|
\--------------------------------------------------------------/

Prepinani Unit

[*] Erik Salaj <winsoft(zv)napri.sk> - 2.3.2001 10:52:13

> Faktem je, ze pokud se chci neco naucit naprogramovat jsou komponenty
>cestou do pekel. TCP/IP je toho skvelym prikladem - spousty lidi se snazi
>delat veci, ktere jim umozni neco poslat internetem. Najdou nejakou
>komponentu, ktera za jistych okolnosti funguje, pak najednou nastanou
>problemy a ty lidi vubec netusi co se deje, nejsou schopni si najit popisy
>chybovych kodu systemovych funkci (msdn.microsoft.com ma pritom kazdy pred
>nosem), netusi ze existuji nejake verejne pristupne standardy (RFC) atd
>atd. Staci se podivat do borlandich newsu, kolik lidi se tam pta stale
>dokola (proc pouzivat archivy a prohledavace newsu, kdyz zeptat se je tak
>jednoduche?) na samozrejme veci.

A v com je vyhoda, ak nenajdu alebo nepouziju komponentu? Spominane problemy
vtedy nenastanu?

Erik

Seriova komunikace

[*] Milan Tomes <Milan.Tomes(zv)haida(tec)cz> - 2.3.2001 11:07:46

Pokud by si potreboval sleep na 1ms tak se podivej na funkci timeSetEvent a
timeKillEvent, ktery nepouziva zpravu WM_TIMER, ale vola callback funkci,
jejiz adresu predas jako parametr. Mam odzkouseno, ze to funguje.

Milan Tomes


> Aha,
> tak to jo, ja se nesnazim dostat pod 1 us, ale staci mi pod 1ms. To je to,
> na co jsem se ptal, resit pres driver ( a ceho jsem se obaval, ze
> se dozvim
> :). Cely problem vyplynul pri prechodu z DOSu do Win, tenkrat tu
> kolem toho
> bylo docela halo..
> Ja se ptal, jestli ve Win nejak nejde cist primo posledni odchozi bajt,
> respektive vyprazdneni bufferu. Hmm, asi nejde..:-( Ona tam ta funkce je
> (jak jsi psal), ale vraci "prazdny buffer" o jeden znak drive,
> nez tomu tak
> skutecne je..:-((
>
> Stejne diky
> Ota Maly
>
> PaPouch elektronika
> http://www.papouch.com
>
>
> > -----Original Message-----
> > From: owner-delphi-l(zv)fwd(tec)cz [mailto:owner-delphi-l(zv)fwd(tec)cz]On
> > Behalf Of Slavomir Skopalik
> > Sent: Thursday, March 01, 2001 9:51 AM
> > To: 'delphi-l(zv)fwd(tec)cz'
> > Subject: RE: Seriova komunikace
> >
> >
> > Nebyl to preklep, je zde spise problem jinde. Casovani PC (pod
> > Win) neni uzpusobeno na presne
> > casovani -> pouze pravdepodobnost ze se kod vykona a to i kdyz
> > tam nebudes mit
> > Sleep. Sleep je ale implementacne zavisly, takze je to pouze
> > takova zaslepka (Sleep(1) trva standartne 5-10ms).
> > Pokud opravdu trvas na okamzitem prepnuti, tak to nesmis resit
> > pres OS (a musis zakazat preruseni).
> > Pokud bys to resil jako driver, tak ses se schopen dostat na cca
> > 15us (nastavit si casovac pro interni hodiny a ten si odchytavat).
> > Takto se resi SoftPLC (Citech, nebo tak nejak se to pise), tam je
> > to udelano tak,
> > se se WinNT pousti jako dceriny process totohotu driveru (spise
> mini OS).
> >
> > Slavek
> >
> > >
> > > Ahoj,
> > > pokud mas na mysli 1 mikrosekundu, tak to mi samozrejme jako doba na
> > > prepnuti postacuje, ale pokud to byl preklep a byla myslena
> > milisekunda, tak
> > > tomu tak neni.
> > > Norma tez definuje linku 485 pro rychlosti okolo 1MBitu, tam je jedna
> > > milisekunda naprosta vecnost. Pokud jsi vsak myslel skutecne
> > mikrosekundu,
> > > tak predchozi vetu ignoruj.
> > > Podle pouziti sleep() asi mluvis o milisekunde, a pod ni se samozrejme
> > > dostat lze uplne v pohode, nikoli vsak pri automatickem
> prepinani smeru,
> > > proto jsem se ptal na moznosti rucniho prepinani.
> > > U automatiky v prevodniku je jeste problem s tim, ze cim kratsi casova
> > > konstanta na prepnuti, tim vyssi je minimalni rychlost
> (odporna definice
> > > :-), napr. pri 3ms si na 1200Bd neskrtnes, prepne to klidne
> > uprostred bytu.
> > >
> > > Ota Maly
> >
> >
> >
>

Prepinani Unit

[*] Zbysek Hlinka <hlinka(zv)hlinka(tec)cz> - 2.3.2001 11:12:17

On 1 Mar 2001, at 22:00, Erik Salaj wrote:

> > napriklad nadherna a prehledna takovato konstrukce:
> >
> > type
> > Rec = record
> > p1: integer;
> > p2: word;
> > p3: int64;
> > ...
> > end;
> >
> > var
> > r1, r2, r3, r4: Rec;
> > begin
> > r1 := (r2 + r3) div r4;
> > end;
>
> Najviac na tej nadhere obdivujem to, ako z neznamych
> hodnot r2, r3 a r4 umozni presne vypocitat r1 ;-)

Hm, a brani ti nekdo, aby sis ty hodnoty nejprve naplnil? :-)
Treba takto:
r2 := (4, 7, 12);


S pozdravem

Zbysek Hlinka

http://www.hlinka(tec)cz http://www.slhaters(tec)cz
Phones: 02/795 29 56; GSM: 0603 551 282
Krystofova 1016, 149 00 Praha 4
CZ


Prepinani Unit

[*] Zbysek Hlinka <hlinka(zv)hlinka(tec)cz> - 2.3.2001 11:12:16

On 1 Mar 2001, at 21:38, Erik Salaj wrote:

> > Muzete mi nekdo prozradit kde je problem kdyz GOTO pouziji?
>
> Hrozi znacna neprehladnost programu.

:-) Neni to spis ve zpusobu programovani? Co treba tohle:

procedure TWinControl.WMPaint(var Message: TWMPaint);
var DC,MemDC:HDC;MemBitmap,OldBitmap:HBITMAP;
PS:TPaintStruct; begin if not FDoubleBuffered or
(Message.DC<>0) then begin if not (csCustomPaint in
ControlState) and (ControlCount=0) then inherited else
PaintHandler(Message); end else begin DC:=GetDC(0);
MemBitmap:= CreateCompatibleBitmap(DC, ClientRect.Right,
ClientRect.Bottom); ReleaseDC(0, DC); MemDC :=
CreateCompatibleDC(0);OldBitmap := SelectObject(MemDC,
MemBitmap); try DC := BeginPaint(Handle, PS);
Perform(WM_ERASEBKGND, MemDC, MemDC); Message.DC :=
MemDC; WMPaint(Message); Message.DC := 0; BitBlt(DC, 0, 0,
ClientRect.Right, ClientRect.Bottom, MemDC, 0, 0, SRCCOPY);
EndPaint(Handle, PS); finally SelectObject(MemDC, OldBitmap);
DeleteDC(MemDC); DeleteObject(MemBitmap); end; end; end;

Kupodivu i tento zapis bude fungovat, a neni tam ani jeden odskok.

> > Jake problemy mohou nastat?
>
> Napr. ze program nebude fungovat.

Opet neni zavisle na pouzivani/nepouzivani odskoku, ale na
schopnostech programatora. Statisticky vzato, drtivou vetsinu chyb
jsem udelal jinde nez pri pouziti odskoku.


S pozdravem

Zbysek Hlinka

http://www.hlinka(tec)cz http://www.slhaters(tec)cz
Phones: 02/795 29 56; GSM: 0603 551 282
Krystofova 1016, 149 00 Praha 4
CZ


Rozdeleni disku

[*] Lud�k ZITA <konference(zv)sales(tec)cz> - 2.3.2001 11:43:34

Taky GDISK od Nortonu (Norton GHOST).

Ludek

----- Original Message -----
From: "Tom�# Hol�" <thom(zv)comberg(tec)cz>
To: <delphi-l(zv)fwd(tec)cz>
Sent: Friday, March 02, 2001 9:51 AM
Subject: Re: Rozdeleni disku


> partition magic od PowerQuestu - se zachovanim dat na HDD
>
> TH
> ----- Original Message -----
> From: "Bednar��k Dalibor" <dalibor(zv)torola(tec)cz>
> To: "forum" <delphi-l(zv)fwd(tec)cz>
> Sent: Friday, March 02, 2001 7:17 AM
> Subject: OT: Rozdeleni disku
>
>
> > Ahoj
> >
> > Mohl by mi nekdo poradit jak bezpecne rozdelit 15GB disk na dva?
> > Jakou utilitu na to pouzit.
> >
> > Predem dekuji
> > Dalibor
> > (Win2000)
> >
> >
>
> ---
> Odchoz� zpr�va neobsahuje viry.
> Zkontrolov�no antivirov�m syst�mem AVG (http://www.grisoft(tec)cz).
> Verze: 6.0.231 / Virov� b�ze: 112 - datum vyd�n�: 12.2.2001
>
>

InstallShield express

[*] "Mirek Drej�ek" <drejcek(zv)schkocr(tec)cz> - 02.3.2001 11:55:25

Zdravim,
mohl by mi nekdo poradit?
V InstallShieldu mam nastavene toto:
Specify Components and Files:
Groups:
Program Files
Program1.exe
AppMod
Program2.exe
Components:
Application Files
AppMod
Program Files

Pri vyberu uzivatelske instalace muzu instalovat "Program Files" a "AppMod". Programy jsou na sobe naprosto nezavisle. Ale pouze Program1.exe se zapise do nabidky Start->programy->... . Ja bych ale potreboval, aby tam byl i ten druhy soubor. Jde toto vubec udelat? Nebo budu muset delat dva instalacni programy?
Predem diky za jakoukoli odpoved.

Mirek Drejcek.

Seriova komunikace

[*] Vaclav Sazima <sazima(zv)comp(tec)cz> - 02.3.2001 12:08:47

Ahoj,
pro vyrobu kratkych prodlev lze take pouzit :
QueryPerformanceFrequency
QueryPerformanceCounter

pozor, beha jenom na pentiu
Vaclav Sazima
Milan Tomes wrote:
>
> Pokud by si potreboval sleep na 1ms tak se podivej na funkci timeSetEvent a
> timeKillEvent, ktery nepouziva zpravu WM_TIMER, ale vola callback funkci,
> jejiz adresu predas jako parametr. Mam odzkouseno, ze to funguje.
>
> Milan Tomes
>
> > Aha,
> > tak to jo, ja se nesnazim dostat pod 1 us, ale staci mi pod 1ms. To je to,
> > na co jsem se ptal, resit pres driver ( a ceho jsem se obaval, ze
> > se dozvim
> > :). Cely problem vyplynul pri prechodu z DOSu do Win, tenkrat tu
> > kolem toho
> > bylo docela halo..
> > Ja se ptal, jestli ve Win nejak nejde cist primo posledni odchozi bajt,
> > respektive vyprazdneni bufferu. Hmm, asi nejde..:-( Ona tam ta funkce je
> > (jak jsi psal), ale vraci "prazdny buffer" o jeden znak drive,
> > nez tomu tak
> > skutecne je..:-((
> >
> > Stejne diky
> > Ota Maly
> >
> > PaPouch elektronika
> > http://www.papouch.com
> >
> >
> > > -----Original Message-----
> > > From: owner-delphi-l(zv)fwd(tec)cz [mailto:owner-delphi-l(zv)fwd(tec)cz]On
> > > Behalf Of Slavomir Skopalik
> > > Sent: Thursday, March 01, 2001 9:51 AM
> > > To: 'delphi-l(zv)fwd(tec)cz'
> > > Subject: RE: Seriova komunikace
> > >
> > >
> > > Nebyl to preklep, je zde spise problem jinde. Casovani PC (pod
> > > Win) neni uzpusobeno na presne
> > > casovani -> pouze pravdepodobnost ze se kod vykona a to i kdyz
> > > tam nebudes mit
> > > Sleep. Sleep je ale implementacne zavisly, takze je to pouze
> > > takova zaslepka (Sleep(1) trva standartne 5-10ms).
> > > Pokud opravdu trvas na okamzitem prepnuti, tak to nesmis resit
> > > pres OS (a musis zakazat preruseni).
> > > Pokud bys to resil jako driver, tak ses se schopen dostat na cca
> > > 15us (nastavit si casovac pro interni hodiny a ten si odchytavat).
> > > Takto se resi SoftPLC (Citech, nebo tak nejak se to pise), tam je
> > > to udelano tak,
> > > se se WinNT pousti jako dceriny process totohotu driveru (spise
> > mini OS).
> > >
> > > Slavek
> > >
> > > >
> > > > Ahoj,
> > > > pokud mas na mysli 1 mikrosekundu, tak to mi samozrejme jako doba na
> > > > prepnuti postacuje, ale pokud to byl preklep a byla myslena
> > > milisekunda, tak
> > > > tomu tak neni.
> > > > Norma tez definuje linku 485 pro rychlosti okolo 1MBitu, tam je jedna
> > > > milisekunda naprosta vecnost. Pokud jsi vsak myslel skutecne
> > > mikrosekundu,
> > > > tak predchozi vetu ignoruj.
> > > > Podle pouziti sleep() asi mluvis o milisekunde, a pod ni se samozrejme
> > > > dostat lze uplne v pohode, nikoli vsak pri automatickem
> > prepinani smeru,
> > > > proto jsem se ptal na moznosti rucniho prepinani.
> > > > U automatiky v prevodniku je jeste problem s tim, ze cim kratsi casova
> > > > konstanta na prepnuti, tim vyssi je minimalni rychlost
> > (odporna definice
> > > > :-), napr. pri 3ms si na 1200Bd neskrtnes, prepne to klidne
> > > uprostred bytu.
> > > >
> > > > Ota Maly
> > >
> > >
> > >
> >

Nahrada FileListBox a spol.

[*] Ji�� Foldyna <jiri.f(zv)avizo(tec)cz> - 2.3.2001 12:51:16

Ahoj,

nemate nekdo odkaz na nejakou nahradu TDirectoryListBox, TFileListBox a
spol. ? (Predstavoval bych si to trochu jako Explorer - tree ktere zacina
desktopem, listview pro seznam souboru...)

Zdravim

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

Komponenta NMFTP

[*] Petr Kucera <kucera(zv)vri(tec)cz> - 2.3.2001 12:54:15

Dobry den,

prosim Vas, mam nasledujici problem: Chci udelat jednu aplikaci
na stahovani dat z Internetu pres proxy server. Nejak se mi to ale
nedari. Na ten server, kde bezi proxy, se dostanu, pokud tam nezadam
NMFTP1.Proxy a NMFTP1.ProxyPort. Pokud ho tam jiz zadam, tak se tam
bohuzel uz nedostanu. Nevim, jestli nemam nahodou spatne ten
ProxyPort. Nasel jsem si to nekde v Nastaveni -> Moznosti site
Internet -> Pripojeni -> Mistni nastaveni. Tam jsem opsal ta data.
Nenapada me, kde bych jinde mohl hledat ty data.

Nasel by se tu nekdo, kdo by mi poradil?

Dekuji.

Petr Kucera


Nahrada FileListBox a spol.

[*] ing. Jan Fiala <jan.fiala(zv)iol(tec)cz> - 2.3.2001 13:57:55

LSFileExplorer obsahuje presne to co potrebujes

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

02.03.2001 Ji�� Foldyna:
> Ahoj,

> nemate nekdo odkaz na nejakou nahradu TDirectoryListBox, TFileListBox a
> spol. ? (Predstavoval bych si to trochu jako Explorer - tree ktere zacina
> desktopem, listview pro seznam souboru...)

> Zdravim

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


Prepinani Unit

[*] Zbysek Hlinka <hlinka(zv)hlinka(tec)cz> - 2.3.2001 14:08:26

On 2 Mar 2001, at 9:41, Tomas Vladik wrote:

> > temito moznostmi radostne nejasal, ba naopak, jeste bych privital
> > pretezovani operatoru. Puriste by z toho jiste zesileli a houfne by
>
> Ony uz nektere operatory pretizeny jsou, napr. :
>
> "+" funguje pro integerove i floatove typy, pro retezce ...
> "-", "*" funguje pro integerove i floatove typy ...
>
> Ale pokud clovek nehodla zapisovat nejake silene vyrazy, tak mu
> vetsinou vystaci standardni volani funkci a nepotrebuje operatory ...

Jenze ja nekdy potrebuju porovnavat recordy, a pro objekty by se
to take hodilo.

Record:
type
TRec = record
a: DWORD;
b: DWORD;
c: DWORD;
end;

if r1 > r2 then ...

Jenze nyni musim psat
if (r1.a > r2.a) or ((r1.a = r2.a) and (r1.b > r2.b)) ... brrrrrrrrr

Takze kdyz to potrebuji v programu vickrat, musim si napsat
funkci, ktera neni uz tak pruhledna:
function RecIsGT(r1, r2: TRec): boolean;

Pro objekty:

typ
TMujObj = class
cislo: integer;
retezec: string;
...
operator +{(Operand: TMujObj)};
end;

operator TMujObj.+{(Operand: TMujObj)};
begin
Result.cislo := cislo + Operand.cislo;
Result.retezec := retezec + Operand.retezec;
...
end;
...
Obj1 := Obj2 + Obj3;

namisto:
Obj1.cislo := Obj2.cislo + Obj3.cislo;
Obj1.retezec := Obj2.retezec + Obj3.retezec;
...


S pozdravem

Zbysek Hlinka

http://www.hlinka(tec)cz http://www.slhaters(tec)cz
Phones: 02/795 29 56; GSM: 0603 551 282
Krystofova 1016, 149 00 Praha 4
CZ


Komponenta NMFTP

[*] Milan Tomes <Milan.Tomes(zv)haida(tec)cz> - 2.3.2001 14:10:12

Zkus standardni port proxy serveru 3128 a do toho hostu napis primo IP
adresu proxy serveru

Milan Tomes

>
> Dobry den,
>
> prosim Vas, mam nasledujici problem: Chci udelat jednu aplikaci
> na stahovani dat z Internetu pres proxy server. Nejak se mi to ale
> nedari. Na ten server, kde bezi proxy, se dostanu, pokud tam nezadam
> NMFTP1.Proxy a NMFTP1.ProxyPort. Pokud ho tam jiz zadam, tak se tam
> bohuzel uz nedostanu. Nevim, jestli nemam nahodou spatne ten
> ProxyPort. Nasel jsem si to nekde v Nastaveni -> Moznosti site
> Internet -> Pripojeni -> Mistni nastaveni. Tam jsem opsal ta data.
> Nenapada me, kde bych jinde mohl hledat ty data.
>
> Nasel by se tu nekdo, kdo by mi poradil?
>
> Dekuji.
>
> Petr Kucera


Adonis a MS SQL server

[*] Garalda <garalda(zv)mail(tec)cz> - 2.3.2001 14:12:33

Zdravim,

poridili jsme si do firmy Adonis, a ja bych rad vytvoril aplikaci, ktera by pracovala s databazi MS SQL a chodila pod ADOem. Narazil jsem ale na problem se kterym si zatim nevim rady. Zkusil jsem se pripojit pres TADODatabase, to probehlo i s testem bez problemu. Pak jsem zkusil na tuto databazi napojit TADOQuery nebo TADOTable, ale v obou pripadech to po prepnuti Active na True zahlasi chybu:

Interface not supported.

Zkousel jsem to stejne pres TADOConnection a TADOCommand, ale vysledek je uplne stejny.

Nevite prosim nekdo co to znamena? Co s tim mohu delat?

Dekuji

Tstring list pro ��sla???

[*] Milan ��ek - 2.3.2001 14:32:06

ahoj,
chci se zeptat, jestli neexistuje n�co jako TIntegerList. Jedna moje funkce
vraci radu cisel, a prijde mi dost zbytecny je prevadet na string
(function(): TStringList;) a po ziskani hodnoty z funkce zpet na cislo.
Zkousel jsem to vracet jako array of integer, ale to neni to prave...

Diky za odpoved

S pozdravem Milan Cizek, amatersky programator, D5 Ent (SP1)
Win2k (SP1) a Win98, cizek.milan(zv)seznam(tec)cz, ICQ: 59826637


---
Odchoz� zpr�va neobsahuje viry.
Zkontrolov�no antivirov�m syst�mem AVG (http://www.grisoft(tec)cz).
Verze: 6.0.231 / Virov� b�ze: 112 - datum vyd�n�: 12.2.2001


Nahrada FileListBox a spol.

[*] Parizsky Ladislav <parizsky(zv)access-it(tec)cz> - 02.3.2001 14:39:43

Cau,
zkus ListView. Pouziti najdes v demos virtuallistview !

Ladap

>>> jiri.f(zv)avizo(tec)cz 2.3.01 12:51 >>>
Ahoj,

nemate nekdo odkaz na nejakou nahradu TDirectoryListBox, TFileListBox a
spol. ? (Predstavoval bych si to trochu jako Explorer - tree ktere zacina
desktopem, listview pro seznam souboru...)

Zdravim

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

Word 2000 a D3

[*] Kokosek <skokosek(zv)seznam(tec)cz> - 2.3.2001 14:54:23

Ahoj, mam takovy problem. Uz to lamu dva tydny.
Potrebuju pres OLE otevrit dokument ve Wordu, najit
nejaky retezec, zmenit ho na jiny a vytisknout. Muzete
nekdo poradit zacatecnikovi, jak na to ?
Napoveda Wordu mi moc nepomohla ....

Lada


Prepinani Unit

[*] Erik Salaj <winsoft(zv)napri.sk> - 2.3.2001 15:23:08

> Mohl bys mi sdelit co je problematickeho natechto prikladech ? :
>
> Priklad 1.
> int x1 = x2 = x3 = 1;

Pre vecsinu ludi predstavuje '=' porovnanie ("rovna sa") a tento
zpis je preto znacne metuci. Okrem toho sa miesa deklaracia
a definicia premennej x1 s definiciami celkom inych premennych.

Alebo, co ak je x2 deklarovane takto:

char x2;

To je v poriadku, ze sa tam priraduje 1 (a kompilatoru to vobec nevadi)?
Co ak zamer bol priradit tam znak '1'?

Suvisiaca klasicka chyba vyskytujuca sa v C-programe:

if (a = b)
printf("a = b");

Je to porovnanie alebo priradenie? Podobne tento preklep:

int x1 = x2 = x3 == 1;

> Priklad 2.
> if ((f=fopen("neco.txt",rt))==NULL)

Dtto. Znacne nezrozumitelne a nachylne na chyby v dosledku preklepov
a nizkej citatelnosti. Inac spravny C-kar to napise tusim takto
(este strucnejsie):

if (!(f=fopen("neco.txt",rt)))

Uvedom si, ze ide o velmi trivialne pripady a uz su dost neprehladne.
V realnych C programoch sa vyskytuju daleko zlozitejsie konstrukcie,
s este horsimi problemami (napr. smernikmi).

Erik


Klienska aplikace bez nutnosti BDE

[*] Jind�ich Nikodem <nikodem(zv)kh-kinetic(tec)cz> - 2.3.2001 15:44:15

Toto je zprava ve formatu MIME obsahujmcm vmce hastm.
Ahoj vsem,

mam vytvorenou aplikaci, ktera komunikuje pres DBE na Access (nebo i na jine DBF, Interbase ...). Aplikaci chci vytvorit jako ActiveX Form a pro firemni uceli mit na internetu. Potrebuji, ale aby jsem IE 5.0 spustil svou aplikaci (zrejme jako ActiveForm) a mohl cist a editovat data v teto databazi, aniz bych mel nainstalovany DBE na klienskem pocitaci. Lze toto udelat pomoci Delphi 5 Professional nebo jen v Enterprise? Za odpoved predem dekuji
Jindrich Nikodem

predani zpravy mezi aplikacema

[*] Hurricane <hurricane(zv)quick(tec)cz> - 2.3.2001 15:49:12

Zdravim

Prisel jsem na jednu malickost. Je zbytecne davat to Msg1 :=
RegisterWindowMessage('Button 1'); do inicializacni casti aplikace. Klidne
to muze byt v Create toho Formu (v prijimaci aplikaci by to IMHO melo byt
pred Application.OnMessage := OnAppMessage;). IMHO je to lepsi, jelikoz
nemusis mit definovanou unitu Windows v programu, staci jen v Unite, kde uz
stejnak je.

Hurricane
----- Original Message -----

jeste jedna chybka se tam vloudila. V Create formulare jeste chybelo
Application.OnMessage := OnAppMessage;. Predtim to bylo vykoseny z projektu,
ted posilam odzkouseny prg.
Jinak zpravy se rozlisuji podle textu ! Ne podle nazvu promennych.

Hodne stesti.

Bye Ludan

==================================
program Project1;

uses
Forms,
Windows,
Unit1 in 'Unit1.pas' {Form1};

{$R *.RES}

begin
Msg1 := RegisterWindowMessage('Button 1');
Msg2 := RegisterWindowMessage('Button 2');

Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.


unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
Msg1, Msg2: word;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
begin
PostMessage(hwnd_Broadcast, Msg1, 0, 0);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
PostMessage(hwnd_Broadcast, Msg2, 0, 0);
end;

end.
program Project2;

uses
Forms,
Windows,
Unit2 in 'Unit2.pas' {Form1};

{$R *.RES}

begin
M1 := RegisterWindowMessage('Button 1');
M2 := RegisterWindowMessage('Button 2');

Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.


unit Unit2;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;

type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
procedure OnAppMessage(var Msg: TMsg; var Handled: boolean);
public
{ Public declarations }
end;

var
Form1: TForm1;
M1, M2: word;

implementation

{$R *.DFM}

procedure TForm1.OnAppMessage(var Msg: TMsg; var Handled: boolean);
begin
if Msg.Message = M1 then
begin
ShowMessage('Zm��knutej �udl 1');
Handled := True;
end;

if Msg.Message = M2 then
begin
ShowMessage('Zm��knuto tla��tko 2');
Handled := True;
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnMessage := OnAppMessage;
end;

end.

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

> Dik za radu, ale nepodarilo se mi to rozchodit. Mozny problem bych videl v
> tom, ze v jednom programu je msg_zprava1 a v druhem msg_reakce1. Podle
ceho
> se pak rozlisuji ty zpravy? Podle toho textu? Ja jsem i zkousel pouzit v
> obou programech jenom msg_zprava1, ale taky bez reakce. Program pro
vyslani
> jsem defakto opsal podle toho tvyho, takze tam by byt problem nemel. Druha
> vec, co je mi divna. Procedura DoAppMessage se spousti vzdy, kdyz do
> aplikace prijde nejaka zprava? V helpu jsem to nenasel. Handled
predpokladam
> slouzi k tomu, aby program vedel, jestli byla message zpracovana. Jde mi o
> to, ze tato procedura neni navazana na zadnou zpravu.

Prepinani Unit

[*] Erik Salaj <winsoft(zv)napri.sk> - 2.3.2001 15:56:26

> > Hrozi znacna neprehladnost programu.
>
> :-) Neni to spis ve zpusobu programovani? Co treba tohle:
>
> procedure TWinControl.WMPaint(var Message: TWMPaint);
> var DC,MemDC:HDC;MemBitmap,OldBitmap:HBITMAP;
>
> Kupodivu i tento zapis bude fungovat, a neni tam ani jeden odskok.

Az na to, ze prepisat tento priklad do zrozumitelneho tvaru je trivialna
vec, ktora moze byt plne automatizovana. Analyzovat kod s goto
je daleko komplikovanejsia zalezitost.

> > Napr. ze program nebude fungovat.
>
> Opet neni zavisle na pouzivani/nepouzivani odskoku, ale na
> schopnostech programatora. Statisticky vzato, drtivou vetsinu chyb
> jsem udelal jinde nez pri pouziti odskoku.

Ide o to, ze vhodna eliminacia problemoveho GOTO by mala
odstranit aj vecsinu problemov spojenych s GOTO a to bez ohladu
na schopnosti programatora. Javi sa totiz vyhodnejsie predchadzat
problemom plus spolahnut sa viac na schopnost kompilatora
detekovat problemy (ktore sa detekovat daju) ako sa spolahnut
na schopnosti a neomylnost programatorov.

Erik


HELP_SETWINPOS

[*] Peter Vlkovic <vlkovic(zv)minv.sk> - 02.3.2001 16:11:25

Neporadi niekto ako pouzit zavolat metodu
Appliaction.HelpCommand s parametrom
HELP_SETWINPOS v Delphi?
Nerozumien pouzitiu polozky rgchMember
v strukture THelpWinInfo.
Za pripadnu pomoc vdaka.

Vlkovic


Prepinani Unit

[*] Erik Salaj <winsoft(zv)napri.sk> - 2.3.2001 16:17:59

> Mno, napsat program v Delphi bez ukazatelu je docela kumst,
> pokud si uvedomime, ze veskere interfejsy, objekty a huge stringy
> jsou prevlecene ukazatele...

Nerozumiem ako sa 5-znakovy string vmesti do 4-bajtoveho
smernika, ked string je vlastne tiez smernik.

Erik

QUickReport -> Doc

[*] CERMAK <CERMAK(zv)procom(tec)cz> - 2.3.2001 16:31:09

Ahoj vsichni

Mate nekdo zkusenosti s exportem sestav z QR v D5 do wordu. Zajimalo by me
jak funguje. Daji se sestavy pouzit, nejsou rozhazene? A co ostatni
generatory sestav a Word. Moc by mi pomohla jakakoliv informace. Predem
dekuji za jakykoliv namet. Jaromir Cermak

Prepinani Unit

[*] Dalibor Toman <dtoman(zv)fortech(tec)cz> - 2.3.2001 17:01:44

>
> A v com je vyhoda, ak nenajdu alebo nepouziju komponentu? Spominane
problemy
> vtedy nenastanu?

Ja jen napsal svuj nazor. Ma-li nekdo lepsi zkusenosti at komponenty
pouziva. To je jeho problem a volba. Jsou oblasti, kde komponenty je vhodne
pouzivat (user interface a spol), jsou oblasti kde ne.

Samozrejme, ze problemy mohou nastat (a obvykle nastanou). Jenze pak mam vse
pod kontrolou, nemusim studovat cizi zdrojaky (mam-li nejake) nebo nemusim
cekat az mi autor komponenty vysvetli co a jak ci pripadne posle opravu.

Samozrejme musim vynalozit vice energie a casu nez napisu novy kod (s
komponentou je (resp. mela by) tahle faze byt kratsi). Jakmile ale dojde na
reseni problemu, pak dochazi k uspore casu a nervu.

Pokud pisu programy jen pro sebe nebo na zakazku, vetsinou k podobnym
problemum nedojde (ladim na pocitaci na kterym to pobezi nebo podobnem).
Pisu-li neco, co budou pouzivat desetiisice lidi po celem svete, urcite mi
budou chodit reporty o chybach, ktere jsem si ja ani autor komponent
nedokazal predstavit ani v nejdivocejsich snech. Pak mit v programu blackbox
v podobe komponenty (nemam od ni zdrojaky nebo nerozumim podrobne tomu co
ten zdrojak dela) je dost velka pritez. Dost na tom, ze jako obcas nechodici
blackbox se chovaji funkce WinAPI.


D. Toman

Problem s WS_EX_APPWINDOW

[*] Ales Vasicek <vasicek(zv)ecommerce(tec)cz> - 2.3.2001 17:26:43

Ahoj,

vytvarim formular s parametrem WS_EX_APPWINDOW:

procedure TNewChngForm.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
Params.ExStyle := Params.ExStyle or WS_EX_APPWINDOW;
Params.WndParent := 0;
end;


Vse funguje skvele. Na taskbaru se vytvori dalsi tlacitko a mezi
jednotlivymi formulari se da prepinat. Problem nastava ve chvili, kdy z
takto vytvoreneho formulare zavolam nejaky modalni formular/dialog. Po
otevreni dialogu se formular skryje a zobrazi se jen dialog. Po zavreni
dialogu se zase formular objevi.

Kdysi mi nekdo na soukromy mejl posilal reseni. Stacilo pridat do Params
jeste jeden parametr a vse uz fungovalo. Bohuzel jsem o tento mejl
prisel a nyni bych to velmi potreboval. Zkousim postupne vsechny
parametry z MSDN, ale zatim bez uspechu.

Predem diky za kazdou radu.

Ales


Prepinani Unit

[*] Dalibor Toman <dtoman(zv)fortech(tec)cz> - 2.3.2001 21:22:00



> > Mohl bys mi sdelit co je problematickeho natechto prikladech ? :
> >
> > Priklad 1.
> > int x1 = x2 = x3 = 1;
>
> Pre vecsinu ludi predstavuje '=' porovnanie ("rovna sa") a tento
> zpis je preto znacne metuci. Okrem toho sa miesa deklaracia
> a definicia premennej x1 s definiciami celkom inych premennych.

no tak se misto "=" pouzije obvykle pascalske ":=" a je po ptakach, ne?
>
> Alebo, co ak je x2 deklarovane takto:
>
> char x2;

tak to proste nepude. Pascal je jazyk se silnou typovou kontrolou a prirazeni mezi ruznymi typy nedovoli.

>
> To je v poriadku, ze sa tam priraduje 1 (a kompilatoru to vobec nevadi)?
> Co ak zamer bol priradit tam znak '1'?

>
> Suvisiaca klasicka chyba vyskytujuca sa v C-programe:
>
> if (a = b)
> printf("a = b");
>
> Je to porovnanie alebo priradenie? Podobne tento preklep:
to je problem Ccka, ze pouziva stejne operatory pro prirazeni a porovnani. Pokud vim tak jazyky se zapisem podobnym Ccku pouzivaji nyni pro porovnani '== ' (dve '='). Pascal tento problem nema.

>
> int x1 = x2 = x3 == 1;
>
> > Priklad 2.
> > if ((f=fopen("neco.txt",rt))==NULL)
>
> Dtto. Znacne nezrozumitelne a nachylne na chyby v dosledku preklepov
> a nizkej citatelnosti

pro me je to citelne az az. Navic to znacne zjednosuduje zapis nekterych cyklu. To co v Ccku vypada nejak takhle:

while (! (f=fx(a,b,c)))
{
tiskni(f);
};

musim v pascalu prepsat uplne jinak

f := fx(a,b,c);
while f > 0 do
begin
tiskni(f);
f := fx(a,b,c);
end;

nebo prepsat pomoci repeat :

repeat
f := fx(a,b,c);
if f > 0 then
tiskni(a,b,c);
until f = 0;

Myslim, ze puvodni zapis v Ccku je nejen nejkratsi, ale i nejzretelnejsi

>. Inac spravny C-kar to napise tusim takto
> (este strucnejsie):
>
> if (!(f=fopen("neco.txt",rt)))

Ja bych rekl, ze je to spravne jeste kratsi :
if (f=fopen("neco.txt",rt))
:-)

>
> Uvedom si, ze ide o velmi trivialne pripady a uz su dost neprehladne.
> V realnych C programoch sa vyskytuju daleko zlozitejsie konstrukcie,
> s este horsimi problemami (napr. smernikmi).
>

V kazdem jazyku lze urcite spachat neprehledne konstrukce. Je to vec programatora, kam az zajde


D. Toman


Prepinani Unit

[*] Dalibor Toman <dtoman(zv)fortech(tec)cz> - 2.3.2001 21:24:44


----- Original Message -----
From: "Erik Salaj" <winsoft(zv)napri.sk>
To: <delphi-l(zv)fwd(tec)cz>
Sent: Friday, March 02, 2001 4:17 PM
Subject: Re: Prepinani Unit


> > Mno, napsat program v Delphi bez ukazatelu je docela kumst,
> > pokud si uvedomime, ze veskere interfejsy, objekty a huge stringy
> > jsou prevlecene ukazatele...
>
> Nerozumiem ako sa 5-znakovy string vmesti do 4-bajtoveho
> smernika, ked string je vlastne tiez smernik.


string (AnsiString) je pointer na pamet. Cili ackoliv zabere 4 byty umoznuje pracovat i s vice nez 4 bajtovymi retezci. Stare stringy (shortstring) nejsou pointry ale bloky pameti (max delka 255 znaku). Videl jsi nekdy v posledni dobe Delphi ? :-)

D. Toman


Prepinani Unit

[*] Erik Salaj <winsoft(zv)napri.sk> - 2.3.2001 23:19:39

> Take by me zajimalo, co na to odpovi. Je-li mozna hromadna
> deklarace, Proc neni mozna hromadna inicializace? Urcite je
> prehlednejsi zapis
>
> var
> x, y, z: integer;
> begin
> x := y := z := 0;
>
> nez to mit rozepsane do jednotlivych radku. Tohle me take vytaci
> kazdou chvili. :-)

1. V modernych jazykoch su aj lokalne premenne automaticky
inicializovane (na nulu, nil, ...), vtedy uvedene priradenie vobec
nie je potrebne.

2. Priradenie rovnakej hodnoty do viacerych premennych
naraz (napr. x := 34; y := 34) je podla mna dost zriedkavy
pripad, teda velky vyznam tohto rozsirenia nevidim.

3. Takato konstrukcia vyzaduje aby priradenie bol vyraz
a nie prikaz. To znamena, ze by sa mohol aj vyskytnut
vsade tam, kde aj vyraz. Kedze to uplne odporuje
podstate vyrazu ako predpisu na vypocet hodnoty
(a nerobenia vedlajsich efektov), je maximalne
nerozumne to takto robit. Potom vyraz zaroven
aj nieco pocita aj nieco vykonava (meni hodnoty
premennych) a to je vyborny start do obrovskych
problemov.

4. Priradovaci prikaz nie je zrovna idealna jazykova
konstrukcia a existuju urcite pristupy (funkcionalne
programovanie), ktore sa rovnako ako GOTO snazia
eliminovat aj priradovaci prikaz. Takze priradenie
samotne je znacne problematicke, nie to este
vkladanie ho do vyrazov. Preto je podla mna
ovela vyhodnejsie aby bolo explicitne vyjadrene
(a jasne viditelne) a neschovavane v inych
konstrukciach.

5. Pristupy, ktore mozu byt vyhodne na riesenie urciteho
druhu uloh sa mozu ukazat ako nepouzitelne na ine,
zlozitejsie ulohy. Preto nemozno robit zavery
o vyhodnosti jazykovej konstrukcie na zaklade
troch priradovacich prikazoch ale domysliet
celkovy dosah a celkove prinosy rovnako
ako aj zapory.

Erik


Adonis a MS SQL server

[*] Erik Salaj <winsoft(zv)napri.sk> - 2.3.2001 23:24:07

>poridili jsme si do firmy Adonis, a ja bych rad vytvoril aplikaci, ktera by pracovala s databazi MS SQL a chodila pod ADOem. Narazil jsem ale na problem se >kterym si zatim nevim rady. Zkusil jsem se pripojit pres TADODatabase, to probehlo i s testem bez problemu. Pak jsem zkusil na tuto databazi napojit >TADOQuery nebo TADOTable, ale v obou pripadech to po prepnuti Active na True zahlasi chybu:

>Interface not supported.

Nainstaluj ADO 2.6 alebo nastav spravnu verziu ADO do UseADOVersion property.
Verziu ADO zistis pomocou ADOTest.exe programu dodavaneho k Adonisu.
V Adonise 4.1 je jeden problem, ze musis nastavit UseADOVersion aj v TADOQuery
a TADOTable, pretoze nepouziva hodnotu nastavenu v TADODatabase, aj ked
tuto hodnotu zobrazuje.

Erik


Nahrada FileListBox a spol.

[*] Petr Vones <pvones(zv)mbox.vol(tec)cz> - 2.3.2001 23:26:07

From: "Ji�� Foldyna" <jiri.f(zv)avizo(tec)cz>
> nemate nekdo odkaz na nejakou nahradu TDirectoryListBox, TFileListBox a
> spol. ? (Predstavoval bych si to trochu jako Explorer - tree ktere zacina

Ahoj,

http://www.gexperts.com/GXExplorer/
http://www.plasmatech.com/shellctl.htm
http://www.turbopower.com/products/systools/

Petr Vones, amatersky programator


Prepinani Unit

[*] Petr Vones <pvones(zv)mbox.vol(tec)cz> - 2.3.2001 23:43:26

From: "Zbysek Hlinka" <hlinka(zv)hlinka(tec)cz>
> Neni divu, kdyz exit, break a continue je vlastne jen jednoucelovy
> prevleceny goto. Jine pripady odskoku clovek potrebuje opravdu jen

Ahoj,

to bych nerekl. Rozdil mezi Exit, Break, Continue a Goto je treba v tom, ze
Goto umoznuje delat skoky i mimo danou uroven vnoreni:

procedure TForm1.Button1Click(Sender: TObject);
label
L1, L2;
var
X, Y: Integer;
begin
for X := 1 to 10 do
begin
L2: if X = 5 then
goto L1;
for Y := 1 to 10 do
begin
L1: if Y = 5 then
goto L2;
end;
end;
end;

Petr Vones, amatersky programator


Tstring list pro ��sla???

[*] Tomas Grepl <delphi(zv)kapsw(tec)cz> - 2.3.2001 23:44:05

> chci se zeptat, jestli neexistuje n�co jako TIntegerList. Jedna moje funkce
> vraci radu cisel, a prijde mi dost zbytecny je prevadet na string
> (function(): TStringList;) a po ziskani hodnoty z funkce zpet na cislo.
> Zkousel jsem to vracet jako array of integer, ale to neni to prave...

Muzes pouzit treba TList, s tim ze je treba pretypovat tvuj integer na pointer a naopak.

Napr.

MujList.Add(pointer(MojeIntegerCislo));
MojeIntegerCislo := integer(MujList[Index]);

Pokud si nadefinujes tridici funkci, pak lze data v TListu i tridit.

Tomas

Prepinani Unit

[*] Petr Vones <pvones(zv)mbox.vol(tec)cz> - 2.3.2001 23:50:23

From: "Erik Salaj" <winsoft(zv)napri.sk>
> Uvedom si, ze ide o velmi trivialne pripady a uz su dost neprehladne.
> V realnych C programoch sa vyskytuju daleko zlozitejsie konstrukcie,
> s este horsimi problemami (napr. smernikmi).

Ahoj,

coz se mimo jine projevuje i delsi kompilaci zdrojoveho textu diky vetsi
slozitosti definice jazyka.

Petr Vones, amatersky programator


zatizeni procesoru

[*] Petr Vones <pvones(zv)mbox.vol(tec)cz> - 2.3.2001 23:53:02

From: "Petr Ha#lar" <rincewind(zv)volny(tec)cz>
> da se zjistit jak moc (%) zatezuje libovolny ext. program pocitac (tedy ne
> moje aplikace) - neco na zpusob TaskManageru?

Ahoj,

pro jake verze Windows ?

Petr Vones, amatersky programator


Zjisteni verze ADO

[*] Petr Vones <pvones(zv)mbox.vol(tec)cz> - 2.3.2001 23:55:06

From: "Petr Reichl" <p.reichl(zv)gmc.net>
> potreboval bych zjistovat pri startu aplikace jaka je nainstalovana verze
> ADO. Problem je v tom, ze to nelze zjistovat pres samotne ADO, protoze v te

Ahoj,

pouzij funkci GetMDACVersion z JclCOM: http://delphi-jedi.org/Jedi:CODELIBJCL

Petr Vones, amatersky programator

Tstring list pro ��sla???

[*] Petr Vones <pvones(zv)mbox.vol(tec)cz> - 2.3.2001 23:59:49

From: "Milan #ݿek" <cizek.milan(zv)seznam(tec)cz>
> chci se zeptat, jestli neexistuje n�co jako TIntegerList. Jedna moje funkce

Ahoj,

napriklad TList, pricemz si Pointer pretypujes na Integer popripade si odvodis
novou tridu kde to bude pretypovane.

Petr Vones, amatersky programator


Tstring list pro ��sla???

[*] Jan Skopov� <jsdelphi(zv)atlas(tec)cz> - 3.3.2001 00:33:09

Muzes to ukladat do TListu

list: TList;
cislo: integer;
...
cislo := 155;
list.add(Pointer(cislo));
cislo := 200;
list.add(Pointer(cislo));
...
cislo := Integer(list.Items[0]);
...

Pod Delphi 3 to beha perfektne, pod Delphi 5 pouze pro Integer >= 0. Pokud v
DELPHI 5 napriklad pouzijes cislo := -1 tak se zhrouti cely list, ackoliv to
neohlasi zadnou vyjimku.

Jan Skopovy

----- Original Message -----
From: "Milan #ݿek" <cizek.milan(zv)seznam(tec)cz>
To: "Delphi konference" <delphi-l(zv)fwd(tec)cz>
Sent: Friday, March 02, 2001 2:32 PM
Subject: Tstring list pro ��sla???> ahoj,
> chci se zeptat, jestli neexistuje n�co jako TIntegerList. Jedna moje
funkce
> vraci radu cisel, a prijde mi dost zbytecny je prevadet na string
> (function(): TStringList;) a po ziskani hodnoty z funkce zpet na cislo.
> Zkousel jsem to vracet jako array of integer, ale to neni to prave...
>
> Diky za odpoved
>
> S pozdravem Milan Cizek, amatersky programator, D5 Ent (SP1)
> Win2k (SP1) a Win98, cizek.milan(zv)seznam(tec)cz, ICQ: 59826637
>
>
> ---
> Odchoz� zpr�va neobsahuje viry.
> Zkontrolov�no antivirov�m syst�mem AVG (http://www.grisoft(tec)cz).
> Verze: 6.0.231 / Virov� b�ze: 112 - datum vyd�n�: 12.2.2001
>

TOracleEvent

[*] Jan Skopov� <jsdelphi(zv)atlas(tec)cz> - 3.3.2001 00:34:41

Jasne, tomu rozumim. Jak to ale mam aplikovat na muj problem s odchytavanim
vsech zmen pro konkretni tabulku ?

Jan Skopovy

----- Original Message -----
From: "Slavek Rydval" <rk(zv)atrey.karlin.mff.cuni(tec)cz>
To: <delphi-l(zv)fwd(tec)cz>
Sent: Friday, March 02, 2001 7:46 AM
Subject: Re: TOracleEvent


> > Navic by me zajimalo co jsou to PIPE. Komponenta TOracleEvent rozlisuje
> > odchytavani Alert nebo Pipe. Nemate nekdo kousek kodu ?
> ****Ahoj, strucne receno PIPE je roura, kudy prochazi data.
> Pouzivaji se k tomu, ze v PL/SQL tam hazes data a pak je nekde
> odchytavas (klasicky se tak ladi kod na Oracle).

Prepinani Unit

[*] Erik Salaj <winsoft(zv)napri.sk> - 3.3.2001 01:02:47

> > > Priklad 2.
> > > if ((f=fopen("neco.txt",rt))==NULL)
>
> >. Inac spravny C-kar to napise tusim takto
> > (este strucnejsie):
> >
> > if (!(f=fopen("neco.txt",rt)))
>
> Ja bych rekl, ze je to spravne jeste kratsi :
> if (f=fopen("neco.txt",rt))

Tak to ale testujes presne opacnu podmienku nez v Priklade 2,
pretoze Tvoj najnovsi zapis odpoveda tomuto prikazu

if ((f=fopen("neco.txt",rt))!=0)

Erik


Prepinani Unit

[*] Erik Salaj <winsoft(zv)napri.sk> - 3.3.2001 01:21:05

> string (AnsiString) je pointer na pamet. Cili ackoliv zabere 4 byty
umoznuje pracovat i s vice nez 4 bajtovymi retezci. Stare stringy

Nie, string nie je smernik na pamet, string je specifikovana postupnost
znakov v pameti.

Podla Tvojej definicie aj smernik na int, kedze je tiez smernikom
na pamet, je string.

Dalej dlzka stringu predpokladam, bude vzdy rovnaka (rovna 4),
kedze string ma byt vzdy 4 bajtovy smernik na pamet.

Dalsi zaujimavy dosledok je, ze ak mam dva smerniky na pamet
(co su podla Tvojej definicie stringy), pricom obidva ukazuju na rovnaku
postupnost znakov ale ulozenu na roznych miestach v pameti (teda
hodnota smernikov je rozna), tak potom stringy nie su rovnake
(ale podla mna rovnake postupnosti znakov su rovnake stringy, t.j.
'abc' = 'abc').

Akym sposobom zadavas hodnotu stringu? Tento zapis by mal splnat
Tvoju specifikaciu (je to presne podla definicie pointer na pamet) ale
na string sa mi to vobec nepodoba:

const
MyString = Pointer(123456);

>(shortstring) nejsou pointry ale bloky pameti (max delka 255 znaku). Videl
>jsi nekdy v posledni dobe Delphi ? :-)

Ano.

Erik


SQl dotaz

[*] Pisingr <pisingr(zv)volny(tec)cz> - 3.3.2001 10:33:00

Dobry den,
mam takovy problem s SQL dotazem. Pouzivam MS SQL 7 a pro dotazy TQuery atd. U kazdeho sloupce si muzu definovat pouzivany datovy typ. Kdyz je typ v databazi nastaven na varchar dotazy vraci to co maji. Kdyz je vsak nastaven na nvarchar dotazy nevraceji nic. Je mozne nejak premluvit delphi, aby vraceli i dotaz na sluopec s typem nvarchar. Nepodarilo se mi totiz zjistit jak to udelat a jaky je rozdil mezi temoto typy.

Dekuji Petr


Syntaxe jazyka (was: Prepinani Unit)

[*] Zbysek Hlinka <hlinka(zv)hlinka(tec)cz> - 3.3.2001 11:29:18

On 2 Mar 2001, at 23:43, Petr Vones wrote:

> > Neni divu, kdyz exit, break a continue je vlastne jen jednoucelovy
> > prevleceny goto. Jine pripady odskoku clovek potrebuje opravdu jen
>
> to bych nerekl. Rozdil mezi Exit, Break, Continue a Goto je treba v
> tom, ze Goto umoznuje delat skoky i mimo danou uroven vnoreni:

Goto je obecny odskok, kdezto ostatni pripady jsou specialni
jednoucelove odskoky. Tebou uvedeny priklad je samozrejme
chybny. Ale i takovy Exit je nebezpecny. Napriklad mas-li 50 radku
v procedure, a nekde uprostred v cyklu pouzijes Exit, pak se take
muzes dostat do problemu az budes tu proceduru opravovat. To ale
neni duvod Exit uplne vyloucit, protoze treba na zacatku pri
testovani pocatecnich podminek muze byt lepsi nez snura
vnorenych bloku, kde se nevyplati nebo neni vhodne volat vyjimky
(ostatne i spatne napsana vyjimka dokaze udelat pekny bordel).

Priklad:
begin
InitA;
if a = 0 then Exit;
InitB;
if b = 0 then Exit;
InitC;
if c = 0 then Exit;
...
end;

urcite je to lepsi, nez nasledujici zapis:

begin
InitA;
if a<> o then
begin
InitB;
if b <> 0 then
begin
InitC;
if c <> 0 then
begin
....
end;
end;
end;
end;

Stejne tak dobre pouzite goto je lepsi nez tu moznost vubec nemit.

> procedure TForm1.Button1Click(Sender: TObject);
> label
> L1, L2;
> var
> X, Y: Integer;
> begin
> for X := 1 to 10 do
> begin
> L2: if X = 5 then
> goto L1;
> for Y := 1 to 10 do
> begin
> L1: if Y = 5 then
> goto L2;
> end;
> end;
> end;


S pozdravem

Zbysek Hlinka

http://www.hlinka(tec)cz http://www.slhaters(tec)cz
Phones: 02/795 29 56; GSM: 0603 551 282
Krystofova 1016, 149 00 Praha 4
CZ


TIntegerList

[*] Jan Skopov� <jsdelphi(zv)atlas(tec)cz> - 3.3.2001 14:24:15

Dotaz na Petra Vonese,

proc pod Delphi 5 nelze do TList priradit TList.Add(Pointer(-1)) ? Vytvarel jsem seznam hodnot, pricemz prvni hodnota byla -1. Zpetne pretypovani na Integer vyvolalo exception.

Diky

Jan Skopovy


OT: deska 486 s EISA, SCSI

[*] Milan ��ek - 3.3.2001 16:25:11

ahoj,
dostal se mi do ruky stroj s deskou 486 (2xISA,6xEISA - nebo VLBUS???), s
scsi radicem do te EISA sbernice. Vsechny ostatni karty jsou klasicke ISA.
Nyni jsem ve fazi, kdy se snazim tozchodit jen ten skazi radic - je na nem i
radic pro FDD. Pri bootovani se mi to zastavi na SCSI: Waiting for POST
completation... a konec. Ten radic je AMI (MAN-415-FAST). Myslim, ze problem
bude asi primo v nastaveni motherboardu a funkcnosti EISA slotu - pri startu
mi to hlasi Slot00=invalid configuration EISA NVM, popr. EISA NVM Read
Error.

Podle manualu k MB, by se po zmene karet ve slotech mela spustit jakasi
utilitka CF.EXE a pomoci ni to nejak zkonfigurovat. Tuto utilitku jsem nasel
na netu, ale po startu chce po me jakysi konfiguracni soubor: !EDE0001.CFG -
ktery nemam :-((
A navic, kdyz tam mam vrazenej ten SCSI adapter, tak uz ani nenabootuju.

Nemate prosim nekdo s timto problemem zkusenost? Diky za kazdy napad (na
souktomy email)...

S pozdravem Milan Cizek, amatersky programator, D5 Ent (SP1)
Win2k (SP1) a Win98, cizek.milan(zv)seznam(tec)cz, ICQ: 59826637


---
Odchoz� zpr�va neobsahuje viry.
Zkontrolov�no antivirov�m syst�mem AVG (http://www.grisoft(tec)cz).
Verze: 6.0.231 / Virov� b�ze: 112 - datum vyd�n�: 12.2.2001


Tstring list pro ��sla???

[*] Lauko #tefan <laukosw(zv)naex.sk> - 3.3.2001 16:28:35

> list: TList;
> cislo: integer;
> ...
> cislo := 155;
> list.add(Pointer(cislo));
> cislo := 200;
> list.add(Pointer(cislo));
> ...
> cislo := Integer(list.Items[0]);
> ...
>
> Pod Delphi 3 to beha perfektne, pod Delphi 5 pouze pro Integer >= 0. Pokud
v
> DELPHI 5 napriklad pouzijes cislo := -1 tak se zhrouti cely list, ackoliv
to
> neohlasi zadnou vyjimku.
>

Ahoj,
takto to nemoze fungovat.
TList je zoznam pointrov a ja zaporny pointer nepoznam (iste ani Delphi)...
Jedine riesenie bude asi vytvorit novu triedu zdedenu od TPersistent, TList
alebo TString.
Lauko.

Jak instalovat DGC?

[*] Jakub Pl�ek <kubapl(zv)seznam(tec)cz> - 3.3.2001 16:50:44

Toto je zprava ve formatu MIME obsahujmcm vmce hastm.
Ahoj!
Za��n�m "Delf�novat" a na internetu jsem narazil na sadu komponent DGC. St�hl jsem si ji ale nev�m jak ji instalovat pros�m pora�te.
Nen� probl�m v tom, �e m�m Delphi 3?

Jakub Pl#ek


SQl dotaz

[*] Zbysek Hlinka <hlinka(zv)hlinka(tec)cz> - 3.3.2001 17:52:46

On 3 Mar 2001, at 10:33, Pisingr wrote:

> mam takovy problem s SQL dotazem. Pouzivam MS SQL 7 a pro dotazy
> TQuery atd. U kazdeho sloupce si muzu definovat pouzivany datovy typ.
> Kdyz je typ v databazi nastaven na varchar dotazy vraci to co maji.
> Kdyz je vsak nastaven na nvarchar dotazy nevraceji nic. Je mozne nejak
> premluvit delphi, aby vraceli i dotaz na sluopec s typem nvarchar.
> Nepodarilo se mi totiz zjistit jak to udelat a jaky je rozdil mezi
> temoto typy.

BDE pracuje proti MS SQL 7 dost mizerne. Reseni bych videl v
prechodu na ADO nebo OLE DB. Pokusy s premlouvanim BDE
povazuji za zbytecnou ztratu casu.


S pozdravem

Zbysek Hlinka

http://www.hlinka(tec)cz http://www.slhaters(tec)cz
Phones: 02/795 29 56; GSM: 0603 551 282
Krystofova 1016, 149 00 Praha 4
CZ


TIntegerList

[*] Petr Vones <pvones(zv)mbox.vol(tec)cz> - 3.3.2001 18:00:03

From: "Jan Skopov�" <jsdelphi(zv)atlas(tec)cz>
> proc pod Delphi 5 nelze do TList priradit TList.Add(Pointer(-1)) ? Vytvarel
> jsem seznam hodnot, pricemz prvni hodnota byla -1. Zpetne pretypovani na
> Integer vyvolalo exception.

Ahoj,

to je divne, me to funguje. Jakou vyjimku to vyvolalo ? Projevuje se ti to
v urcite situaci opakovane ?

Petr Vones, amatersky programator


Prepinani Unit

[*] Dalibor Toman <dtoman(zv)fortech(tec)cz> - 3.3.2001 19:37:32



> > > > Priklad 2.
> > > > if ((f=fopen("neco.txt",rt))==NULL)
> >
> > >. Inac spravny C-kar to napise tusim takto
> > > (este strucnejsie):
> > >
> > > if (!(f=fopen("neco.txt",rt)))
> >
> > Ja bych rekl, ze je to spravne jeste kratsi :
> > if (f=fopen("neco.txt",rt))
>
> Tak to ale testujes presne opacnu podmienku nez v Priklade 2,
> pretoze Tvoj najnovsi zapis odpoveda tomuto prikazu
>
> if ((f=fopen("neco.txt",rt))!=0)
>
Beru zpet - mas pravdu.

D. Toman

Prepinani Unit

[*] Dalibor Toman <dtoman(zv)fortech(tec)cz> - 3.3.2001 19:59:35



> > string (AnsiString) je pointer na pamet. Cili ackoliv zabere 4 byty
> umoznuje pracovat i s vice nez 4 bajtovymi retezci. Stare stringy
>
> Nie, string nie je smernik na pamet, string je specifikovana postupnost
> znakov v pameti.
>
> Podla Tvojej definicie aj smernik na int, kedze je tiez smernikom
> na pamet, je string.

neni to moje definice ale definice Borlandu. Uvedom si , ze tady nevedeme debatu nad nexistujicim jazykem, ktery se pokousime teprve definovat ale nad necim co jiz existuje. Popisoval jsem stav veci ...

>
> Dalej dlzka stringu predpokladam, bude vzdy rovnaka (rovna 4),
> kedze string ma byt vzdy 4 bajtovy smernik na pamet.

Obavam se ze tahle debata nema smysl. Bud prijemce definici stringa v Deplhi pascalu nebo ne.

Jinymi slovy, protoze pointer je deklarovan jako pointer na byte, je tento byte dlouhy 32 bitu, protoze na nej ukazuje 32 bitovy pointer. >
> Dalsi zaujimavy dosledok je, ze ak mam dva smerniky na pamet
> (co su podla Tvojej definicie stringy), pricom obidva ukazuju na rovnaku
> postupnost znakov ale ulozenu na roznych miestach v pameti (teda
> hodnota smernikov je rozna), tak potom stringy nie su rovnake
> (ale podla mna rovnake postupnosti znakov su rovnake stringy, t.j.
> 'abc' = 'abc').

long string je pointer (4 bytovy, pouzivame oba 32bitovou architekturu CPU, ze) na pamet. Ta pamet je rozdelena na dve casti. Informace nutne k praci se stringem (delka stringa, delka alokovane pameti, reference count - pocet pointru, ktere ukazuji na stejnou pamet)

Porovanavani dvou stringu sestava z porovnani pointru (jsou-li stejne, jsou stejne i stringa) a porovnani pameti na kterou pointery ukazuji (jsou-li pointry ruzne). To je doufam odpoved na Tvoji otazku.
PS. nekontroloval jsem Borlandi zdrojaky, takze porovnani muze pracovat jinak (ale takhle bych to delal ja). Rozhodne v konecnem dusledku pracuje tak jak jsem jej nastinil.

>
> Akym sposobom zadavas hodnotu stringu? Tento zapis by mal splnat
> Tvoju specifikaciu (je to presne podla definicie pointer na pamet) ale
> na string sa mi to vobec nepodoba:
>
> const
> MyString = Pointer(123456);

demagogie.


D5 povoluje napriklad vynechat znak reference na pamet adresovanou pointerem (^). Napriklad


TYPE
PObject = ^TObject

VAR
P : PObject;
begin
P^.Property := 65;

je mozne prepsat jako:

P.Property := 65;

Podle Tve logiky to tedy znamena ze P uz neni pointer.....

---
citace z helpu od Borlandu:

A long-string variable is a pointer occupying four bytes of memory. When the variable is empty-that is, when it contains a zero-length string-the pointer is nil and the string uses no additional storage. When the variable is nonempty, it points to a dynamically allocated block of memory that contains the string value, a 32-bit length indicator, and a 32-bit reference count. This memory is allocated on the heap, but its management is entirely automatic and requires no user code.
D. Toman


Odkaz na E-mail

[*] Jakub Pl�ek <kubapl(zv)seznam(tec)cz> - 3.3.2001 20:05:22

Toto je zprava ve formatu MIME obsahujmcm vmce hastm.
Pros�m o radu.
Pot�ebuji ud�lat odkaz na e-mailovou adresu. S odkazem na www str�nku nem�m probl�m (funkce ShellExecute).

Jakub Pl#ek


Prepinani Unit

[*] Dalibor Toman <dtoman(zv)fortech(tec)cz> - 3.3.2001 20:29:41

> > Take by me zajimalo, co na to odpovi. Je-li mozna hromadna
> > deklarace, Proc neni mozna hromadna inicializace? Urcite je
> > prehlednejsi zapis
> >
> > var
> > x, y, z: integer;
> > begin
> > x := y := z := 0;
> >
> > nez to mit rozepsane do jednotlivych radku. Tohle me take vytaci
> > kazdou chvili. :-)
>
> 1. V modernych jazykoch su aj lokalne premenne automaticky
> inicializovane (na nulu, nil, ...), vtedy uvedene priradenie vobec
> nie je potrebne.

proboha! Ktery jakyk to dela? (abych se mu vyhnul obloukem). Vetsina takovych inicializaci je naprosto zbytecna (samozreme existuji vyjimky - viz Delphi long string - tam je to nutnost) a jedine co zpusobi je prodlouzeni vykonavani kodu procedury (prodlouzi se inicializace rutiny o instrukce potrebne na prepsani stacku). Mozna je nula nejcastejsi startovaci hodnota, ale zrovna tak to muze byt -1 (INVALID_HANDLE_VALUE), pripadne cokoliv jineho

>
> 2. Priradenie rovnakej hodnoty do viacerych premennych
> naraz (napr. x := 34; y := 34) je podla mna dost zriedkavy
> pripad, teda velky vyznam tohto rozsirenia nevidim.

viz -1 (kazdy file handle)

>
> 3. Takato konstrukcia vyzaduje aby priradenie bol vyraz
> a nie prikaz. To znamena, ze by sa mohol aj vyskytnut
> vsade tam, kde aj vyraz. Kedze to uplne odporuje
> podstate vyrazu ako predpisu na vypocet hodnoty
> (a nerobenia vedlajsich efektov), je maximalne
> nerozumne to takto robit. Potom vyraz zaroven
> aj nieco pocita aj nieco vykonava (meni hodnoty
> premennych) a to je vyborny start do obrovskych
> problemov.

sice jsem Te nepochopil, ale kazdy jazyk obsahuje spoustu povelu a moznjosti, ktere _ale_ nemusim pouzit. Cili pokud se chci tem problemum (ktere ani netusim) vyhnout nemusim tu konstrukci pouzivat.
>
> 4. Priradovaci prikaz nie je zrovna idealna jazykova
> konstrukcia a existuju urcite pristupy (funkcionalne
> programovanie), ktore sa rovnako ako GOTO snazia
> eliminovat aj priradovaci prikaz. Takze priradenie
> samotne je znacne problematicke, nie to este
> vkladanie ho do vyrazov. Preto je podla mna
> ovela vyhodnejsie aby bolo explicitne vyjadrene
> (a jasne viditelne) a neschovavane v inych
> konstrukciach.

A jsme zase u Forthu a podobnych :-). Ja bych rad zustal u Pascalu...

K tomu co programuju, potrebuju programovaci jazyk, ktery sice poskytuje jiste vyhody pohodli proti assembleru, ale zase od neho neni tak vzdalen, aby zapomnel z ceho vysel. To znamena, ze bude umoznovat jak prime prirazeni do promennych tak i odskoky v kodu (goto muze postradat :-) ).
Zadne interpretovane jazyky (ci P-kody) mi nevyhovuji.

>
> 5. Pristupy, ktore mozu byt vyhodne na riesenie urciteho
> druhu uloh sa mozu ukazat ako nepouzitelne na ine,
> zlozitejsie ulohy.

A nebo naopak.

>Preto nemozno robit zavery
> o vyhodnosti jazykovej konstrukcie na zaklade
> troch priradovacich prikazoch ale domysliet
> celkovy dosah a celkove prinosy rovnako
> ako aj zapory.

presne tak. Uvedene konstrukce obhajuji na zaklade nekolika set tisic radku kodu, ktere jsem dosud stihl napsat. A nezajima me co to muze nekomu zpusobit kdyz... Ja vim jen, ze pro me by se tim psani kodu zrychlilo a zpruhlednilo.


PS zminujes tady neustale nejake "podivne" nejmenovane programovaci jazyky. Zajimalo by me, zda existuji nejake "obycejne" aplikace v nich napsane (ne jen ulohy jim site na miru).

D. Toman


TIntegerList

[*] Jan Skopov� <jsdelphi(zv)atlas(tec)cz> - 3.3.2001 22:20:49

Trochu jsem to zvrzal. Jednalo se o TStrings (TComboBox.Items).

mam combo: TComboBox

combo.Items.AddObject('aa', Pointer(-1));
combo.Items.AddObject('aa', Pointer(1));
combo.Items.AddObject('aa', Pointer(2));

cislo := Integer(combo.Items.Objects[0]); ... vyvola exception "List index
out of bounds (0)"
...ale...
cislo := Integer(combo.Items.Objects[1]); ... funguje spravne

Jan Skopovy

----- Original Message -----
From: "Petr Vones" <pvones(zv)mbox.vol(tec)cz>
To: <delphi-l(zv)fwd(tec)cz>
Sent: Saturday, March 03, 2001 6:00 PM
Subject: Re: TIntegerList


> From: "Jan Skopov�" <jsdelphi(zv)atlas(tec)cz>
> > proc pod Delphi 5 nelze do TList priradit TList.Add(Pointer(-1)) ?
Vytvarel
> > jsem seznam hodnot, pricemz prvni hodnota byla -1. Zpetne pretypovani na
> > Integer vyvolalo exception.
>
> Ahoj,
>
> to je divne, me to funguje. Jakou vyjimku to vyvolalo ? Projevuje se ti to
> v urcite situaci opakovane ?
>
> Petr Vones, amatersky programator
>

Syntaxe jazyka (was: Prepinani Unit)

[*] Erik Salaj <winsoft(zv)napri.sk> - 3.3.2001 22:24:22

> > 1. V modernych jazykoch su aj lokalne premenne automaticky
> > inicializovane (na nulu, nil, ...), vtedy uvedene priradenie vobec nie
>
> V Delphi vsak nikoliv. Ale muzes si predstavit libovolnou jinou
> inicializacni hodnotu.

V pripade stringov to plati aj pre Delphi. V kazdom pripade
je to ovela vyhodnejsie riesenie ako vnarane priradenia.

> > 2. Priradenie rovnakej hodnoty do viacerych premennych
> > naraz (napr. x := 34; y := 34) je podla mna dost zriedkavy
> > pripad, teda velky vyznam tohto rozsirenia nevidim.
>
> Odhadem potrebuji hromadnou inicializaci s jinou nez null
> hodnotou zhruba stejne casto jako break. Inicializaci na nulu, nil,

V mojich programoch sa takato situacia vyskytuje velmi vynimocne.

> false atp. potrebuji kazdou chvili. A to nejen na zacatku procedury,
> ale casto i v prubehu, napriklad v cyklech pomerne casto potrebuji
> nastavovat napriklad stavove hodnoty - typicky boolean.

Zda sa mi, ze v takom pripade mas v programe zbytocnu
redundanciu, ked rovnake hodnoty zadavas do roznych premennych.

> > 3. Takato konstrukcia vyzaduje aby priradenie bol vyraz
> > a nie prikaz. To znamena, ze by sa mohol aj vyskytnut
>
> No a? Takove j = ++i je naprosto genialni a v pascalu mi znacne
> chybi.

Ozaj genialne. Skus uhadnut ake parametre dostane
tato procedura, a ake hodnoty budu v i a j po jej vykonani:

i := 37;
j := 52;
MyProc(j = - ++i, --j, i - j--, i = - j++);

Zase si uvedom, ze ide o viacmenej triavialne vyrazy,
skutocne vyrazy v programoch byvaju daleko zlozitejsie.

> > ovela vyhodnejsie aby bolo explicitne vyjadrene
> > (a jasne viditelne) a neschovavane v inych
> > konstrukciach.
>
> V tom pripade musis plesatet pri kazde praci s huge stringem.
> Tam je to prave znacne poschovavane a nepruhledne. Protoze
> s: stgring;

Zase az na maly detail, ze string je udajova struktura a nie
prikaz ci vyraz, preto robit taketo zavery nie je na mieste.

> s lezi na adrese 12345, kde je ukazatel na obsah retezce (67890)
> a jeho delka. Pritom ale s retezcem pracujes tak, jako by lezel
> primo na adrese 12345. Ovsem zadrhel se projevi v okamziku, kdy

Nie, ja s retazcom nepracujem tak, ako keby lezal na nejakej adrese.
Taketo implementacne detaily prenechavam na programovaci jazyk.

> chces retezec poslat napriklad do vypisu - musis napsat napriklad
> Stream.Write(PChar(s)^, Length(s)). To je ale nepruhledna
> habadura, coz?

Nastastie string nie je smernik, takze takyto zapis nie je potrebny.

> > 5. Pristupy, ktore mozu byt vyhodne na riesenie urciteho
> > druhu uloh sa mozu ukazat ako nepouzitelne na ine,
> > zlozitejsie ulohy.
>
> Ano, to je pravda. Obecne bych rekl, ze cim slozitejsi uloha, tim
> silnejsi jazyk potrebujes. Takze ne nahodou jsou nejslozitejsi ulohy
> psane v C (nebo ve specialnim jazyku primo urcenem pro dany typ
> ulohy), kdezto pokus napsat je ve VB dopada zpravidla
> katastrofalne.

Vybral si na porovnanie ozaj vyborne jazyky. Jeden lepsi ako druhy.
Aby som mohol posudit "silu jazyka", musel by si my vysvetlit, co
to je. Ak tym myslis vypoctovu kompletnost (computational
completeness), tak existuju daleko jednoduchsie systemy, ktore
su vypoctovo kompletne (t.j. pouzitelne na napisanie akehokolvek
programu), napr. lambda kalkul alebo SKI operatory.

Erik


Prepinani Unit

[*] Petr Vones <pvones(zv)mbox.vol(tec)cz> - 3.3.2001 23:04:48

From: "Dalibor Toman" <dtoman(zv)fortech(tec)cz>
> > 1. V modernych jazykoch su aj lokalne premenne automaticky
> > inicializovane (na nulu, nil, ...), vtedy uvedene priradenie vobec
>
> proboha! Ktery jakyk to dela? (abych se mu vyhnul obloukem). Vetsina
takovych inicializaci je naprosto zbytecna (samozreme existuji vyjimky - viz
Delphi long string - tam je to nutnost) a jedine co zpusobi je prodlouzeni
vykonavani kodu procedury (prodlouzi se inicializace rutiny o instrukce

Ahoj,

patrne se jedna o interpretacni jazyky.

Petr Vones, amatersky programator


Syntaxe jazyka (was: Prepinani Unit)

[*] Petr Vones <pvones(zv)mbox.vol(tec)cz> - 3.3.2001 23:07:53

From: "Zbysek Hlinka" <hlinka(zv)hlinka(tec)cz>
> Nekdo se muze zeptat, proc tedy neprogramuji v C++. Protoze pro
> aplikace, ktere pisu, je Delphi vyhodnejsi, i pres radu nedostatku.

Ahoj,

pak by mohl byt vhodny C++ Builder.

Petr Vones, amatersky programator


ClipRect Metafile Canvasu

[*] Vaclav Krmela <krmela(zv)ustinadorlici(tec)cz> - 3.3.2001 23:58:51

Da se nejakym zpusobem nastavit ClipRect Metafile Canvasu?

var
Mf: TMetafile;
Mc: TMetafileCanvas;
begin
Mf := TMetaFile.Create;
Mf.Width := 1000;
Mf.Height := 2000;
Mc := TMetafileCanvas.Create(Mf, 0);
with Mc.ClipRect do
LabelClipRect.Caption := Format('(%d,%d,%d,%d)', [Left, Top, Right,
Bottom]);
Mc.Free;
Mf.Free;
end;

ClipRect takto vytvoreneho Canvasu je vzdy shodny
s aktualni velikosti obrazovky. Da se nejak zvetsit?
Nebo, jak vytvorit MetafileCanvas o pozadovane
velikosti ClipRect?

Dekuji
Vaclav Krmela

Delphi IDE a build all project

[*] Petr Vones <pvones(zv)mbox.vol(tec)cz> - 4.3.2001 03:31:16

From: "Slavek Rydval" <rk(zv)atrey.karlin.mff.cuni(tec)cz>
> jak mam prostredi Delphi vysvetlit, ze po prikazu Project/Build All projects
> ma nechat autivni ten, ktery byl pred buildem?

Ahoj,

jedine asi napsat prikaz znovu pomoci Open Tools API.

Petr Vones, amatersky programator


Chyba Delphi?

[*] Petr Vones <pvones(zv)mbox.vol(tec)cz> - 4.3.2001 04:18:22

From: "SPELZA s.r.o." <spelza(zv)spelza(tec)cz>
> navazuji na svuj drivejsi dotaz. V priloze mam kratky programek, ktery
> demonstruje chybu (?) Delphi. Je to hlavni form, ktery po stisku tlacitka
> otevre dva dalsi formy typu StayOnTop. Jeden z nich (Form2) automaticky pri
> sve aktivaci (v OnActivate) vypise hlaseni pomoci MessageDlg. Az potud OK
> ale pokud prepinam mezi obema formy (Form1 a Form2) klikem na jejich
> Caption, dochazi po nekolika pokusech (asi 3) k nechtenemu posouvani formu.

Ahoj,

osobne bych to resil spis takhle:

const
UM_ASYNCSHOW = WM_USER + $1000;

type
TForm3 = class(TForm)
procedure FormActivate(Sender: TObject);
private
procedure UMAsyncShow(var Message: TMessage); message UM_ASYNCSHOW;
public
{ Public declarations }
end;

var
Form3: TForm3;

implementation

{$R *.DFM}

{ TForm3 }

procedure TForm3.UMAsyncShow(var Message: TMessage);
begin
MessageDlg('Error Message', mtWarning, [mbOK], 0);
end;

procedure TForm3.FormActivate(Sender: TObject);
begin
PostMessage(Handle, UM_ASYNCSHOW, 0, 0);
end;

Petr Vones, amatersky programator


Odkaz na E-mail

[*] Leos Urban <Leos.Urban(zv)iol(tec)cz> - 4.3.2001 08:25:36

>Pot�ebuji ud�lat odkaz na e-mailovou adresu.

Shell Execute, pouze nahradis odkaz na Web nasledujicim odkazem
mailto:Mickey.Mouse(zv)disneyland.com

Leos


Odkaz na E-mail

[*] Phill <pedrophill(zv)seznam(tec)cz> - 4.3.2001 11:52:37

Ja pouzivam todle

var
c:string;
begin
co:='mailto:Phill<phill(zv)seznam(tec)cz>';
ShellExecute(handle, 'open' ,pchar(co) , '', '', 0);
end;

Phill

>Pros�m o radu.
>Pot�ebuji ud�lat odkaz na e-mailovou adresu. S odkazem na www str�nku nem�m
probl�m (funkce ?>ShellExecute).
>
>Jakub Pl#ek


Prepinani Unit

[*] Delphi <DelphiForum(zv)seznam(tec)cz> - 4.3.2001 11:53:32

> > int x1 = x2 = x3 = 1;
>
> Pre vecsinu ludi predstavuje '=' porovnanie ("rovna sa") a tento
> zpis je preto znacne metuci. Okrem toho sa miesa deklaracia
> a definicia premennej x1 s definiciami celkom inych premennych.

Clovek muze delat programatora jedine, kdyz bude znat "gramatiku" jazyka ve
kterem pracuje (v pascalu taky musi vedet ze prirazeni se dela pomoci := a
ten priklad jsem psal jako C ne pascal !). V pascalu by to mohlo byt treba
jako x1:=x2:=x3:=1; .

> Alebo, co ak je x2 deklarovane takto:
>
> char x2;

V tomto pripade to tak byt nemuze, protoze prirazeni probiha pri deklaraci.
To znamena ze x1, x2 i x3 jsou typu int. To jsou obecna pravidla a ne muj
vymysl.

> Dtto. Znacne nezrozumitelne a nachylne na chyby v dosledku preklepov
> a nizkej citatelnosti. Inac spravny C-kar to napise tusim takto
> (este strucnejsie):
>
> if (!(f=fopen("neco.txt",rt)))

To je pravda, jenze kolik C-karu je v tehle konfere ? Moc jich nebude a rekl
bych ze ti co jazyk C neznaji by to s tim otaznikem povazovali za preklep.
Proto jsem napsal ==NULL. Uvedom si ze tenhle prikad jsem psal pro
prehlednost VSECH, nejen C-karu.

> Uvedom si, ze ide o velmi trivialne pripady a uz su dost neprehladne.
> V realnych C programoch sa vyskytuju daleko zlozitejsie konstrukcie,
> s este horsimi problemami (napr. smernikmi).

To je jiste pravda, ale precijen by spousta veci mohla v packalu pomoci
(mimochodem v packalu jde taky udelat silene kontrukce ale nekdy se bez nich
proste neobejdes).

A co treba pouzivat v packalu "inline rozhodovani" ?
Jake by to bylo zjednoduseni misto
if k then z := "vlevo" else z := "vpravo";
napsat
z := k?"vlevo":"vpravo";


Petr Jur�k, Spr�vce s�te, program�tor
COMET System s.r.o.
1.M�je 1220
756 61 Roznov pod Radhostem
tel. 0651/653990
fax. 0651/653993
www.cometsystem(tec)cz



----- Original Message -----
From: Erik Salaj <winsoft(zv)napri.sk>
To: <delphi-l(zv)fwd(tec)cz>
Sent: Friday, March 02, 2001 3:23 PM
Subject: Re: Prepinani Unit


> > Mohl bys mi sdelit co je problematickeho natechto prikladech ? :
> >
> > Priklad 1.
> int x1 = x2 = x3 = 1;
>
> Pre vecsinu ludi predstavuje '=' porovnanie ("rovna sa") a tento
> zpis je preto znacne metuci. Okrem toho sa miesa deklaracia
> a definicia premennej x1 s definiciami celkom inych premennych.
>
> Alebo, co ak je x2 deklarovane takto:
>
> char x2;
>
> To je v poriadku, ze sa tam priraduje 1 (a kompilatoru to vobec nevadi)?
> Co ak zamer bol priradit tam znak '1'?
>
> Suvisiaca klasicka chyba vyskytujuca sa v C-programe:
>
> if (a = b)
> printf("a = b");
>
> Je to porovnanie alebo priradenie? Podobne tento preklep:
>
> int x1 = x2 = x3 == 1;
>
> > Priklad 2.
> > if ((f=fopen("neco.txt",rt))==NULL)
>
> Dtto. Znacne nezrozumitelne a nachylne na chyby v dosledku preklepov
> a nizkej citatelnosti. Inac spravny C-kar to napise tusim takto
> (este strucnejsie):
>
> if (!(f=fopen("neco.txt",rt)))
>
> Uvedom si, ze ide o velmi trivialne pripady a uz su dost neprehladne.
> V realnych C programoch sa vyskytuju daleko zlozitejsie konstrukcie,
> s este horsimi problemami (napr. smernikmi).
>
> Erik
>
>

Syntaxe jazyka

[*] Zbysek Hlinka <hlinka(zv)hlinka(tec)cz> - 4.3.2001 12:02:36

On 3 Mar 2001, at 22:24, Erik Salaj wrote:

> > false atp. potrebuji kazdou chvili. A to nejen na zacatku procedury,
> > ale casto i v prubehu, napriklad v cyklech pomerne casto potrebuji
> > nastavovat napriklad stavove hodnoty - typicky boolean.
>
> Zda sa mi, ze v takom pripade mas v programe zbytocnu
> redundanciu, ked rovnake hodnoty zadavas do roznych premennych.

for i := 1 to x do
begin
b1 := true;
b2 := true;
if F0(i) then
begin
b1 := F1(i);
b2 := F2(i);
end;
if b1 and b2 then break;
end;

Priklad je jednoduchy, tohle by slo jeste prepsat do slozitejsiho ifu.
Ale v rade pripadu je nutne to napsat takto.

> > > 3. Takato konstrukcia vyzaduje aby priradenie bol vyraz
> > > a nie prikaz. To znamena, ze by sa mohol aj vyskytnut
> >
> > No a? Takove j = ++i je naprosto genialni a v pascalu mi znacne
> > chybi.
>
> Ozaj genialne. Skus uhadnut ake parametre dostane
> tato procedura, a ake hodnoty budu v i a j po jej vykonani:
>
> i := 37;
> j := 52;
> MyProc(j = - ++i, --j, i - j--, i = - j++);

Ze napises prasarnu neni problem jazyka, ale tvuj. Hodnoty
neodhadnu pokud nevim, zda se parametry vyhodnocuji zleva nebo
zprava.

> > s lezi na adrese 12345, kde je ukazatel na obsah retezce (67890) a
> > jeho delka. Pritom ale s retezcem pracujes tak, jako by lezel primo
> > na adrese 12345. Ovsem zadrhel se projevi v okamziku, kdy
>
> Nie, ja s retazcom nepracujem tak, ako keby lezal na nejakej adrese.
> Taketo implementacne detaily prenechavam na programovaci jazyk.

Kdyz s nim ale chces programovat, musis ty detaily znat. Jinak se
budes ptat, proc pri zapisu Stream.Write(s, Length(s)) dostanes
nejaky rozsypany caj, namisto poctiveho textu.

> > chces retezec poslat napriklad do vypisu - musis napsat napriklad
> > Stream.Write(PChar(s)^, Length(s)). To je ale nepruhledna habadura,
> > coz?
>
> Nastastie string nie je smernik, takze takyto zapis nie je potrebny.

Huge string _JE_ ukazatel na obsah retezce. Precti si nekdy
dokumentaci k Delphi. Uvedeny zapis je toho dokladem.
Samozrejme muzes napsat take Stream.Write(s[1], Length(s)),
coz je dane implementaci stringu.

> > > 5. Pristupy, ktore mozu byt vyhodne na riesenie urciteho
> > > druhu uloh sa mozu ukazat ako nepouzitelne na ine,
> > > zlozitejsie ulohy.
> >
> > Ano, to je pravda. Obecne bych rekl, ze cim slozitejsi uloha, tim
> > silnejsi jazyk potrebujes. Takze ne nahodou jsou nejslozitejsi ulohy
> > psane v C (nebo ve specialnim jazyku primo urcenem pro dany typ
> > ulohy), kdezto pokus napsat je ve VB dopada zpravidla katastrofalne.
>
> Vybral si na porovnanie ozaj vyborne jazyky. Jeden lepsi ako druhy.
> Aby som mohol posudit "silu jazyka", musel by si my vysvetlit, co to
> je. Ak tym myslis vypoctovu kompletnost (computational completeness),
> tak existuju daleko jednoduchsie systemy, ktore su vypoctovo kompletne
> (t.j. pouzitelne na napisanie akehokolvek programu), napr. lambda
> kalkul alebo SKI operatory.

Myslim tim moznosti, jakych lze v tom kterem jazyce dosahnout,
jak se v jazyce pracuje s pameti, jak muzes ovladat ruzna zarizeni
atp.

Pred casem tu za tve ucasti probihala debata o automaticke
uninicializaci dynamicky alokovanych promennych. Jazyk, ktery
tohle dela, je jazyk slaby, protoze ti brani v rozumne praci s
pameti. Priklad jsem uvadel.


S pozdravem

Zbysek Hlinka

http://www.hlinka(tec)cz http://www.slhaters(tec)cz
Phones: 02/795 29 56; GSM: 0603 551 282
Krystofova 1016, 149 00 Praha 4
CZ


SQl dotaz

[*] Delphi <DelphiForum(zv)seznam(tec)cz> - 4.3.2001 12:04:31

nvarchar nchar atd. jsou UNICODE ! a ty musis psat dotazy jako UNICODE ( napr select * from test table where sl1 = N"ok") cili se znakem N ( v MS SQL to tak je protoze jsem z toho byl taky dost zmateny)

Petr Jur�k, Spr�vce s�t�, program�tor
COMET System s.r.o.
1.M�je 1220
756 61 Ro�nov pod Radho#t�m
tel. 0651/653990
fax. 0651/653993
www.cometsystem(tec)cz
----- Original Message -----
From: Pisingr
To: Konference Delphi
Sent: Saturday, March 03, 2001 10:33 AM
Subject: SQl dotaz


Dobry den,
mam takovy problem s SQL dotazem. Pouzivam MS SQL 7 a pro dotazy TQuery atd. U kazdeho sloupce si muzu definovat pouzivany datovy typ. Kdyz je typ v databazi nastaven na varchar dotazy vraci to co maji. Kdyz je vsak nastaven na nvarchar dotazy nevraceji nic. Je mozne nejak premluvit delphi, aby vraceli i dotaz na sluopec s typem nvarchar. Nepodarilo se mi totiz zjistit jak to udelat a jaky je rozdil mezi temoto typy.

Dekuji Petr


StayOnTop a MessageDlg

[*] Petr Ma��k <rtepema(zv)mbox.vol(tec)cz> - 4.3.2001 14:01:06

Zdravim vsechny,
resim problem se zobrazovanim MessageDlg. Hlavni form ma stayontop a v on
activate pouzivam konstrukci Miroslava Marese. Form sam je porad navrchu,
bohuzel i pres okno MessageDlg. V ten moment s oknem nejde ani pohnout,
protoze okno MessageDlg je zrejme modalni. Zkousel jsem pred vyvolanim okna
MessageDlg zmenit FormStyle na fsNormal a potom zpet na fsStayOnTop, to vsak
vede k uplnemu prekresleni a tedy zmizeni a znovu objeveni toho hlavniho
formu. Nezna nekdo nejake elegantni reseni ?

Petr Marik
rtepema(zv)mbox.vol(tec)cz


TIntegerList

[*] Daniel Rott <roxton(zv)atlas(tec)cz> - 4.3.2001 15:44:47

From: "Jan Skopovy" <jsdelphi(zv)atlas(tec)cz>
> > proc pod Delphi 5 nelze do TList priradit TList.Add(Pointer(-1)) ?
Vytvarel
> > jsem seznam hodnot, pricemz prvni hodnota byla -1. Zpetne pretypovani na
> > Integer vyvolalo exception.

From: "Petr Vones" <pvones(zv)mbox.vol(tec)cz>
> to je divne, me to funguje. Jakou vyjimku to vyvolalo ? Projevuje se ti to
> v urcite situaci opakovane ?

To je asi omyl, v TListu to funguje spravne. Problem nastava v TStrings
a zrejme pouze s hodnotou -1. Chybova hlaska je "List index out of
bounds (0)".

ListBox1.Items.Clear;
ListBox1.Items.AddObject('test',TObject(-1));
Memo1.Lines.Add(IntToStr(ListBox1.Items.Count));
Memo1.Lines.Add(IntToStr(Integer(ListBox1.Items.Objects[0])));

Daniel
------------------------------------------------------
Daniel Rott - roxton(zv)volny(tec)cz
http://www.volny(tec)cz/roxton
Some minor bugs/features fixed/added

StayOnTop a MessageDlg

[*] Petr Ma��k <rtepema(zv)mbox.vol(tec)cz> - 4.3.2001 16:00:05


----- Original Message -----
From: "Petr Ma��k" <rtepema(zv)mbox.vol(tec)cz>
To: "Delphi konference" <delphi-l(zv)fwd(tec)cz>
Sent: Sunday, March 04, 2001 2:01 PM
Subject: StayOnTop a MessageDlg


> Zdravim vsechny,
> resim problem se zobrazovanim MessageDlg. Hlavni form ma stayontop a v on
> activate pouzivam konstrukci Miroslava Marese. Form sam je porad navrchu,
> bohuzel i pres okno MessageDlg. V ten moment s oknem nejde ani pohnout,
> protoze okno MessageDlg je zrejme modalni. Zkousel jsem pred vyvolanim
okna
> MessageDlg zmenit FormStyle na fsNormal a potom zpet na fsStayOnTop, to
vsak
> vede k uplnemu prekresleni a tedy zmizeni a znovu objeveni toho hlavniho
> formu. Nezna nekdo nejake elegantni reseni ?
>
Tak si odpovidam sam, snad to pomuze i nekomu druhemu. Z konstrukce
Miroslava Marese, ktera byla uvedena drive

MujForm.FormAcyivate(sender:TObject);
begin
if FormStyle=fsStayOnTop do
begin
SetWindowLong(Handle, GWL_HWNDPARENT, 0);}
SetWindowPos(Handle, HWND_TOPMOST, Left, Top, Width,
Height, SWP_NOMOVE or SWP_NOSIZE or SWP_NOACTIVATE);

end;
staci vynechat funkci SetWindowLong...... a vse je vc poradku, t.j.
MessageDlg je navrchu.

Petr Marik
rtepema(zv)mbox.vol(tec)cz

Prepinani Unit

[*] Erik Salaj <winsoft(zv)napri.sk> - 4.3.2001 16:15:33

> D5 povoluje napriklad vynechat znak reference na pamet adresovanou
pointerem (^). Napriklad
>
>
> TYPE
> PObject = ^TObject
>
> VAR
> P : PObject;
> begin
> P^.Property := 65;
>
> je mozne prepsat jako:
>
> P.Property := 65;
>
> Podle Tve logiky to tedy znamena ze P uz neni pointer.....

Je ta nedomyslenost Pascalu (ten isty problem je aj v C++),
ze miesa pointery a spristupnovanie objektov.

> ---
> citace z helpu od Borlandu:
>
> A long-string variable is a pointer occupying four bytes of memory. When
the variable is empty-that is, when it contains a zero-length string-the
pointer is nil >and the string uses no additional storage. When the variable
is nonempty, it points to a dynamically allocated block of memory that
contains the string value, >a 32-bit length indicator, and a 32-bit
reference count. This memory is allocated on the heap, but its management is
entirely automatic and requires no user >code.

Pisu tam, ze long-string premenna je smernik, nie to, ze long-string samotny
je smernik. String su znaky v pameti (alebo ak uvazujeme abstraktny string,
tak hoci aj na papieri, nie je to skratka podstatne, rovnako ako nie je
podstatne, ako je v pameti string zobrazovany, ze tam moze byt ulozena
dlzka stringu, a pod.). Vsetky udaje v pameti pocitaca su identifikovane
pomocou adresy a teda aj string je takto v pocitaci identifikovany (opet je
vecou implementacie, ci to je adresa prveho znaku stringu, alebo posledneho,
alebo adresa udaja kde je dlzka stringu, atd. Opet pre mna ako pouzivatela
tejto udajovej struktury to nie je dolezite). String premenna potom tuto
identifikaciu (adresu) stringu moze uchovavat a pomocou nej umoznuje
so stringom pracovat, ale nie je to samotny string. Napr. string moze
byt v pameti raz, a takychto premennych mozem mat 10 a kazda
identifikuje tento (identicky) string (obsahuje jeho adresu) ale string
existuje len raz (teda mam len jeden string nie 10 stringov). V urcitom
kontexte je toto potrebne striktne rozlisovat. Podobne cloveka
mozno identifikovat menom, rodnym cislom, obc. preukazom,
fotografiou a pod. ale nemozno to stotoznit (teda clovek nie je
rodne cislo).

Erik


Prepinani Unit

[*] Erik Salaj <winsoft(zv)napri.sk> - 4.3.2001 17:17:32

> > 1. V modernych jazykoch su aj lokalne premenne automaticky
> > inicializovane (na nulu, nil, ...), vtedy uvedene priradenie vobec
> > nie je potrebne.
>
> proboha! Ktery jakyk to dela? (abych se mu vyhnul obloukem). Vetsina
takovych inicializaci je naprosto zbytecna (samozreme existuji vyjimky - viz
Delphi long string - tam je to nutnost) a jedine co zpusobi je prodlouzeni
vykonavani kodu procedury (prodlouzi se inicializace rutiny o instrukce
potrebne na prepsani stacku). Mozna je nula nejcastejsi startovaci hodnota,
ale zrovna tak to muze byt -1 (INVALID_HANDLE_VALUE), pripadne cokoliv
jineho

C#, Java, Eiffel, atd.

1. Default inicializacia lokalnej premennej je zvycajne jedna instrukcia,
teda vo vecsine pripadov moze byt tato rezia zanedbatelna.

2. Komplilator moze tuto inicializaciu vynechat ak nie je potrebna.
Programatora
takato optimalizacia nemusi zaujimat.

3. Inicializacia moze byt vykonavana aj z inych dovodov, napr. bezpecnosti,
aby nebolo mozne precitat neinicializovanu oblast pameti, kde mozu byt
dolezite udaje inej aplikacie.

4. Inicializacia je nevyhnutna pre dynamicky alokovane objekty ak ma system
robit automaticke uvolnovanie. Podobne napr. v konstruktore, ak by objekt
nebol inicializovany a nastane vynimka, tak je problem ako tento objekt
zrusit (pretoze cast objektu uz moze byt a cast este nie je inicializovana),
cize je problem, co ma a co nema destruktor zrusit.

5. Tiez nie je zanedbatelne, ze automaticka inicializacia umoznuje riesit
problemy
s nezelanym pristupom k neinicializovanej pameti.

> sice jsem Te nepochopil, ale kazdy jazyk obsahuje spoustu povelu a
moznjosti, ktere _ale_ nemusim pouzit. Cili pokud se chci tem problemum
(ktere ani netusim) vyhnout nemusim tu konstrukci pouzivat.

Suhlas.

> A jsme zase u Forthu a podobnych :-). Ja bych rad zustal u Pascalu...
>
> K tomu co programuju, potrebuju programovaci jazyk, ktery sice poskytuje
jiste vyhody pohodli proti assembleru, ale zase od neho neni tak vzdalen,
aby zapomnel z ceho vysel. To znamena, ze bude umoznovat jak prime prirazeni
do promennych tak i odskoky v kodu (goto muze postradat :-) ).
> Zadne interpretovane jazyky (ci P-kody) mi nevyhovuji.

Ani mne.

> > 5. Pristupy, ktore mozu byt vyhodne na riesenie urciteho
> > druhu uloh sa mozu ukazat ako nepouzitelne na ine,
> > zlozitejsie ulohy.
>
> A nebo naopak.

Pristupy, ktore uzmoznuju vyriesit zlozitu ulohu samozrejme
dokazu vyriesit aj jednoduchsiu. Ale suhlasim, ze ich pouzitie
nemusi byt vtedy vyhodne.

> PS zminujes tady neustale nejake "podivne" nejmenovane programovaci
jazyky. Zajimalo by me, zda existuji nejake "obycejne" aplikace v nich
napsane (ne jen ulohy jim site na miru).

Napriklad Eiffel je velmi dobry, C# sa zda byt tiez celkom slubne. Aplikacii
je vela.
V urcitych oblastiach sa pouzivaju dalsie zaujimave jazyky, napr. Forth pre
riadenie
teleskopov, atd.

Erik


Prepinani Unit

[*] Dalibor Toman <dtoman(zv)fortech(tec)cz> - 4.3.2001 20:40:31

> >
> > Podle Tve logiky to tedy znamena ze P uz neni pointer.....
>
> Je ta nedomyslenost Pascalu (ten isty problem je aj v C++),
> ze miesa pointery a spristupnovanie objektov.

To neni odpoved na otazku.
Moznost nepsat ^ pribyla az v D5.. Sam radeji tu strisku pisu, abych hned videl ( az se po case ke zdrojaku vratim), ze se jedna o pointer

>
> > ---
> > citace z helpu od Borlandu:
> >
> > A long-string variable is a pointer occupying four bytes of memory. When
> the variable is empty-that is, when it contains a zero-length string-the
> pointer is nil >and the string uses no additional storage. When the variable
> is nonempty, it points to a dynamically allocated block of memory that
> contains the string value, >a 32-bit length indicator, and a 32-bit
> reference count. This memory is allocated on the heap, but its management is
> entirely automatic and requires no user >code.
>
> Pisu tam, ze long-string premenna je smernik, nie to, ze long-string samotny
> je smernik.

Neuvazoval jsi nekdy o tom, ze se stanes politikem? Mas pro to urcite vlohy :-(

> String su znaky v pameti (alebo ak uvazujeme abstraktny string,
> tak hoci aj na papieri, nie je to skratka podstatne, rovnako ako nie je
> podstatne, ako je v pameti string zobrazovany, ze tam moze byt ulozena
> dlzka stringu, a pod.). Vsetky udaje v pameti pocitaca su identifikovane
> pomocou adresy a teda aj string je takto v pocitaci identifikovany (opet je
> vecou implementacie, ci to je adresa prveho znaku stringu, alebo posledneho,
> alebo adresa udaja kde je dlzka stringu, atd. Opet pre mna ako pouzivatela
> tejto udajovej struktury to nie je dolezite). String premenna potom tuto
> identifikaciu (adresu) stringu moze uchovavat a pomocou nej umoznuje
> so stringom pracovat, ale nie je to samotny string. Napr. string moze
> byt v pameti raz, a takychto premennych mozem mat 10 a kazda
> identifikuje tento (identicky) string (obsahuje jeho adresu) ale string
> existuje len raz (teda mam len jeden string nie 10 stringov). V urcitom
> kontexte je toto potrebne striktne rozlisovat. Podobne cloveka
> mozno identifikovat menom, rodnym cislom, obc. preukazom,
> fotografiou a pod. ale nemozno to stotoznit (teda clovek nie je
> rodne cislo).

"klasicka" promenna je pro me takova promenna, ktera po SizeOf(X) vrati velikost obsazene pameti. Pokud toto aplikuju na pointer dostanu 4 byty. Pokud toto aplikuju na promennou typu String (long), dostanu taky 4 - nikoliv delku obsazene pameti.

D. Toman


Prepinani Unit

[*] Dalibor Toman <dtoman(zv)fortech(tec)cz> - 4.3.2001 21:10:08

>
> C#, Java, Eiffel, atd.

Na definici C# jsem se k MS zbezne dival a na automatickou inicializaci lokalnich promennych jsem nenarizil (ale predpokladam, ze jej znas lip a tak to tam asi bude). Co ale pro me z popisu vyplynulo je to, ze je to jazyk, ktery neni pro me.
>
> 1. Default inicializacia lokalnej premennej je zvycajne jedna instrukcia,
to ale neznamena, ze je to jeden byte a jeden cyklus CPU.

Je pravda, ze u jazyka definovaneho jako vyse zminene, uz je to celkem jedno. Jsou pomale uz z principu (prilis mnoho balastu)

> teda vo vecsine pripadov moze byt tato rezia zanedbatelna.
nebudu-li porovnavat rychlost programu v C# proti C++ nebo Deplhi
>
> 2. Komplilator moze tuto inicializaciu vynechat ak nie je potrebna.
podle by sluvko musi bylo lepsi

> Programatora
> takato optimalizacia nemusi zaujimat.
naopak - programatora musi zajimat jaky generuje kompilator kod

>
> 3. Inicializacia moze byt vykonavana aj z inych dovodov, napr. bezpecnosti,
> aby nebolo mozne precitat neinicializovanu oblast pameti, kde mozu byt
> dolezite udaje inej aplikacie.

to jako ma chranit me pred sebou samym? Abych si nemohl precist to co jsem jeste pred chvili mel v nejake promenne (a pak to zustalo na stacku, atd)?
Jina vec je mazani pameti pouzite napriklad pro hesla, ktera ma branit pred ctenim pameti cizimi aplikacemi. Zde jde ale o smazani po pouziti nikoliv pred.

>
> 4. Inicializacia je nevyhnutna pre dynamicky alokovane objekty ak ma system
> robit automaticke uvolnovanie. Podobne napr. v konstruktore, ak by objekt
> nebol inicializovany a nastane vynimka, tak je problem ako tento objekt
> zrusit (pretoze cast objektu uz moze byt a cast este nie je inicializovana),
> cize je problem, co ma a co nema destruktor zrusit.

To je snad samozrejme (viz Delphi String a pointer na nej :-)

>
> 5. Tiez nie je zanedbatelne, ze automaticka inicializacia umoznuje riesit
> problemy
> s nezelanym pristupom k neinicializovanej pameti.

to same co bod 3) ?

> > > 5. Pristupy, ktore mozu byt vyhodne na riesenie urciteho
> > > druhu uloh sa mozu ukazat ako nepouzitelne na ine,
> > > zlozitejsie ulohy.
> >
> > A nebo naopak.
>
>
> Napriklad Eiffel je velmi dobry, C# sa zda byt tiez celkom slubne. Aplikacii
> je vela.

o Eiffelu nevim vubec nic. C# se mi zda byt novodobym Visual Basicem. Ne tim, ze by se mu podobalo syntaxi, ale zamerenim na programatory. Mam pocit ze C# se snazi byt necim co vzdaluje programatora prilis daleko od toho co se deje "dole". Mimo jine v popisu se uvadi, ze nevyzaduje spedialni zapis referenci pomoci pointeru (zadne -> nebo :: ). Na druhou stranu prebira spoustu veci z Pascalu (typ bool = Boolean; prisnejsi kontrolu typu

> V urcitych oblastiach sa pouzivaju dalsie zaujimave jazyky, napr. Forth pre
> riadenie
> teleskopov, atd.
>
doufam, ze pro Forth maji nejaky lepsi duvod nez ten, ze clovek co to psal se do nej zamiloval. Na skole jsme Forth letmo brali a do dnes jsem neprisel na to proc by jej mel nekdo pouzivat (ale nikdy jsem se jej poradne nenaucil...). Je to jeden z nejzvlastnejsich jazyku, co jsem kdy videl...


D. Toman


Otoceni label v tisku

[*] Josef K�n <jkyn(zv)iol(tec)cz> - 4.3.2001 21:46:33

Nevite nekdo jak otocit label v tiskove sestava Qreport moc dekuji Josef


Prepinani Unit

[*] Petr Vones <pvones(zv)mbox.vol(tec)cz> - 4.3.2001 22:35:20

From: "Dalibor Toman" <dtoman(zv)fortech(tec)cz>
> C# se mi zda byt novodobym Visual Basicem. Ne tim, ze by se mu podobalo
> syntaxi, ale zamerenim na programatory. Mam pocit ze C# se snazi byt necim
> co vzdaluje programatora prilis daleko od toho co se deje "dole". Mimo jine

Ahoj,

C# vypada take jako trucovity pokus MS o vlastni Javu ;-)

Petr Vones, amatersky programator


ActiveX

[*] Hurricane <hurricane(zv)quick(tec)cz> - 4.3.2001 23:26:23

Zdravim

Potrebuju napsat aplikaci, ktera se pozdeji integruje o jineho programu jako
ActiveX komponenta. Konkretne jde o okno pro sledovani televize. Za priklad
jsem si vzal ten exampl, co jsem rade z vas posilal. Kdyz jsem to
zjednodusil na maximalni moznou miru a udelal z toho normalni aplikaci, tak
to fungovalo. Kdyz jsem totez napsal jako ActiveX, tak to neslo. ActiveX
komponentu jsem vytvoil, zdarne nainstaloval i program s ni jsem spustil,
ale ta komponenta byla hlucha a TV nikde. V normalni aplikaci je vlastne jen
5 veci.

1) deklarace konstant a promenne HWND
2) deklarace funkce v externi knihovne
3) v OnCreate je spusteni teto funkce s tou promennou a poslani par zprav
4) pri zmacknuti tlacitka (nebo cehokoliv jineho) se posle zprava
5) pri ukonceni toho programu se posle zprava

Pokud jsou v poradku body 123, televize se spusti.

Napada me nekolik moznosti, proc to nefunguje: Nenatahne se ta knihovna
(hlaska o chybejicim exportu ale nevyskoci). Nespusti se Create toho
TActiveFormu. ActiveX blokuje posilani zprav ven.
Jeste jsem objevil problem v tom, ze nektere komponenty nejsou na ActiveX
komponente videt. Treba TButton, HCButton (potomek TGraphic). TMemo se
zobrazi a jde do nej i psat. Netusim, cim to je. A pak jeste nejde
ActiveXFormu priradit MainMenu. Lze ho k tomu nejak donutit?

Muzete mi nekdo poradit? Dik.
Hurricane


Prepinani Unit

[*] Erik Salaj <winsoft(zv)napri.sk> - 5.3.2001 01:07:16

> Clovek muze delat programatora jedine, kdyz bude znat "gramatiku" jazyka
ve
> kterem pracuje (v pascalu taky musi vedet ze prirazeni se dela pomoci := a
> ten priklad jsem psal jako C ne pascal !). V pascalu by to mohlo byt treba
> jako x1:=x2:=x3:=1; .

Jasne, ale aj ked o tom vies, C-kovsky zapis priradenia myli aj skusenejsich
C-ckarov. Jendoducho nie je dobre pouzit znamy symbol na odlisny ucel.
V C-ku to odovodnili tym, ze prikaz priradenia sa vyskytuje
castejsie ako porovnanie, preto mu priradili strucnejsi symbol.

> > Alebo, co ak je x2 deklarovane takto:
> >
> > char x2;
>
> V tomto pripade to tak byt nemuze, protoze prirazeni probiha pri
deklaraci.
> To znamena ze x1, x2 i x3 jsou typu int. To jsou obecna pravidla a ne muj
> vymysl.

Tak to nemas pravdu. Deklaruje sa len x1, samotny prikaz

int x1 = x2 = x3 = 1;

kompilator neprelozi, pretoze x2 a x3 musia byt deklarovane predtym, napr.:

char x2, x3;
int x1 = x2 = x3 = 1;

Ak chces naraz deklarovat aj inicializovat, tak to musi byt takto:

int x1 = 1, x2 = 1, x3 = 1;

> > Dtto. Znacne nezrozumitelne a nachylne na chyby v dosledku preklepov
> > a nizkej citatelnosti. Inac spravny C-kar to napise tusim takto
> > (este strucnejsie):
> >
> > if (!(f=fopen("neco.txt",rt)))
>
> To je pravda, jenze kolik C-karu je v tehle konfere ? Moc jich nebude a
rekl
> bych ze ti co jazyk C neznaji by to s tim otaznikem povazovali za preklep.
> Proto jsem napsal ==NULL. Uvedom si ze tenhle prikad jsem psal pro
> prehlednost VSECH, nejen C-karu.

V ziadnom pripade to podla mna prehladne nie je.

> > Uvedom si, ze ide o velmi trivialne pripady a uz su dost neprehladne.
> > V realnych C programoch sa vyskytuju daleko zlozitejsie konstrukcie,
> > s este horsimi problemami (napr. smernikmi).
>
> To je jiste pravda, ale precijen by spousta veci mohla v packalu pomoci
> (mimochodem v packalu jde taky udelat silene kontrukce ale nekdy se bez
nich
> proste neobejdes).

Ano, ale urcite nie problematicke zlataniny z C-cka.

> A co treba pouzivat v packalu "inline rozhodovani" ?
> Jake by to bylo zjednoduseni misto
> if k then z := "vlevo" else z := "vpravo";
> napsat
> z := k?"vlevo":"vpravo";

Opet vyborny priklad ako nieco zbytocne zamotat. O co
je ten druhy zapis vyhodnejsi? O to, ze musis poznat vyznam
symbolu akehosi otaznika? Nie je lepsie zrozumitelne (kazdemu)
slovicko if?

Erik

Prepinani Unit

[*] Erik Salaj <winsoft(zv)napri.sk> - 5.3.2001 01:40:46

> > 1. Default inicializacia lokalnej premennej je zvycajne jedna
instrukcia,
> to ale neznamena, ze je to jeden byte a jeden cyklus CPU.

Mozno su to dva bajty a dva cykly.

> Je pravda, ze u jazyka definovaneho jako vyse zminene, uz je to celkem
jedno. Jsou pomale uz z principu (prilis mnoho balastu)

Velmi sa mylis. Nerobil by som predcasne zavery. C++ (ktory mixuje C-cko s
objektami), ma ovela viac balastu ako spomenute tri jazyky dokopy. C#
aj Eiffel sa kompiluju (C# nepriamo cez IL, Eiffel sa preklada co C-cka
(koli portabilite) alebo priamo do strojoveho kodu). Pre dobre navrhnuty
jazyk s kvalitnym kompilatorom je naopak mozne ocakavat velmi kvalitny
a rychly kod a tiez kratke casy prekladu.

> > 2. Komplilator moze tuto inicializaciu vynechat ak nie je potrebna.
> podle by sluvko musi bylo lepsi

Dobry kompilator ju vynecha, ak zisti, ze nie je potrebna. Obecne
ale zistit, ze inicializacia nie je potrebna nie je take jednoduche.

> > Programatora
> > takato optimalizacia nemusi zaujimat.
> naopak - programatora musi zajimat jaky generuje kompilator kod

Programatorovi staci vediet, ze ma dobry kompilator, ktory generuje
dobry kod. Nepotrebuje detailne poznat ake optimalizacie sa vykonavaju
(a vecsinou to ani nevie). Chces azda naznacit, ze Delphi programator,
ked napise nejaku proceduru, tak si ju popozera v assmbleri, ci Delphi
vygenerovalo dobry kod? A ked nie, tak co potom urobi? Ja sa priznam,
som nikdy nepotreboval detailne studovat kod vynegerovany z Delphi,
zabudovany disassembler niekedy pouzijem pri ladeni. Obavam sa,
ze vecsina programatorov Delphi ani nepozna instrukcie 386-ky.

> > 3. Inicializacia moze byt vykonavana aj z inych dovodov, napr.
bezpecnosti,
> > aby nebolo mozne precitat neinicializovanu oblast pameti, kde mozu byt
> > dolezite udaje inej aplikacie.
>
> to jako ma chranit me pred sebou samym? Abych si nemohl precist to co jsem
jeste pred chvili mel v nejake promenne (a pak to zustalo na stacku, atd)?
> Jina vec je mazani pameti pouzite napriklad pro hesla, ktera ma branit
pred ctenim pameti cizimi aplikacemi. Zde jde ale o smazani po pouziti
nikoliv pred.

Napisal som pred inou aplikaciou. Moze ist napr. o nejake DLL-ko.

> > 4. Inicializacia je nevyhnutna pre dynamicky alokovane objekty ak ma
system
> > robit automaticke uvolnovanie. Podobne napr. v konstruktore, ak by
objekt
> > nebol inicializovany a nastane vynimka, tak je problem ako tento objekt
> > zrusit (pretoze cast objektu uz moze byt a cast este nie je
inicializovana),
> > cize je problem, co ma a co nema destruktor zrusit.
>
> To je snad samozrejme (viz Delphi String a pointer na nej :-)

Nie, nie je to vsade samozrejme, C++ to napriklad nerobi.

> > 5. Tiez nie je zanedbatelne, ze automaticka inicializacia umoznuje
riesit
> > problemy
> > s nezelanym pristupom k neinicializovanej pameti.
>
> to same co bod 3) ?

Nie, myslim tym klasicke pametove chyby, prepisovanie pameti
pomocou smernikov, ktore obsahuju neinicializovane (nahodne)
hodnoty.

> o Eiffelu nevim vubec nic. C# se mi zda byt novodobym Visual Basicem. Ne
tim, ze by se mu podobalo syntaxi, ale zamerenim na programatory. Mam >pocit
ze C# se snazi byt necim co vzdaluje programatora prilis daleko od toho co
se deje "dole". Mimo jine v popisu se uvadi, ze nevyzaduje spedialni zapis
>referenci pomoci pointeru (zadne -> nebo :: ). Na druhou stranu prebira
spoustu veci z Pascalu (typ bool = Boolean; prisnejsi kontrolu typu

C# ma byt novodobe C++ (v tom zmysle, ze by ho malo nahradit, nie ze ma byt
takisto nekvalitne).

> doufam, ze pro Forth maji nejaky lepsi duvod nez ten, ze clovek co to psal
se do nej zamiloval. Na skole jsme Forth letmo brali a do dnes jsem neprisel
na to proc by jej mel nekdo pouzivat (ale nikdy jsem se jej poradne

Maju na to velmi dobre dovody. Napr. taky, ze Forth aj so zakladnym
vyvojovym prostredim zabera len niekolko kilobajtov pameti. Napr.
Quartus Forth, co mi bezi priamo na Palm-e ma 40kB vcitane inline
assemblera. K tomu su este pridavna kniznica s roznymi programami
(grafika, sound, turtle graphics, serial comm, fonts, forms, .......) ktorej
kompletny zdrojovy kod ma 62kB, cize odhadom po preklade
zaberie v pameti tak 15-20kB.

> nenaucil...). Je to jeden z nejzvlastnejsich jazyku, co jsem kdy videl...

Forth je obycajny postfixovy procesor s dvoma zasobnikmi. Existuju
daleko zvlastnejsie jazyky ako je trivialny Forth.

Erik


Prepinani Unit

[*] Erik Salaj <winsoft(zv)napri.sk> - 5.3.2001 01:43:31

> > Je ta nedomyslenost Pascalu (ten isty problem je aj v C++),
> > ze miesa pointery a spristupnovanie objektov.
>
> To neni odpoved na otazku.
> Moznost nepsat ^ pribyla az v D5.. Sam radeji tu strisku pisu, abych hned
videl ( az se po case ke zdrojaku vratim), ze se jedna o pointer

Obavam sa, ze to nepochopis. Je totiz velmi zlozite vysvetlit,
ze ked pracujem s objektami, nepotrebujem nic vediet
o smernikoch a strieskach. Dobre OOP jazyky to tak
aj robia. Je to jednoduche, prehladne, zrozumitelne, ...
tak naco to komplikovat? Pouziva to Java, C#, Eiffel
a nie su s tym absolutne ziadne problemy, tak naco
to robit zlozitejsie so strieskami?

> > Pisu tam, ze long-string premenna je smernik, nie to, ze long-string
samotny
> > je smernik.
>
> Neuvazoval jsi nekdy o tom, ze se stanes politikem? Mas pro to urcite
vlohy :-(

To akoze poriadne citat vedia len politici?

> "klasicka" promenna je pro me takova promenna, ktera po SizeOf(X) vrati
velikost obsazene pameti. Pokud toto aplikuju na pointer dostanu 4 byty.
Pokud toto aplikuju na promennou typu String (long), dostanu taky 4 -
nikoliv delku obsazene pameti.

Opet zalezi na tom, ako je to implementovane. Ale mozem Ta ubezpecit,
ze string bez ohladu na implementaciu vzdy bol, je a bude retazec znakov.

Erik


Otoceni label v tisku

[*] Petr Vones <pvones(zv)mbox.vol(tec)cz> - 5.3.2001 02:20:27

From: "Josef K�n" <jkyn(zv)iol(tec)cz>
> Nevite nekdo jak otocit label v tiskove sestava Qreport moc dekuji Josef

Ahoj,

na strankach QuSoftu (http://www.qusoft.no) je komponenta QRAngledLabel
QRANGLBL.ZIP

Petr Vones, amatersky programator


Syntaxe jazyka

[*] Petr Vones <pvones(zv)mbox.vol(tec)cz> - 5.3.2001 02:33:56

From: "Zbysek Hlinka" <hlinka(zv)hlinka(tec)cz>
> for i := 1 to x do
> begin
> b1 := true;
> b2 := true;
> if F0(i) then
> begin
> b1 := F1(i);
> b2 := F2(i);
> end;
> if b1 and b2 then break;
> end;

Ahoj,

co treba takhle:

for I := 1 to X do
if (not F0(I)) or (F1(I) and F2(I)) then
Break;

Petr Vones, amatersky programator


Prepinani Unit

[*] Petr Vones <pvones(zv)mbox.vol(tec)cz> - 5.3.2001 02:41:52

From: "Erik Salaj" <winsoft(zv)napri.sk>
> Obavam sa, ze to nepochopis. Je totiz velmi zlozite vysvetlit,
> ze ked pracujem s objektami, nepotrebujem nic vediet
> o smernikoch a strieskach. Dobre OOP jazyky to tak

Ahoj,

presne takhle to funguje v ObjectPascalu. Pametovy model byl prepracovan tak,
ze objekt je vlastne fyzicky vzdy ukazatel. Deklarace jako PMyObj = ^TMyObj
byly smyluplne pouze do BP7.

Petr Vones, amatersky programator

Prepinani Unit

[*] Petr Vones <pvones(zv)mbox.vol(tec)cz> - 5.3.2001 03:06:51

From: "Erik Salaj" <winsoft(zv)napri.sk>
> Velmi sa mylis. Nerobil by som predcasne zavery. C++ (ktory mixuje C-cko s
> objektami), ma ovela viac balastu ako spomenute tri jazyky dokopy. C#
> aj Eiffel sa kompiluju (C# nepriamo cez IL, Eiffel sa preklada co C-cka

Je snad 'interpreter' C# mensi balast nez spustitelny kod z C++ prekladace ?

> Programatorovi staci vediet, ze ma dobry kompilator, ktory generuje
> dobry kod. Nepotrebuje detailne poznat ake optimalizacie sa vykonavaju

Takovy programator ale patrne nemuze existovat, protoze neexistuje ani takovy
kompilator. Stale jsou zde pripady, kdy je dobre vedet kde jsou jista omezeni
a upravit kod tak, aby jej prekladac mohl vygenerovat lepe, pokud je to v dane
situaci kriticke.

> C# ma byt novodobe C++ (v tom zmysle, ze by ho malo nahradit, nie ze ma byt
> takisto nekvalitne).

Obavam se ze tohle je jen prani Microsoftu.

Petr Vones, amatersky programator

Syntaxe jazyka

[*] Petr <DelphiForum(zv)seznam(tec)cz> - 5.3.2001 07:03:01

> co treba takhle:
>
> for I := 1 to X do
> if (not F0(I)) or (F1(I) and F2(I)) then
> Break;

A co kdyz budes potrebovat vedet ktera z tech dvou podminek to vyvolala ?
not F0(i) nebo (F1(i) and F2(i)) ? Budes to znova kontrolovat ?

Vem si priklad ze ve funkcich F0, F1 a F2 se vykonava nejaky casove narocny
kod. (dejmetomu ze vykonani funkce potrva asi 20 vterin). Muzu te ujistit ze
se takove reseni zakaznikovi nebude libit ani trochu.

Petr Jur�k, Spr�vce s�t�, program�tor
COMET System s.r.o.
1.M�je 1220
756 61 Ro�nov pod Radho#t�m
tel. 0651/653990
fax. 0651/653993
www.cometsystem(tec)cz


----- Original Message -----
From: Petr Vones <pvones(zv)mbox.vol(tec)cz>
To: <delphi-l(zv)fwd(tec)cz>
Sent: Monday, March 05, 2001 2:33 AM
Subject: Re: Syntaxe jazyka


> From: "Zbysek Hlinka" <hlinka(zv)hlinka(tec)cz>
> > for i := 1 to x do
> > begin
> > b1 := true;
> > b2 := true;
> > if F0(i) then
> > begin
> > b1 := F1(i);
> > b2 := F2(i);
> > end;
> > if b1 and b2 then break;
> > end;
>
> Ahoj,
>
> co treba takhle:
>
> for I := 1 to X do
> if (not F0(I)) or (F1(I) and F2(I)) then
> Break;
>
> Petr Vones, amatersky programator
>
>


---
Odchoz� zpr�va neobsahuje viry.
COMET System Network Administrator.
Zkontrolov�no antivirov�m syst�mem AVG (http://www.grisoft(tec)cz).
Verze: 6.0.231 / Virov� b�ze: 112 - datum vyd�n�: 12.02.01


Equalizer a video

[*] Uniplet T�eb�� - elektronika - 5.3.2001 07:10:30

Ahoj

delam na mensim multimedialnim prehravaci a vsechno by bylo OK az na jeden maly problem, na plose je umistneny
progressbar a komponenta VUMETER, pomoci ktere se v progressbaru zobrazuje equalizer, problem ale nastava
kdyz uzivatel zacne prehravat videa typu MPEG, tehdy komponenta VUMETER nezobrazuje zadne hodnoty, pri vsech
ostatnich je to bez problemu, nevite nekdo nahodou v cem je problem ? Pouzivam D5 a W98.

DIK


Prepinani Unit

[*] Petr <DelphiForum(zv)seznam(tec)cz> - 5.3.2001 07:13:59

Mam dalsi konstrukci ktera mi v packalu velice chybi. Dam priklad ze stareho
(ne)dobreho basicu.

for x = 1 to 50 step 5

nebo C

for(int x=1;x<=50;x+=5)

Delphi ma tu nevyhodu ze mu nemuzes umele zvednout hodnotu v cyklu for a
musis to resit pomoci prepoctu nebo podminek a to neni zrovna elegantni. Ted
jiste napises ze to lze udelat pomoci while until nebo repeat. samozrejme to
lze ale ted jde o lepsi variabilitu prikazu for (moznosti to a downto nedava
variabilite velke nadeje).

A jeste jedna mala pripominka na to nekvalitni C (resp. C++). Proc ho
pouziva tolik lidi a nechteji ani sliset o nejake "zabrzdene" a hardwarove
narocne Jave ? Myslis ze C# bude lepsi. Myslim ze KAZDY interpretacni jazyk
bude razit heslo "jsem silene pomaly ale jedu na cemkoli".

Petr Jur�k, Spr�vce s�t�, program�tor
COMET System s.r.o.
1.M�je 1220
756 61 Ro�nov pod Radho#t�m
tel. 0651/653990
fax. 0651/653993
www.cometsystem(tec)cz

---
Odchoz� zpr�va neobsahuje viry.
COMET System Network Administrator.
Zkontrolov�no antivirov�m syst�mem AVG (http://www.grisoft(tec)cz).
Verze: 6.0.231 / Virov� b�ze: 112 - datum vyd�n�: 12.02.01


prepocet

[*] Kalhous Zdenek <zdenek.kalhous(zv)comarr(tec)cz> - 5.3.2001 07:31:40

Pokud jde o tisk ve znakov�m rezimu:
Prakticky i ta nejjednodussi jehlickova tiskarna umi escape
sekvenci prepinat hustotu radkovani 6 radku/palec nebo 8 radku na
palec. Nektere tiskarny maji i vetsi repertoar, je potreba se podivat
do manualu ke konkretnimu typu. Velikost (vyska) pisma se tim
ale nezmeni, tu je ve znakovem rezimu tisku mozno menit
zpravidla jen normalni/male pismo. Escape sekvence na tyto volby
jsou standardni a fungovaly mi zatim na vsech tiskarnach se
kterymi jsem se setkal, zpameti si je ale samozrejme nepamatuju.
Jinak je mozno tisknout v grafice, ale to na jehlickovych tiskarnach
nebyva to nejlepsi orechove.

On 2 Mar 2001, at 8:57, DHederer(zv)softip.sk wrote:

> hi all,
>
> tak som zistil ze CPI nemaju vplyv na vysku pretoze udavaju hustotu tlace
> (character per inch).
> takze to pojde cez DPI tej ktorej tlaciarne.
>
> d za kazdy tip, ktory mi poslete.
>


Z.Kalhous


TFormDesigner

[*] Bene� Jaroslav <JBenes(zv)cpoj(tec)cz> - 5.3.2001 07:54:33

Ahoj

Pokusil jsem se premigrovat jednu komponentu z D3 do D5. Prekladac
narazil na problem s TFormDesigner. V D3 je - ale v D5 jsem to nenasel.
Jak tedy lze deklaraci obejit? Nesetkal jste se s tim nekdo?

Diky

Jaro B.

DelphiX

[*] Vaclav Krejci <krejciv(zv)ssakhk(tec)cz> - 5.3.2001 07:57:09

Zdravim,

zkus my clanky na www.builder(tec)cz....


----- Original Message -----
From: "Pavel Kubal" <kubal.p(zv)seznam(tec)cz>
To: <krejciv(zv)centrum(tec)cz>
Sent: Sunday, March 04, 2001 10:39 PM
Subject: DelphiX


>
> Dobry den,
> chtel bych se Vas zeptat jestli mate nejakou homepage, kde mate vsechny
sve clanky o DelphiX nebo
> alespon jejich linky.
>

SQl dotaz

[*] Petr <DelphiForum(zv)seznam(tec)cz> - 5.3.2001 07:57:45

Vytazek z knihy "Mistrovstvi v Transact-SQL" Sada UNICODE :

V minulosti se retezcova znakova data omezovala na znaky z mnozin 256 znaku. Kazdy znak byl tvoren jedinym bajtem a jeden bajt pojme 256 (2 na 8) ruznych znaku. Jeste pred prijetim standardu Unicode se vsechny sady znaku skladaly z jednobajtovych znaku.
Unicode rozsiruje pocet moznych znaku na 2 na 16 neboli 65536, protoze misto jednoho bajtu pouziva dva bajty. tato zvysena kapacita umoznuje zahrnuti znaku a symbolu, ktere se nachazeji ve vetsine svetovych jazyku, vcetne vsech znaku obsazenych v drive pouzivanych sadach.
Obvykle retezcove typy (char, varchar a text) jazyka Transact-SQL se konstruuji ze znaku konkretni jednobajtove znakove sady. Tato znakova sada se vybira behem instalace a nelze ji pozdeji zmenit bez opakovaneho vytvoreni databazi a opakovaneho nahrani dat. Naproti tomu retezce Unicode mohou obsahovat libovolny znak definovany standardem Unicode.Protoze retezce Unicode zabiraji dvakrat vice prostoru nez obvykle retezce, mohou mit jen polovicni delku (4000 znaku).
SQL Server definuje pro ukladani retezcu Unicode specialni datove typy specificke pro sadu Unicode : nchar, nvarcharm ntext. Tyto datove typy muzete pouzivat u sloupcu, ktere museji obsahovat znaky z vice znakovych sad. Podobne jako v pripade poli obvyklych retezcu znaku lze pouzivat nvarchar v pripade, kde se delka dat v danem sloupci v jednotlivych radcich vyrazne odlisuje, a nchar, kdyz jsou tyto delky v podstate stejne. Potrebujete-li ulozit vice nez 4000 znaku, pouzijte typ ntext.
Typy retezcu standardu Unicode SQL-Serveru vychazeji z datovych typu narodnich znaku SQL-92. Stejne jako SQL-92 pouziva i jazyk Transact-SQL predponu N, ktera odlisuje datove typy a hodnoty Unicode.

Napr.

SELECT DATALENGTH (N'The Firm')


------------------- -------
16

Tento dotaz vrati hodnotu "16", protoze diky velkemu N se stava z 'The Firm' retezec Unicode.

Petr Jur�k, Spr�vce s�t�, program�tor
COMET System s.r.o.
1.M�je 1220
756 61 Ro�nov pod Radho#t�m
tel. 0651/653990
fax. 0651/653993
www.cometsystem(tec)cz


----- Original Message -----
From: Delphi
To: delphi-l(zv)fwd(tec)cz
Sent: Sunday, March 04, 2001 12:04 PM
Subject: Re: SQl dotaz


nvarchar nchar atd. jsou UNICODE ! a ty musis psat dotazy jako UNICODE ( napr select * from test table where sl1 = N"ok") cili se znakem N ( v MS SQL to tak je protoze jsem z toho byl taky dost zmateny)

Petr Jur�k, Spr�vce s�t�, program�tor
COMET System s.r.o.
1.M�je 1220
756 61 Ro�nov pod Radho#t�m
tel. 0651/653990
fax. 0651/653993
www.cometsystem(tec)cz



----- Original Message -----
From: Pisingr
To: Konference Delphi
Sent: Saturday, March 03, 2001 10:33 AM
Subject: SQl dotaz


Dobry den,
mam takovy problem s SQL dotazem. Pouzivam MS SQL 7 a pro dotazy TQuery atd. U kazdeho sloupce si muzu definovat pouzivany datovy typ. Kdyz je typ v databazi nastaven na varchar dotazy vraci to co maji. Kdyz je vsak nastaven na nvarchar dotazy nevraceji nic. Je mozne nejak premluvit delphi, aby vraceli i dotaz na sluopec s typem nvarchar. Nepodarilo se mi totiz zjistit jak to udelat a jaky je rozdil mezi temoto typy.

Dekuji Petr


---
Odchoz� zpr�va neobsahuje viry.
COMET System Network Administrator.
Zkontrolov�no antivirov�m syst�mem AVG (http://www.grisoft(tec)cz).
Verze: 6.0.231 / Virov� b�ze: 112 - datum vyd�n�: 12.02.01


problem s *.dbf na siti

[*] Petr S <petr(zv)slunce(tec)cz> - 5.3.2001 07:59:33

Ahojte,

jeden muj kamarad, ma takovyto problem :

Mam tady nasledujici problem s Delphi:
- aplikace je na siti NT (pouzivam *.dbf tabulky pres BDE)
- kdyz s ni pracuji na PII je vse OK
- kdyz s ni pracuji na PIII pri zpracovani dat to po chvili zatuhne a je to
mrtve
- za nejakou dobu vyzkoci chyba, ze je chyba v uzamceni
- to ale nechapu, protoze ja pouziji Exclusive otevreni a
pak stand. edit, post, ...

- kdyz hodim data ze site na lokal PIII, tak je vse OK

- Vidim problem ve spatnem zamykani (nebo nestihani odemykani recordu) -
nemas nejaky napad co s tim ?

Predem diky za jakoukoli radu


Petr Sadovsky

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