Archív konference Delphi

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

Prekryti TImage rychle se menici bitmapou ktera se

[*] Miloslav Pojsl <mpojsl(zv)seznam(tec)cz> - 12.10.2007 10:04:20

Zdravim vsechny,

prosim nevite nekdo, jak prekryt graficky vystup komponenty TImage, ktera se rachle meni (snima obraz z prumyslove kamery v realnem case) jinym obrazkem, ktery se nemeni? Chci obraz z kamery prekryvat napr. obdelnikem nebo kruznici a vytvorit si tak vyrz z obrazu. Kdyz to kreslim primo do TImage.Canvas tak to blika. Vyresil jsem to sice upravou priorit vlaken, ale tohle reseni se mi nelibi. Chtel bych mit nad obrazem z kamery jeste jednu vrstvu, na kterou muzu cmarat co chci aniz by to trapne blikalo. Nevite nekdo, jak na to. Leccos jsem zkousel, ale k nicemu to nevedlo.

Diky za nakopnuti:-)


Mgr. Miloslav Pojsl
Meopta optika s.r.o.
Kabelikova 1
Prerov

Data z konference

[*] J.Hasek <cz602778(zv)tiscali(tec)cz> - 12.10.2007 09:38:18

> Vazeni,
>
> rad bych se zeptal, kdy budou k dispozici dalsi prispevky z konference.
> Posledni, kterymi jsem aktualizoval databazi, byly 2007_07D.txt. Navic,
> v posledni dobe se mi nedari pripojeni na server ftp://delphi(tec)cz.
> Prosim, podivejte se na to.

Trosku jsem na to v posledni dobe pozapomnel a navic pripojeni na ftp server
se mi taky nepodarilo. Poslu ti to zatim primo na mail.

Zdravi
J. Hasek

FB - jak zjistit jmena databaze na serveru, pripad

[*] Petr Hlozek <petr h(zv)mrp(tec)cz> - 12.10.2007 08:32:13

Dobry den,

neslo by mit jeste jednu spolecnou databazi, kde by lezel seznam firem s
odkazem o ktery soubor se jedna?
Pokud by uzivatel potreboval ukazat data ucetnimu, nebylo by lepsi
udelat v programu zalohu dat a dat ji tomu ucetnimu at si jej obnovi do
vlastniho programu?

Petr

Petr Svejda napsal(a):
> Mam rozsahlou databazovou aplikaci s Firebirdovou databazi. Kazda agenda
> (firma a rok) ma svuj vlastni fdb soubor. Uzivatel si muze (a musi) sam
> zakladat nove databaze, mazat je a otevirat. Do tedka jsem mel v
> nastaveni zadanou cestu k datum (napr. F:\mojedata\) a program si prosel
> vsechny fdb soubory v teto slozce a nabidl mi je do okna vyberu agendy a
> roku. Tady si uzivatel soubory v poklidu zakladal, mazal a oteviral.
> Toto reseni s sebou vsak nese zavazny bezpecnostni problem, ze uzivatel
> musi mit fyzicky pristup ke slozce s daty.
>
> Otazka je, se pripojit k databazim pomoci konvence SERVER:alias,
> popripade SERVER:lokalni_cesta_serveru a pritom mit moznost zjistit jake
> fdb databaze muze v uvedene lokalni ceste serveru Firebird otevrit,
> pripadne pokud by to neslo, jake jsou nadefinovany aliasy (pripadne
> jestli jsou dynamicky nacitat, menit, mazat, pridavat).
>
> Petr
>
>

FB - jak zjistit jmena databaze na serveru, pripad

[*] Jiri Cincura <diskuze(zv)cincura(tec)net> - 10.10.2007 23:53:59

On 11/10/07, petr palicka <palicka.petr(zv)seznam(tec)cz> wrote:
> Aliasy jsou definovane v konfiguraci serveru a je to prace
> administratora serveru. AFAIK toto nelze menit vzdalene pres pripojeni k
> serveru, ale mozna se pletu, mrkni se do release notes, kde by to urcite
> bylo zmineno, kdyby to slo.

Nejde to. Server do aliases.conf nedonutim zapsat ani kdybych chtel.

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

hibernace a nasledna akce po probuzeni

[*] delphin(zv)post(tec)cz - 12.10.2007 12:10:31

> nejak se mi nedari "vydolovat" reseni nasledujiciho problemu
>
> Potrebuji programove hibernovat PC. Cesky preklad je tusim rezim spanku.
> Coz by nebyl takovy problem. Potrebuji ale pred hibernaci programove
> nastavit onen timer v BIOSu, ktery ho probouzi. A kdyz se PC probudi,
> spusti nejakou definovanou akci (program), jako reakce na prave na to
> probuzeni.
>
> Mohl bych timto pozadat nekoho znaleho, zda by me nepostrcil potrebnym
> smerem ??

Asi to jde i jinak, ale tohle funguje CreateWaitableTimer +
SetWaitableTimer. Pak se zavola funkce WaitForxxxxx a az se pocitac probudi,
tak funkce WaitForxxxx vrati prislusny vysledek.

Prekryti TImage rychle se menici bitmapou ktera se

[*] Miloslav Pojsl <mpojsl(zv)seznam(tec)cz> - 12.10.2007 13:00:34


> > Takto to delat nechci. Zpomalovalo by to zobrazovani vystupu z kamery.
>
> Kdyz jde o rychlost, nebude lepsi pouzit TPaintBox?
>
> Udelas si tu TempBitmap, v te provedes potrebne vykreslovani a pak...
>
> with PaintBox do
> Canvas.CopyRect(Canvas.ClipRect, TmpBmp.Canvas, Canvas.ClipRect);
>
> Nebo muzes kreslit az pote na PaintBox.Canvas.Draw neco...
>
> Ja to takhle pouzivam a zadny problem s blikanim nemam. Pozadi je staticke
> jako v tvem pripade (pokud jsem to dobre pochopil).

Pozadi je prave dynamicke (real-time obraz z kamery ), popredi jsou nejake geometricke utvary, ty jsou staticke (relativne, pokud je mysi nepresouvam)
Zkousel jsem to podle tohoto navrhu, ale bylo to jeste horsi nez s pomoci TImage

> Vykresluji polohu nastroje nad rezacim planem kazdych 100ms pomoci...

Mgr. Miloslav Pojsl
Meopta optika s.r.o.
Kabelikova 1
Prerov

Prekryti TImage rychle se menici bitmapou ktera se

[*] Miloslav Pojsl <mpojsl(zv)seznam(tec)cz> - 12.10.2007 13:12:35


> > Pozadi je prave dynamicke (real-time obraz z kamery ), popredi jsou nejake
> geometricke utvary, ty jsou staticke (relativne, pokud je mysi nepresouvam)
> > Zkousel jsem to podle tohoto navrhu, ale bylo to jeste horsi nez s pomoci
> TImage
>
> a pouzit regiony?
>
> Shape Function
> ---
> Rectangular region: CreateRectRgn, CreateRectRgnIndirect
> Rectangular region with rounded corners: CreateRoundRectRgn
> Elliptical region: CreateEllipticRgn, CreateEllipticRgnIndirect
> Polygonal region: CreatePolygonRgn, CreatePolyPolygonRgn

Vpada to zajimave, ale nevim co jsou to Regiony. Mam Delphi6


Mgr. Miloslav Pojsl
Meopta optika s.r.o.
Kabelikova 1
Prerov

Prekryti TImage rychle se menici bitmapou ktera se

[*] petr palicka <palicka.petr(zv)seznam(tec)cz> - 12.10.2007 13:40:37

> Vpada to zajimave, ale nevim co jsou to Regiony. Mam Delphi6

to jsou primo wokenni funkce. mrkni se do napovedy k win32, nekde ji tam
urcite mas na disku s delphi nainstalovanou. poslal jsem ti prve jenom
nastrel, co mas asi tak v helpu hledat.

Peca

Data z konference

[*] Ing. Dubsky Jan <dubsky(zv)s-palava(tec)cz> - 12.10.2007 13:24:36

Ozyvam se za ostatni. Vsem na mail to poslat nelze. Bylo by vhodne rozjet
ten server a dat to tam pro vsechny. Diky

Honza

>> rad bych se zeptal, kdy budou k dispozici dalsi prispevky z konference.
>> Posledni, kterymi jsem aktualizoval databazi, byly 2007_07D.txt. Navic,
>> v posledni dobe se mi nedari pripojeni na server ftp://delphi(tec)cz.
>> Prosim, podivejte se na to.

> Trosku jsem na to v posledni dobe pozapomnel a navic pripojeni na ftp
> server se mi taky nepodarilo. Poslu ti to zatim primo na mail.


Odchozi zprava neobsahuje viry.
Zkontrolovano AVG.
Verze: 7.5.503 / Virova baze: 269.15.30/1125 - datum vydani: 11.11.2007
21:50


Architektura vicevrstve aplikace

[*] Jan Sebelik <honza(zv)haes(tec)cz> - 12.10.2007 14:32:41

O vicevrstvych aplikacich a COM neco vim,
presto bych se rad zde v konferenci poradil s "radou starsich", zda nedelam neco blbe nebo zda nejde neco udelat lip.

Na aplikacnim serveru mam tuto strukturu:

TFBConnection = class(TAutoObject, IFBConnection)
Zde implementuju zakladni komunikaci s Firebird databazi. Zadne datasety, jenom TIBConnection, TIBTransaction a TIBSQL.

TFBProvider = class(TFBConnection, IAppServer)
Zde mam vlastni implementaci IAppServer, abych mohl na klientovi pouzivat TClientDataSet, pod ktery na serveru v runtime podlozim TDataSetProvider a TIBDataSet.
Mam jenom D7Pro, takze nemam TRemoteDataModule a TDCOMConnection, musim proto pouzit vlastni cestu. Stejne to mam implementovany lip, vcetne rizeni transakci apod.
:-)

THSAppSrv = class(TFBProvider, IHSAppSrv)
Toto je vlastne prazdny object, ktery umi jenom neco jako "Hello Klient on <your machine name>, here is HSAppServer on <server machine name> for your profit."

Aplikacni server ma jenom jednu Class Factory:
TAutoObjectFactory.Create(ComServer, THSAppSrv, CLASS_HSAppSrv, ciMultiInstance, tmApartment);

Funguje to dobre.
HSAppServer implementuje tri interface (IUnknown a IDispatch nepocitaje), na ktere se v pohode dostanu:

HSSrv:=CoHSAppSrv.CreateRemote(MachineName);
FBCon:=HSSrv as IFBConnection;
FBPrv:=HSSrv as IAppServer;

Mne se ale ta architektura nelibi.
HSAppServer toho umi nejak zbytecne moc. Neni to dost modularni.

HSAppServer by mel slouzit jenom jako univerzalni DCOM kanal do serveroveho pocitace. Security - viz nastaveni DCOM, takze zadne obavy. Chtel bych, aby na serverovem pocitaci nasledne pribyl specificky interface pro specifickou aplikaci a jeho in-proc COM implementace (ne out-of-proc, DCOM).

Anebo se mylim?

Chces aplikacni server pro svoji specifickou aplikaci? Napis si interface a jeho (DLL) implementaci. Zavolej HSAppSrv a on ti pristup k tvemu inteface snadno umozni vcetne veskereho komfortu kolem - connect k databazi, prace s daty, IAPPServer, ...

Pro spravce systemu je to idealni - jednou rozchodi DCOM na HSAppServer a uz navzdycky ma vystarano.

Anebo se mylim?

Melo by to vypadat nejak takto:

THSAppSrv = class(TAutoObject, IHSAppSrv)
FBConnection : IFBConnection;
FBProvider : IFBProvider;
function CustomApp(YourClassID: TGUID) : IDispatch;

kde
function THSAppServer.YourApp(ClassID: TGUID) : IDispatch;
begin
Result := CreateCOMObject(ClassID);
end;

Jak ale inicializovat FBConnection a FBProvider?
Tohle nejde, pokud vim:
FBConnection := TFBConnection.Create

Asi musim
FBConnection := CreateCOMObject(Class_FBConnection);
k tomu pak ale potrebuju taky Class Factory pro TFBConnection.

S FBProvider to bude uplne stejne.
Pak by to melo fungovat.

Anebo se mylim?

Je to spravna cesta? Jsou nejake lepsi napady?

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

Prekryti TImage rychle se menici bitmapou ktera se

[*] petr palicka <palicka.petr(zv)seznam(tec)cz> - 12.10.2007 13:08:35

Ahoj,
> Pozadi je prave dynamicke (real-time obraz z kamery ), popredi jsou nejake geometricke utvary, ty jsou staticke (relativne, pokud je mysi nepresouvam)
> Zkousel jsem to podle tohoto navrhu, ale bylo to jeste horsi nez s pomoci TImage

a pouzit regiony?

Shape Function
---
Rectangular region: CreateRectRgn, CreateRectRgnIndirect
Rectangular region with rounded corners: CreateRoundRectRgn
Elliptical region: CreateEllipticRgn, CreateEllipticRgnIndirect
Polygonal region: CreatePolygonRgn, CreatePolyPolygonRgn

Peca

Prekryti TImage rychle se menici bitmapou ktera se

[*] Petr Fiser <petr.fiser(zv)3jservis(tec)cz> - 12.10.2007 13:52:38


> Pozadi je prave dynamicke (real-time obraz z kamery ), popredi jsou nejake
> geometricke utvary, ty jsou staticke (relativne, pokud je mysi
> nepresouvam)
> Zkousel jsem to podle tohoto navrhu, ale bylo to jeste horsi nez s pomoci
> TImage
>

Mam sice staticke pozadi ale v principu je to jedno protoze v obsluze
OnPaint volam drive popsanou proceduru a pokud vezmu nejake jine okno (treba
kalkulacku) a prejizdim s nim pres tento PaintBox, tak se tento neustale
prekresluje (vyvolava se metoda OnPaint), ale k zadnemu blikani nedochazi.
Pokud tedy budu mit v te bitmape pokazde jiny obrazek nebo staticky, nemelo
by to mit vliv na prekreslovani.

Udelal jsem test a kazdych 50ms jsem do te TmpBmp nakreslil jednu usecku
navic a takto pres celou bitmapu az na konec. Pote od zacatku znova
odmazavam v rezimu XOR a porad dokola. Tim vznika dojem animace
prebihajicich se pruhu pres staticke pozadi (celkove je tento obraz timto
vlastne dynamicky). Pri prekreslovani to ani nemrkne. Chyba bude asi nekde
jinde.

PF

zpracovani fotografie

[*] Mgr. Martin Radvansky <delphiconf(zv)radvansky(tec)net> - 12.10.2007 20:39:07

Dobry den,
12. listopadu 2007, 20:19:06, napsal jste:

FM> Zdravim vsechny,

FM> resim jak obrazek s fotkou osoby (ziskany pomoci digitalniho fotoaparatu),
FM> automaticky oriznout a vycentrovat, aby na fotografii zustala hlava a cast
FM> ramen. Tvar a podoba vhodna pro fotky na obcanku nebo pas.

FM> Pripadne jeste upravit rozmer (zvetsit/zmensit) fotografii tak, aby mela
FM> vzdy stejny rozmer v pixlech (napr. 200 x 240px).

FM> Najde se nekdo s nejakou dobrou radou, jak na to?

No je treba trochu vice specifikovat. Jake je pozadi je to
jednobarevne nebo libovolne pozadi.

Pokud by bylo jednobarevne pozadi tak:

V podstate je treba identifikovat objekt na fotce. Mozna by se dalo
jit na to tak ze provedete pprahovani obrazu, tady by asi stacilo
nejake jednoduche binarni. Nasledne projedete binarizovany obraz a
naleznete minimalni obdelnik obsahujici binarizovany obraz. Tak
ziskate miunimalni velikost portretu a s nim lze jiz resit
transformace velikosti a posun na spravnou polohu.

--
S pozdravem,
Mgr. Martin Radvansky, MCP, MCSD .NET

Data ve Windows Vista

[*] Mgr. Martin Radvansky <delphiconf(zv)radvansky(tec)net> - 12.10.2007 20:35:07

Dobry den,
12. listopadu 2007, 19:07:01, napsal jste:

skc> Ahoj,

skc> narazil jsem na problem s ulozenim dat s nastavenim aplikace. Moji
skc> aplikaci na jednom PC muze obsluhovat nekolik uzivatelu z vlastnich
skc> uctu. Proto jsem pouzival klasicky adresar uvedeny v "Common AppData".
skc> Tim jsem mel zajisten pristup ze vsech uzivatelskych uctu. Pokud
skc> uzivatel provedl nejakou zmenu nastaveni, tak se ta zmena promitla vsem
skc> uzivatelum.
skc> Jenze ve Windows Vista to tak nefunguje. Pokud nekdo provede zmenu tak
skc> mu Visty vytvori virtualni adresar, ve kterem ulozi zmenu a odkazuji
skc> uzivatele na tento virtualni adresar misto na adresar v "Common
skc> AppData". Tak se stane, ze pokud nekdo provede zmenu v zakladnim
skc> nastaveni moji aplikace, vidi ji jen ten kdo ji provedl a ne vsichni
skc> uzivatele jak jsem puvodne mel v umyslu. Muzete mi poradit, kam
skc> umistovat soubory, ve kterych jsou uvedena data spolecna pro vsechny
skc> uzivatele?

A overil jste si, jestli mate do toho spolecneho adresare prava
zapisu? Toto co popisujete je totiz funkce zvana virtualizace, ktera
je zavedena pro aplikace, ktere se snazi zapisovat tak kam nemohou.
Obdobne se to chova i pro registry.

Doporucuji si overit prava k adresari vasi aplikace ve slozce
CommonAppData. Pokud je nemate a snazite se tam zapsat program
nespadne, ale bude provedena virtualizace.

Jedna vec na co jsem prisel, v souvislosti s registry. Pokud dojde k
virtualizaci, a vy nasledne pridelite prava ze muzete zapisovat, tak
stale dochazi k virtualizaci dokud klice v registru nesmazete. Je
mozne ze se to bude tvarit stejne pro adresare.

-
S pozdravem,
Mgr. Martin Radvansky, MCP, MCSD .NET

zpracovani fotografie

[*] Frantisek Mlcoch <frantisek.mlcoch(zv)vsb(tec)cz> - 12.10.2007 20:19:06

Zdravim vsechny,

resim jak obrazek s fotkou osoby (ziskany pomoci digitalniho fotoaparatu),
automaticky oriznout a vycentrovat, aby na fotografii zustala hlava a cast
ramen. Tvar a podoba vhodna pro fotky na obcanku nebo pas.

Pripadne jeste upravit rozmer (zvetsit/zmensit) fotografii tak, aby mela
vzdy stejny rozmer v pixlech (napr. 200 x 240px).

Najde se nekdo s nejakou dobrou radou, jak na to?


Diky Franta.

Data ve Windows Vista

[*] spurny(zv)kavlounky(tec)cz - 12.10.2007 19:07:01

Ahoj,

narazil jsem na problem s ulozenim dat s nastavenim aplikace. Moji
aplikaci na jednom PC muze obsluhovat nekolik uzivatelu z vlastnich
uctu. Proto jsem pouzival klasicky adresar uvedeny v "Common AppData".
Tim jsem mel zajisten pristup ze vsech uzivatelskych uctu. Pokud
uzivatel provedl nejakou zmenu nastaveni, tak se ta zmena promitla vsem
uzivatelum.
Jenze ve Windows Vista to tak nefunguje. Pokud nekdo provede zmenu tak
mu Visty vytvori virtualni adresar, ve kterem ulozi zmenu a odkazuji
uzivatele na tento virtualni adresar misto na adresar v "Common
AppData". Tak se stane, ze pokud nekdo provede zmenu v zakladnim
nastaveni moji aplikace, vidi ji jen ten kdo ji provedl a ne vsichni
uzivatele jak jsem puvodne mel v umyslu. Muzete mi poradit, kam
umistovat soubory, ve kterych jsou uvedena data spolecna pro vsechny
uzivatele?

D7, Windows Vista.

dekuji

Tonda

Data z konference

[*] J.Hasek <cz602778(zv)tiscali(tec)cz> - 13.10.2007 11:22:08

>> Trosku jsem na to v posledni dobe pozapomnel a navic pripojeni na ftp
>> server se mi taky nepodarilo. Poslu ti to zatim primo na mail.

> Ozyvam se za ostatni. Vsem na mail to poslat nelze. Bylo by vhodne rozjet
> ten server a dat to tam pro vsechny. Diky

Bohuzel zmineny FTP server nespravuji ja a provozovatele neznam a ani na nej
nemam kontakt. Vim jen to byl dobrodinec, ktery byl, mozna jeste je, clenem
zdejsi konference.

To jen na upresneni.
Jinak vsechny archivy, ktery na ftp-ku byly mam a najde-li se jine vhodne
misto, muzu je tam umistit.

J. Hasek

Data z konference

[*] Petr Zahradnik <clexpert(zv)clexpert(tec)cz> - 13.10.2007 11:32:09

Puvodni zprava ze dne 13.11.2007 od J.Hasek:

> Bohuzel zmineny FTP server nespravuji ja a provozovatele neznam a
> ani na nej nemam kontakt. Vim jen to byl dobrodinec, ktery byl,
> mozna jeste je, clenem zdejsi konference.

Firma, ktera hostovala domenu delphi(tec)cz s tim skoncila, ted se prave
premysli o tom, co by na domene mohlo byt zajimaveho pro zdejsi Delphi
komunitu... Pokud mate nejake napady, tak mi je poslete na muj e-mail
clexpert(zv)clexpert(tec)cz.

> To jen na upresneni. Jinak vsechny archivy, ktery na ftp-ku byly mam
> a najde-li se jine vhodne misto, muzu je tam umistit.

Pokud se najde vice zajemcu (hlaste se mi take na e-mail adresu
clexpert(zv)clexpert(tec)cz), mohu docasne archivy umistit k sobe na server,
nez vyresime obsah delphi(tec)cz.

Petr Zahradnik, pocitacovy expert

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


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

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


Data z konference

[*] Jiri Cincura <diskuze(zv)cincura(tec)net> - 13.10.2007 13:00:16

Kdyby mel nekdo i starsi archivy, daji se naimportovat do Google
Groups event. Yahoo Groups a skupina se tam muze nstavit jako vzdaleny
archiv, takze se tam kazdy mail ulozi a pres web to bude krasne
prohledavatelne, vcetne vlaken.

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

Rave Report

[*] Jan Stefec <stefec(zv)algo-hk(tec)cz> - 14.10.2007 08:47:39

Ahoj,
sestava typu Master/Detail vytvorena v Rave Reportu 6.5 mi pri zavirani
hlasi Invalid pointer operation. Kdyz v detailu snizim pocet
DataTextComponentu, tak to zije. A v datech to neni, pada mi to bez
ohledu na tistene udaje. Nevite nekdo, co s tim?
Honza

spojeni mnoha souboru

[*] Dalibor Faltynek <dalibor.faltynek(zv)orgrez(tec)cz> - 16.10.2007 14:05:18

> Hlavne pozor na to, ze kdyz das *.dat, tak si asi nemuzes byt moc
> jisty, v jakem poradi to pospojuje...

Melo by to byt asi podle abecedy, aspon me to tak udelalo, zkontroloval jsem
to podle casu zaznamu jednotlivych rekordu. Docela me ale prekvapilo, ze
takovouto funkci nema jinak skvely total commander.
Dalik.

Sinea, tisk jednoho zaznamu

[*] Karel Rys <delphi(zv)zas-me(tec)cz> - 17.10.2007 17:57:13

Cituji Petr Berek <sojokl(zv)seznam(tec)cz>:

> Vsechno provadim takhle:
> 1) Nactu si data z databaze
> 2) Poskladam si je tak, jak potrebuju
> 3) Ulozim do databaze tak, ze jeden radek tabulky = jedna strana
> 4) Zavolam dotaz nad tabulkou, kde jsou ty data
> 5) Zavolam Sestava1.Edit (Sestava1.Preview)
>
> Nikde nevolam tisk. To si resi az uzivatel. Da se to tedy nejak udelat, ze
> uzivatel klikne na tlacitko tisk v nahledu sestavy, vyjede mu dialog pro
> vyber tiskarny a nastaveni tisku a po tom, co klikne na tlacitko Tisknout si
> zjistim jakou vybral tiskarnu a podle toho poslu bud jednu tiskovou ulohu na
> tiskarnu, nebo postupne vice tiskovych uloh podle poctu stran a vytisknu
> pomoci PDFCreatoru jednu stranu do kazdeho souboru?

Udelal bych to jinak :)

Pokud si opravdu musis nacist data, neco s nimi provest a zase je
nekam ulozit, tak udelej kroky 1-2.

Krok 3 nechapu - asi neukladas stranky do databaze, ne? Takze krok 3
bych vypustil.

Nu a jeste porad ve Tvem okenku bych udelal dve tlacitka: Tisk a
Poslat mailem.

Pokud klikne uzivatel na Tisk, zobrazil bych nahled, stejne jako ted.

Pokud klikne na Poslat mailem, nastavis filtr v nejakem Tvem datasetu
tak, aby prosel jen aktualne oznaceny zak (tim padem bude mit sestava
jen jednu stranku), sestavu vytisknes na PdfCreator a vysledny soubor
posles mailem. Samozrejme to jde vylepsit o to, ze v cyklu projdes
vsechny (oznacene) zaky, aby se uzivatel neuklikal...

Zkratka tisk a to posilani mailem bych udelal pres samostatna
tlacitka. A treba treti tlacitko, ktere to vyexportuje do Excelu ;)

Karel Rys


Sinea, tisk jednoho zaznamu

[*] Petr Berek <sojokl(zv)seznam(tec)cz> - 17.10.2007 17:47:12

Navedte me prosim nekdo na nejake reseni.
Vsechno provadim takhle:
1) Nactu si data z databaze
2) Poskladam si je tak, jak potrebuju
3) Ulozim do databaze tak, ze jeden radek tabulky = jedna strana
4) Zavolam dotaz nad tabulkou, kde jsou ty data
5) Zavolam Sestava1.Edit (Sestava1.Preview)

Nikde nevolam tisk. To si resi az uzivatel. Da se to tedy nejak udelat, ze
uzivatel klikne na tlacitko tisk v nahledu sestavy, vyjede mu dialog pro
vyber tiskarny a nastaveni tisku a po tom, co klikne na tlacitko Tisknout si
zjistim jakou vybral tiskarnu a podle toho poslu bud jednu tiskovou ulohu na
tiskarnu, nebo postupne vice tiskovych uloh podle poctu stran a vytisknu
pomoci PDFCreatoru jednu stranu do kazdeho souboru?

Diky.

Sinea, tisk jednoho zaznamu

[*] Petr Berek <sojokl(zv)seznam(tec)cz> - 17.10.2007 17:03:09

>
> > Nevim, jak zjistim, ze se vyvolal tisk, abych to mohl osetrit.
> Tisk se preci vyvola stiskem tveho tlacitka ve tve aplikaci.


Prave ze vzdy zobrazim uzivateli nahled na sestavu a on ji pak vytiskne
pomoci tlacitka, ktere je v te sestave. Umel bych to udelat tak, ze kdyz
uzivatel stiskne to tlacitko tisk, tak odeslu postupne vsechny strany po
jedne na tiskarnu. Ale kde zjistim, ze uzivatel chce poslat sestavu do
tisku?

Petr

Sinea, tisk jednoho zaznamu

[*] Vaclav Krmela <krmela(zv)ustinadorlici(tec)cz> - 17.10.2007 13:28:55

From: "Petr Berek" <sojokl(zv)seznam(tec)cz>

> To jsem zkousel. Nastavil jsem TiskJedenZaznam:=true, tak to stejne
> vytisklo
> vsechny stranky sestavy.

To se mi nechce verit.

> Je to ucitelska aplikace, kde ma ucitel na jedne strance prehled studenta
> a
> prave potrebuje vytisknout jen tu stranku a poslat ji rodicum mailem. Nebo
> jeste moznost, ze vytiskne vsechny stranky, ale oddelene, cili co stranka,
> to pdf soubor.

Jak jsem jiz psal, zapnout tisk pouze jednoho zaznamu a ve vlastnim cyklu
prochazet zaznamy a jednotlive tisknout.
Nebo jeste nazorneji, jak psal Karel Rys filtrovat data po zacich a v cyklu
menit filtr.> Nevim, jak zjistim, ze se vyvolal tisk, abych to mohl osetrit.

Tisk se preci vyvola stiskem tveho tlacitka ve tve aplikaci.> Zkousel jsem to nastavit v BeforePrint, ale jako by se to vubec
> nevyvolalo.

Toto je zcela zvracene. Nejdrive vyvolat tisk vsech stranek a potom v tom
jednu stranku hledat.
V BeforePrint uz muze byt pozde, to jiz muze byt sestava vytvorena, pouze se
zacne odesilat na tiskarnu.
Priznak tisku jednoho zaznamu musi byt nastaven drive, v BeforePrint je jiz
pozde.

Vaclav Krmela

Jednorazova spoluprace - zakazka

[*] Zdenek Belka <zdenek.belka(zv)polomino(tec)cz> - 16.10.2007 12:25:10

Dobry den, predem se omlouvam za nevyzadanou postu, verim, ze nektere z
vas muze nabidka oslovit. Tuto konferenci obesilam dle rady spolecnosti
Borland s.r.o.

Pro naseho klienta hledame na jednorazovou zakazku programatora se
znalosti Delphi. Poptavana prace se tyka Abra G3 XML-RPC viz dale.
Soucasti zakazky ze strany zajemce je vypracovani cenove nabidky vc.
terminu praci na projektu. Nejzazsi termin dodani reseni, vc. overeni
funkcnosti, je 14.12.2007. Uvedeny termin je nutno dodrzet vzhledem k
pripravovanych legislativnim zmenam pro tok 2008.

Popis stavajiciho stavu:

V soucasne dobe existuje konfigurovana a plne funkcni instalace aplikace
Abra G3 (http://www.abra(tec)cz), ktera poskytuje komunikacni interface
standardu Microsoft OLE. S timto OLE rozhranim komunikuje drobna
aplikace, ktera poskytuje dalsim systemum rozhrani standardu XML-RPC a
toto se nasledne vyuziva pro zapis dat do Abry.

Z historickych duvodu zminena drobna aplikace mezi jednotlivymi
rozhranimi nedela pouhy preklad z jednoho rozhrani do druheho, ale
implementuje castecnou logiku pro manipulaci s daty. Aplikace je napsana
a zkompilovana v Delphi v.5.


Problem:

S aktualni verzi systemu AbraG3 se objevily problemy pri komunikaci teto
aplikace s OLE rozhranim. Dle vyjadreni vyvojoveho oddeleni spolecnosti
ABRA Software a.s. k tomu doslo pravdepodobne diky zmene povinnych
parametru volanych objektu pres toto rozhrani. Poptavame tedy
plnohodnotnou nahradu stavajici aplikace, komunikujici s OLE rozhranim
Abry, poskytujici XML-RPC rozhrani pro dalsi systemy.


Ramcove zadani praci:

1. provest zmapovani stavajici aplikace ze zdrojovych kodu v Delphi,
zapsat a zadokumentovat vnitrni logiku aplikace, manipulace s daty a
dalsi pripadne souvislosti

2. na zaklade predchoziho bodu se rozhodnout pro jednu z variant:

a) modifikovat stare kody v Delphi tak, aby byla zachovana kompletni
funkcnost stavajiciho XML-RPC rozhrani s ohledem na zmenu datove
struktury a volani objektu systemu Abra G3

b) dodat zcela novou aplikaci, ktera bude svou funkcnosti zcela
transparetnim clankem, bude komunikovat s novou verzi OLE systemu Abra
G3 a bude poskytovat plnne funkcni XML-RPC rozhrani, totozne se starou
verzi aplikace

Zajemci budou poskytnuta dostupna dokumentace a zdrojove kody
stavajiciho reseni, na zaklade ktereho bude schopen vypracovat cenovou
kalkulaci a plan projektu. Forma odmeny za odvedenou praci zalezi na
dohode obou stran.

Nejsem zaregistrovan ve vasi konferenci, proto pripadne reakce posilejte
prosim na nize uvedeny mail.

S pozdravem

--
Zdenek Belka
+420 775 225 300
zdenek.belka(zv)polomino(tec)cz

POLOMINO Services, spol. s r.o.
Mostni 747, 278 01 Kralupy nad Vltavou
http://www.polomino(tec)cz


spojeni mnoha souboru

[*] Petr Zahradnik <clexpert(zv)clexpert(tec)cz> - 16.10.2007 10:15:01

Puvodni zprava ze dne 16.11.2007 od Dalibor Faltynek:

>> Zkus prikazovy radek
>> copy a.txt+b.txt+c.txt

> Dekuji za rady, fce stareho dobreho DOSu funguji i v XP:
> copy /B *.dat neco.dat

Hlavne pozor na to, ze kdyz das *.dat, tak si asi nemuzes byt moc
jisty, v jakem poradi to pospojuje...

Petr Zahradnik, pocitacovy expert

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


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

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


spojeni mnoha souboru

[*] Dalibor Faltynek <dalibor.faltynek(zv)orgrez(tec)cz> - 16.10.2007 08:04:52

> Zkus prikazovy radek
> copy a.txt+b.txt+c.txt

Dekuji za rady, fce stareho dobreho DOSu funguji i v XP:
copy /B *.dat neco.dat

Dalibor.

Sinea, tisk jednoho zaznamu

[*] Karel Rys <delphi(zv)zas-me(tec)cz> - 17.10.2007 12:16:50

Cituji Petr Berek <sojokl(zv)seznam(tec)cz>:

> To jsem zkousel. Nastavil jsem TiskJedenZaznam:=true, tak to stejne vytisklo
> vsechny stranky sestavy.
> Je to ucitelska aplikace, kde ma ucitel na jedne strance prehled studenta a
> prave potrebuje vytisknout jen tu stranku a poslat ji rodicum mailem. Nebo
> jeste moznost, ze vytiskne vsechny stranky, ale oddelene, cili co stranka,
> to pdf soubor.
> Nevim, jak zjistim, ze se vyvolal tisk, abych to mohl osetrit.
> Zkousel jsem to nastavit v BeforePrint, ale jako by se to vubec nevyvolalo..

Sice neznam Sineu, ale urcite pujde ve Tvem datasetu nastavit podminku
tak, aby propustila jen jednoho zaka, zavolat generator sestav, ktery
tak udela jen tu jednu stranku, vytisknout do .pdf, odeslat mailem,
smazat soubor, nastavit podminku na dalsiho zaka...

Pri tisku jedne stranky z mnohastrankove sestavy bych asi nemel dobry
pocit - aby se nekdy nestalo, ze kvuli nejake chybe pri generovani
sestavy se treba stranky o jednu posunou a budete rodicum posilat info
o cizich detech ;)

Karel Rys


Virtualni konference CodeRage II

[*] rkubat(zv)email(tec)cz - 15.10.2007 16:53:50

Vazeni pratele,

druha virtualni konference CodeGear (poskytovana prostrednictvim internetoveho pripojeni) se bude konat ve dnech 26.-30.11.2007. Krome cca 40 technickych recniku bude k dispozici i virtualni vystavni hala. Registrovani uzivatele vybranych produktu CodeGear maji vstup zdarma, ostatni si vstupenku mohou zakoupit za 3240,- Kc (bez DPH). Vstupenky si muzete opatrit prostrednictvim Borland s.r.o. Napiste nam na "obchod(zv)borland(tec)cz".

Vstup zdarma maji drzitele licenci na: Delphi 2007, C++Builder 2007, CodeGear Rad Studio 2007, JBuilder 2007, JGear, 3rdRail, Delphi for PHP, InterBase 2007, Turbo Delphi Professional, Turbo Delphi.NET Professional, Turbo C++ Professional, Turbo C# Professional.

Vice informaci najdete na http://conferences.codegear.com/coderage07/

Vsechny zdravi, -- Richard Kubat, Borland s.r.o.

Sinea, tisk jednoho zaznamu

[*] Petr Berek <sojokl(zv)seznam(tec)cz> - 17.10.2007 12:04:49

On Nov 17, 2007 11:46 AM, Vaclav Krmela <krmela(zv)ustinadorlici(tec)cz> wrote:

> From: "Petr Berek" <sojokl(zv)seznam(tec)cz>
>
> Pokud se to ma resit programove bez uzivatele, k tomu slouzi property
> StartPage / EndPage.> V obou pripadech se jedna o tistene stranky nikoliv zaznamy v tabulce.
> Obvykle neni jeden zaznam v tabulce = jedna stranka tiskove sestavy.


Tady to je, ze jeden zaznam v tabulce = jedna strana.> Za teto situace doporucuji nastavit tisk jednoho zaznamu. V cyklu
> programove
> nebo uzivatelsky najet na pozadovany zaznam, vytisknout a odeslat. Pak
> prejit na jiny zaznam a opet vytisknout a odeslat. V cem je problem?


To jsem zkousel. Nastavil jsem TiskJedenZaznam:=true, tak to stejne vytisklo
vsechny stranky sestavy.
Je to ucitelska aplikace, kde ma ucitel na jedne strance prehled studenta a
prave potrebuje vytisknout jen tu stranku a poslat ji rodicum mailem. Nebo
jeste moznost, ze vytiskne vsechny stranky, ale oddelene, cili co stranka,
to pdf soubor.
Nevim, jak zjistim, ze se vyvolal tisk, abych to mohl osetrit.
Zkousel jsem to nastavit v BeforePrint, ale jako by se to vubec nevyvolalo.

Petr

Sinea, tisk jednoho zaznamu

[*] Vaclav Krmela <krmela(zv)ustinadorlici(tec)cz> - 17.10.2007 11:46:47

From: "Petr Berek" <sojokl(zv)seznam(tec)cz>

> V sestave jsou data pro
> nekolik pro vice zaznamu (stran). Ale potreboval bych vytisknout jen
> urcitou
> stranu, na ktere zrovna uzivatel stoji v nahledu.

Nevim, zda tomu spravne rozumim. Jde-li o vyber rozsahu tistenych stranek,
tak:
Pokud uzivatel stoji v nahledu, vyvola tisk, zobrazi se okno tisku ve kterem
je volba rozsah stranek Od / Do.
Pokud se to ma resit programove bez uzivatele, k tomu slouzi property
StartPage / EndPage.
V obou pripadech se jedna o tistene stranky nikoliv zaznamy v tabulce.
Obvykle neni jeden zaznam v tabulce = jedna stranka tiskove sestavy.

Tisk jednoho zaznamu slouzi k tomu, ze generator sestav neprochazi vsechny
zaznamy tabulky, ale vytvori sestavu pouze z aktualniho radku tabulky a
konci.> Uzivatel chce tisknout do pdf, k tomu
> pouzivam PDFCreator a jednotlive stranky pak odeslat na ruzne adresy.

Za teto situace doporucuji nastavit tisk jednoho zaznamu. V cyklu programove
nebo uzivatelsky najet na pozadovany zaznam, vytisknout a odeslat. Pak
prejit na jiny zaznam a opet vytisknout a odeslat. V cem je problem?

Vaclav Krmela

Sinea, tisk jednoho zaznamu

[*] Petr Berek <sojokl(zv)seznam(tec)cz> - 17.10.2007 10:42:42

Zdravim,
potreboval bych poradit s tiskem jednoho zaznamu. V sestave jsou data pro
nekolik pro vice zaznamu (stran). Ale potreboval bych vytisknout jen urcitou
stranu, na ktere zrovna uzivatel stoji v nahledu. Jde to nejak? A nebo
kazdou stranku vytisknout zvlast. Uzivatel chce tisknout do pdf, k tomu
pouzivam PDFCreator a jednotlive stranky pak odeslat na ruzne adresy.

Diky,
Petr

spojeni mnoha souboru

[*] miroslav.barica(zv)matador.sk - 15.10.2007 11:37:29

>
> Zkus prikazovy radek
> copy a.txt+b.txt+c.txt

Len pripomienka: pre binarne data treba pouzit prepinac /B
M

Testovaci software

[*] delphinpp(zv)atlas(tec)cz - 15.10.2007 09:33:20

delphi(zv)mjsoft(tec)cz wrote / napisal(a):
> Ahoj,
>
> pouzivate nekdo na programy psane v delphi testovaci software? Muzete se
> podelit o informace co pouzivate za program, co vsechno s tim jde testovat a
> zda je to vubec k neceme dobre. Zaslechl jsem neco o Automise2,
> TestComplete. Jde to nejako pouzit pro Delphi? Neni me jasne jak to funguje.
>
> Diky Jindra
>
>
Ahoj,

TestComplete, co spominas, je od spolocnosti AutomatedQA
(www.automatedqa.com). Na ich webe najdes priblizny popis ako to funguje
+ mozes si stiahnut Trial verziu.. Strucne, je to komplexnejsi nastroj
pre automatizovane testovanie, kde mozes vykonavat rozne druhy testov :
unit testy, funkcne testy, data-driven testy, web testy, load & stress
testy, manualne testy a pod.. Pokial by ta zaujimalo len funkcne
testovanie, tak princip je asi taky, ze cez tento nastroj si zaznamenas
nejaku aktivitu, ktoru vykonas s aplikaciou, vysledkom toho je script
(C##, C++, Delphi, Java alebo VBasic, zalezi od toho, co ti je blizsie),
tento script si mozes dalej upravit a nasledne pri testovani spustat.
Hlavny zmysel tohto je pri regresnom testovani, t.j. zoscriptujes si
takto najdolezitejsie funkcnosti app. a v pripade nejakej zmeny v app si
mozes overit, ci ti tato zmena nesposobila problem v inej dolezitej
casti app. POZOR, vytvaranie, odladovanie a udrziavanie scriptov dokaze
byt dost casovo narocne..

Dalsimi nastrojmi mozu byt napr. produkty od Compuware (na funkcne
testovanie je to TestPartner) alebo Mercury.. ale tie su cenovo uplne
niekde inde..

M.

spojeni mnoha souboru

[*] Pavel Zidek <delphi(zv)kopr(tec)cz> - 15.10.2007 08:49:17

Zkus prikazovy radek
copy a.txt+b.txt+c.txt

a obsah vsech souboru se zkopiruje do a.txt
jinak navod:
copy /?

Pavel

> jak spojit v programu radove desitky typovych souboru do jednoho (recordy
> maji stejnou strukturu)? Neexistuje na to nejaka API fce? Samozrejme to
umim
> pres read a write, ale trva to.

spojeni mnoha souboru

[*] Dalibor Faltynek <dalibor.faltynek(zv)orgrez(tec)cz> - 15.10.2007 07:47:13

Dobre rano,
jak spojit v programu radove desitky typovych souboru do jednoho (recordy
maji stejnou strukturu)? Neexistuje na to nejaka API fce? Samozrejme to umim
pres read a write, ale trva to.
Diky a ahoj
Dalibor.

spojeni mnoha souboru

[*] delphin(zv)post(tec)cz - 16.10.2007 14:49:21

> Podle abecedy to IMHO nejde, jede to v poradi, v jakem soubory lezi
> na disku. Pokud jsi je tam kopiroval podle abecedy, tak ti cirou
> nahodou na disku lezi take podle abecedy. Ale spolehat se na to
> nelze.

Je to zavisle na FS. Treba na NTFS to setridene je, na FAT to neni. Spolehat
se na to samozrejme nejde.

spojeni mnoha souboru

[*] Lukas Gebauer <gebylist(zv)mlp(tec)cz> - 16.10.2007 14:31:19

> > Hlavne pozor na to, ze kdyz das *.dat, tak si asi nemuzes byt moc
> > jisty, v jakem poradi to pospojuje...
> Melo by to byt asi podle abecedy, aspon me to tak udelalo,
> zkontroloval jsem to podle casu zaznamu jednotlivych rekordu. Docela
> me ale prekvapilo, ze takovouto funkci nema jinak skvely total
> commander.

Podle abecedy to IMHO nejde, jede to v poradi, v jakem soubory lezi
na disku. Pokud jsi je tam kopiroval podle abecedy, tak ti cirou
nahodou na disku lezi take podle abecedy. Ale spolehat se na to
nelze.

Kazdopadne tuto funkci ma Total Commander uz pekne dlouho, dokonce se
ta funkce jmenuje vcelku pochopitelne 'Sloucit soubory'. Ale
probirani tohoto tematu je uz sutecne nad ramec teto konference.


--
Lukas Gebauer.

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

CoCreateInstance a COM

[*] Petr Berek <sojokl(zv)seznam(tec)cz> - 18.10.2007 11:02:25

>
> Jenze kdyz pak chci cokoliv delat s tim objektem pdf, tak mi to zahlasi
> access violation.
>
Takze jsem postoupil. Pise to, ze trida neni zaregistrovana.

CoCreateInstance a COM

[*] Petr Berek <sojokl(zv)seznam(tec)cz> - 18.10.2007 10:30:22

Zdravim,
Pohleda jsem na netu, jak vytvorit objekty com. K tomu pdfcreatoru jsem pak
zplodil podle nejakych navodu toto:

CoInitialize(nil);
CoCreateInstance(CLASS_clsPDFCreator, nil, CLSCTX_INPROC_SERVER,
IID__clsPDFCreator, pdf);

Jenze kdyz pak chci cokoliv delat s tim objektem pdf, tak mi to zahlasi
access violation.
pdf je TclsPdfCreator

Diky za nejake nakopnuti,
Petr

Otevreni PDF dokumentu

[*] Jan Novak <delfin4(zv)volny(tec)cz> - 18.10.2007 06:46:07

> misto toho se mi porad pousti AcrobatReader

pokud to bere z registru, zkusil bych predtim spustit REGMON ze
sysinternals

Testovaci software

[*] delphi(zv)mjsoft(tec)cz - 14.10.2007 17:04:12

Ahoj,

pouzivate nekdo na programy psane v delphi testovaci software? Muzete se
podelit o informace co pouzivate za program, co vsechno s tim jde testovat a
zda je to vubec k neceme dobre. Zaslechl jsem neco o Automise2,
TestComplete. Jde to nejako pouzit pro Delphi? Neni me jasne jak to funguje.

Diky Jindra

Otevreni PDF dokumentu

[*] Michal Adler <delphi(zv)media3(tec)cz> - 18.10.2007 01:21:45

Ahoj,
nemel by jste nekdo dobrou radu jak provest toto? :

V Delphi mam napsanou ctecku PDF dokumentu ktera pouziva ActiveX z PdfReaderu a je oskinovana do podoby flash animace z niz se maji PDFka otvirat. Potrebuji spoustet PDF dokumenty z CDcka z exe FLASHOVE animace a to prave pomoci te ctecky se skinem....misto toho se mi porad pousti AcrobatReader i kdyz mam jako defaultni aplikaci v systemu nastavenou tu svoji ctecku a po kliknuti na PDFko z disku se i tato ctecka spravne s PDFkem spusti.

Zajimalo by me jak tomu flashi rict (nejlip nejak pres registry) aby spoustel moji ctecku. Napriklad prohlizec Opera tohle umi. Prozatim to mam tak, ze opera bezi na pozadi v kioskmodu a ma nastavene spousteni PDF dokumentu na moji ctecku a nejakym zpusobem si vzdycky preda onen odkaz na PDFko a zavola ten muj program. Ovsem tohle je jen opravdu nouzove reseni. Poradte prosim nekdo jak to udelat...nejaky HOOK adresy na PDF dokument po kliknuti v tom flashi, nebo nejaka zmena v registru? Ani google mi moc neporadil...

Predem diky za jakykoliv namet na reseni....

MA


Sinea, tisk jednoho zaznamu

[*] Petr Berek <sojokl(zv)seznam(tec)cz> - 17.10.2007 23:31:37

>
> Hmm, a jak to bude posilat mailem? To bude muset rucne pustit postovni
> program, napsat mailovou adresu, pripojit ten .pdf soubor...?
>

Psal jsem, ze nemam v databazi mailove adresy a nevim, jak by se tam
dostaly, takze to bude muset uzivatel poslat rucne. Nezbyva jine reseni.
Petr

Inicializace COM

[*] Petr Berek <sojokl(zv)seznam(tec)cz> - 17.10.2007 23:29:37

Zdravim,
potrebuju zinicializovat ole server pro componentu pdfcreator. Nikdy jsem s
COM objekty nepracoval, takze vubec netusim jak na to. Jedine co vim z
hlasek delphi, ze se musi zavolat coInitialize, ale co dal a co napsat jako
parametr, netusim.
Muzete mi prosim nekdo poradit?
Diky,
Petr

Sinea, tisk jednoho zaznamu

[*] Karel Rys <delphi(zv)zas-me(tec)cz> - 17.10.2007 23:25:36

Cituji Petr Berek <sojokl(zv)seznam(tec)cz>:

>> Nevim, jestli si rozumime :)
>>
>
> Tohle vsechno chapu. Udelam to takhle. Uzivatel si vybere sestavu a ja mu
> zobrazim dialog a tam si vybere, jestli chce nahled, upravu sestavy, nebo
> tisknout do pdf. Tohle bude asi nejlepsi reseni.

Hmm, a jak to bude posilat mailem? To bude muset rucne pustit postovni
program, napsat mailovou adresu, pripojit ten .pdf soubor...?

KR


Sinea, tisk jednoho zaznamu

[*] Petr Berek <sojokl(zv)seznam(tec)cz> - 17.10.2007 20:51:25

>
> Nevim, jestli si rozumime :)
>

Tohle vsechno chapu. Udelam to takhle. Uzivatel si vybere sestavu a ja mu
zobrazim dialog a tam si vybere, jestli chce nahled, upravu sestavy, nebo
tisknout do pdf. Tohle bude asi nejlepsi reseni.

Sinea, tisk jednoho zaznamu

[*] Karel Rys <delphi(zv)zas-me(tec)cz> - 17.10.2007 20:35:24

Cituji Petr Berek <sojokl(zv)seznam(tec)cz>:

> V databazi nemam ulozene adresy. Predelavam program, ktery byl urcen trosku
> pro jiny ucel. Asi nejhorsi mozna varianta, ale bohuzel, jinak to neslo.
> Takze tridni ucitel si vygeneruje sestavy do pdf a pak to postupne rozesle..
....
> A kdyz uzivatel klikne na tisk v nahledu, tak vytisknout celou sestavu? Co
> kdyz se nekdo splete?

Nevim, jestli si rozumime :)

Kdyz tedy nechame stranou tisk...

Pro kazdeho zaka je jedna stranka, ano? A ta se ma jeho rodicum poslat
mailem, ano? Tak bych udelal cyklus, ktery postupne bude prochazet
vsechny zaky. U kazdeho se podiva, jestli ma vyplnenou mailovou
adresu. Jestlize ji ma, tak bych zavolal Sineu tak, aby sestavu
(jednostrankovou, jen pro toho zaka) rovnou vytiskla do PdfCreatoru -
uzivateli by se ani nezobrazil nahled. PdfCreator se da nastavit tak,
aby vysledek rovnou dal nekam do souboru a obsluha nemusela zadavat
jmeno souboru. Tvuj program pocka, az se soubor vytvori a az ho bude
moci otevrit s vyhradnim pristupem. Jakmile tam soubor bude, Tvuj
program by tento soubor prejmenoval (na ID zaka apod.) a pak treba
pres MAPI vytvoril novy mail, vyplnil adresu prijemce a do prilohy dal
ten .pdf soubor...

Kazdopadne pred tim, nez bys nechal Sineu "tisknout" do .pdf, bys
nastavil dataset tak, aby v nem zbyl jen ten jeden zak. Nebo pomoci
vlastnosti Siney zaridit, aby tiskla jen aktualni zaznam - ale Sineu
neznam, tak nevim, jak.

Karel Rys


Sinea, tisk jednoho zaznamu

[*] Petr Berek <sojokl(zv)seznam(tec)cz> - 17.10.2007 20:21:23

>
> Nu a jeste porad ve Tvem okenku bych udelal dve tlacitka: Tisk a
> Poslat mailem.
>
V databazi nemam ulozene adresy. Predelavam program, ktery byl urcen trosku
pro jiny ucel. Asi nejhorsi mozna varianta, ale bohuzel, jinak to neslo.
Takze tridni ucitel si vygeneruje sestavy do pdf a pak to postupne rozesle.

>
> Pokud klikne uzivatel na Tisk, zobrazil bych nahled, stejne jako ted.


A kdyz uzivatel klikne na tisk v nahledu, tak vytisknout celou sestavu? Co
kdyz se nekdo splete?

Petr


Ubgrade male Firebird databaze - pristup k problem

[*] konference(zv)sales(tec)cz - 20.10.2007 01:27:05

----- Original Message -----
From: "Petr Svejda" <petr(zv)svejda(tec)cz>

Ahoj,
No je potreba databazi proste neustale tvorit pomoci scriptu typu if exists
atd. a vyhnout se ruznym jinym nastrojum.
Takze vytvoreni tabuulky od sameho pocatku nebo od prvniho upgrade je
stylem (ja pouzivam MSSQL takze si to musis upravit pr firebird)

if not exists (select * from sysobjects where id = object_id('dbo.Tabulka')
and sysstat & 0xf = 3)
create table dbo.tabulka ( TABULKAID INT IDENTITY (1, 1) NOT NULL PRIMARY
KEY)
a tecka
dalsi pole se pridavaji a ubiraji zase jenom kompletnim scriptem :
IF NOT EXISTS (SELECT * FROM SYSCOLUMNS WHERE (ID = OBJECT_ID('tabulka'))
AND (NAME = 'DALSIPOLE'))
ALTER TABLE tabulka ADD DALSIPOLE INT
pokud se ubiraji, tak zase az po otestovani ze existuji....
procedury a funkce a pohledy se pregenrovavaji kompletne

Ve finale tedy existuje pouze jeden aktualizacni script, ktery stale roste a
je v zasade jedno na kterou predchozi verzi se pouzije, protoze se vzdy
zkontroluji a provedou vsechny zmeny od prvopocatku,
pregeneruji se pohledy atd. Ma to samozrejme zase urcite problemy s poradim
vytvareni jednotlivych objektu ale to se vyresi samozrejme dobrou organizaci
scriptu a vicenasobnym spoustenim.
Samozrejme ze na stejnem principu je mozne i naplnovat tabulky neajkymi
aktualnimi daty (napr. PSC)

if not exists(select * from tabpsc) where psc='123 45'
insert into tabpsc ......

No a tak podobne...

Ludek




Ubgrade male Firebird databaze - pristup k problem

[*] Martin Burle <mburle2(zv)volny(tec)cz> - 19.10.2007 21:26:47

> Protoze si myslim, ze uz mate nekteri z vas dlouholete prakticke
> zkusenosti s problemem, poradite vyhody a nevyhody jednotlivych
> systemu upgrade, pripadne nacrtnete jiny zpusob.

Ahoj, moje situace je podobna, aplikace prubezne roste a u stovek zakazniku
je treba pri updatech menit zivou databazi z predem nezname verze. Podivej
se na clevercomponents, komponenty DBComparer. K naproste spokojenosti
pouzivam zpusob, kdy pomoci techto komponent podle "Master" databaze, ktera
prijde s kazdou novou verzi upgraduji pracovni db. V kombinaci se sadou
vlastnich skriptu before/after update jsem zatim vyresil vse, zadny problem.
Efektivni, elegantni, behem vyvoje se nemusis o nic starat, proste z finalni
databaze vytvoris prazdny master a je to :)

HTH,

Martin

Ubgrade male Firebird databaze - pristup k problem

[*] aldik(zv)quick(tec)cz - 19.10.2007 15:50:24

No ja to mam udelane tak ze bezi denni zalohy u kazdeho klienta (jednoduchej
skript na linuxu v cron nebove windows v schedules) pak neni obnova z
jakehokoliv dne problem ..

Rozsirovani db mam resene tak ze se mi vzdy napred pousti starter ktery
otestuje
jestli neni nova verze, pripadne pusti sql script stahne novou verzi
exe (v sql
scriptu je if not exists (select z rdb schematu na
sloupec(index,trigger)) then
(pridej sloupec(index,trigger)),
zatim jsem vzdy ale pridaval jen sloupec.

Tim osetrim aby mi nepousteli vsichni klienti vse na jedne db (naopak nekdy je
to potreba pustit na vsech co si uploadnou novou verzi, napr. pri zmene
vlastnosti konkretniho usera.
Hlavne pokud pokud ten starter najde vyssi verzi tak bezpodminecne donuti
klienta stahnout novou verzi.

Mazani sloupcu a tabulek se mi moc casto nedeje, ale i to se takto da
vyresit,ac
bych to nedelal ..

Nakonec nic ti nebrani si udelat fci co ti sloupec, index, ci trigger
prida, ci
jen updatuje...

je to docela jednoduche... zakladem jsou ale denni zalohy... ktere jsem chvala
bohu zatim pouzit nemusel...


Ales

Quoting Petr Svejda <petr(zv)svejda(tec)cz>:

> Resim problem, jak delat upgrade databaze Firebird specializovaneho
> informacniho systemu pri velmi caste zmene struktury (prosim neuvadejte,
> ze databaze ma byt dobre navrzena - existuje zmena legislativy, caste
> nove pozadavky klienta a vlastni vylepsovani a optimalizace). Uzivatel
> muze vynechat i vice upgradu a potom se musi provest vsechny najednou.
> Datove soubory budou ve vetsine pripadu velke cca 1 az 10 MB max., pocty
> zaznamu neprekroci radove stovka az max. jednotky tisicu (tedy male
> databaze objemove). Pocet zakazniku, kteri maji tento sw je radove par
> set. Vidim 2 zpusoby:
>
> 1 - podle cisla verze databaze provest postupne vsechny aktualizacni
> skripty, ktere chybi a pote do tabulky zapsat nove cislo verze. Tento
> zpusob se mi zda na naprogramovani snadny, jiz jsem ho zkousel, ale
> nelibi se mi, ze musim zaroven udrzovat strukturu nove databaze pri
> zakladani nove firmy a soucasne aktualizacni skripty musi dostat
> databazi na stejnou uroven jako u firmy nove zalozene. To dle meho muze
> pri drobne chybe v libovolnem aktualizacnim skriptu prinest problemy se
> "stejnosti" databazi. Taky se mi nelibi, ze pracuji s "zivou" databazi
> (viz. dale).
>
> 2 - nejdrive se vytvori prazdna nova databaze a do ni se nasypou puvodni
> data s prislusnymi upravami. Tento zpusob se mi zda pruhlednejsi,
> cistci, mene nachylnejsi na chyby, akorat vubec nevim, jak a jakym
> nastrojem prevadet puvodni data do nove databaze (asi nejakymi davkami).
> Neni ale prevadeni dat narocnejsi na programovani? Vubec netusim, jak si
> poradit s faktem, ze zakaznici mohou mit databaze ruznych verzi. Je
> nutne psat odpovidajici pocet prevodovych skriptu? To uz mi prijde psani
> aktualizacnich skriptu jednodussi. Protoze objem dat bude relativne
> maly, neni problem zakladat databaze a cele je naplnovat. Take nevim,
> jak si poradit s referencni integritou - nejdrive naplnit data a potom
> zavest integritu? Vyhodou u tohoto zpusobu vidim take v tom, ze nesaham
> na puvodni data. Kdyz se neco nepovede (a muze to byt pravdepodobne),
> tak se nic nedeje a zkusi se to znovu.
>
> Prioritou je samozrejme maximalni robusnost, odolnost proti chybe
> programatora a prehlednost.
>
> Protoze si myslim, ze uz mate nekteri z vas dlouholete prakticke
> zkusenosti s problemem, poradite vyhody a nevyhody jednotlivych systemu
> upgrade, pripadne nacrtnete jiny zpusob.
>
> Petr
>
>
>

Ubgrade male Firebird databaze - pristup k problem

[*] Marian Jonas <delphikonf(zv)mjonas(tec)cz> - 19.10.2007 15:50:23

Pouzivam uz vice jak ctyri roky postup 1 (zakazniku je vice nez stovka,
nikdy nebyl s aktualizaci db problem). Je to sice trochu pracnejsi, ale
v ramci aktualizacniho skriptu mohu nejen menit strukturu db, ale take
provadet aktualizace dat v ciselnikach a take spoustet ulozene
procedury. Primo v EXE souboru je v resource ulozen tento skript a pri
spusteni programu se kontroluje jestli se musi provest nejaka zmena.

Marian Jonas

Petr Svejda napsal(a):
> Resim problem, jak delat upgrade databaze Firebird specializovaneho
> informacniho systemu pri velmi caste zmene struktury (prosim neuvadejte,
> ze databaze ma byt dobre navrzena - existuje zmena legislativy, caste
> nove pozadavky klienta a vlastni vylepsovani a optimalizace). Uzivatel
> muze vynechat i vice upgradu a potom se musi provest vsechny najednou.
> Datove soubory budou ve vetsine pripadu velke cca 1 az 10 MB max., pocty
> zaznamu neprekroci radove stovka az max. jednotky tisicu (tedy male
> databaze objemove). Pocet zakazniku, kteri maji tento sw je radove par
> set. Vidim 2 zpusoby:
>
> 1 - podle cisla verze databaze provest postupne vsechny aktualizacni
> skripty, ktere chybi a pote do tabulky zapsat nove cislo verze. Tento
> zpusob se mi zda na naprogramovani snadny, jiz jsem ho zkousel, ale
> nelibi se mi, ze musim zaroven udrzovat strukturu nove databaze pri
> zakladani nove firmy a soucasne aktualizacni skripty musi dostat
> databazi na stejnou uroven jako u firmy nove zalozene. To dle meho muze
> pri drobne chybe v libovolnem aktualizacnim skriptu prinest problemy se
> "stejnosti" databazi. Taky se mi nelibi, ze pracuji s "zivou" databazi
> (viz. dale).
>
> 2 - nejdrive se vytvori prazdna nova databaze a do ni se nasypou puvodni
> data s prislusnymi upravami. Tento zpusob se mi zda pruhlednejsi,
> cistci, mene nachylnejsi na chyby, akorat vubec nevim, jak a jakym
> nastrojem prevadet puvodni data do nove databaze (asi nejakymi davkami).
> Neni ale prevadeni dat narocnejsi na programovani? Vubec netusim, jak si
> poradit s faktem, ze zakaznici mohou mit databaze ruznych verzi. Je
> nutne psat odpovidajici pocet prevodovych skriptu? To uz mi prijde psani
> aktualizacnich skriptu jednodussi. Protoze objem dat bude relativne
> maly, neni problem zakladat databaze a cele je naplnovat. Take nevim,
> jak si poradit s referencni integritou - nejdrive naplnit data a potom
> zavest integritu? Vyhodou u tohoto zpusobu vidim take v tom, ze nesaham
> na puvodni data. Kdyz se neco nepovede (a muze to byt pravdepodobne),
> tak se nic nedeje a zkusi se to znovu.
>
> Prioritou je samozrejme maximalni robusnost, odolnost proti chybe
> programatora a prehlednost.
>
> Protoze si myslim, ze uz mate nekteri z vas dlouholete prakticke
> zkusenosti s problemem, poradite vyhody a nevyhody jednotlivych systemu
> upgrade, pripadne nacrtnete jiny zpusob.
>
>
> Petr
>
>
>
>

Ubgrade male Firebird databaze - pristup k problem

[*] Marek Dostal <konf(zv)agnis(tec)cz> - 19.10.2007 15:24:21

> Resim problem, jak delat upgrade databaze Firebird specializovaneho
> informacniho systemu pri velmi caste zmene struktury
Tohle resime tak, ze soubor s upgradem obsahuje jak novy exe soubor, tak
soubor s aktualnimi popisy tabulek a nas upgradovaci program porovna
postupne pro vsechny tabulky v databazi jejich aktualni strukturu v databazi
se strukturou jaka ma byt podle upgradu a vytvori skript tvaru "alter table
alter column, add column, drop column", kterym upravi strukturu tabulek v
databazi. Popsal jsem to jen schematicky, upgrade napr. obsahuje cislo
verze, aby si uzivatel nemohl nespustil nejaky stary upgrade a nejake
sloupce si tak odstranit apod.

Marek Dostal
D7Prof, WinXP, FireBird 1.5, 2.0

Ubgrade male Firebird databaze - pristup k problem

[*] Karel Rys <delphi(zv)zas-me(tec)cz> - 19.10.2007 14:40:18

Petr Svejda dne 19 Nov 2007 v 14:26:

> Resim problem, jak delat upgrade databaze Firebird specializovaneho
> informacniho systemu pri velmi caste zmene struktury

Sel jsem cestou tech aktualizacnich skriptu. Je pravda, ze se musi davat pozor (pridam nove pole do databaze - hned musim
doplnit odpovidajici prikaz do zmenoveho skriptu), ale prislo mi to spolehlivejsi nez se pokouset napsat neco, co by bylo
schopne prevest data z libovolne verze na libovolnou aktualni. Nejde jen o zmenu struktury - obcas doslo i k tomu, ze se po
pridani noveho pole melo toto pole naplnit nejakou hodnotou (typicky stare verze FB - i po vytvoreni NOT NULL pole s DEFAULT
hodnotou jsem jeste poustel UPDATE, ktery tam tu default hodnotu zapsal, jinak byly problemy s tim, ze napr. WHERE myslim na
tu def. hodnotu kaslalo...).

Karel Rys

Ubgrade male Firebird databaze - pristup k problem

[*] Petr Svejda <petr(zv)svejda(tec)cz> - 19.10.2007 14:26:17

Resim problem, jak delat upgrade databaze Firebird specializovaneho
informacniho systemu pri velmi caste zmene struktury (prosim neuvadejte,
ze databaze ma byt dobre navrzena - existuje zmena legislativy, caste
nove pozadavky klienta a vlastni vylepsovani a optimalizace). Uzivatel
muze vynechat i vice upgradu a potom se musi provest vsechny najednou.
Datove soubory budou ve vetsine pripadu velke cca 1 az 10 MB max., pocty
zaznamu neprekroci radove stovka az max. jednotky tisicu (tedy male
databaze objemove). Pocet zakazniku, kteri maji tento sw je radove par
set. Vidim 2 zpusoby:

1 - podle cisla verze databaze provest postupne vsechny aktualizacni
skripty, ktere chybi a pote do tabulky zapsat nove cislo verze. Tento
zpusob se mi zda na naprogramovani snadny, jiz jsem ho zkousel, ale
nelibi se mi, ze musim zaroven udrzovat strukturu nove databaze pri
zakladani nove firmy a soucasne aktualizacni skripty musi dostat
databazi na stejnou uroven jako u firmy nove zalozene. To dle meho muze
pri drobne chybe v libovolnem aktualizacnim skriptu prinest problemy se
"stejnosti" databazi. Taky se mi nelibi, ze pracuji s "zivou" databazi
(viz. dale).

2 - nejdrive se vytvori prazdna nova databaze a do ni se nasypou puvodni
data s prislusnymi upravami. Tento zpusob se mi zda pruhlednejsi,
cistci, mene nachylnejsi na chyby, akorat vubec nevim, jak a jakym
nastrojem prevadet puvodni data do nove databaze (asi nejakymi davkami).
Neni ale prevadeni dat narocnejsi na programovani? Vubec netusim, jak si
poradit s faktem, ze zakaznici mohou mit databaze ruznych verzi. Je
nutne psat odpovidajici pocet prevodovych skriptu? To uz mi prijde psani
aktualizacnich skriptu jednodussi. Protoze objem dat bude relativne
maly, neni problem zakladat databaze a cele je naplnovat. Take nevim,
jak si poradit s referencni integritou - nejdrive naplnit data a potom
zavest integritu? Vyhodou u tohoto zpusobu vidim take v tom, ze nesaham
na puvodni data. Kdyz se neco nepovede (a muze to byt pravdepodobne),
tak se nic nedeje a zkusi se to znovu.

Prioritou je samozrejme maximalni robusnost, odolnost proti chybe
programatora a prehlednost.

Protoze si myslim, ze uz mate nekteri z vas dlouholete prakticke
zkusenosti s problemem, poradite vyhody a nevyhody jednotlivych systemu
upgrade, pripadne nacrtnete jiny zpusob.


Petr

Vista - BDE - Paradox

[*] Ing. Antonin Spurny <spurny(zv)kavlounky(tec)cz> - 19.10.2007 09:51:59

autolearn=failed version=3.1.7
X-Spam-Checker-Version: SpamAssassin 3.1.7 (2006-10-05) on ns.bulvar(tec)cz

From: <konde(zv)seznam(tec)cz>

> Cannot lock network file opereting system network error. File
> X:\Aplikace....\data\PDOXUSRS.NET File: PDOXUSRS.NET Lock time out.

Podobnou hlasku mi VISTA dava, kdyz na ni bezi nektera aplikace pouzivajici
PARADOX v administratorskem rezimu. Jakmile jsem upravil pristupova prava k
souboru PDOXUSRS.NET tak, aby aplikace k nemu mohla jen s uzivatelskymi
pravy a aplikaci spoustim jen s uzivatelskymi pravy, je vse OK. Co se ale
presne deje nevim.
Me to delali D7 na VISTA BUSINESS, kdyz jsem je poustel s admin pravy, pak
mi ostatni aplikace pouzivajici PARADOX hlasily podobnou chybu.

Tonda

Indy9 a memory leak

[*] Petr Langer <p.langer(zv)nexnet(tec)cz> - 19.10.2007 09:39:58

Ahoj,
abych si zkontroloval aplikaci, stahnul jsem MemCheck a vysledkem je
vypis uvedeny dole. Proto je ma otazka, jestli s tim ma nekdo zkusenosti
a jestli to je problem v Indy, nebo to MemCheck nejak spatne interpretuje...
Jedna se o TCP servrik, pouzivajici tridu IdTCPServer.

Diky,
Petr Langer

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


MemCheck version 2.75

TOP 10 Leaks: begin
Leak #1 Instance of TIdPeerThread
Size: 84
22592 Occurences
call stack - 0 : Module IdThreadMgr.pas Routine
(zv)Idthreadmgr(zv)TIdThreadMgr(zv)CreateNewThread Line 59 Find error: 0048D423
call stack - 1 : Module IdThreadMgrPool.pas Routine
(zv)Idthreadmgrpool(zv)TIdThreadMgrPool(zv)GetThread Line 78 Find error: 004946FA
call stack - 2 : Module IdTCPServer.pas Routine
(zv)Idtcpserver(zv)TIdListenerThread(zv)Run Line 679 Find error: 0048EFB9
call stack - 3 : Module IdThread.pas Routine
(zv)Idthread(zv)TIdThread(zv)Execute Line 113 Find error: 0048CA14
call stack - 4 : Module Classes.pas Routine (zv)Classes(zv)ThreadProc Line
7370 Find error: 0041FF17
call stack - 5 : Routine (zv)System(zv)ThreadWrapper Find error: 00404B26
call stack - 6 : (no debug info) Find error: 7C80B67F
call stack - 7 : (no debug info) Find error: FFFFFFFC

Leak #0 Instance of TCriticalSection
Size: 28
22592 Occurences
call stack - 0 : Module IdThread.pas Routine (zv)Idthread(zv)TIdThread(zv)Create
Line 147 Find error: 0048CB23
call stack - 1 : Module IdThreadMgr.pas Routine
(zv)Idthreadmgr(zv)TIdThreadMgr(zv)CreateNewThread Line 59 Find error: 0048D423
call stack - 2 : Module IdThreadMgrPool.pas Routine
(zv)Idthreadmgrpool(zv)TIdThreadMgrPool(zv)GetThread Line 78 Find error: 004946FA
call stack - 3 : Module IdTCPServer.pas Routine
(zv)Idtcpserver(zv)TIdListenerThread(zv)Run Line 679 Find error: 0048EFB9
call stack - 4 : Module IdThread.pas Routine
(zv)Idthread(zv)TIdThread(zv)Execute Line 113 Find error: 0048CA14
call stack - 5 : Module Classes.pas Routine (zv)Classes(zv)ThreadProc Line
7370 Find error: 0041FF17
call stack - 6 : Routine (zv)System(zv)ThreadWrapper Find error: 00404B26
call stack - 7 : (no debug info) Find error: 7C80B67F
call stack - 8 : (no debug info) Find error: FFFFFFFC

TOP 10 Leaks: end

Total leak: 2530304 bytes

Vista - BDE - Paradox

[*] konde(zv)seznam(tec)cz - 19.10.2007 08:41:53

Dobry den,

Stale resim problem nefunkcnosti sitoveho provozu aplikace s databazi Paradox prostrednictvim BDE na VISTA, prvni stanice se chova korektne, jakmile se spusti dalsi stanice VISTA, tak se na teto stanici vrati po nekolika minutach necinnosti zobrazi hlaseni:

Cannot lock network file opereting system network error. File X:\Aplikace....\data\PDOXUSRS.NET File: PDOXUSRS.NET Lock time out.

Pokud jde o nastaveni, tak NET DIR, smeruje do stejneho adresare, tak jak ma byt pro sitovy provoz obvykle, na win XP vse funguje bezproblemu. Zajimavy je i poznatek, ze pokud je v siti dvou PC kombinace XP a Vista (na ni je SW instalovan) funguje vse bez problemu.

Aplikaci jsem spoustel na Vista Bussines, v administratorskem uctu, adresar pro praci s daty nastaven pro cteni/zapis, stejne adresar kde je instalovano BDE, dale nastavena prava pro zapis do registru BDE, alespon se tak vse tvari.

Poradte prosim nekdo, kde by mohla vznikat chyba, vypada to ze bude problem nekde na strane Vista, zrejme nastaveni prav nebo neco takoveho co se mi nepodarilo zjisit. Provozujete nekdo aplikaci sitove na Vista, ktera bezi pod PARADOX a BDE.

Diky moc za kazdou informaci, ktera povede k vyreseni problemu.

P. Bilek



Pri spusteni aplikace na prvnim PC s Vista, vse OK, pri spusteni stejne aplikace pracujici s databazi Paradox prostrednictvim napr Table na druhem PC s Vista aplikace na druhem PC zkolabovala, nutno odstranit pomoci Spravce uloh. Cesty pro nastaveni NET DIR jsou OK, s provozem aplikace na siti pred BDE mam bohate zkusenosti (v celku bez komplikaci).

Ma nekdo podobne poznatky pri aplikaci sitoveho provozu aplikace na Win Vista???

Dosavadni patrani nemaji reseni, predpokladam, ze problem bude nekde v nastaveni pristupovych prav k souborum nebo registrum.

Nasel jsem odkaz ohledne nastaveni: http://www.gartplan.dk/info/VistaConfig_US.htm , ale stale se nedari aplikaci sitove rozbehnout.

Mate nekdo podobne zkusenosti, pripadne podarilo se Vam aplikaci s DB Paradox pod BDE rozbehnout?

Pokud jde o chovani BDE Admin, nezpozoroal jsem nekorektni chovani...

Diky za radu, pripadne jakekoliv informace.

P. Bilek

Ubgrade male Firebird databaze - pristup k problem

[*] Milan Tomes <delphi(zv)haida(tec)cz> - 20.10.2007 13:43:59

No my to resime celkem jednoduse:
1. Verzujeme DB a aplikace - v DB je ulozeno jakou minimalni verzi
aplikace musi zakaznik pouzivat a v aplikaci jakou minimalni verzi app
potrebuje k provozu (kontrola probiha pri spousteni aplikace a pripadny
nesoulad automaticky aplikaci ukonci)
2. Vydavame upgrade a zakladaci skripty - upgrade skript je vzdy jen z
verze nizsi do o jednu verzi vyssi (napr. z 01.27.001 do 01.27.002, z
01.27.002 do 01.28.000)
3. Vzhledem k tomu, ze DB neni staticka a zakaznik ji plni daty (jak
prekvapive ze ? :)), tak neni mozno provest prevod za pomoci nastroje
typu DB comparer a podobnych, takze kazdy vyvojar je zodpovedny za
tvorbu korektniho prevodoveho skriptu. Tim eliminujeme veskere chyby
prevodu, kterych se DB Comparer dopousti. DB Comparer je tak odsouzen
pouze do role kontrolniho nastroje - porovnava databazi prevedenou s
databazi nove zalozenou. Ja chci jen znat vysledek, zda jsou struktury
shodne. Dalsi na rade je pote kontrola dat v ciselnicich, na ktere
pouzivam EMS data comparer.
4. V pripade vydavani major verze DB vytvarim i zakladaci skript (tzn.
napr. pri vydavani verze 01.28.000 je vydan prevodovy i zakladaci
skript, ale pri vydani 01.28.001 je vytvoren jen prevodovy skript)
5. Vlastnorucne napsany skriptovac (potrebujeme i nektere vlastnosti,
ktere SQL neumi - napr. IMPORT BLOB PACKAGE :)) nejdrive zjisti, zda
verze DB odpovida verzi DB pro kterou je prevod napsan a pak prevod
pripadne spusti. Uzivatel je pak nucen vybrat spravny skript (coz mu
jednoduse umoznuje pojmenovani souboru). Dalsi vyhodou naseho
skriptovace je i to, ze balicky jsou komprimovane (s heslem) - rozbaleny
skript ma totiz v soucasne chvili neco kolem 25MB :) A taky nesmim
zapomenout na podporu vice jazyku databaze.

Tot snad vse.

S pozdravem

Milan Tomes


Petr Svejda napsal(a):
> Resim problem, jak delat upgrade databaze Firebird specializovaneho
> informacniho systemu pri velmi caste zmene struktury (prosim neuvadejte,
>
>

Ubgrade male Firebird databaze - pristup k problem

[*] Jiri Cincura <diskuze(zv)cincura(tec)net> - 20.10.2007 13:41:58

Ja na tohle pozuivam celkem otrockou praci, ale mam rad vse pod kontrolou.

Kazda DB ma cislo verze. Aplikace vzdy updatuje na nejnovejsi, kterou
umi (s jinou ani nepracuje).

Zmeny delam tak, ze mam skripty od verze 0 do N. Kdyz chci udelat
verzi N+1, vezmu konzolu (wfsql event. FlameRobin, ktery umi logovat
sam) a vsechno rucne predelam na novou verzi. Prikazy ulozim a
prihodim k app. Zmeny se pak provadeji klasicky od N-x do N+1.

Neni to moc rychle (spis totalne pomale) a chce to pri tom psani to
dobre rozmyslet, ale libi se mi na tom, ze mam vse pod kontrolou.

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

Ubgrade male Firebird databaze - pristup k problem

[*] Martin Burle <mburle2(zv)volny(tec)cz> - 20.10.2007 13:31:57

>>> No je potreba databazi proste neustale tvorit pomoci scriptu typu if
>>> exists atd. a vyhnout se ruznym jinym nastrojum.
>>
>> To mi prosimte rekni proc. Pokud k tomu pristoupis rozmune,

> Protoze pak musis dobre pohlidat nad jakou databazi ten script
> poustis - nebo ty pojedes s DBC ke kazdemu zazaznikovi ?

Ani me nehne ;). DBC jsou komponnenty a muzes si je elegantne zadratovat do
aplikace.

> Dale to ma tu vyhodu, ze kazdy zakaznik muze mit jeste svuj script s
> individualnimi zmenami a ten si dale muze jenom pripadne upravovat.

Ano, to jsou mnou zminovane skripty before/after update ktere si muzes
pustit individualne.

> V takove situaci se s DBC uplne ztratis.....

Vec nazoru. Ztracel jsem se v tech ruznych if istable, if isfield.... ;)

Martin

Ubgrade male Firebird databaze - pristup k problem

[*] konference(zv)sales(tec)cz - 20.10.2007 12:53:54


----- Original Message -----
From: "Martin Burle" <mburle2(zv)volny(tec)cz>>> No je potreba databazi proste neustale tvorit pomoci scriptu typu if
>> exists atd. a vyhnout se ruznym jinym nastrojum.
>
> To mi prosimte rekni proc. Pokud k tomu pristoupis rozmune, neotrocky, tak
> si nakonec nutne vytvoris nejaky svuj nastroj sam. Pokud je k dispozici
> nastroj, ktery za pomerne maly peniz porovna dve databaze, zamysli se,
> vyplivne rozdilovy skript, ktery funguje, proc se mu vyhybat?
>
> Nektere typy zmen (treba ulozenych procedur) si vynuti predchozi dropnuti
> jinych dependentnich, deaktivaci indexu a podobne. Proc tohle vsechno
> vymyslet, ladit, udrzovat. S vhodnym nastrojem (DBComparer, mozna ze jsou
> i
> jine) je vytvoreni upgrade balicku otazkou par minut.
>
> Podotykam, ze ani DBC nezvladne napr. nektere "nerozumne" zmeny datovych
> typu nad zivymi daty, pokud uz je neco takoveho potreba, musi se mu
> pomoci.

Protoze pak musis dobre pohlidat nad jakou databazi ten script poustis -
nebo ty pojedes s DBC ke kazdemu zazaznikovi ?
Dale to ma tu vyhodu, ze kazdy zakaznik muze mit jeste svuj script s
individualnimi zmenami a ten si dale muze jenom pripadne upravovat.
V takove situaci se s DBC uplne ztratis.....

Ludek

Ubgrade male Firebird databaze - pristup k problem

[*] info(zv)drnholec(tec)cz <info(zv)drnholec(tec)cz> - 20.10.2007 11:17:47


> Podotykam, ze ani DBC nezvladne napr. nektere "nerozumne" zmeny datovych
> typu nad zivymi daty, pokud uz je neco takoveho potreba, musi se mu pomoci.

Martin

Pouzivani aktulizacnich skriptu opravdu neni vsemocne a je spousta
pripadu kdy to nejde poradne udelat i v SQL manageru (to pak delam tak
ze vygeneruji SQL skript cele databaze a zmeny provedu v textu a pak
zkompiluji do nove databaze)

Ja to resim tak ze si SQL Manageru vytvorim novou databazi (jen
metadata)s specialni priponou obsahujici cislo verze. V EXE aplikace mam
konstantu ktera mi rika se kterou verzi databaze tato aplikace pracuje.
ta porovna stavajici verzi databaze a pokud se lisi nabidne ji k prevodu.
Na vlastni prevod mam "jednoduchy" programek ktery automaticky presype
data z ze stare databaze do nove.

Jura

Virtualni konference CodeRage II, VSTUP VOLNY

[*] rkubat(zv)email(tec)cz - 20.10.2007 11:09:46

Vazeni, preji vsem dobry den.

Jen kratce: v CodeGear se rozhodli, ze vstup na virtualni konferenci CodeRage II je zdarma pro vsechny, tedy nikoli jen pro registrovane uzivatele vyjmenovanych produktu, jak jsem psal ve svem predchozim prispevku. Jsem rad, ze takove rozhodnuti padlo a omlouvam se, ze jsem vam puvodne podal jinou informaci.

Na konferenci se muzete registrovat zde: http://video.codegear.com/coderage/ragewithus.exe/register

-- Richard Kubat, Borland s.r.o.

> Vazeni pratele,
>
> druha virtualni konference CodeGear (poskytovana prostrednictvim internetoveho
> pripojeni) se bude konat ve dnech 26.-30.11.2007. Krome cca 40 technickych
> recniku bude k dispozici i virtualni vystavni hala. Registrovani uzivatele
> vybranych produktu CodeGear maji vstup zdarma, ostatni si vstupenku mohou ...

Ubgrade male Firebird databaze - pristup k problem

[*] Martin Burle <mburle2(zv)volny(tec)cz> - 20.10.2007 09:17:38

> No je potreba databazi proste neustale tvorit pomoci scriptu typu if
> exists atd. a vyhnout se ruznym jinym nastrojum.

To mi prosimte rekni proc. Pokud k tomu pristoupis rozmune, neotrocky, tak
si nakonec nutne vytvoris nejaky svuj nastroj sam. Pokud je k dispozici
nastroj, ktery za pomerne maly peniz porovna dve databaze, zamysli se,
vyplivne rozdilovy skript, ktery funguje, proc se mu vyhybat?

Nektere typy zmen (treba ulozenych procedur) si vynuti predchozi dropnuti
jinych dependentnich, deaktivaci indexu a podobne. Proc tohle vsechno
vymyslet, ladit, udrzovat. S vhodnym nastrojem (DBComparer, mozna ze jsou i
jine) je vytvoreni upgrade balicku otazkou par minut.

Podotykam, ze ani DBC nezvladne napr. nektere "nerozumne" zmeny datovych
typu nad zivymi daty, pokud uz je neco takoveho potreba, musi se mu pomoci.

Martin


PDFCreator v delphi

[*] Petr Berek <sojokl(zv)seznam(tec)cz> - 20.10.2007 09:13:38

Ahoj,
muzete mi nekdo poradit, jak pouzivat funkce aplikace PDFCreator v delphi?
Googlil jsem, ale moc jsem toho nenasel. Inicializuji to pomoci
OleCreateInstance, ale nevim, jak programove nastavit jmeno souboru, do
ktereho se to ma vytisknout.
Dekuji za jakekoliv nakopnuti.

Petr

OT: hledame programatora Delphi - pracoviste Ostra

[*] Radek Zhasil <radek.zhasil(zv)vitkovice(tec)cz> - 20.10.2007 15:12:05

Pozadujeme :
- vybornou znalost Delphi
- vyhodou znalost Firebird nebo MSSQL
- pasivne anglicky (cteni helpu a dokumentace)

Nastup mozny ihned.

Nabizime :
- slusne platove ohodnoceni dle predvedenych znalosti a snahy
- 5 tydnu dovolene
- prispevek na obedy
- prispevek na penz.pojisteni
- pruzna prac.doba
- pracoviste v Ostrave

OT: hledame programatora Delphi - pracoviste Ostra

[*] Radek Zhasil <radek.zhasil(zv)vitkovice(tec)cz> - 20.10.2007 15:40:07

Pozadujeme :
- vybornou znalost Delphi
- vyhodou znalost Firebird nebo MSSQL
- pasivne anglicky (cteni helpu a dokumentace)

Nastup mozny ihned.

Nabizime :
- slusne platove ohodnoceni dle predvedenych znalosti a snahy
- 5 tydnu dovolene
- prispevek na obedy
- prispevek na penz.pojisteni
- pruzna prac.doba
- pracoviste v Ostrave


email : radek.zhasil(zv)vitkovice(tec)cz

Synapse TTCPBlockSocket.Connected

[*] Lukas Gebauer <gebylist(zv)mlp(tec)cz> - 20.10.2007 16:20:10

> Ako zistim, ze sa podarilo vytvorit spojenie pomocou TTCPBlockSocket, lebo
> ked zavolam:
>
> Connect(Host, Port); tak sa nevracia ziadny result.

Z property LastError. Nejen po Connect, ale po kazde socketove operaci.


--
Lukas Gebauer.

E-mail: gebauerl(zv)mlp(tec)cz
WEB: http://www.ararat(tec)cz/synapse - Synapse Delphi and Kylix TCP/IP
Library


Synapse TTCPBlockSocket.Connected

[*] Roland Turcan <konf(zv)rotursoft.sk> - 20.10.2007 16:10:09

Hello All!

Ako zistim, ze sa podarilo vytvorit spojenie pomocou TTCPBlockSocket,
lebo ked zavolam:

Connect(Host, Port); tak sa nevracia ziadny result.

Dakujem,

--
Best regards, TRoland

http://exekutor.rotursoft.sk

Sinea - Popis sestavy

[*] Petr Berek <sojokl(zv)seznam(tec)cz> - 21.10.2007 12:29:33

Zdravim,
Potrebuji v aplikaci dynamicky menit popis tiskove ulohy. V dokumentaci
sinea jsem se docetl, ze je to mozne pomoci property Popis. Ale i pokud ji
zmenim, tak se mi ve spravci tiskovych uloh objevi sestava s nazvem Tiskova
sestava SINEA.
Zmenil jsem ji primo v sestave a ve spravci se objevil zadany text. Ale
pokud ji chci zmenit programove, tak vsechny ulohy jsou pod stejnym nazvem.
Napadlo me ulozit sestavu, tak jsem zavolal metodu UlozPredlohuSestavy a to
mi celou sestavu smazalo.
Jak se da dynamicky menit popis tiskove ulohy?
Diky,

Petr

com port

[*] pm <konference(zv)komfi(tec)cz> - 21.10.2007 14:33:42

DD,

potreboval bych z meho programu komunikovat po seriove lince s
jednim zarizenim ale zda se ze zarizeni pouziva vice nez 3 draty a
nejspis z tohoto duvodu se mnou nekomunikuje ( muj program komunikuje
s jinymi zarizenimi OK )

poradil by nekdo jak spravne nastavit COM port aby mi zarizeni
odpovidalo ?

diky PM

v kdyz se na to podivam monitorovacim programkem vidim toto:

0 12:40:05 muj.exe IRP_MJ_CREATE Serial0 SUCCESS
Options: Open
11 12:40:05 muj.exe IOCTL_SERIAL_SET_BAUD_RATE Serial0
SUCCESS Rate: 9600
12 12:40:05 muj.exe IOCTL_SERIAL_SET_RTS Serial0
SUCCESS
13 12:40:05 muj.exe IOCTL_SERIAL_SET_DTR Serial0
SUCCESS
14 12:40:05 muj.exe IOCTL_SERIAL_SET_LINE_CONTROL Serial0
SUCCESS StopBits: 1 Parity: EVEN WordLength: 7
15 12:40:05 muj.exe IOCTL_SERIAL_SET_CHAR Serial0
SUCCESS EOF:0 ERR:0 BRK:0 EVT:0 XON:11 XOFF:13
16 12:40:05 muj.exe IOCTL_SERIAL_SET_HANDFLOW Serial0
SUCCESS Shake:1 Replace:40 XonLimit:2048 XoffLimit:512

pritom cizi program ktery umi komunikovat :

57 12:16:29 cizi.exe IOCTL_SERIAL_SET_BAUD_RATE Serial0
SUCCESS Rate: 9600
58 12:16:29 cizi.exe IOCTL_SERIAL_SET_LINE_CONTROL
Serial0 SUCCESS StopBits: 1 Parity: EVEN
WordLength: 7
59 12:16:29 cizi.exe IOCTL_SERIAL_SET_CHAR Serial0
SUCCESS EOF:0 ERR:0 BRK:0 EVT:0 XON:11 XOFF:13
60 12:16:29 cizi.exe IOCTL_SERIAL_SET_HANDFLOW Serial0
SUCCESS Shake:2 Replace:80 XonLimit:2048
XoffLimit:512
62 12:16:29 cizi.exe IOCTL_SERIAL_PURGE Serial0
SUCCESS Purge: RXABORT
63 12:16:29 cizi.exe IOCTL_SERIAL_PURGE Serial0
SUCCESS Purge: RXCLEAR
70 12:16:29 cizi.exe IOCTL_SERIAL_SET_TIMEOUTS Serial0
SUCCESS RI:0 RM:0 RC:2000 WM:1000 WC:0
71 12:16:29 cizi.exe IRP_MJ_WRITE Serial0
SUCCESS Length 3: 2B 2B 2B
72 12:16:30 cizi.exe IOCTL_SERIAL_PURGE Serial0
SUCCESS Purge: RXABORT
73 12:16:30 cizi.exe IOCTL_SERIAL_PURGE Serial0
SUCCESS Purge: RXCLEAR

QuickReport (QRImage) a nefunkcne nacitanie jpg na

[*] Peter Ondras <konfery(zv)pse.sk> - 23.10.2007 08:54:38

Objavila sa mi jedna chyba na starych Win98 (WinXP ziadny problem nemaju) v
QuickReport (z Delphi 7). V tlacovej zostave mam na pozadi JPG subor do
ktoreho doplnim z databazy nejake hodnoty. Na Win98 sa zobrazi prehliadac
zostav, ale zostava sa ani po chvili nenacita a namiesto toho vypise chybu
"metafile is not valid". JPG subor je nacitavany dynamicky az tesne pred
zobrazenim zostavy do komponenty QRImage. Pred nacitanim je JPG
zaregistrovany
(QRImage1.Picture.RegisterFileFormat(GraphicExtension(TJPEGImage), 'JPEG',
TJPEGImage);), nacitanie je standardne
(QRImage1.Picture.LoadFromFile(HlCesta+'Templates\obrazok.jpg')). Nechapem
preco vypisuje chybu s metafile pri nacitavani JPG suboru. Predpokladam, ze
budem musiet asi nieco doinstalovat/nakopirovat do cieloveho pc, ale neviem
co.
Komponenta QRImage nema prednastaveny ziadny obrazok.

Peter Ondras - www.ondras.sk
+421 904 421 925

Problem v CodeGearRAD Studiu 2007

[*] prosoft(zv)prosoft(tec)cz <prosoft(zv)prosoft(tec)cz> - 22.10.2007 10:09:04

Po nejake aktualizaci DELPHI 2007 mi prestaly fungovat akce z roletoveho menu ktere se objevuje po stisku praveho tlacitka mysi ve vsech oknech RAD studia krome editoru. Uvedu priklad mam okno Project manageru a porebuju nainstalovat balicek ktery je v seznamu. Zmacknu prave tlacitko mysi, rozbali se mi menu a ja kliknu na Install. Bohuzel se nic nestane nefunguje ani jedna volba proste nic. Nevim co s tim. Predpokladam ze je by pomohla nova instalace delphi ale to se mi nechce.
Dik. Zvo.

Podmineny preklad

[*] Lebeda David <david.lebeda(zv)comarr(tec)cz> - 22.10.2007 10:03:03

> mam v projektu nekolik komponent, ktere bych chtel v nekterych verzich
> programu skryt. Napadl me podmineny preklad, ale kdyz definuji nejakou
> direktivu, tak je dostupna pouze v jedne unite.

Ahoj,

vim o dvou cestach:

1. direktivy deklarovat v INC souboru a ten do unit importovat pres
{$I soubor.inc}

2. Project - Options - Directories/Conditionals - tam lze direktivy vepsat

David Lebeda

Podmineny preklad

[*] Macko Martin <martin.macko(zv)m-pro(tec)cz> - 22.10.2007 09:57:03

> -----Original Message-----
> From: delphi-l-owner(zv)clexpert(tec)cz
> [mailto:delphi-l-owner(zv)clexpert(tec)cz] On Behalf Of Petr Berek
> Sent: Thursday, November 22, 2007 9:47 AM
> To: delphi-l(zv)clexpert(tec)cz
> Subject: Podmineny preklad
>
> Zdravim,
> mam v projektu nekolik komponent, ktere bych chtel v
> nekterych verzich programu skryt. Napadl me podmineny
> preklad, ale kdyz definuji nejakou direktivu, tak je dostupna
> pouze v jedne unite.

....

> Nevite nekdo o nejakem jednoduchem reseni, jak bych mohl
> schovat nejake komponenty ve vice unitech?
>

Project - Options - Directories/Conditionals

Podmineny preklad

[*] Petr Berek <sojokl(zv)seznam(tec)cz> - 22.10.2007 09:47:02

Zdravim,
mam v projektu nekolik komponent, ktere bych chtel v nekterych verzich
programu skryt. Napadl me podmineny preklad, ale kdyz definuji nejakou
direktivu, tak je dostupna pouze v jedne unite. Zkousel jsem to i pres
deklaraci konstanty a to fungovalo uplne zcestne.
Nevite nekdo o nejakem jednoduchem reseni, jak bych mohl schovat nejake
komponenty ve vice unitech?

Diky,
Petr

Tisk z DELPHI 3 do formatu rtf

[*] Vaclav Krmela <krmela(zv)ustinadorlici(tec)cz> - 21.10.2007 21:22:11

From: "Petr Gregor" <pgregor(zv)orsia(tec)cz>
>
> potrebuji tisknout z me aplikace napsane v Delphi 3
> a uzivajici SINEA generator do *.rtf souboru

Sinea je prelozitelna ve vsech verzich Delphi pocinaje verzi Delphi 4.
Podpora Delphi 3 byla ukoncena v unoru 2002.
Cesta zpatky je problematicka z duvodu pouziti komponent, ktere v Delphi 3
nebyly, napr. ActionList.

Vaclav krmela


Tisk z DELPHI 3 do formatu rtf

[*] Petr Gregor <pgregor(zv)orsia(tec)cz> - 21.10.2007 20:00:05

Dobry vecer,

potrebuji tisknout z me aplikace napsane v Delphi 3
a uzivajici SINEA generator do *.rtf souboru nebo
popripade do *.doc. souboru.

Nejlepe by mi vyhovovalo reseni podobne jako
ma PDFCreator.

Vite nekdo o necem podobnem?

Dekuji za info.


PS:
Vim ze SINEA ma pro vyssi verze delphi generator
ktery umi vystup do xml, ale v tuto chvili nemam cas
prepisovat svoji aplikaci do vyssich verzi DELPHI.

Petr Gregor

Sinea - Popis sestavy

[*] Vaclav Krmela <krmela(zv)ustinadorlici(tec)cz> - 21.10.2007 15:29:46

From: "Petr Berek" <sojokl(zv)seznam(tec)cz>

> Potrebuji v aplikaci dynamicky menit popis tiskove ulohy. V dokumentaci
> sinea jsem se docetl, ze je to mozne pomoci property Popis. Ale i pokud ji
> zmenim, tak se mi ve spravci tiskovych uloh objevi sestava s nazvem
> Tiskova
> sestava SINEA.

Property Popis je pouze vychozi hodnota, ktera se pouzije pri zalozeni nove
predlohy.

U jiz existujicich predloh je popis ulozen primo v predloze tiskove sestavy.
Konkretne to je prvni radek souboru PTS. Zmenit lze pomoci dialogu
Vlastnosti sestavy.

Popis sestavy je vazany na predlohu sestavy. Je to text, ktery se nabizi v
ComboBoxPredloha pro vyber typu predlohy. Soucasne se pouzije jako popis
tiskove ulohy v tiskove fronte.

> Jak se da dynamicky menit popis tiskove ulohy?

Dynamicky zment lze v procesu nacitani predlohy, v OnNactiPredlohu:

function TForm1.Sestava1NactiPredlohu(Sender: TSestava): Boolean;
var Pr: TPredloha;
begin
Result := false;
Pr := TPredloha.Create;
try
if FileExists(Sender.NazevSouboru) then
begin
Pr.LoadFromFile(Sender.NazevSouboru);
Result := true;
end;
except
end;
if Pr.Count > 0 then
if copy(Pr[0], 1, 4) = 'I,0,' then
Pr[0] := Format('I,0,"%s"', ['Novy nazev']);
Sender.Predloha := Pr;
Pr.Free;
end;


Vaclav Krmela

Synapse - posilani dat

[*] zmo <zmo(zv)volny(tec)cz> - 23.10.2007 09:42:42

Zdravim vsechny,

pouzivam Synapsi na nacitani dat ze serveru, konkretne pomoci tridy
THttpSend. Prestoze se tato trida jmenuje ...send, pouzivam ji pouze pro
stazeni dat a tento proces funguje spolehlive. Ted bych potreboval naopak
posilat data na server ke zpracovani. Zatim umim predat pouze parametry v
QueryStringu, ale nevim presne nakolik je omezena delka - pokud by takto slo
protlacit alespon cca 1000 znaku, bylo by to v poradku.

Existuje nejaka jina metoda, ktera umozni (obdobne jako THttpSend nacita do
TStrings) data posilat ?

Za odpovedi dekuji predem !!

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

Synapse - posilani dat

[*] Milan Tomes <delphi(zv)haida(tec)cz> - 23.10.2007 09:52:43

Podivej se na THTTPSend.HTTPMethod a jako metodu (pokud to skript na
serverove strane podporuje) pouzij PUT. Nicmene metodu GET lze take
pouzit jen ma tusim nejake omezeni prave na delku toho URL. Vicemene se
da rici, ze temer vse zavisi na serverove strane.

S pozdravem

Milan Tomes

zmo napsal(a):
> Zdravim vsechny,
>
> pouzivam Synapsi na nacitani dat ze serveru, konkretne pomoci tridy
> THttpSend. Ted bych potreboval naopak
> posilat data na server ke zpracovani. Zatim umim predat pouze parametry v
> Existuje nejaka jina metoda, ktera umozni (obdobne jako THttpSend nacita do
> TStrings) data posilat ?
>
>

Synapse - posilani dat

[*] Lukas Gebauer <gebylist(zv)mlp(tec)cz> - 23.10.2007 09:50:42

> Existuje nejaka jina metoda, ktera umozni (obdobne jako THttpSend
> nacita do TStrings) data posilat ?

Proc jine metoda? Posilani ta trida pochopitelne take umi, ba co vis,
mas ve zdrojaku hnedka tri ruzne priklady. Podivej se co a jak delaji
funkce HttpPostBinary, HttpPostURL a HttpPostFile.
--
Lukas Gebauer.

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

Synapse FTPSend - Abort pri omezene rychlosti stah

[*] Marian Nykel <m.any(zv)centrum(tec)cz> - 23.10.2007 10:20:45

Zdravim,
pouzivam Synapsi ke stahovani dat z FTP a zjistil jsem, ze pokud mam nastaveno
omezeni rychlosti stahovani (pomoci DSock.MaxBandwidth) a chci stahovani prerusit
funkci Abort, pak se Synapse dostane do nejake podivne smycky a program vytuhne.
Kdyz jsem po ruznych dalsich pokusech zkusil pred Abortem zrusit omezeni rychlosti
stahovani (DSock.MaxBandwidth := 0), pak vse probehlo v poradku a stahovani se
prerusilo.
Je pro preruseni stahovani pri omezene rychlosti jiny postup?

MN

StrToFloat- nesmyslna hlaska

[*] Miloslav Pojsl <mpojsl(zv)seznam(tec)cz> - 23.10.2007 12:48:55

Zdravim vsechny,

prosim nesetkal se nekdo s nasledujici vyjimkou ve funkci StrToFloat:

EConvertError: '46839.998816722073' is not valid floating point number

DecimalSeparator mam nastaveny na '.'. Tato chyba se navic vyskytuje jen nekdy. Nevite, co ta nesmyslna hlaska znamena?


Mgr. Miloslav Pojsl
Meopta optika s.r.o.
Kabelikova 1
Prerov

StrToFloat- nesmyslna hlaska

[*] Ludek Finstrle <ludek.finstrle(zv)pzkagis(tec)cz> - 23.10.2007 12:58:56

> prosim nesetkal se nekdo s nasledujici vyjimkou ve funkci StrToFloat:
>
> EConvertError: '46839.998816722073' is not valid floating point number
>
> DecimalSeparator mam nastaveny na '.'. Tato chyba se navic vyskytuje
> jen nekdy. Nevite, co ta nesmyslna hlaska znamena?

Nemuze byt problem se zobrazenim/ulozenim cisla? Tzn, muze mit moc cislic.
Floaty byvaji ulozeni mantisa a exponent kazdy na pevny pocet bitu. A
vy zrejme z mantisy vytecete ...

Luf

StrToFloat- nesmyslna hlaska

[*] Miloslav Pojsl <mpojsl(zv)seznam(tec)cz> - 23.10.2007 13:36:58


> > prosim nesetkal se nekdo s nasledujici vyjimkou ve funkci StrToFloat:
> >
> > EConvertError: '46839.998816722073' is not valid floating point number
> >
> > DecimalSeparator mam nastaveny na '.'. Tato chyba se navic vyskytuje
> > jen nekdy. Nevite, co ta nesmyslna hlaska znamena?
>
> Nemuze byt problem se zobrazenim/ulozenim cisla? Tzn, muze mit moc cislic.
> Floaty byvaji ulozeni mantisa a exponent kazdy na pevny pocet bitu. A
> vy zrejme z mantisy vytecete ...
>
To me taky napadlo... Zkousel jsem ale konvertovat cislo napr. '2.2569874125698455221365489752622' a funkci StrToFloat to nevadilo...

StrToFloat- nesmyslna hlaska

[*] horky(zv)cominn(tec)cz - 23.10.2007 13:51:00

> From: Miloslav Pojsl [mailto:mpojsl(zv)seznam(tec)cz]
> Sent: Friday, November 23, 2007 12:49 PM

> prosim nesetkal se nekdo s nasledujici vyjimkou ve funkci StrToFloat:
>
> EConvertError: '46839.998816722073' is not valid floating point number

Nema ten prevadeny string nahodou nejake mezery na zacatku/konci ?

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

StrToFloat- nesmyslna hlaska

[*] Ludek Finstrle <ludek.finstrle(zv)pzkagis(tec)cz> - 23.10.2007 13:44:59

Fri, Nov 23, 2007 at 01:36:58PM +0100, Miloslav Pojsl napsal(a):
> > > prosim nesetkal se nekdo s nasledujici vyjimkou ve funkci StrToFloat:
> > >
> > > EConvertError: '46839.998816722073' is not valid floating point number
> > >
> > > DecimalSeparator mam nastaveny na '.'. Tato chyba se navic vyskytuje
> > > jen nekdy. Nevite, co ta nesmyslna hlaska znamena?
> >
> > Nemuze byt problem se zobrazenim/ulozenim cisla? Tzn, muze mit moc cislic.
> > Floaty byvaji ulozeni mantisa a exponent kazdy na pevny pocet bitu. A
> > vy zrejme z mantisy vytecete ...
> >
> To me taky napadlo... Zkousel jsem ale konvertovat cislo napr.
> '2.2569874125698455221365489752622' a funkci StrToFloat to nevadilo...

A zkousel jste ty cisla ve 2-kove soustave? Pocitac pracuje s 1 a 0 ;o)
Obligadni problem tusim s 1 ve floatu. Takze spravna formulace
mela byt moc cislic ve 2-kove soustave.

Ale treba je krtek jinde

Luf

StrToFloat- nesmyslna hlaska

[*] Miloslav Pojsl <mpojsl(zv)seznam(tec)cz> - 23.10.2007 13:55:01


> > Sent: Friday, November 23, 2007 12:49 PM
>
> > prosim nesetkal se nekdo s nasledujici vyjimkou ve funkci StrToFloat:
> >
> > EConvertError: '46839.998816722073' is not valid floating point number
>
> Nema ten prevadeny string nahodou nejake mezery na zacatku/konci ?
>
Nema tam zadne mezery

StrToFloat- nesmyslna hlaska

[*] Marek Dostal <konf(zv)agnis(tec)cz> - 23.10.2007 14:21:02

>> > prosim nesetkal se nekdo s nasledujici vyjimkou ve funkci StrToFloat:
>> >
>> > EConvertError: '46839.998816722073' is not valid floating point number

Tuto hlasku to hodi, kdyz je jinak nastaveny DecimalSeparator. Funguje obe
nasledujici moznosti:

DecimalSeparator:='.';
hpFl:=StrToFloat('46839.998816722073');

DecimalSeparator:=',';
hpFl:=StrToFloat('46839,998816722073');

StrToFloat- nesmyslna hlaska

[*] Daniel Rott <roxton(zv)seznam(tec)cz> - 23.10.2007 13:53:00


From: Miloslav Pojsl
> prosim nesetkal se nekdo s nasledujici vyjimkou ve funkci StrToFloat:
> EConvertError: '46839.998816722073' is not valid floating point number
> DecimalSeparator mam nastaveny na '.'. Tato chyba se navic vyskytuje
> jen nekdy. Nevite, co ta nesmyslna hlaska znamena?

Nesetkal, ale zkusil pouzit
function StrToFloat(const S: string; const FormatSettings: TFormatSettings):
Extended;
abych si byl jisty, ze neco necvici s globalnim nastavenim DecimalSeparator.
To by mohlo vystvetlovat tu "obcasnost".

Daniel

StrToFloat- nesmyslna hlaska

[*] Miloslav Pojsl <mpojsl(zv)seznam(tec)cz> - 23.10.2007 13:53:00

> > > > prosim nesetkal se nekdo s nasledujici vyjimkou ve funkci StrToFloat:
> > > >
> > > > EConvertError: '46839.998816722073' is not valid floating point number
> > > >
> > > > DecimalSeparator mam nastaveny na '.'. Tato chyba se navic vyskytuje
> > > > jen nekdy. Nevite, co ta nesmyslna hlaska znamena?
> > >
> > > Nemuze byt problem se zobrazenim/ulozenim cisla? Tzn, muze mit moc cislic.
> > > Floaty byvaji ulozeni mantisa a exponent kazdy na pevny pocet bitu. A
> > > vy zrejme z mantisy vytecete ...
> > >
> > To me taky napadlo... Zkousel jsem ale konvertovat cislo napr.
> > '2.2569874125698455221365489752622' a funkci StrToFloat to nevadilo...
>
> A zkousel jste ty cisla ve 2-kove soustave? Pocitac pracuje s 1 a 0 ;o)
> Obligadni problem tusim s 1 ve floatu. Takze spravna formulace
> mela byt moc cislic ve 2-kove soustave.
>

Ja si v jinem programu napsal StrToFloat('46839.998816722073' ) tedy pouzil jsem ono cislo, ktere se ji nelibilo a normalne ho zkonvertovala. Takze v tom cisle to asi nebude. Jinak pouzivam vlakna, takze nemuze byt neco spatne v synchronizaci? ale co? Me nejvic mate ta hlaska...

StrToFloat- nesmyslna hlaska

[*] Petr Vones <conference(zv)petrvones(tec)net> - 23.10.2007 16:27:12

From: "Daniel Rott" <roxton(zv)seznam(tec)cz>
> Nesetkal, ale zkusil pouzit
> function StrToFloat(const S: string; const FormatSettings:
> TFormatSettings):
> Extended;
> abych si byl jisty, ze neco necvici s globalnim nastavenim .
> To by mohlo vystvetlovat tu "obcasnost".

Spravne, DecimalSeparator by se nikdy nemelo nastavovat.

Potom bych jeste zkontroloval dalsi "fintu" a tou je specificka zavislost
Borlandi RTL na nastaveni 8087CW flagu. Ten muze zmenit jakakoli DLL ktera
je zavedena do procesu aplikace. Zkusil bych zalogovat Get8087CW nebo jak se
to jmenovalo v okamziku te chyby, jestli tam neni jina nez pozadovana
hodnota.

Petr Vones

StrToFloat- nesmyslna hlaska

[*] Martin Grajcar <grajcar1(zv)seznam(tec)cz> - 23.10.2007 16:13:11

> Nemuze byt problem se zobrazenim/ulozenim cisla? Tzn, muze mit moc cislic.
> Floaty byvaji ulozeni mantisa a exponent kazdy na pevny pocet bitu. A
> vy zrejme z mantisy vytecete ...

Nemuze. Jak je to ulozeny nam muze byt sumafuk. To cislo
> EConvertError: '46839.998816722073' is not valid floating point number
je na float MALY a proste jit musi.
Ze se neda ulozit presne je bezvyznamny detajl (presne jako float nelze ulozit ani 0.1).

Jediny vysvetleni je ten DecimalSeparator, treba jestli je tam vic vlaken a nektery s tim semtam soupne,
pak je jasny ze se to podela semtam.


Tez by v tom StrToFloat mohl byt bug ale to bych se dost divil.

M.

Data pro sineu

[*] Petr Berek <sojokl(zv)seznam(tec)cz> - 27.10.2007 19:52:01

Zdravim,
kdyz jsem se sineou zacinal, kdosi mi poradil dat vsechny data, ktere chci
nasypat do sinei, musim dat do nulte normalni formy. Ono to fungovalo celkem
spolehlive, dokud uzivatel nenasypal do databaze obrovske mnozstvi dat. Po
te se zobrazila hlaska, ze doslo k preteceni promenne (range check error).
Kdyz jsem problem lokalizoval, prisel jsem na to, ze je tam mnoho sloupcu.
Pouzivam MySQL a komponenty Zeos. V phpmyadmin se tabulka zobrazila, ale
zrejme komponenty Zeos s timto maji problem.
Muj dotaz tedy zni: Daji se data do sinei nasypat jinak, nez abych je
prevadel do nulte normalni formy? Jak je to s relacemi 1:N?
Moje databaze vypadata asi takto: http://pebesoft.ic(tec)cz/dev/db.jpg
Jakym zpusobem muzu nasypat data do sinei, aniz bych musel vytvaret tabulku
v nulte normalni forme?

Diky za vase napady a rady.
Petr

Data pro sineu

[*] Vaclav Krmela <krmela(zv)ustinadorlici(tec)cz> - 27.10.2007 21:18:07

From: "Petr Berek" <sojokl(zv)seznam(tec)cz>> kdyz jsem se sineou zacinal, kdosi mi poradil dat vsechny data, ktere chci
> nasypat do sinei, musim dat do nulte normalni formy.

Nevim, co znamena "nulta normalni forma". Nejak to souvisi s master/detail?

Ja osobne doporucuji se vyhnou sestavam master/detail, protoze to vyznamne
zpomaluje generovani sestavy a hur se edituje predloha. Nekdy ale neni
vyhnuti a pouzit master/detail je mozne.

> prisel jsem na to, ze je tam mnoho sloupcu.

Sinea mela kdysi davno omezeni na 99 sloupcu, ale to uz tam dlouho neni.

> Daji se data do sinei nasypat jinak, nez abych je
> prevadel do nulte normalni formy? Jak je to s relacemi 1:N?

Moje doporuceni:
- data, ktera jsou pro danou sestavu konstantni (identifikace skoly/tridy)
predat jako parametry
- jako datove polozky predavat jen skutecne se menici data
- neni-li z nejakych duvodu mozne pouzit data z jedno?ho datoveho zdroje, je
mozne pouzit data z vice datovych zdroju, pokud je mezi nimi zajistena vazba
master/detail

Je mozne pouzit vice ruznych detailu v jednom tele sestavy. Je mozne i
vnorovani detailu do detailu.

Vaclav Krmela

Zprovozneni stareho programu pod Windows Vista

[*] Josef Sliva <slivapepa(zv)tiscali(tec)cz> - 27.10.2007 23:40:16

Dobry den.
prosim o poradeni co mam vse udelat aby program vytvoreny v Delphi 7 enterprise a vyuzivajici BDE byl kompatibilni s Windows Vista. Popripade prosim odkaz kde je popsany postup vytvoreni aplikace v Delphi aby byl kompatibilni s WinVista.
predem dekuji Sliva


Data pro sineu

[*] Jan Sebelik <honza(zv)haes(tec)cz> - 28.10.2007 08:08:52

> Vaclav Krmela
> Nevim, co znamena "nulta normalni forma". Nejak to souvisi s
> master/detail?

Tabulka je v nulte normalni forme prave tehdy, existuje-li alespon jedno pole, ktere obsahuje vice nez jednu hodnotu.
To zde ale asi neni dulezite.
Petr Berek mel zrejme na mysli to, ze data nasypene do datasetu jednim selektem - a na tom se shodneme, ze to je pro Sinea vono.

> Ja osobne doporucuji se vyhnou sestavam master/detail, protoze to
> vyznamne zpomaluje generovani sestavy a hur se edituje predloha.
> Nekdy ale neni vyhnuti a pouzit master/detail je mozne.

Samozrejme souhlas. Kdyz mame jeden dataset, je to mnohem rychlejsi.

Pouziti vnorene sestavy na master/detail se nevyhneme napr. tehdy, kdyz ma Master dva Detaily, ktere potrebujeme oba vytisknout.
(predpokladam zde, ze fakturu lze uhradit vice platbami)
Faktura
Radek faktury
Platba faktury

> > Daji se data do sinei nasypat jinak, nez abych je
> > prevadel do nulte normalni formy? Jak je to s relacemi 1:N?

Tady by bylo asi potreba videt presne ten selekt, ktery by mel pusobit problemy.

Obvykle tisknu data z nejake "zakladni" (detail) tabulky, ke ktere si pres JOIN dotahuji udaje z master tabulek.

select r.*, f.*, d.nazev, k.nazev from radek r
join faktura f on ...
join dodavatel d on ...
join kraj k on ...

Tato data lze pak v ramci Sinea grupovat (podle kraju, podle odberatelu, podle faktur) a ruzne scitat.
Tohle musi fungovat.

Proto:
Chtel bych videt ten silenej selekt, ktery zpusobi tomuto schematu problemy.

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

Zprovozneni stareho programu pod Windows Vista

[*] Jan Novak <delfin4(zv)volny(tec)cz> - 28.10.2007 06:48:47

> odkaz kde je popsany postup vytvoreni aplikace v Delphi
> aby byl kompatibilni s WinVista.

Nic takoveho neexistuje, jen izolovane popisy jednotlivych problemu.

Napriklad posledni, na co jsem narazil, ze pod 64-bit verzi (a nejen
Vista, i server 2003 a XP) nefunguje OnDrawTab. Ve 32-bitove verzi
ok.

AN:Databazovy svet 2007

[*] kocan(zv)ebchod(tec)cz - 28.10.2007 10:19:02

Ahoj *,

konference Databazovy svet 2007 se kona jiz zitra - pokud by mel jeste
nekdo zajem se zucastnit, je nutne provest registraci jeste behem dnesniho
dne. Vice informaci zde -
http://www.dbsvet(tec)cz/view.php?cisloclanku=2007103101. KER

Zprovozneni stareho programu pod Windows Vista

[*] Ing. Antonin Spurny <spurny(zv)kavlounky(tec)cz> - 28.10.2007 09:46:59

autolearn=failed version=3.1.7
X-Spam-Checker-Version: SpamAssassin 3.1.7 (2006-10-05) on ns.bulvar(tec)cz

From: "Josef Sliva" <slivapepa(zv)tiscali(tec)cz>
> prosim o poradeni co mam vse udelat aby program vytvoreny v Delphi 7
> enterprise a vyuzivajici BDE byl kompatibilni s Windows Vista. Popripade
> prosim odkaz kde je popsany postup vytvoreni aplikace v Delphi aby byl
> kompatibilni s WinVista.
> predem dekuji Sliva

Ve Windows Vista je necastejsi pricinou nefunkcnosti programu to, ze bezi
jen s uzivatelskymi pravy a ne s pravy spravce, i kdyz uzivatelsky ucet ma
prava spravce. S uzivatelskymi pravy ma omezeny pristup do registru a do
chranenych slozek jako treba do "Program Files" a do "Users" ("Dokuments and
Settings").
Zkuste program spustit se spravcovskymi pravy a odzkouset ho. Pokud bude
fungovat tak je potreba nastavit pristupova prava.
Dalsi veci, kterou Windows Vista neobsahuji, je "WinHlp32.exe" takze
nefunguje help tvoreny soubory "*.hlp". Aby help fungoval je potreba
stahnout aktualizaci Windows Vista KB917607. Ta obsahuje WinHlp32.exe nutny
pro funkci helpu.

ahoj Tonda

Problem s TIdFtp

[*] Marek Dostal <konf(zv)agnis(tec)cz> - 28.10.2007 13:31:15

Prosim o radu. Mam schematicky nasledujici kod:
....
myIdFtp.Connect;
if myIdFtp.Connected then
myIdFtp.List(myStringList, '' , false);

Nekdy mi program zustane tuhy v radku myIdFtp.List
Kdyz to pustim znovu, tak to projde, potom nekdy zase ne. Takze prvni muj dotaz, zda je to problem ftp serveru nebo komponenty TIdFtp a druhy dotaz, zda tuto situaci lze nejak resit, napr. aby po vyprseni nejakeho timeoutu se toto funkce ukoncila. Protoze to zustane viset uvnitr funkce, nepomuze ani obaleni do try finally/except end. Pripadne doporucte nejake jine komponenty pro praci s FTP, resily by tento problem napr. komponenty Synapse?

Marek Dostal
D7Prof, WinXP, FireBird 1.5, 2.0

Problem s TIdFtp

[*] Petr Berek <sojokl(zv)seznam(tec)cz> - 28.10.2007 15:05:22

>
> , resily by tento problem napr. komponenty Synapse?
>
Pouzival jsem komponenty Synapse pro FTP pripojeni a nikdy s nemi nebyly
zadne problemy.

Petr

Synapse + LDAP + SSL

[*] Sikola Petr <developer(zv)efg(tec)cz> - 29.10.2007 09:06:36

Zdravim konferenci, mam mozna zacatecnickou otazku:

Pouzivam synapsi pro ziskavani dat z LDAPu a ted bych tam chtel dodelat podporu pro SSL.

muj kod vypada nasledovne:

ldap := TLDAPsend.Create;
l := TStringList.Create;
l.Add('*');
ldap.TargetHost := edit3.text;
ldap.UserName := edit4.text;
ldap.Password := edit5.text;
if (Ldap.Login) then
if (Ldap.Bind) then
if ldap.Search('DC=domain,DC=cz', False, '(objectclass=User)', l) then
...do something
ldap.Logout;
ldap.free;
l.free;


jak do tohoto kodu mam dodat pouziti ssl ?

diky
Petr Sikola

PS:
Snazil jsem se hledat v archivu, ale adresa http://www.delphi(tec)cz/konf.asp uz neexistuje :(
Na http://synapse.ararat(tec)cz/ k tomuto tematu toho take moc neni.
a Google mlci...

Prava k tabulkam Firebird

[*] Milan Tomes <delphi(zv)haida(tec)cz> - 29.10.2007 09:36:39

Ne. Jedine co docilis nastavenim prav je to, ze dany uzivatel bude mit
prava pro insert / update / delete dat z dane tabulky / pohledu. Pokud
bys chtel realizovat to co rikas, pak bys musel nastavovat prava nad
systemovymi tabulkami a to opravdu moc nedoporucuju.

S pozdravem

Milan Tomes


horky(zv)cominn(tec)cz napsal(a):
> Chci do databaze zabudovat nekolik pohledu, ze kterych ma pravo selectu uzivatel MUJ.
>
> Lze nastavit prava uzivatele MUJ tak, aby po prihlaseni do databaze napr. pomoci IBExpert nevidel zadne dalsi objekty (tabulky,procedury,domeny,trigry) ?
>

Prava k tabulkam Firebird

[*] horky(zv)cominn(tec)cz - 29.10.2007 09:30:38

Zdravim vsechny!

Chci do databaze zabudovat nekolik pohledu, ze kterych ma pravo selectu uzivatel MUJ.

Lze nastavit prava uzivatele MUJ tak, aby po prihlaseni do databaze napr. pomoci IBExpert nevidel zadne dalsi objekty (tabulky,procedury,domeny,trigry) ?

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

Data pro sineu

[*] Vaclav Krmela <krmela(zv)ustinadorlici(tec)cz> - 29.10.2007 09:38:39

From: "Petr Berek" <sojokl(zv)seznam(tec)cz>

> Cely problem je v tom, ze se nejprve musi data vzit z databaze a ulozit do
> tabulky tak, aby z toho byl neprehledny balast v nulte normalni forme.
> Cili
> jedna velka tabulka a v ni mnohokrat opakujici se zaznamy atd... Pak se
> udela select * from tabulka; Tohle "prerovnani" dat trva taky strasne
> dlouho.

Proc tam musi byt ta tabulka? To nejde udelat select primo na databazi?

> ...Prece jen kdyz je tam 30 studentu a 24 predmetu


To je potreba radit studenty a predmety vedle sebe na jeden radek?

> a v te tabulce jsou sloupce jako Predmet_X_Nazev, Predmet_X_Vysledna,
> Kategorie_1, Kategorie_1_Nazev. ZQuery spadl nekde na cisle kolem 300. :)

Polozky typu Predmet_Nazev, Kategorie_Nazev preci nejsou datove polozky, tak
nemusi zvysovat pocet sloupcu tabulky. S nimi je mozne pracovat jako s
popisy datovych polozek.

> Dalsi problem, ktery jsem nevidel jako podstatny byl ten, ze uzivatel
> musel
> pro kazdou tridu vytvaret prave jednu sestavu (kazda trida ma jiny pocet
> predmtu). Takze v konecnem dusledku tech sestav je hodne.

Take by nemuselo byt. Stacilo by udelat mensi pocet predloh s predpokladanym
vyssim poctem predmetu s tim, ze u nekterych trid bude nekolik poslednich
sloupcu prazdnych.

> Jen se jeste zeptam. Znamky mam ulozene po jedne a potrebuji, aby se mi
> zobrazili do jednoho sloupecku, v jehoz zahlavi je nazev kategorie, do
> ktere
> znamky patri. Je tohle vubec nejak mozne?

Je to mozne udelat na urovni generatoru sestav pomoci uzivatelsky definovane
funkce. Pokud je ale problem s poctem datovych polozek, pripada mi
jednodussi to udelat na urovni aplikace jako kalkulovane pole a do sestavy
to predat jako jednu datovou polozku.

Vaclav Krmela

Prava k tabulkam Firebird

[*] Tomas Krejzek <tomas.krejzek(zv)kpsys(tec)cz> - 29.10.2007 09:54:41

Milan Tomes napsal(a):
> Ne. Jedine co docilis nastavenim prav je to, ze dany uzivatel bude mit
> prava pro insert / update / delete dat z dane tabulky / pohledu. Pokud
> bys chtel realizovat to co rikas, pak bys musel nastavovat prava nad
> systemovymi tabulkami a to opravdu moc nedoporucuju.

To neni uplne presne, muzes mu odebrat i pravo SELECT, takze sice uvidi tabulky, ale
neuvidi jejich obsah.

To pravo select ale potom musis grantnout tomu pohledu na ktery se ten uzivatel MUJ muze
divat.

Jinak na ty sachy se systemovymi tabulkami se opravdu radeji vyprdni, je to dost rizikove,
a navic po restore o vsechna nastaveni prav k sys. tab. prijdes

tom

Kod Threadu a formulare v jednom souboru, nutnost?

[*] Miloslav Pojsl <mpojsl(zv)seznam(tec)cz> - 29.10.2007 10:34:43

Zdravim vsechny,

chci se zeptat, jestli neexistuje zpusob, jak mit kod vlaken (TThread) v jinem souboru nez kod pro hlavni formular. Thready volaji v metode Synchronize metody hlavniho formulare, takze se zda, ze v jednom souboru byt museji, ale mam try vlakna, ne prilis slozitou merici aplikaci a uz se v tom kodu tezko orientuju. A prijdou slozitejsi veci...
Muzete nekdo poradit, jak na to? Diky


Mgr. Miloslav Pojsl
Meopta optika s.r.o.
Kabelikova 1
Prerov

Data pro sineu

[*] Milan Dvorak <dvorak(zv)gymzn(tec)cz> - 29.10.2007 10:42:44


> Dalsi problem, ktery jsem nevidel jako podstatny byl ten, ze uzivatel
> musel
> pro kazdou tridu vytvaret prave jednu sestavu (kazda trida ma jiny pocet
> predmtu). Takze v konecnem dusledku tech sestav je hodne.

Take by nemuselo byt. Stacilo by udelat mensi pocet predloh s predpokladanym
vyssim poctem predmetu s tim, ze u nekterych trid bude nekolik poslednich
sloupcu prazdnych.

Tiskova sestava Sinea je ulozena v textovem souboru. A ten muzes za chodu modifikovat. A vubec nevadi, kdyz to budes mit sitove. Budes mit pripraveno nejake kopyto a to podle konkretni situace (konkretniho poctu predmetu) modifikovat s tim, ze si to kopyto nejprve zkopirujes do nejakeho soukromeho adresare daneho uzivatele.
Ja to prave takhle vyresil.

Milan Dvorak

Data pro sineu

[*] Jan Sebelik <honza(zv)haes(tec)cz> - 29.10.2007 10:52:45

> Cely problem je v tom, ze se nejprve musi data vzit z databaze a ulozit do
> tabulky tak, aby z toho byl neprehledny balast v nulte normalni
> forme. Tohle "prerovnani" dat trva taky strasne dlouho.

No, ja jsem neceho takoveho obaval uz z predesle diskuse.
Ale k tomuhle preci relacni databaze neslouzi !!!

Prvotni je datovy navrh.
Zavadeji se entity STUDENT, PREDMET, TRIDA, ZNAMKA, KATEGORIE, ...
Tyto entity se pak daji do relaci
STUDENT x PREDMET m:n
z toho dostaneme vazebni tabulku STUDPRED
STUDENT x TRIDA n:1
STUDPRED x ZNAMKA 1:n
atd.

Z toho se pak navrhne databaze.

No a veskere informace, ktere z databaze potrebujeme dostat, dostaneme pres jednoduchy "select", tedy pokud je databaze dobre navrzena.

No a na "select" napojime TDataSet a na TDataSet napojime TSestava, udelame vizualni navrh a sestava je jako vysita.

> Prece jen kdyz je tam 30 studentu a 24 predmetu
> a v te tabulce jsou sloupce jako Predmet_X_Nazev, Predmet_X_Vysledna,
> Kategorie_1, Kategorie_1_Nazev. ZQuery spadl nekde na cisle kolem 300. :)

Aha.
Relacni select nam dava data "pod sebou", ty bys je potreboval nejak "vedle sebe".
Schematicky
select student, predmet, vysledna from studpred
order by student, predmet

Dostaneme
Honza matematika 1
Honza cesky jazyk 2
....
Petr matematika 3
Petr cesky jazyk 1
.....
A ty bys potreboval
mat cesky jazyk ...
Honza 1 2
Petr 3 1

To je pozadavek, ktery je "nerelacni". Je totiz v rozporu s paradigmatem relacni teorie, relacnich databazi.
Nemam rad tyto pozadavky, nadavam uzivateli, rikam, ze radkova data ze selectu jsou dostatecne vypovidajici.
Bohuzel ale nekdy podlehnu a jsem nucen vyhovet.

Proces transformace dat z radkoveho tvaru (select) do sloupcoveho tvaru (tabulka) se nekdy nazyva CROSSTAB. Mozna i jinak, ale takto jsem to nekde cetl. Jde o to, ze zvolime klice z puvodniho selektu, ktere zustanou na radku (student) a ktere pujdou do sloupcu (predmet). Vysledna znamka pak zustava hodnotovou polozkou, kterou vyplnime tabulku.

Proces CROSSTAB bych rozhodne netahal do databaze !!!
Je v rozporu s jejim relacnim charakterem.

Pracuji vyhradne na klientovi (program Delphi) s komponentou TClientDataSet. Z puvodniho datasetu, otevreheho nad puvodnim selektem, vyzobu sloupcove klice, tedy hodnoty polozky "predmet". Z tech pak v runtime vytvorim strukturu sloupcu TClientDataSet. No a pak nezbyva nez projet puvodni dataset (je setrideny podle student, predmet) a doplnit hodnoty "vysledna" do TClientDataSet.

A mam pozadovanou tabulku.
Cely proces je zobecneny, staci zadat, co z puvodniho datasetu bude radkovy a co sloupcovy klic.

> Dalsi problem, ktery jsem nevidel jako podstatny byl ten, ze
> uzivatel musel pro kazdou tridu vytvaret prave jednu sestavu
> (kazda trida ma jiny pocetpredmetu).

Hmmm, tady bych se asi pridrzel navrhu Vaska Krmely z paralelniho mailu - vypocitavene pole.
Anebo neco jineho - je to nerelacni, proto musime hledat nestandardni reseni.
Ja bych asi v tomto okamziku opustil (relacni) Sinea a udelal bych export do (nerelacniho) Excelu. Z toho se pak da tisknout lecos.

> Pouziti vnorene sestavy na master/detail se nevyhneme napr. tehdy, kdyz ma
> Master dva Detaily, ktere potrebujeme oba vytisknout.
> (predpokladam zde, ze fakturu lze uhradit vice platbami)
> Faktura
> Radek faktury
> Platba faktury
>
> Student
> Predmet
> Znamky
> Vidim to na pouziti master/detail.

Toto asi neni ten pripad. Uvedenou strukturu vidim jako hierarchickou - znamka se vaze nejen na studenta, ale i na predmet. V mnou uvedenem prikladu nema "platba faktury" zadnou vazbu na "radek faktury". Oba detaily se vztahuji vyhradne k "faktura".

Selekt pro tebou uvedeny pozadavek jsem mimodek napsal schematicky vyse.

> Jen se jeste zeptam. Znamky mam ulozene po jedne a potrebuji, aby se mi
> zobrazili do jednoho sloupecku, v jehoz zahlavi je nazev
> kategorie, do ktere
> znamky patri. Je tohle vubec nejak mozne?

Zase bych asi pouzil CROSSTAB s tim, ze sloupcovym klicem bude ta kategorie.

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

Kod Threadu a formulare v jednom souboru, nutnost?

[*] Vaclav Sazima <vaclav.sazima(zv)utilia(tec)cz> - 29.10.2007 11:32:48

Ahoj,
lze uvest v unite threadu unitu s formem v uses v sekci implementation,
tedy:

unit frm;
...


unit thread;
...
implementation
uses
frm
...

Vaclav Sazima

Miloslav Pojsl napsal(a):
> Zdravim vsechny,
>
> chci se zeptat, jestli neexistuje zpusob, jak mit kod vlaken (TThread) v jinem souboru nez kod pro hlavni formular. Thready volaji v metode Synchronize metody hlavniho formulare, takze se zda, ze v jednom souboru byt museji, ale mam try vlakna, ne prilis slozitou merici aplikaci a uz se v tom kodu tezko orientuju. A prijdou slozitejsi veci...
> Muzete nekdo poradit, jak na to? Diky
>
>
> Mgr. Miloslav Pojsl
> Meopta optika s.r.o.
> Kabelikova 1
> Prerov
>
>
>

checkbox v DBGridu

[*] Milan Dvorak <dvorak(zv)gymzn(tec)cz> - 29.10.2007 10:46:45

Lze v nejake standardnim DBGridu (Delphi5) (tedy TDBGrid nebo napr. TJvDBGrid) dosahnout zobrazeni CheckBoxu?

Milan Dvorak

Kod Threadu a formulare v jednom souboru, nutnost?

[*] Radek Cervinka <radek.cervinka(zv)technodat(tec)cz> - 29.10.2007 11:14:47

Miloslav Pojsl napsal(a):
> Zdravim vsechny,
>
> chci se zeptat, jestli neexistuje zpusob, jak mit kod vlaken (TThread) v jinem souboru nez kod pro hlavni formular. Thready volaji v metode Synchronize metody hlavniho formulare, takze se zda, ze v jednom souboru byt museji, ale mam try vlakna, ne prilis slozitou merici aplikaci a uz se v tom kodu tezko orientuju. A prijdou slozitejsi veci...
> Muzete nekdo poradit, jak na to? Diky
>

treba si tu proceduru pro aktualizaci predavat v konstruktoru pro thread, tj. hlavni formular by mel
jednu metodu, a ta by se predavala

TUpdateProcedure=procedure ( parametry);
atd.

nebo mit nekde buffer do ktereho se bude merit a pak nejakym synchronizacnim mechanismem rict hlavnimu oknu at to vykresli

urcite jeste existuji dalsi

Radek

Data pro sineu

[*] Petr Berek <sojokl(zv)seznam(tec)cz> - 29.10.2007 08:52:35

>
> Samozrejme souhlas. Kdyz mame jeden dataset, je to mnohem rychlejsi.


Cely problem je v tom, ze se nejprve musi data vzit z databaze a ulozit do
tabulky tak, aby z toho byl neprehledny balast v nulte normalni forme. Cili
jedna velka tabulka a v ni mnohokrat opakujici se zaznamy atd... Pak se
udela select * from tabulka; Tohle "prerovnani" dat trva taky strasne
dlouho.
V tom je prave problem, kdyz je v te tabulce hodne sloupcu, tak mi to
pretece v DataSetu(ZQuery). Prece jen kdyz je tam 30 studentu a 24 predmetu
a v te tabulce jsou sloupce jako Predmet_X_Nazev, Predmet_X_Vysledna,
Kategorie_1, Kategorie_1_Nazev. ZQuery spadl nekde na cisle kolem 300. :)
Dalsi problem, ktery jsem nevidel jako podstatny byl ten, ze uzivatel musel
pro kazdou tridu vytvaret prave jednu sestavu (kazda trida ma jiny pocet
predmtu). Takze v konecnem dusledku tech sestav je hodne.

Pouziti vnorene sestavy na master/detail se nevyhneme napr. tehdy, kdyz ma
Master dva Detaily, ktere potrebujeme oba vytisknout.
(predpokladam zde, ze fakturu lze uhradit vice platbami)
Faktura
Radek faktury
Platba faktury

Student
Predmet
Znamky
Vidim to na pouziti master/detail. Nebude se tisknout nejaka silena sestava,
ale maximalne to bude 30 stran (pocet studentu ve tride), kde se kazdemu
studentu priradi prave jeho predmety (studenti ve tride mohou mit navzajem
ruzne predmety z duvodu ruznych oboru) a znamky.
Jen se jeste zeptam. Znamky mam ulozene po jedne a potrebuji, aby se mi
zobrazili do jednoho sloupecku, v jehoz zahlavi je nazev kategorie, do ktere
znamky patri. Je tohle vubec nejak mozne?

Petr

Kod Threadu a formulare v jednom souboru, nutnost?

[*] delphin(zv)post(tec)cz - 29.10.2007 11:42:50

> chci se zeptat, jestli neexistuje zpusob, jak mit kod vlaken (TThread) v
> jinem souboru nez kod pro hlavni formular. Thready volaji v metode
> Synchronize metody hlavniho formulare, takze se zda, ze v jednom souboru
> byt museji, ale mam try vlakna, ne prilis slozitou merici aplikaci a uz se
> v tom kodu tezko orientuju. A prijdou slozitejsi veci...
> Muzete nekdo poradit, jak na to? Diky
>

Nemusim, ale nemusim :-)

Normalne dejte thready kam chcete, klidne do samostatnych unit a bud tam
date uses MainForm nebo vlaknu predate objekt MainForm.

checkbox v DBGridu

[*] Lebeda David <david.lebeda(zv)comarr(tec)cz> - 29.10.2007 12:34:54

> Lze v nejake standardnim DBGridu (Delphi5) (tedy TDBGrid nebo napr.
> TJvDBGrid) dosahnout zobrazeni CheckBoxu?

Melo by to jit v OnDrawColumnCell pomoci

DrawFrameControl(Canvas.Handle, CellRect, DFC_BUTTON,
DFCS_BUTTONCHECK or DFCS_CHECKED)
resp.

DrawFrameControl(Canvas.Handle, CellRect, DFC_BUTTON,
DFCS_BUTTONCHECK);

Prvni a druhy parametr bude treba upravit dle gridu, zde jsem ukazku
vytahl z jineho pouziti.

David Lebeda

Kod Threadu a formulare v jednom souboru, nutnost?

[*] Karel Klimes <klimes(zv)unicontrols-tramex(tec)cz> - 29.10.2007 12:44:55

> Thready volaji v metode Synchronize metody hlavniho formulare

Nejlepsi je se obloukem vyhnout synchronizaci pres metodu Synchronize
a u GUI aplikace vyuzit asynchronniho predani zpravy s pointrem na
buffer s daty pres PostMessage do hlavniho formu. Tam si to odchytavat
a reagovat dale dle potreby jiz v kontextu "hlavniho"vlakna.

kchodl

Kod Threadu a formulare v jednom souboru, nutnost?

[*] delphin(zv)post(tec)cz - 29.10.2007 13:04:57

> Nejlepsi je se obloukem vyhnout synchronizaci pres metodu Synchronize
> a u GUI aplikace vyuzit asynchronniho predani zpravy s pointrem na
> buffer s daty pres PostMessage do hlavniho formu. Tam si to odchytavat
> a reagovat dale dle potreby jiz v kontextu "hlavniho"vlakna.

Ze Synchronize neni to prave orechove o tom neni pochyb, ale lze uspesne
pochybovat pouzitelnosti predavani pointeru pres PostMessage.
PostMessage da zpravu s pointerem do fronty a hlavni vlakno si ji zpracuje
az se mu zachce, klidne za 10 sekund. Mezitim muze byt vlakno davno zruseno
a buffer uvolnen, cimz v hlavnim vlaknu vznikne v nejlepsim pripade AV,
obvykle se ovsem poskodi pamet a pak se to blbe dohledava.

Mnohem lepsi je fronta+criticalsection a signalizace bud pres SetEvent anebo
pres PostMessage/PostThreadMessage. Proste vlakno da data do fronty a treba
posle message. Az hlavni vlakno bude mit cas, tak si data vyzvedne z fronty.

Kod Threadu a formulare v jednom souboru, nutnost?

[*] Petr Vones <conference(zv)petrvones(tec)net> - 29.10.2007 12:36:55

From: <delphin(zv)post(tec)cz>
> Normalne dejte thready kam chcete, klidne do samostatnych unit a bud tam
> date uses MainForm nebo vlaknu predate objekt MainForm.

Cimz casem vznikne klasicky zmatek zavislosti jednotlivych unit. Object
Pascal (ci Delphi) jazyk bohuzel neumoznuje rozumne rozdeleni kodu jedne
tridy do vice souboru (nepocitam include soubory, to neni reseni).

Misto predavani trid jako MainForm je lepsi definovat interface ktery je v
te MainForm tride implementovan. Nevznikaji pak vyse uvedene problemy,
reference je jen na unit s deklaraci interface (poznamka: interface jsou v
Delphi jiz od verze 3 :-)

Petr Vones

Tisk nalezato, uzivatelsky format papiru

[*] Jiri Sladek <sladek(zv)czhops(tec)cz> - 29.10.2007 11:40:50

Zdravim pritomne, prosim o radu.

Mam problem s tiskem nalezato (na sirku, landscape) a soucasne na uzivatelsky format papiru, ktery je delsi a uzsi nez A4

Konkretne se jedna o tisk na tiskarne HP LJ 1320, papir ma rozmery 184x304 mm.

V ovladaci tiskarny jsem si nadefinoval uzivatelsky format papiru vyse uvedenych rozmeru, orientaci tisku jsem navolil na sirku.

Na formulari mam v komponente QuickRep nastaveny nasledujici parametry Page:
BottomMargin = 10 mm
Columuns = 1
ColumnSpace = 0 mm
LeftMargin = 10 mm
Length = 184 mm
Orientation = poPortrait
PaperSize = Custom
RightMargin = 10 mm
Ruler = True
TopMargin = 10 mm
Width = 304 mm

Kdyz si dam Preview, je vse O.K.

Ovsem z tiskarny mi vyleze vytisk sice spravne na sirku, ale je oriznuty zprava. Tzn., ze se mi vytiskne zleva jen 178 mm textu.
Kdyz jsem nastavil QuickRep.Page.Length na 304 mm, vytiskne se vse bez oriznuti, ale z tiskarny vyjede jeste jeden prazdny papir.
To je vsak nepouzitelne reseni, nebot v zasobniku tiskarny jsou predtistene a vzestupne cislovane certifikacni listiny.

Pouzivam D5 a QuickReport 3.5.0.

Mel nekdo to poteseni resit podobny problem? Poradi neco?

Jiri Sladek
sladek zavinac czhops.tecz

Kod Threadu a formulare v jednom souboru, nutnost?

[*] Petr Zahradnik <clexpert(zv)clexpert(tec)cz> - 29.10.2007 13:59:01

Puvodni zprava ze dne 29.11.2007 od Karel Klimes:

>> Thready volaji v metode Synchronize metody hlavniho formulare

> Nejlepsi je se obloukem vyhnout synchronizaci pres metodu
> Synchronize

To proc?

Petr Zahradnik, pocitacovy expert

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


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

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


Kod Threadu a formulare v jednom souboru, nutnost?

[*] Petr Vones <conference(zv)petrvones(tec)net> - 29.10.2007 13:41:00

From: <delphin(zv)post(tec)cz>
> Ze Synchronize neni to prave orechove o tom neni pochyb, ale lze uspesne

Proc ? Nabizi jednu z metod synchronizace. Typicky je potreba synchronni a
asynchronni zpusob. Ani jeden z nich prece neni lepsi nebo horsi, kazdy se
hodi v jine situaci. TThread by mel poskytovat oboje, ale ...

> pochybovat pouzitelnosti predavani pointeru pres PostMessage.
> PostMessage da zpravu s pointerem do fronty a hlavni vlakno si ji zpracuje
> az se mu zachce, klidne za 10 sekund. Mezitim muze byt vlakno davno
> zruseno > a buffer uvolnen, cimz v hlavnim vlaknu vznikne v nejlepsim
> pripade AV,
> obvykle se ovsem poskodi pamet a pak se to blbe dohledava.

Alokovana pamet se musi uvolnit (kdyz uz se o ni musim starat) az v obsluze
te zpravy. Celkove to ale neni moc stastne reseni.

> Mnohem lepsi je fronta+criticalsection a signalizace bud pres SetEvent
> anebo pres PostMessage/PostThreadMessage. Proste vlakno da data do fronty
> a treba posle message. Az hlavni vlakno bude mit cas, tak si data vyzvedne
> z fronty.

Neni to zbytecne slozite ? Mimochodem prave tahle hruza byla pouzita tusim
nekdy od Delphi 6 nebo 7 misto SendMessage. Jina situace je u aplikaci kde
neni message loop, ale tam se to stejne resi individualne.

Petr Vones

OT: Nabidka zamestnani

[*] Jan Sebelik <honza(zv)haes(tec)cz> - 29.10.2007 14:11:02

Pro firmu v Praze hledam 2-3 zkusene vyvojare v Delphi - od ledna min. na pul roku.

Moznost HPP nebo na zivnostensky list.

Pripadne reakce prosim na muj soukromy mail honza(zv)haes(tec)cz.

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

Kod Threadu a formulare v jednom souboru, nutnost?

[*] delphin(zv)post(tec)cz - 29.10.2007 15:05:07

>> Nejlepsi je se obloukem vyhnout synchronizaci pres metodu
>> Synchronize
>
> To proc?

Protoze se pri tom vlakno zakousne na tezko ovlivnitelnou dobu a po dobu
volani Synchronize nebezi. Pokud treba ve vlakne stahuji soubor z FTP a chci
si v MainFormu vypisovat progress, tak dlouha akce v MainFormu pozastavi
stahovani a to urcite neni to, co chceme. PostMessage/SetEvent vlakno
nezakousne.

Kod Threadu a formulare v jednom souboru, nutnost?

[*] Petr Vones <conference(zv)petrvones(tec)net> - 29.10.2007 17:05:15

From: <delphin(zv)post(tec)cz>
>> Misto predavani trid jako MainForm je lepsi definovat interface ktery je
>> v
>> te MainForm tride implementovan. Nevznikaji pak vyse uvedene problemy,
>> reference je jen na unit s deklaraci interface (poznamka: interface jsou
>> v
>> Delphi jiz od verze 3 :-)
>
> Vyse uvedene problemy resi predevsim existence te 3-ti unity. Samotny
> Interface by to nespasil a jde to vyresit i bez interface.

Ne.

Bez interface by treti unit obsahoval presne co ? Maximalne nejakou "proxy"
tridu, ktera bude nakonec stejne muset mit refrenci na ty dalsi unity, takze
jsme opet na zacatku problemu. S interfacy se tohle resi prave jednoduse a
elegantne. Obe tridy (formular a thread) se odkazuji pouze na interface v
tretim unitu. Jinak o sobe vubec nevedi. Formular pak typicky preda svuj
interface do nove vytvorene tridy threadu. Ta pak pres neho vola nejake
aktualizace UI formulare.

Petr Vones

Kod Threadu a formulare v jednom souboru, nutnost?

[*] delphin(zv)post(tec)cz - 29.10.2007 16:13:12

> A jsi si jisty, ze nejsou jine pripady, kdy je naopak nutne to takto
> "zakousnout" a ta vlakna opravdu sesynchronizovat? Proto se to prece
> jmenuje Synchronize.

Vyloucit to nemohu, ale Synchronize jsem nepouzil roky ...

> V pripade, kdy zobrazuji progress bar, je celkem jedno, ze se to
> obnovi az za chvili, tj. mam vlastne neplatny stav, muzu si poslat
> message. Co kdyz ale potrebuji prave ted provest synchronizaci a az
> teprve potom pokracovat v behu onoho threadu?

Vlakno posle PostMessage se zpravou ze akce skoncila, inteligentne se uspi a
ceka na pokyn z hlavniho vlakna. Hlavni vlakno si to nejak prechrousta a
vymysli, jak a kdy se bude dal pokracovat a sdeli to vlaknu. Je to vic
psani, ale zda se mi to prehlednejsi.

Kod Threadu a formulare v jednom souboru, nutnost?

[*] Karel Klimes <klimes(zv)unicontrols-tramex(tec)cz> - 29.10.2007 18:55:23

> >> Thready volaji v metode Synchronize metody hlavniho formulare
>
> > Nejlepsi je se obloukem vyhnout synchronizaci pres metodu
> > Synchronize
>
> To proc?

To proto, ze pokud dany programator nezna "vnitrni" implementaci
metody Synchronize a neumi si tudiz predstavit co to vlastne dela, si
pak ve "slozitejsim" kodu, kde vesele vola Synchronize, nadela akorat
spustu problemu, "podivneho chovani" atd...
Dnes bohuzel "programuje" kazdy, s odpustenim osel a pak to tak vypada.
Nic proti nikomu, ale hodne casto se setkavam s "Pany Programatory",
kteri zrovna Synchronize pouzivaji tak nestastne, ze PostMessage +
pointer na instanci bufferu (event driven FIFO) je pro ne spasou.
A aplikace bez message loop jsou pro ne neresitelny.

>> Protoze se pri tom vlakno zakousne na tezko ovlivnitelnou dobu a po
>> dobu volani Synchronize nebezi. Pokud treba ve vlakne stahuji soubor
>> z FTP a chci si v MainFormu vypisovat progress, tak dlouha akce v
>> MainFormu pozastavi stahovani a to urcite neni to, co chceme.
>> PostMessage/SetEvent vlakno nezakousne.

> A jsi si jisty, ze nejsou jine pripady, kdy je naopak nutne to takto
> "zakousnout" a ta vlakna opravdu sesynchronizovat? Proto se to prece
> jmenuje Synchronize.

Samozrejmne, ze takove pripady existuji, ale update progresu na formu
mezi ne teda nepatri ;-)

kchodl


OT: Nabidka zamestnani

[*] Radek Cervinka <radek.cervinka(zv)technodat(tec)cz> - 29.10.2007 14:39:05


Firma TECHNODAT, CAE-systemy, s.r.o. se sidlem ve Zline hleda
spolupracovniky (nejlepe ze Zlinskeho regionu) na pozici programator,
moznost okamziteho nastupu


Pracovni napln
- vyvoj software pro zahranicni i ceske zakazniky, kustomizace software v oblasti informacnich
systemu
Pozadovane znalosti a kvalifikace:
- znalost programovani Delphi nebo C#, SQL-databaze (znalost Microsoft SQL vyhodou)
- vysoka skola technickeho nebo IT zamereni (i student)
- analyticke a komunikativni schopnosti
- schopnost dalsiho vzdelavani
- znalost nemeckeho nebo anglickeho jazyka (aktivni znalost vyhodou)

Odpovedi na soukromy mail nikoliv do konference

Zajemci mohou zasilat sve zivotopisy e-mailem na adresu jaroslav.janos(zv)technodat(tec)cz
(nikoliv do konference) nebo se hlasit na telefonu: 577 007 931, 911

Radek Cervinka

Technodat, CAE-systemy, s.r.o.
www.technodat(tec)cz

Kod Threadu a formulare v jednom souboru, nutnost?

[*] delphin(zv)post(tec)cz - 29.10.2007 14:37:05

> Cimz casem vznikne klasicky zmatek zavislosti jednotlivych unit. Object
> Pascal (ci Delphi) jazyk bohuzel neumoznuje rozumne rozdeleni kodu jedne
> tridy do vice souboru (nepocitam include soubory, to neni reseni).

Souhlas, zavislost unit se muze dostat do slepe ulicky.

> Misto predavani trid jako MainForm je lepsi definovat interface ktery je v
> te MainForm tride implementovan. Nevznikaji pak vyse uvedene problemy,
> reference je jen na unit s deklaraci interface (poznamka: interface jsou v
> Delphi jiz od verze 3 :-)

Vyse uvedene problemy resi predevsim existence te 3-ti unity. Samotny
Interface by to nespasil a jde to vyresit i bez interface.

Kod Threadu a formulare v jednom souboru, nutnost?

[*] Petr Zahradnik <clexpert(zv)clexpert(tec)cz> - 29.10.2007 15:25:08

Puvodni zprava ze dne 29.11.2007 od delphin(zv)post(tec)cz:

> Protoze se pri tom vlakno zakousne na tezko ovlivnitelnou dobu a po
> dobu volani Synchronize nebezi. Pokud treba ve vlakne stahuji soubor
> z FTP a chci si v MainFormu vypisovat progress, tak dlouha akce v
> MainFormu pozastavi stahovani a to urcite neni to, co chceme.
> PostMessage/SetEvent vlakno nezakousne.

A jsi si jisty, ze nejsou jine pripady, kdy je naopak nutne to takto
"zakousnout" a ta vlakna opravdu sesynchronizovat? Proto se to prece
jmenuje Synchronize.

V pripade, kdy zobrazuji progress bar, je celkem jedno, ze se to
obnovi az za chvili, tj. mam vlastne neplatny stav, muzu si poslat
message. Co kdyz ale potrebuji prave ted provest synchronizaci a az
teprve potom pokracovat v behu onoho threadu?

Petr Zahradnik, pocitacovy expert

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


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

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


Kod Threadu a formulare v jednom souboru, nutnost?

[*] Petr Zahradnik <clexpert(zv)clexpert(tec)cz> - 29.10.2007 19:31:26

Puvodni zprava ze dne 29.11.2007 od Karel Klimes:

> To proto, ze pokud dany programator nezna "vnitrni" implementaci
> metody Synchronize a neumi si tudiz predstavit co to vlastne dela,
> si pak ve "slozitejsim" kodu, kde vesele vola Synchronize, nadela
> akorat spustu problemu, "podivneho chovani" atd...

Co je tohle zase za argumentaci? Ze nekdo nezna nejakou implementaci,
nema radeji nikdo pouzivat Synchronize?

> Dnes bohuzel "programuje" kazdy, s odpustenim osel a pak to tak
> vypada.

Ze dnes programuje kazdy osel (jindy tomu snad bylo jinak?), tak nikdo
radeji nema pouzivat Synchronize?

> Nic proti nikomu, ale hodne casto se setkavam s "Pany Programatory",
> kteri zrovna Synchronize pouzivaji tak nestastne, ze PostMessage +
> pointer na instanci bufferu (event driven FIFO) je pro ne spasou. A
> aplikace bez message loop jsou pro ne neresitelny.

A kdyz nekdo programuje jako osel, tak dokaze pouzit PostMessage, jo?

> Samozrejmne, ze takove pripady existuji, ale update progresu na
> formu mezi ne teda nepatri ;-)

No vsak. A ja proto implicitne nikomu nezakazuju Synchronize
pouzivat...

Petr Zahradnik, pocitacovy expert

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


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

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


Data pro sineu

[*] Petr Berek <sojokl(zv)seznam(tec)cz> - 29.10.2007 22:11:37

>
> No, ja jsem neceho takoveho obaval uz z predesle diskuse.
> Ale k tomuhle preci relacni databaze neslouzi !!!
>
Jasne, kdyz se databaze dobre navrhne, nemelo by se na ni uz vic sahat.

Ja bych asi v tomto okamziku opustil (relacni) Sinea a udelal bych export do
(nerelacniho) Excelu. Z toho se pak da tisknout lecos.
Touto myslenkou jste me natolik poblaznil, ze jsem na nejakou dobu prestal
uvazovat o ostatnich moznostech. Pro uzivatele je idealni vystup do pdf, coz
se nadherne resi pomoci PDFCreatoru.
Udelam to tak, ze to vykreslim na Canvas tiskarny a vytisknu pomoci
PDFCreatoru. Udelam uzivateli prehledny nahled pomoci TImage a bude to
idealni.

Jinak diky za tuhle diskusi, mam ted trosku jiny pohled na databaze.

Petr

Kod Threadu a formulare v jednom souboru, nutnost?

[*] delphin(zv)post(tec)cz - 29.10.2007 18:45:22

> Bez interface by treti unit obsahoval presne co ? Maximalne nejakou
> "proxy"
> tridu, ktera bude nakonec stejne muset mit refrenci na ty dalsi unity,
> takze
> jsme opet na zacatku problemu. S interfacy se tohle resi prave jednoduse a

I kdyby tam byla ta proxy, tak unita resi problem "Circular Unit
References", protoze se uses muze presunout ze sekce interface do sekce
implementation a to je zasadni krok k vyreseni problemu.

> elegantne. Obe tridy (formular a thread) se odkazuji pouze na interface v
> tretim unitu. Jinak o sobe vubec nevedi. Formular pak typicky preda svuj
> interface do nove vytvorene tridy threadu. Ta pak pres neho vola nejake
> aktualizace UI formulare.

Samozrejme souhlasim, ze interface je obvykle nejvhodnejsi, jen bych nechtel
tvrdit, ze problem "Circular Unit References" se vyresi pouzitim interface.
Reseni problemu se jmenuje 3-ti unita. Interface je pouze zpusob, jak se s
tim vyporadat elegantne.

Kod Threadu a formulare v jednom souboru, nutnost?

[*] Petr Vones <conference(zv)petrvones(tec)net> - 30.10.2007 01:09:50

From: "Karel Klimes" <klimes(zv)unicontrols-tramex(tec)cz>
> To proto, ze pokud dany programator nezna "vnitrni" implementaci
> metody Synchronize a neumi si tudiz predstavit co to vlastne dela, si
> pak ve "slozitejsim" kodu, kde vesele vola Synchronize, nadela akorat
> spustu problemu, "podivneho chovani" atd...
> Dnes bohuzel "programuje" kazdy, s odpustenim osel a pak to tak vypada.
> Nic proti nikomu, ale hodne casto se setkavam s "Pany Programatory",
> kteri zrovna Synchronize pouzivaji tak nestastne, ze PostMessage +
> pointer na instanci bufferu (event driven FIFO) je pro ne spasou.
> A aplikace bez message loop jsou pro ne neresitelny.

Jenze ten druhy pripad je kuriozne podstatne slozitejsi nez prvni. Pokud ma
jen zakryt "neznalost programatora" tak to uz neni vubec reseni. Nemluve o
tom ze ty dva zpusoby nejsou prece co do vysledku identicke/nahraditelne.

Petr Vones

Kod Threadu a formulare v jednom souboru, nutnost?

[*] Lebeda David <david.lebeda(zv)comarr(tec)cz> - 30.10.2007 08:16:19

> > problemu, "podivneho chovani" atd... Dnes bohuzel "programuje" kazdy, s
> > odpustenim osel a pak to tak vypada. Nic proti nikomu, ale hodne casto se
> > setkavam s "Pany Programatory", kteri zrovna Synchronize pouzivaji tak
> > nestastne, ze PostMessage + pointer na instanci bufferu (event driven
> > FIFO) je pro ne spasou. A aplikace bez message loop jsou pro ne
> > neresitelny.

Osobne si myslim, ze puvodni myslenka byla minena jinak. Opravdu nebyva
ridky pripad, kdy malo zkuseny programator usoudi, ze by v aplikaci
potrebuje thread. V helpu si najde, ze jakmile ma neco udelat s
VCL/nejakym formem, ma pouzit Synchronize. Tak to proste mechanicky dela,
obvykle to funguje, nekdy cela aplikace vytuhne, no tak se prohlasi, ze
Delphi ma v implementaci threadovani chybu....

Poselstvi by asi melo znit - na pouzivani Synchronize davejte pozor, neni
to automaticky lek na situace, kdy je potreba v threadu neco delat s
formem, pri nevhodnem pouziti, coz je bohuzel casty pripad, se mohou dit
pozoruhodne veci.

David Lebeda�

Data pro sineu

[*] Vaclav Krmela <krmela(zv)ustinadorlici(tec)cz> - 30.10.2007 08:24:20

From: "Jan Novak" <delfin4(zv)volny(tec)cz>
>
> V cem spociva podle tebe to zpomaleni v pripade master/detail? Jina
> rezie pri zacatku grupy a zacatku detailu?

Ano, a vyznamne.

Skupinovani je prakticky bez rezie. Pouze se porovna jeden retezec
skupinoveho vyrazu a je to.

Detail sestavy je realizovan pomoci rekurzivniho volani. Pred zacatkem
kazdeho detailu se odlozi cela dosud vygenerovana sestava, zpracuje se
detail jako by to byla samostatna sestava a jeji vysledek se dodatecne vlozi
do odlozene sestavy. Toto reseni ma vyhody i nevyhody. Vyhodou je snadna
realizace neomezeneho vnorovani detailu. Nevyhodou je vysoka rezie a take
to, ze detail nic netusi o nadrizene casti sestavy a tedy ani nema pristup k
jejim datovym polozkam.

Vaclav Krmela

Kod Threadu a formulare v jednom souboru, nutnost?

[*] Erik Salaj <winsoft(zv)netkosice.sk> - 30.10.2007 12:40:39

> Osobne si myslim, ze puvodni myslenka byla minena jinak. Opravdu nebyva
> ridky pripad, kdy malo zkuseny programator usoudi, ze by v aplikaci
> potrebuje thread. V helpu si najde, ze jakmile ma neco udelat s
> VCL/nejakym formem, ma pouzit Synchronize. Tak to proste mechanicky dela,
> obvykle to funguje, nekdy cela aplikace vytuhne, no tak se prohlasi, ze
> Delphi ma v implementaci threadovani chybu....

Delphi naozaj nema dobru podporu pre threading ale Synchronize
je vzdy lepsie ako ked si programator, ktory nie je odbornik
na paralelne programovane (a kto vlastne je?) ide robit vlastnu
synchronizaciu alebo nepouzije ziadnu

> Poselstvi by asi melo znit - na pouzivani Synchronize davejte pozor, neni
> to automaticky lek na situace, kdy je potreba v threadu neco delat s
> formem, pri nevhodnem pouziti, coz je bohuzel casty pripad, se mohou dit
> pozoruhodne veci.

problem by som nevidel ani tak s formularom (tam ta slucka sprav
funguje v pohode, a ze sa moze formular alebo thread blokovat dlhsiu
dobu to sa obvykle da riesit, napr. dalsim threadom) ale skor
so synchronizaciou dat medzi threadmi (ked tam ten formular
a slucku sprav nemas)

Erik Salaj

Kod Threadu a formulare v jednom souboru, nutnost?

[*] Jan Sebelik <honza(zv)haes(tec)cz> - 30.10.2007 11:26:34

> mozna by nebylo od veci, pokud by ti, co k tomu maji co rict (coz osobne
> nejsem), ukazali sva reseni a trosicku je popsali pro jake scenare se
> hodi. Mozna se dospeje k necemu "takrka idealnimu" a budou z toho tezit
> vsichni...

No, nevim - tady se mi zda TThread.Synchronize docela prehledne vysvetleny (a nakresleny)
http://www.eonclash.com/Tutorials/Multithreading/MartinHarvey1.1/Ch3.html
v bode: How does this work? What does Synchronize do?

Pokud jde o "podivne chovani", ktere tady v diskusi bylo zminovano, zadny problem tam nevidim, nevim, co mel autor na mysli.

Samozrejme, z vyse uvedeneho schematu vyplyva, ze pokud je hlavni thread "prilis zamestnan" a pokud je Synchronize volano "prilis casto" nebo z "prilis mnoha" threadu soucasne, pak se cely threading zasekne. Tedy nikoli zasekne (ve smyslu zatuhnuti), ale spise "serializuje", cimz se puvodne zamysleny ucel pouziti vice vlakem stava nefunkcni.

No, nevim, jestli jsem se vyjadril srozumitelne.

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

Kod Threadu a formulare v jednom souboru, nutnost?

[*] Petr Vones <conference(zv)petrvones(tec)net> - 30.10.2007 12:54:41

From: "Erik Salaj" <winsoft(zv)netkosice.sk>
> dobu to sa obvykle da riesit, napr. dalsim threadom) ale skor
> so synchronizaciou dat medzi threadmi (ked tam ten formular
> a slucku sprav nemas)

To je naopak ten lepsi pripad, protoze tam mohu prece pouzit standardni
synchronizacni objekty dane platformy a zadnou message loop prave vubec
nepotrebuji. Samozrejme to predpoklada jejich znalost.

Petr Vones

Kod Threadu a formulare v jednom souboru, nutnost?

[*] Miloslav Pojsl <mpojsl(zv)seznam(tec)cz> - 30.10.2007 10:18:29

>
> Ahoj,
> mozna by nebylo od veci, pokud by ti, co k tomu maji co rict (coz osobne
> nejsem), ukazali sva reseni a trosicku je popsali pro jake scenare se
> hodi. Mozna se dospeje k necemu "takrka idealnimu" a budou z toho tezit
> vsichni...

Jsem pro! I kdyz chapu, ze davat vsanc sve know-how se asi kazdemu nebude chtit. Me by dost zajimal ten pripad (rozdeleni formu a threadu do vice unit) reseni s tim Interface. Ja svuj problem vyresil presunem odkazu na MainForm do sekce Implementation (nevedel jsem, ze to nebude rvat "cyklicky odkaz"). Ale s tim interfacem by me to zajimalo, jak se to dela.

A thready? Jsem zacatecnik, takze verze s PostMessage by me taky zajimala. Zatim pouzivam metodu Synchronize a vse mi funguje. Ja vim, zatim:-)

Mgr. Miloslav Pojsl
Meopta optika s.r.o.
Kabelikova 1
Prerov

Data pro sineu

[*] Jan Novak <delfin4(zv)volny(tec)cz> - 30.10.2007 07:08:14

Krmela wrote:

> Ja osobne doporucuji se vyhnou sestavam master/detail,
> protoze to vyznamne zpomaluje generovani sestavy
> a hur se edituje predloha.

Jen jestli to neni spis proto, ze Sinea v detailu neumoznuje pristup k
datum z master datasetu ani k funkcim master sestavy.

Takze nakonec je z nouze cnost, ze se udela jen detail dataset a do
kazdeho radku detailu se prida i kopie radku 'master' datasetu a podle
nich se grupuje. Ovsem takovy postup by to cele mel spis zpomalit,
protoze vznikne daleko vetsi hromada dat..

V cem spociva podle tebe to zpomaleni v pripade master/detail? Jina
rezie pri zacatku grupy a zacatku detailu?

Kod Threadu a formulare v jednom souboru, nutnost?

[*] Petr Langer <p.langer(zv)nexnet(tec)cz> - 30.10.2007 09:22:25

Lebeda David wrote:
>
> Poselstvi by asi melo znit - na pouzivani Synchronize davejte pozor, neni
> to automaticky lek na situace, kdy je potreba v threadu neco delat s
> formem, pri nevhodnem pouziti, coz je bohuzel casty pripad, se mohou dit
> pozoruhodne veci.
>
> David Lebeda�
>

Ahoj,
mozna by nebylo od veci, pokud by ti, co k tomu maji co rict (coz osobne
nejsem), ukazali sva reseni a trosicku je popsali pro jake scenare se
hodi. Mozna se dospeje k necemu "takrka idealnimu" a budou z toho tezit
vsichni...

Diky,
Petr Langer

Synapse + LDAP + SSL

[*] Lukas Gebauer <gebylist(zv)mlp(tec)cz> - 30.10.2007 09:00:23

> Pouzivam synapsi pro ziskavani dat z LDAPu a ted bych tam chtel
> dodelat podporu pro SSL.

je potreba udelat nasledujici kroky:

1. vybrat si knihovnu, pomoci ktere se bude provadet SSL. Standardne
jsou na vyber OpenSSL, CryptLib ci StreamSecII. (Existuje i plugin
pro SecureBlackBox) Napriklad pokud by sis vybral OpenSSL, pak
potrebujes mit dve DLL knihovny od OpenSSL, a do uses tveho projektu
pridej unitu ssl_openssl.

2. Pred pripojenim na LDAP server nahod property TLdapSend.FullSSL
nebo TLdapSend.AutoTLS. Jedno nebo druhe, podle toho, jestli chces
implicitni ci exlicitni SSL/TLS. (Jinymi slovy, kdyz je pres SSL
zabezpecena veskera komunikace jako pres SSL tunel, pak nahod
FullSSL. Pokud LDAP bezi na standardnim portu a upgrade spojeni na
SSL se provadi az v prubehu komunikace, pak nahod AutoTLS.)

A je to.
--
Lukas Gebauer.

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

Synapse TTCPBlockSocket.Connected

[*] Roland Turcan <konf(zv)rotursoft.sk> - 30.10.2007 15:32:52

Pokial zastavim prietok dat pomocou firewallu, tak mi niekedy po
Connecte, ktory nemohol zbehnut korektne zostava LastError = 0;

Co mozem robit zle?

Mam cyklus:

while ... do begin
Connect (IP, Port);
Result := LastError = 0;
CloseSocket;
end;

end;

<<< 20.11.2007 16:20 - Lukas Gebauer "gebylist(zv)mlp(tec)cz" >>>
>> Ako zistim, ze sa podarilo vytvorit spojenie pomocou TTCPBlockSocket, lebo
>> ked zavolam:
>>
>> Connect(Host, Port); tak sa nevracia ziadny result.

LG> Z property LastError. Nejen po Connect, ale po kazde socketove operaci.


LG> --
LG> Lukas Gebauer.

LG> E-mail: gebauerl(zv)mlp(tec)cz
LG> WEB: http://www.ararat(tec)cz/synapse - Synapse Delphi and Kylix TCP/IP
LG> Library

--
Best regards, TRoland

http://exekutor.rotursoft.sk

JvDesignPanel

[*] Vasek Zaruba <zaruba(zv)elastoform(tec)cz> - 30.10.2007 20:57:14

Ahoj,

Nemate nekdo zkusenosti s komponentou JvDesignPanel?
Jeji pouziti by mi usnadnilo praci, jenze:

1. Jak mohu definovat vlastnosti vkladane komponenty (Pred jejim vlozenim)?
2. Jak ji "fokusnout - vybrat", zarovnavat, vnutit ji jmeno, atd.?

Chvilku jsem bojoval pokus-omyl pomoci JvDesignPanel.Components[I] a
JvDesignPanel.Surface,
ale to neni vubec efektivni. Help take mlci a prilozeny exampl nic
neukazuje.

Pouzivate ji nekdo? Nemate nekdo bohatsi samplik nez je v balicku JVCL?

Diky Vasek
D7, W XPpro

Vlastni komponenta

[*] Milan Dvorak <dvorak(zv)gymzn(tec)cz> - 02.12.2007 05:43:31

Komponentu jsem asi jeste netvoril, ale nevim, jestli nevadi, ze ty labely a ten image nemaji parenta (takze asi ten panel)?

Milan Dvorak

>>> zaruba(zv)elastoform(tec)cz 2.12.2007 4:45 >>>

Ahoj,

Delam svou prvni komponentu a narazil jsem na problem.
Odvozuji ji od TPanel a potreboval bych, aby na nem byly 2xTLabel a TImage.
Komponentu vytvorim, vlastnosti i metody nadefinuji, ale label ani image se
nezobrazi.
V konstructoru jsem napsal toto (je to vycuc):

constructor TSRDSpanel.Create(AOwner: TComponent);
begin
inherited;
caption:='SRDSs';
width:=60;
height:=60;

FJvLabel1:=TJvLabel.Create( Self);
FJvLabel1.Align:=ALTOP;
FJvLabel1.Caption:='AAAAAAA';

FJvLabel2:=TJvLabel.Create( Self);
FJvLabel2.Align:=ALTOP;
FJvLabel2.Caption:='BBBBBBB';

FImage:=TImage.Create( Self);
end;

Dekuji za popostrceni
Vasek
8^)

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