Hirdetés

2012. május 27., vasárnap

Hozzászólások

(#1) QG


QG
(tag)

Mielott barki javasolna, hogy ezt a prog.hun tegyem fel, kozlom megtortent, de azok jo munkasemberek, csak reggel jarnak arra, nekem meg most kene.

Szoval, hogyan ellenorzom Delphiben egy komponens letezeset?

if Button3 letezik then
begin
.
.
end;

szoval hogy lehet ezt jol?

QG

a Jó: Babonás emberek hiúsági rítusa

(#2) Giruna válasza QG (#1) üzenetére


Giruna
(kvázi-tag)

Ha kézzel tetted le akkor a visible vagy ehez hasonló tulajdonsásgát kéne megnézned ha true, akkor létezik. Ha kódból teszed ki, akkor pedig szintén ezt vagy valamely hasonló property-jét kéne nézegetni.

The Song Remains The Same :: http://www.giruna.hu

(#3) Alan válasza Giruna (#2) üzenetére


Alan
(fanatikus tag)

...ehm, és akkor rögtön jön az access violation a 00000000 címre hivatkozással. Súlyos hiba létre még nem hozott komponensek tulajdonságait vizsgálgatni.

A helyes módszer: if Assigned(Button1) then ...

(#4) Alan válasza Giruna (#2) üzenetére


Alan
(fanatikus tag)

Arról nem is beszélve, hogy egy éppen nem látható komponens (Visible = False) még nagyon is létezhet és virulhat.

(#5) Divi


Divi
(fanatikus tag)

============ Attention ============
Delphi 6

Szeretnék írni egy ''komolyabb'' programot ami igen sok adatot kezel.
Az, hogy Adatbázisban vagy egy jól megszerkesztett TEXT fájlban tárolja le az adatokat 1 dologtól függ. Hogy van-e rá mód, hogy a text fájlomat úgy kezeljem, ahogy szeretném, azaz...

Hogyan lehet Delphi alatt egy már MEGLÉVŐ text file egy sorát átírni jeletősebb macera ( fájl újraírás) nélkül?

Magam nem találtam semmi olyan parancsot ami egy text file SOR mutatóját állítani tudná, és hogy az adott sort kiolvassa majd visszaírja valami más adattal!

Help me please!

lá lá lá lá lá lá lá Lila Liba gá gá gá gá gá gá

(#6) KovacsUr válasza QG (#1) üzenetére


KovacsUr
(PH! addikt)

if Assigned(Button3) then
//jaj de jó!
else
//nem jött be

So it goes… We stand alone by standing stones and turn them into circles.

(#7) Divi válasza KovacsUr (#6) üzenetére


Divi
(fanatikus tag)

(#1) QG Válasz | Email | 2003-11-14 01:21:42

msg#5 itt a lényeg :D

[Szerkesztve]

lá lá lá lá lá lá lá Lila Liba gá gá gá gá gá gá

(#8) KovacsUr válasza Divi (#7) üzenetére


KovacsUr
(PH! addikt)

Jól van na, a moderátor is ember. Vagy mi. :DDD

(Mellesleg látom, #3-ban már a válasz is elhangzott :) )

So it goes… We stand alone by standing stones and turn them into circles.

(#9) KovacsUr válasza Divi (#5) üzenetére


KovacsUr
(PH! addikt)

A fájl újraírása nélkül ez nem fog menni sem Delphiben, sem másban. A szövegfájlt csak szekvenciálisan tudod elérni. Gondolj csak bele.

So it goes… We stand alone by standing stones and turn them into circles.

(#10) Divi válasza KovacsUr (#9) üzenetére


Divi
(fanatikus tag)

Ötlet:
És ha mondjuk mitadisten a Fájl egy File of String; (hogy tudom rávenni, ,hogy többet tudjon letárolni mint 255 karakter?
akkor már működik a Seek és lehet módosítani is :)

Azért iggen kellett a hozzászólásod, hogy ez kipattanjon a fejemből :D

Gondolom te akkor benne van a programozósdiban. Az elkövetkezőkben tudnál egy kis figyelmet fordítani a hülye kérdéseimnek? :U (ha nem okoz nezézséget)

lá lá lá lá lá lá lá Lila Liba gá gá gá gá gá gá

(#11) zenit válasza Divi (#10) üzenetére


zenit
(kvázi-tag)

Használhatod ezt:
type TItem = array[0..1023] of Char;
Ezzel 1023 karakter hosszú szöveget tudsz tárolni (plusz egy lezáró #0 karakter). Így már mehet a file of TItem, ahol a rekord mérete 1024 bájt lesz.

String (S) -> TItem (Item) konverzió a fájl írásához:
StrLCopy(Item, PChar(S), SizeOf(Item) - 1);

Olvasás után pedig csak egyszerű értékadás kell: S := Item;

Halkan megjegyezném, hogy a file of ... használata Delphi-ben elavult dolognak számít, helyette használj inkább TFileStream-et. :U

(#12) Divi válasza zenit (#11) üzenetére


Divi
(fanatikus tag)

Ki tudnád feljteni pozitívumait/negatívummait?

Egy barát már ajánlotta, de mivel ez eddig teljesen ismeretlen dolog számomra, hogy mi is egyáltalán így jó volna egy kis felhomályosítás, hogy mivel tud többet
és hogyan kell vele megcsinálni, azt amit a sima ''File of'' -fal is meglehet :)

[Szerkesztve]

lá lá lá lá lá lá lá Lila Liba gá gá gá gá gá gá

(#13) KovacsUr válasza zenit (#11) üzenetére


KovacsUr
(PH! addikt)

...Csak hát ez így már nem szövegfájl, hanem egy 1024 byte hosszú rekordokból álló típusos fájl. :)

So it goes… We stand alone by standing stones and turn them into circles.

(#14) KovacsUr válasza Divi (#10) üzenetére


KovacsUr
(PH! addikt)

Az elkövetkezőkben tudnál egy kis figyelmet fordítani a hülye kérdéseimnek? :U(ha nem okoz nezézséget)

Megpróbálok, ha nem gond, hogy néha kések egy-két hetet a válasszal... :)

So it goes… We stand alone by standing stones and turn them into circles.

(#15) zenit válasza Divi (#12) üzenetére


zenit
(kvázi-tag)

A TFileStream a fájl egyszerű bájt-szintű elérésére való, annak minden előnyével és hátrányával. Egyrészt közvetlenül a Windows API-re épül, szóval hatékony - bár ez ma már inkább csak elvi dolog, bár annak nem utolsó :).
Másrészt meg a VCL mindenhol a TStream osztályt használja, ami néhány alapműveletet definiál, a leszármazottai pedig (így a TFileStream is) ezeket implementálják.

Szóval érdemesebb neked is inkább ebbe az irányba haladni, mert később sokat fogod használni őket, ill. ezért nem érdemes már a pascal-os ''file'' típusba jobban belemélyedni. (Talán még a ''Text'' fájltípusnak van egyedül létjogosultsága, mert erre nem létezik elfogadható alternatíva, bár az más kérdés, hogy valóban szükség van-e rá.)

(#16) zenit válasza KovacsUr (#13) üzenetére


zenit
(kvázi-tag)

De arra már te is rávilágítottál az előbb, hogy a szövegfájl, mint adatszerkezet, nem lesz jó.

(#17) BaliTHC válasza Alan (#3) üzenetére


BaliTHC
(kvázi-tag)

Amennyiben a kérdéses Button3 nem publikusan deklarált (pl. dinamikusan került fel a Form-ra), akkor használható a

function FindComponent(const AName: string): TComponent;

művelet, ami név alapján megadja a keresett komponenst, vagy NIL-t.

In the ghetto - washing non colour fast synthetics at 60 degrees - could cost you your life! (Ali G)

(#18) Szenty válasza Divi (#5) üzenetére


Szenty
(kvázi-tag)

Szia!

Mit jelent az, hogy igen sok adatot kezel? Több száz gigabyte-ot? Vagy sokat számol a program, és az eredményt (ami akár lehet kevés is) tárolná szövegfájlban? Fejtsd ki légyszi kicsit részletesebben!

Egy jó tanács: felejtsd el a szövegfilet, az soha nem is volt alkalmas adatbázisok tárolására (lásd kismillió féle CSV-formátum). Tanulj meg kezelni valami SQL-alapú adatbázist inkbább. (No meg az SQL-t)
Rengeteg szenvedéstől fogod megkímélni magad.

[Szerkesztve]

Learning curve: C=64 Basic; PC: Turbo Basic, Turbo Pascal, x86 Assembly [real mode], Java, Perl, C, C#, and now Python

(#19) b14


b14
(őstag)

Hi
Ez a prog ''tikositana'' bar nem nagy cucc de szeretnem meg csinalni.
Mi benne a hiba?


var i:integer;
c:char;
s:Pcaption;
begin
for i:=1 to length(form1.Edit1.Text) do
begin
c:=chr(255-(ord(form1.Edit1.text)));
s
:=c;
form1.Edit1.Text:=s;
end;

szerkesztett:
Ezt a hibauzenetet adja:

Project Project1.exe raised exception class EAccess Violation with message 'Acess violation at address 0044F14A in module 'Project1.exe'. Write address 00000000'. Process stopped. Use Step or Run to continue.

[Szerkesztve]

''...de a konfigjából kiindulva, nem hiszem, hogy 40 éves családos ember lenne...'' -- by Slax

(#20) VladimirR válasza b14 (#19) üzenetére


VladimirR
(PH! nagyúr)

a form1.edit1.text-et ne egyben, hanem karakterenkent titkositsd - visszavonva; az i-t kicsereltem j-re, mert igy dolt lett az egesz:DDD

valamint a ciklusod is zavaros kicsit

var j:integer;
c:char;
s: tcaption;
t:string;
begin
t:=form1.Edit1.Text;
for j:=1 to length(t) do
begin
c:=chr(255-(ord(t[j])));
s:=s+c;
end.
form1.Edit1.Text:=s;
end;

[Szerkesztve]

(#21) b14 válasza VladimirR (#20) üzenetére


b14
(őstag)

Hi
kosz szepen a megoldast, de sajna hibas ezert nem ''igazi'' megoldas.
Mivel a chr(255-(ord(c))); egy karaktert titkositana nem jo a te chr(255-(ord(t))); megoldasod, mivel az tcaption.
Azaer megi kosz

''...de a konfigjából kiindulva, nem hiszem, hogy 40 éves családos ember lenne...'' -- by Slax

(#22) b14 válasza b14 (#21) üzenetére


b14
(őstag)

bocs ez mar nem jo mivel te kozbe modositottal az egeszen

''...de a konfigjából kiindulva, nem hiszem, hogy 40 éves családos ember lenne...'' -- by Slax

(#23) b14 válasza VladimirR (#20) üzenetére


b14
(őstag)

professional and ezer thx.
Miota foglalkozol dephvel?

[Szerkesztve]

''...de a konfigjából kiindulva, nem hiszem, hogy 40 éves családos ember lenne...'' -- by Slax

(#24) VladimirR válasza b14 (#22) üzenetére


VladimirR
(PH! nagyúr)

muszaj volt, mert a forummotor a [ i ]-bol dolt karakteeket csinalt :DDD
delphivel alig-alig foglalkoztam, viszont 10 evet pascaloztam

[Szerkesztve]

(#25) b14 válasza VladimirR (#24) üzenetére


b14
(őstag)

azt ertem es ertettem mar amikor mondtad es en meg most fogtam bele a delphibe

''...de a konfigjából kiindulva, nem hiszem, hogy 40 éves családos ember lenne...'' -- by Slax

(#26) Szenty válasza VladimirR (#24) üzenetére


Szenty
(kvázi-tag)

Bizony, jó is a pascal!!! ;)

Learning curve: C=64 Basic; PC: Turbo Basic, Turbo Pascal, x86 Assembly [real mode], Java, Perl, C, C#, and now Python

(#27) b14 válasza VladimirR (#24) üzenetére


b14
(őstag)

ha nem sertem meg hany eves tetszik lenni?
mivel en onhoz kepest ovodasnak szamitok szamitasaim szerint

[Szerkesztve]

''...de a konfigjából kiindulva, nem hiszem, hogy 40 éves családos ember lenne...'' -- by Slax

(#28) VladimirR válasza b14 (#27) üzenetére


VladimirR
(PH! nagyúr)

21

(#29) b14 válasza VladimirR (#28) üzenetére


b14
(őstag)

komoly?
mert akkor 10 eves korodtol a pascallal foglalkozol?

''...de a konfigjából kiindulva, nem hiszem, hogy 40 éves családos ember lenne...'' -- by Slax

(#30) VladimirR válasza b14 (#29) üzenetére


VladimirR
(PH! nagyúr)

altalanos 4.-tol :DDD

(#31) Divi


Divi
(fanatikus tag)

Aztamindenti! Szépen megszaldt a topic. AMI JÓ :D
Nos a fejlemény az, hogy a Fájozós-átírós-tankozós-romantikus adatkezelés az akkor lett volna lehetőség, hogy tényleg könnyen tudtam volna ide-oda ugrálni a fájlban és kedvembre tudtam volna átírni dolgokat.

Mivel ez bukott így marad a Dbase kezelés bevágása.

Adattömeg mérete: Bátyám cégétől függ :) De a 10 megát szerintem ebben az évtizedben nem fogja átlépni. (Ha egyáltalán életképes lesz maga a koncepció)

Gyorsan vázolom hogy én hogyan képzelem az adattárolást
4 db tábla

1. tábla : A programot felhasználók adatai (user/pass//név/tel/e-mail/stb) + USERazonosító
2. tábla: Céglista: Azon cégek listája és adatai (cím/tel/@) + CÉGazonosító(k) és USERazonosító által szűrve
3. tábla: Külső cégek kapcsolattartó embereinek adatai (név/tel1/tel2/@1/@2/hülye hóbortok) + EMBERazonosítók és USERés CÉG azonosító által szűrve
4. tábla: Eseménylista: A cég elvégzendő feladatai.
Felhasználó kritériumai szerint szűrve.

1 tábla szűri az összeset.
2 tábla szűri, 3táblát vagy/és a 4. táblát
3. tábla szűri a 4. táblát
4. táblában meg olyan VAZZ sok rekord lesz, hogy jujj

Na az SQL az számomra nagyon messze van és tnylegesen 0 tudásom van belőle. Így a Delphi beépített eszközeivel szeretném megoldani.
A kérdés, hogy ezt a szűrős dolgot, milyen módokon lehet megoldnai? Hallottam valami Master-detail kapcsolatról, el tudná valaki mondani magyarul hogy mi ez? Vagy a Filtered opció elégséges megoldás egy tábla szűréséhez?

Nem gázos, hogy a 4. táblában már 3 ''fölösleges'' azonosító mezőt kellene alkalmazzak, hogy tudjak szűrni?

Válaszaitokat előre is köszönöm!

lá lá lá lá lá lá lá Lila Liba gá gá gá gá gá gá

(#32) VladimirR válasza Divi (#31) üzenetére


VladimirR
(PH! nagyúr)

nem pont erre a kerdesre valasz, de tudsz filban ide-oda ugralni
csak nem szovegfileban, hanem tipusos fileban
neked pedig sejtesem szerint rekord tipusu filera van szukseged

type myrec=record
...blablabla...adattipusok...
end;
var f:file of myrec;
[...]

igy tudsz fileba irni, ill a mar benne levo adatokat tudod modositani (bar a kereses lassu szerintem)

(#33) Szenty válasza b14 (#29) üzenetére


Szenty
(kvázi-tag)

Miért is ne foglalkozhatna? :)
Én is 10 éves lehettem, amikor elkezdtem programozni.
Igaz, akkor még C=64 Basic-ben. Utána jött C=64 assembly.
Aztán '94-ben jött az első pc, egy 486-os. Mivel a basicet ismertem, ezért maradtam a Turbo Basic-nél (akkor ez volt az egyetlen basic, amelyik tudott EXE fileokat generálni).
Aztán nagyon hamar a Pascal (és mellette hamarosan Assembly is). És még mindig ez a favorit. :)
Pascalból és Clipperből volt 5 órás érettségi vizsga.
Aztán a fősulin belekostoltam ebbe-abba: C, Java, OOP C++, Visual C++, Deplhi.
Meg mellette még megtanulgattam a Perlt, PHP-t is.
Jelenleg írom a diplomamunkámat, Perlben. ;)

[Szerkesztve]

[Szerkesztve]

Learning curve: C=64 Basic; PC: Turbo Basic, Turbo Pascal, x86 Assembly [real mode], Java, Perl, C, C#, and now Python

(#34) lao ce válasza Szenty (#33) üzenetére


lao ce
(fanatikus tag)

c64-es vagy? ''Mivel a basicet ismertem'' - haha
spectrum forever! :)

nicht kompot

(#35) Divi válasza VladimirR (#32) üzenetére


Divi
(fanatikus tag)

Utólag meggondolva megvalósítható. viszont teljesen letettem a file kezelgetésről. Szórakozzon vele a BDE :D

msg #31 ?

lá lá lá lá lá lá lá Lila Liba gá gá gá gá gá gá

(#36) Szenty válasza lao ce (#34) üzenetére


Szenty
(kvázi-tag)

Volt szerncsém Videoton TV Computerhez, sőt, Primóhoz is.:)
Kőkorszak rulz. ;)

Learning curve: C=64 Basic; PC: Turbo Basic, Turbo Pascal, x86 Assembly [real mode], Java, Perl, C, C#, and now Python

(#37) btotyi válasza Divi (#35) üzenetére


btotyi
(tag)

Hagy a BDE-t a francba. Ha kevés adatod van használj xml táblákat (ClientDataset) ha picivel több akkor pedig szánj rá egy kis időt és próbálj meg egy kis sql szervert ( pld. MSDE vagy beágyzott Firebird). Így ha később esetleg mégis több adatot, több felhasználót kell kezelni nem lesz probléma. Ha meg mégsem kell ilyesmi legalább tanultál valamit.

[Szerkesztve]

(#38) btotyi válasza Szenty (#36) üzenetére


btotyi
(tag)

TVC + Floppy meghajtó + CP/M :)

(#39) BigK


BigK
(lelkes újonc)

A BDE-t mindeképpen tessék hanyagolni. Hogy rakhatta bele ezt a sz.rta a Borland a Deplhi csomagjába. Ahogy a kolléga javasolta használj MySQL-t. Vagy ha ennyire nem akarsz belefolyni, próbáld meg a Borland féle InterBase-t. Pofon egyszerűen lehet használni.

Ha a hülyeség hajtaná a biciklidet, kontrázva mennél a himalájára

(#40) b14


b14
(őstag)

Hi
2 kérdésem lenne

1: delphiben ha kepeket hasznalok azt bele lehet valahogy forditani a kodba?
2: Pocket pc - re lehet valahogy forditani delphi progot?

''...de a konfigjából kiindulva, nem hiszem, hogy 40 éves családos ember lenne...'' -- by Slax

(#41) KovacsUr válasza b14 (#40) üzenetére


KovacsUr
(PH! addikt)

1: igen
2: nem

[Szerk.]
Kis kiegészítés: a Pascal nyelvet használhatod Pocket PC-s fejlesztéshez, csak konkrétan a Delphi nem tud a PocketPC által futtatható kódot generálni. Nézd meg a PocketStudiot: Bővebben: link.

So it goes… We stand alone by standing stones and turn them into circles.

(#42) b14 válasza KovacsUr (#41) üzenetére


b14
(őstag)

thx
plus one question
Hogy lehet egy (grafikus) vonalat húzni a form-on?
Szerintem ott van a szemem elott csak tul bamba vagyok hozza

''...de a konfigjából kiindulva, nem hiszem, hogy 40 éves családos ember lenne...'' -- by Slax

(#43) btotyi válasza b14 (#42) üzenetére


btotyi
(tag)

Canvas.MoveTo(10,10) ; // kezdőpont
Canvas.LineTo(100,100); // végpont

(#44) Divi válasza BigK (#39) üzenetére


Divi
(fanatikus tag)

Miért utálja mindenki ennyire a BDE-t? :)
Nekem elég szipatikusnak tűnik. Bár sebességről, stabilitásrós semmit nem tudok.

Tehát, miért ne BDE?

lá lá lá lá lá lá lá Lila Liba gá gá gá gá gá gá

(#45) btotyi válasza Divi (#44) üzenetére


btotyi
(tag)

Amíg csak egy gépen vagy addig istenes de több gép konkurens használat hálózatban, na ott lehet szívni. (indexsérülés, lock time out stb..., dbflush és tdutil használat szükséges ezerrel). Tehát ha csak a leghalványabb esélye is felmerül egy többes használatnak akkor már egyszerűbb mást használni. Az újabb Delphik (és a Borland) sem támogatja, ergo nem fejlesztik, javítják tovább. Szóval célszerű egyből elfelejteni. Léteznek kis, beágyazott ingyenes sql szerverek ( MSDE, Firebird). Egygépes, egyfelhasználós programot is célszerű így megcsinálni éa akkor gond nélkül lehet skálázni a rendszert. A firebird embedded változatánál egy dll-t (so-t) kell a progid mellé másolni és egy teljes funkcionalitású sql szervered van.

[Szerkesztve]

(#46) Divi válasza btotyi (#45) üzenetére


Divi
(fanatikus tag)

Értem, köszönöm a felhomályosítást. Hálózati kezelés LESZ. 5-10 júzer max.

Tehát akkor SOK kérdés van még az msg #31-ben. :DD Azt már megválaszoltuk, hogy a BDE felejtős. (Kár mert elég egyszerűnek tűnt :()

Érdekelne, hogy ti jó megoldásnak tartjátok-e erre a feladatra ezt a megoldást amit felvázoltam?

[Szerkesztve]

lá lá lá lá lá lá lá Lila Liba gá gá gá gá gá gá

(#47) b14 válasza btotyi (#43) üzenetére


b14
(őstag)

Nem
Ugy ertetttem, hogy grafikusan (form viewerben) látnám, hogy mit csinalok.
(amobaval probalkozok);

''...de a konfigjából kiindulva, nem hiszem, hogy 40 éves családos ember lenne...'' -- by Slax

(#48) Divi válasza b14 (#47) üzenetére


Divi
(fanatikus tag)

Kedves ti!

Tudnátok mondani egykét keresetlen szót, az InterBASe ről és a FireBird-ről?
mint Adatbázis kezelő dologról?
A Delphivel ha jól látom feltelepült az InterBase is.
A kérdésem annyi, hogy hogyan tudnám ezt életre kelteni? És milyen lépések kellenek, hogy Delphiben valami eredményt lássak?

b14: Bocs nem válasz akart lenni, hanem új hsz :)

[Szerkesztve]

lá lá lá lá lá lá lá Lila Liba gá gá gá gá gá gá

(#49) btotyi válasza b14 (#47) üzenetére


btotyi
(tag)

Ott is így működik csak kell csinálni egy komponenst ami megcsinálja neked tervezési időben.

(#50) btotyi válasza Divi (#48) üzenetére


btotyi
(tag)

A FreBird (FB) az InterBase (IB) opensource-os továbbfejlesztett változata. Alapból jól használható az IBX komponensekkel csak az extrákat (új adattípusok stb) nem tudják használni. A használathoz kell egy IB/FB szervert futtatni a gépeden. Az IB fizetős és csak fejlesztéshez használhatod azt amit a jogtiszta Delphid-hez kaptál. Az FB természetesen free. Szóló gépen is gond nélkül fut a szerver és a fejlesztőeszköz együtt. Ha van futó szervered (NT,XP alatt szervizként szokott futni) azt meg tudod nézni, leállítani, indítani az IB Szerver managerrel. Ha a szerver ok akkor ibconsollal tudsz hozzá csatlakozni adatbázist, táblákat létrehozni. Ha ez megvan akkor Delphiben az IBX-komponenscsomagban található IBDataBase, IBTransaction,IBQuery komponensekkel lehet kezelni az adatokat.

[Szerkesztve]

Copyright © 2000-2012 PROHARDVER Informatikai Kft.