- Hobby elektronika
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- OLED TV topic
- Házimozi haladó szinten
- Gaming notebook topik
- Autóhifi
- HiFi műszaki szemmel - sztereó hangrendszerek
- Rendkívül ütőképesnek tűnik az újragondolt Apple tv
- Ülésezik a hardveregylet
- NVIDIA GeForce RTX 4060 / 4070 S/Ti/TiS (AD104/103)
Hirdetés
-
Igencsak szerény méretekkel rendelkezik az Aetina Xe HPG architektúrás VGA-ja
ph Az 50 wattos modellt beágyazott rendszerekbe, MI-vel kapcsolatos munkafolyamatokhoz és edge applikációkhoz szánták.
-
Rövid előzetesen a S.T.A.L.K.E.R. 2: Heart of Chornobyl
gp Továbbra is szeptemberi premierrel számolnak a fejlesztők, reméljük több halasztásra már nem kell számítanunk.
-
Lenovo Essential Wireless Combo
lo Lehet-e egy billentyűzet karcsú, elegáns és különleges? A Lenovo bebizonyította, hogy igen, de bosszantó is :)
Új hozzászólás Aktív témák
-
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. -
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á.) -
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] -
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) -
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] -
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] -
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] -
granpa_matis
aktív tag
Annyit tudok mondani az FB-rol, h nagyon jo, fel eve visz egy 100 connectes adatbazist es foleg azert jo alternativa, mert ingyenes, ez IB szerverrel nagyon sokba kerulne...
Az interbase komponenseket meg sztem felejtsd el, ott van helyette az IB Object, ami fizetos, de jobban megeri ezzel megismerkedni, hihetlenul sok energiat fogsz vele megsporolni. Puritannak tunhet de nagyon jo az SQL editorja, stabil es elterjedt is. Hasznalata hasonlo az IB-hez. -
-
btotyi
tag
A szintakszis jó de #-ok nem kellenek mivel az az ENTER-eket helyettesíti ( lád első bekezdés vége note !
Milyen aliasra gondolsz ? Aliasokat a Delphi használ, FB-hez nem kell.
Mert kell lennie egy rendszergazdának aki kezeli a szervert, létrehoz usereket jogosultságot oszt ki stb....
Mert egy szerveren több felhasználó is lehet akiknek különböző jogaik lehetnek ( Különböző adatbázisok, táblák stb stb stb).
Az maga az adatbázis mert az FB (InterBase) mindent egy file-ban (na jó lehetnek shadow és több files-os adatbázisok de az téged most nem érint) tárol.
[Szerkesztve] -
btotyi
tag
Az alkalmazások valóban lehetnek kliensek de kell egy közvetítő réteg ami az alkalmazás (üzleti logika) kéréseit továbbítja az adatbáziskezelő szerver felé, illetve a válaszokat továbbítja az alkalmazás felé. Az FB-nél ez a ''kliens'' egy dll. Ilyen szempontból az ISQL is egy alkalmazás ami a felhasználó által beírt sql parancsokat továbbpasszolja az adatbázis kliensnek (fbclient.dll) és a szerver válaszait pedig kiírja a képernyőre.
-
btotyi
tag
Persze, hogy van de nem muszály ugyanakkorának lenni mert be tudsz állítani GDI leképezéseket amik automatikusan transzformálják a koordinátákat. Átmásolni sem kell hanem ugyanazt a rajzoló rutint lefuttatot a printer canvas-ra is.
De egyszerűbb ha használsz egy kész printpreview komponenst mert azook általában mindent elintéznek. -
btotyi
tag
Nézz szét itt : Bővebben: link.
Ha valami nem világos kérdezz nyugodtan. -
granpa_matis
aktív tag
1.EMS Interbase Manager tokeletes FB adatbazis letrehozashoz.(magyarositast ne rakd fel hozza, mert nagyon bugos...latszik, h egy haverom csinalta )
2.Komponensnek az IB Ojects-et ajanlanam, stabil, kicsit puritan...de nagyon gyorsan lehet vele dolgozni. Ezzel tudsz majd SQL kodot kuldeni a szervernek.(1 kerdes)
3.Amig nincs meg az adatbazis, addig ne kezdj hozza a programhoz, adatbazist hozd letre legeloszor. -
lao ce
aktív tag
Divi:
az adatbazist en altalaban visio-ban hozom letre eloszor ( 'papiron' megtervezem ), aztan bekerul az adatbazisba, legyen az barmelyik is, egy 'mennel kenyelmesebb annal jobb' adminisztracios interfeszen keresztul. nalam mindig van valtozas az adatbazis strukturaban a programfejlesztes alatt, mert egyszeruen nem birok mindenre gondolni, de ha megis akkor a k. megrendelo talal ki valamit.
az adatbazis strukturat magat letrehozni futasi idoben lehetseges, de legtobbszor talan mondhatom hogy felesleges, az install kell hogy kepes legyen az ures adatbazist odatenni az exe melle. egy upgrade eseteben mar lehetseges hogy db struktura valtoztato sql-eket kell vegrehajtani, merthat ugyi meg kell tartani a regi adatot de valahogy meg kell valtoztatni alatta a tablakat, viewkat stb.
ha serult az adatbazis akkor lehetseges hogy letre kell hozni ujra, de ilyen esetben azert a backupot illik elovenni. lehet hogy specialisabb kornyezetben ultrahordozhato kodot kell eloallitani akkor erdemes felepiteni az adatbazist kodbol.
az adatbazis adminisztracio attol fugg milyen a db motor. vannak oracle es sql servereknek 'karbantartja magat' valtozatai illetve beallitasai, amik tobb-kevesebb sikerrel elvegzik a legkommerszebb dolgokat (ugyancsak van nekik felugyelet nelkuli installjuk). az accessnek van repair lehetosege ami meghivhato programbol - mondjuk minden backup utan. en a reszemrol mikor access-t hasznalok akkor a program elindulasahoz hozzatartozik a backup a hatterben, amibol tartok 10-15-ot. ki se lehet kapcsolni. hasonlokat meg lehet csinalni a 'nagy tesokkal' is, persze azoknak a backupjuk joval kifinomultabbak.
attol fuggoen mekkora az adatok erteke az adatbazisban, egy pont utan erdemes megfontoltatni a megrendelovel egy havi alapu db karbantartast.
[Szerkesztve]nicht kompot
-
Robiba
tag
-
Divi
aktív tag
Update:
Egy másik ötletem, hogy a MouseMove eseménnyel vizsgáljuk le, hogy hol van az egér, és ha egy akármekkora szegélyre ér, akkor hajtsuk végre az ''onMouseLeave''-et sajnos csk félmegoldás, mert eddigi tapasztalaim szerint sokszor túl lassú ahhoz, hogy kellő számossággal levizsgálja, így sokszor egy erősebb egérmozdulat után ''bejelölt'' marad a vezérlő...lá lá lá lá lá lá lá Lila Liba gá gá gá gá gá gá
-
yksz
aktív tag
Teszel egy timert, ami nézi, hogy hol van az egér. Ha a komponens koordinátáin belul akkor ... ha a komponens koordinátáin kívul, akkor... Ha azt akarod, hogy csak akkor legyen, ha leviszed róla, tehát a ráviszed és le, akkor megnézed rajta van-e és utána, hogy mikor viszi le. Jobb nem jut az eszembe
Fly away my precious knowledge fly far away
-
killerjohn
addikt
Elég egyszerű, csak csinálni kell hozzá egy új komponenst, melyet így kell megcsinálni (pl TButton esetében, de másnál is müxik...)
Bocsi, de sietve dobtam össze... nem biztos, hogy fullosan OK.
---------------------------
Uses SysUtils, Classes, Controls, Messages, Graphics, ExtCtrls, Windows, Forms;
Type
TMyButton = class(TButton)
private
FOnMouseEnter : TNotifyEvent;
FOnMouseLeave : TNotifyEvent;
protected
Procedure msgMouseEnter(Var Msg: TMessage); message CM_MouseEnter;
Procedure msgMouseLeave(Var Msg: TMessage); message CM_MouseLeave;
public
Constructor Create(AOwner: TComponent); override;
published
Property OnMouseEnter : TNotifyEvent read FOnMouseEnter write FOnMouseEnter;
Property OnMouseLeave : TNotifyEvent read FOnMouseLeave write FOnMouseLeave;
End;
constructor TMyButton.Create(AOwner: TComponent);
begin
inherited;
FOnMouseEnter := nil;
FOnMouseLeave := nil;
end;
procedure TMyButton.msgMouseEnter(var Msg: TMessage);
begin
If csDesigning in Self.ComponentState Then EXIT;
If Assigned(FOnMouseEnter) Then FOnMouseEnter(Self);
End;
procedure TMyButton.msgMouseLeave(var Msg: TMessage);
begin
If csDesigning in Self.ComponentState Then EXIT;
If Assigned(FOnMouseLeave) Then FOnMouseLeave(Self);
end; -
gLes
őstag
Szóval azt mondod, hogy nem fut le az OnClick esemény?
Raksz bele egy ShowMessage-et vagy egy Break-et az nem reagál, ugye?
Őszintén szólva ilyennel még nem találkoztam, pedig elhiheted, hogy sok hasonló bosszúsággal meggyűlt már a bajom
Próbáltad már, hogy letörlöd a gombot és újat raksz fel?
Hopsz most vihar van gép kikapcs
Új hozzászólás Aktív témák
- AKCIÓ - TELEFONTOKOK, EGYÉB AUTÓS KIEGÉSZÍTŐK, FÜLHALLGATÓK
- Olympus M.ZUIKO DIGITAL 25mm f/1.8 objektív
- Xiaomi Redmi 9 64GB, Kártyafüggetlen, 1 Év Garanciával
- Dell Latitude E7450 Full i7-5600U, 16GB DDR3, 512GB SSD, FHD IPS, Nvidia, HUN Vil.Bill. Új
- Dell Latitude 7310 i7-10610U, 16GB DDR4, 512GB NVMe, FHD IPS Privacy, HUN Vil.Bill, NBD, Új Állapot