Hirdetés

2024. április 26., péntek

Gyorskeresés

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

“Anti-intellectualism has been a constant thread winding its way through our political and cultural life, nurtured by the false notion that democracy means that 'my ignorance is just as good as your knowledge.'” ― Isaac Asimov

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


Giruna
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
aktív 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
aktív 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
aktív 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
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
aktív 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
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
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
aktív 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
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
aktív 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
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
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
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
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
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
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]

(#19) b14


b14
senior tag

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
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
senior tag

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
senior tag

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
senior tag

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
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
senior tag

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
tag

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

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


b14
senior tag

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
nagyúr

21

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


b14
senior tag

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
nagyúr

altalanos 4.-tol :DDD

(#31) Divi


Divi
aktív 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
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
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]

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


lao ce
aktív tag

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

nicht kompot

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


Divi
aktív 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
tag

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

(#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
csendes tag

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
senior tag

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
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
senior tag

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
aktív 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
aktív 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
senior tag

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
aktív 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-2024 PROHARDVER Informatikai Kft.