Új hozzászólás Aktív témák
-
Prego
senior tag
Letöltöttem egy ingyenes komponenst ICGrid ami nagyon teszik a demója alapján, azt hiszem telepíteni is sikerült Delphi 7 alá, és a komponens palettában is látom őket.
Viszont amikor a Example mintafájlt meg akarom nyitni, akkor a követekző hibaüzeneteket kapom:
Error reading ICGridCalendar1.ExplicitLeft: Property ExplicitLeft does not exist. Ignore the error and continue?
Ugyanez az ExplicitWidth, ExplicitHeight propertykre is igaz.
Ezekre viszont sehol sem leltem a kimöritett állományok tartalmában.Aki másnak vermet ás az a Stack Pointer
-
_AnTi_
tag
Ez általában olyankor fordul elő, ha a demo által használt komponens nem egyezik az általad használt komponenssel, vagy akkor, ha nem ahhoz a delphihez készült demo-t töltötted le, amivel rendelkezel.
Mod: én úgy látom, hogy ez újabb delphikhez készült, mint a 7...
[ Szerkesztve ]
Szép vagyok és okos, ügyes és aranyos...
-
Prego
senior tag
Olyat kéne megoldanom, hogy amikor elindul a program, lekéri hogy az adatbázisban hány jármű szerepel, és annyi TImage és mondjuk Memo-t tesz ki a formra. Gondolom a Form1.Create-ot kell megírnom.
Egyszerűsítve:
Van egy I: Integer változóm, és azt szeretném hogy annyi Button jelenjen meg a Form-on, amekkora a szám.Aki másnak vermet ás az a Stack Pointer
-
Gyuri16
senior tag
const max = 10;
procedure TForm1.FormCreate(Sender: TObject);
var
i:integer;
begin
for i:=1 to max do
with TButton.Create(self) do
begin
Caption:='Button '+IntToStr(i);
Parent:=self;
Name:='Button'+IntToStr(i);
Left:=20;
Top:=i*30;
end;
end;Nem vagyok egoista, csak uborkagyalu!
-
félisten
Hali!
A FormCreate csak egyszer hajtódik végre, amikor a program indul, többször nem, és nem is lehet rá hivatkozni. Ez a kis példa arra jó, hogy bármilyen műveletet hajtasz végre az adatbázison, akkor automatikusan az Edit1-be bekerül az adott tábla rekordjainak száma.
(Ha ezt megérted, akkor pedig már egyszerűen a saját igényid szerint alkalmazhatod)procedure TForm1.FormShow(Sender: TObject);
begin
Edit1.Text:=IntToStr(Table1.RecordCount);
end;
procedure TForm1.DataSource1DataChange(Sender: TObject; Field: TField);
begin
Form1.OnShow(Self);
end;Fire.
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
félisten
Hali!
Nem tudom, milyen verziójú a Delphi, amit használsz, Én amit írok az a Delphi 7-re vonatkozik.
A Destroy parancs gyönyörűen működik, gond csak avval van, hogy hibát dob ki, ha nem létező komponensre hívom meg (pl: program indításnál).
Nem létező komponensnél persze hogy mindig hibát dob, ezért javasolnám a statikus megoldást. Tudod, hogy max hány kép szerepelhet egy autóról, a többi dolgot meg rábízod a az adatbázismotorra. DBImage komponenst kiraksz, amennyit maximalizáltál, aztán az autók képeit tartalmazó táblából meg betöltögeted a képeket.Kellene még egy olyan adatbázis formátum ami tud több mint 255 karakternyi string mezőt tárolni (
Paradox7 táblákkal szoktam dolgozni(hacsak az ügyfél nem ragaszkodott valamiért máshoz).
MEMO field a megoldáskésőbb megoldani hogy egy autóról több képet is be tudjak drag&droppolni
Bár azt nem igazán értem, hogy honnan-hova akarsz drag-drop, de az autók fényképeinek a tárolásához Paradox7, BINARY field. Ahogy a nevéből adódik, bináris adatok, amik lehetnek, kép, hang, program, weblap, stb....., tehát bármi.Fire.
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
félisten
-
félisten
Hali!
Van amikor valóban nem lehet elkerülni a karakterkódokat, az SQL parancs-sztringek esetében azonban(meg máshol is) a QuotedStr() függvény remekül alkalmazható...
Fire.
[ Szerkesztve ]
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
félisten
Hali!
1. Ha az egész táblához nem akarod, hogy hozzáférjen más, amíg Te dolgozol vele akkor használd az EXCLUSIVE tulajdonságot a táblán. (Delhi súgóban részletesen)
Ilyenkor semmilyen más alkalmazás nem férhet a táblához, vagy a komplett adatbázishoz.
(igaz csak Paradox ill. dabse táblákon megy, illetve nem minden SQL szerver ismeri(már ha használsz SQL szervert))
Ha esetleg az a gondod, hogy nehogy egyidőben szerkesszétek mondjuk ugyanazt a rekordot, akkor ezen nem kell aggódni, mert ezt a BDE lekezeli, mivel abban a másodpercben amikor EDIT módba állítod a rekordot(azaz szerkeszted) már lock-olja is, mindaddig amíg CANCEL vagy POST nem lesz. Ez idő alatt nem lehet hozzáférni a rekordhoz másnak.(a tábla más rekordjaihoz igen, csak ehhez nem)2. Itt remélem egyre gondolunk, azaz ha egy rekordnak pl 10 attributuma(oszlop, mező) van, és Te csak 1 attribot akarsz módosítani benne(a maradék 9-et nem) akkor természetesen van rá egyszerű megoldás. PL:
Table1.FieldByName("ATTRIBUTUM NEVE").asinteger:=1;Remélem jól értettem a kérdéseid...
Fire.
[ Szerkesztve ]
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
félisten
Hali!
Igen, jól írod, akkor csak az az egy módosul, de egyszerűbb lenne, ha nem Edit-et használnál, hanem DBEdit-et.
Ennek az objektumnak pont az a szerepe, hogy a rekord adott mezőjéhez lehet rendelni, azt automatikusan megjeleníti ill. EDIT módban módosíthatod a rekord aktuális mezőjét vele.
Így nem kell azzal foglalkozni, hogy egyenként beírd az EDIT-ekbe minden egyes mezőt, amit a form-on megjeleníteszFire.
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
félisten
Hali!
Az ötlettel nincs semmi baj, azt hiszem értem mit nem értesz, illetve hogy miért tetted fel a korábbi kérdéseid. Nézd el nekem(és ezt nem rosszindulatból mondom, segíteni szeretnék ha igényt tartasz rá), de azt hiszem, hogy bizonyos alapvető adatbáziskezelői dolgokkal nem vagy tisztában...ugyanis:
1. Mindegy hány adatbázisod van ill. azon belül hány tábla
2. Mindegy hogy megosztott vagy sem az adatbázis vagy akár egy tábla
3. Master-Detail kapcsolatokat pont erre találták ki, mi is az?
Adott pl 2 tábla, az egyik a Master(Mester, Fő, Elsődleges, Főnök ), a másik meg a Detail(részletek, alárendelt, másodlagos), amit Master-Detail kapcsolattal összekapcsolsz.
Ezt a táblák létrehozásakor(Database Desktop) és a Delphi projectben is meg kell tenni. Abból áll(legegyszerűbb esetben) hogy mind a Master, mind a Detail táblában van két egyforma mező, ami segítségével az "összekapcsolás" elvégezhető.(azt hogy hogyan, csak akkor írom le, ha igényt tartasz rá) Mire jó is ez?
Hát arra, hogy pl az esetedben az adott bérlőhöz tartozó autóbérletek jelenjenek meg, anélkül hogy Te kezelnéd le több táblából(macerás, meg felesleges amikor a BDE elvégzi helyetted). Aztán olyan előnye is van, hogyha pl 1000 emberke kibérelte ugyanazt a kocsit, mondjuk az ABC-123 rendszámút, aztán kiderül utólag, hogy annak a kocsinak XYZ-321 a rendszáma(mert pl valaki rosszul vitte be az adatokat ), akkor nem kell mind az 1000 embernél átírni a rendszámot, csak az autók táblában 1 helyen.(persze itt is vannak beállítási kérdések, meg mérlegelni kell hogy ez megengedhető-e egyáltalán)
4. A DBEdit, DBComboBox, DBMemo,stb nem okoz nekik gondot, hogy egy másik táblából vagy a Detail táblából megjelenítsenek, módósítsanak bármelyik mezőt.Fire.
UI: mégeszer mondom(írom), nem kioktatásnak szántam, csak pár alapvető dolog segítségével, sok felesleges, macerás, magában sok hibát rejtő, időigényes feladattól kimélheted meg magad....(nem beszélve arról, hogy Delphi-ben "így kell csinálni"...
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
-
seepheerd
csendes tag
Köszi!!! (Nem mindig van netünk itten)
Az a lényeg hogy GPS referenciát monitorozunk (12 órában 15 másodpercenként érkezik egy rekord), és ha a kód 1000-ről (ami jó) 100-ra vagy 0-ra vált, azokat a rekordokat kellene kipakolni másik file-ba hogy az időpontokat így egyszerűen kinyerhessük.
-
vz12
tag
Az eljárás hívása nem változik.
Az eljárás fejbe a paraméterlistába beletettem egy "VAR" szócskát mert az most szerintem kell. Módosítani kell a deklarációban is + a kódban is.Én eddig egyszerre 1 komponenst tudtam "lehúzni a formra", de annak nincs semmi akadálya hogy ha már lent van akkor CTRL-C + CTRL-V "módszerrel" szaporítsd őket, így lehet (újrakijelölésekkel) 1-ből 2, 2-ből 4-, 4-ből 8, stb. példány. A végén meg annyi amennyi még hiányzik. Kicsit biztosan egymásra rakja őket, utána el kell húzni a helyére.
[ Szerkesztve ]
Új hozzászólás Aktív témák
- Stellar Blade
- Futott egy Geekbench kört egy új HTC készülék
- Politika
- Kerékpárosok, bringások ide!
- Egészen nagy teljesítményspektrumon fedné le a mobil piacot az AMD
- Kamionok, fuvarozás, logisztika topik
- Debian GNU/Linux
- Proxmox VE
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Autós topik látogatók beszélgetős, offolós topikja
- További aktív témák...