Hirdetés

2024. május 3., péntek

Gyorskeresés

Hozzászólások

(#1651) Fire/SOUL/CD válasza Prego (#1650) üzenetére


Fire/SOUL/CD
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ás

ké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)

(#1652) Prego válasza Fire/SOUL/CD (#1651) üzenetére


Prego
senior tag

Én most CodeGear 2009-et használok
Úgy tűnik sikerül megoldanom a dolgot, Létrehozok egy dinamikus array of "Componentname"-t és avval lehet buherálni. [link]
Talán más is hasznát veszi.

Aki másnak vermet ás az a Stack Pointer

(#1653) btotyi válasza Prego (#1652) üzenetére


btotyi
tag

Dinamikus tömb a D7 óta támogatott.

(#1654) Prego válasza btotyi (#1653) üzenetére


Prego
senior tag

Az egy dolog, csak én eddig sima ciklussal, tömb nélkül hoztam létre a formon a komponenseket, a bajok akkor jöttek elő, amikor az adatbázisban változatásokat eszközöltem, és az összes komponensnek megváltozott a helyzte egymáshoz képest, mivel a Destroy parancsot nem lehet csak úgy kiadni.
Most viszont egyszerűen felszabadítom a töböt, aztán újra létrehozom a komponensekkel. ...

Aki másnak vermet ás az a Stack Pointer

(#1655) btotyi válasza Prego (#1654) üzenetére


btotyi
tag

Ha egy konténer objektumra (form, panel stb.) teszed a kontrollokat akkor elég csak a konténert felszabadítani ( Release v Destroy) és az szépen elvégez minden szükséges munkát.

[ Szerkesztve ]

(#1656) OtheriS


OtheriS
csendes tag

Sziasztok!
Nem tudom mennyire tudtok nekem segíteni, mert én már mindent megpróbáltam, de ha nagyon off a dolog akkor BOCSI!!!!
Adott egy program, ami Delphiben lett írva (nem én készítettem) és MSSQL adatbázist használ. Egy szokásos progi, elindítod, beírod az elérési utat(az .exe mellett van egy .ini fájl ami a belépési adatokat tartalmazza és nem kell mindig beírogatni), utána belép és szépen veheted fel Pl.: a rendeléseket. A következő a probléma, a windowsal történt vlami (elvileg vírus) de a lényeg hogy nem is indult el az MSSQL. Jól van szépen lementettem az adatbázist, majd windows reinstall szépen visszatöltöttem a dolgokat és próbálom ugye elindítani a progit. Az ini fájl ugyanott, semmit sem változtattam rajta, de egyszerűen nem olvassa ki ezeket a belépési adatokat (Provider, Adatbázis, Kiszolgáló, Login és a Pass). És fogalmam sincs miért, nem túlságosan értek hozzá ezért azon agyalok, hogy esetleg el volt mentve vlami a régi adatbázisban, ami arra mutat, honnan olvassa ki az adatokat. Lehet ilyen esetleg?
Képek: [link]
Előre is köszi a segítséget. :R :R :R :R

(#1657) Fire/SOUL/CD válasza OtheriS (#1656) üzenetére


Fire/SOUL/CD
félisten

Hali!

Az a prog amit használsz, egész biztosan telepítős változat volt. Amikor Delphi-be készítenek egy adatbáziskezelő alkalmazást, akkor csak installos válzotban adják át az ügyfélnek, mivel ahhoz hogy egy adatbázist elérj(kezelj) ún. adatbázismotorok kellenek.
(Delphi esetén a leggyakoribb a BDE - Borland Database Engine). Ezeket az adatbázismotorokat telepíteni kell. (ezeken keresztül lehet elérni az adott típusú adatbázist, kezelni az ALIAS, SESSION stb "tulajdonságokat")
hiába mented le az adatbázist meg a programot, egy teljes win telepítés után az adatbázismotor már nem lesz fenn a gépen. Ezért ezt csak úgy oldhatod meg, ha programot újratelepíted(már ha megvan a telepítős változat)

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)

(#1658) csewe


csewe
csendes tag

sziasztok
az lenne a kédésem,hogy tedit és tmemokomponensekben lehet e betüméretert állítani,és ha igen hogyan.

(#1659) _AnTi_ válasza csewe (#1658) üzenetére


_AnTi_
tag

Szia!

Mindkét komponensnél a font.size-al tudod módosítani a betűméretet. Pl.:

memo1.font.size:=12;

Az egyetlen gond ezzel a két komponenssel, hogy ha változtatod a betűméretet, akkor az összes benne lévő szöveg mérete módosul.

Nézz körül a richedit környékén, ha kicsit többre vágysz!

Szép vagyok és okos, ügyes és aranyos...

(#1660) superbutt


superbutt
csendes tag

Sziasztok!
Hogy tudok Lisbox-bol Fájlba menteni, Memobol megvan: Memo1.Lines.SaveToFile(SaveDialog1.Filename+'.TXT'); De a listbox tartalmát sehogyse tudom kimenteni.

előrre is köszi

üdv : super

[ Szerkesztve ]

" Van olyan ember aki szüzen hal meg, vagyis soha nem szexel életében?" Igen. Programozók és World of Warcraft játékosok.

(#1661) Fire/SOUL/CD válasza superbutt (#1660) üzenetére


Fire/SOUL/CD
félisten

Hali!

ListBox1.Items.SaveToFile('C:\a.txt');

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)

(#1662) superbutt


superbutt
csendes tag

Köszi szépen :)

" Van olyan ember aki szüzen hal meg, vagyis soha nem szexel életében?" Igen. Programozók és World of Warcraft játékosok.

(#1663) superbutt


superbutt
csendes tag

Egy adatbáziskezelő programot kellene írjak, tudtok valami támpontokat adni hogy kezdjem el az adatbázis megtervezését!(Elvileg valami feladatspecifikációt kellene irjak, de nemtom ez pontosan mitjelent... :( ) Ez egy autonyilvántarto program lenne, ahol a kocsi adatait(rendszám,futott km,megtett km,sofőr neve...) kellen adatbázisba foglalni. :F
A válaszokat priviben ha lehetne... :)

Előrre is köszi

üdv : super

[ Szerkesztve ]

" Van olyan ember aki szüzen hal meg, vagyis soha nem szexel életében?" Igen. Programozók és World of Warcraft játékosok.

(#1664) superbutt


superbutt
csendes tag

Sziasztok!
Adabázis-ok közül mit ajánaltok? FireBird? InterBase? MySQL? Fontos lenne hogy minél egyszerűbb és átláthatóbb legyen. Személyes tapasztalatokat is szivesen veszek :)

" Van olyan ember aki szüzen hal meg, vagyis soha nem szexel életében?" Igen. Programozók és World of Warcraft játékosok.

(#1665) Keem1 válasza superbutt (#1664) üzenetére


Keem1
addikt

Az attól függ, hogy egygépes/lokális, vagy távoli eléréses (is) elérésű legyen.
Ha utóbbi, és kezdő vagy, akkor leginkább MySQL-t tudom ajánlani, mivel nagy közössége van, egy nagyon jól használható, erős és gyors adatbázis kiszolgálást ad, számos nyelvvel, platformon használhatod, nem utolsó sorban mivel elég népszerű, számos magyar nyelvű dokumentáció és fórum is elérhető hozzá. Emellett számos előnye is van még.
Talán elfogultság szól belőlem (évek óta használom), de kétségtelenül jó választás lehet a MySQL többfelhasználós környezetben.
Ha egyfelhasználó, csak a készülő programnak kell, akkor valamelyik beépített Delphi-s adatbáziskezelőt javaslom.

(#1666) superbutt válasza Keem1 (#1665) üzenetére


superbutt
csendes tag

köszi szépen :)

" Van olyan ember aki szüzen hal meg, vagyis soha nem szexel életében?" Igen. Programozók és World of Warcraft játékosok.

(#1667) cellpeti


cellpeti
veterán

Sziasztok!

Én anno tanultam Delphit,de most újra el szeretném kezdeni. Tudtok hozzá valami jó könyvet,esetleg internetes anyagot ajánalni? :U

Tigris, tigris, csóvafény...

(#1668) cellpeti


cellpeti
veterán

Sziasztok!

Nekem lenne egy ilyesmi gondom XP-n. De nem tudom mi lehet a baj. Valakinek ötlet?

Tigris, tigris, csóvafény...

(#1669) Fire/SOUL/CD válasza cellpeti (#1668) üzenetére


Fire/SOUL/CD
félisten

Hali!

Rég találkoztunk...(persze én vagyok elfoglalva)
Nem tudom milyen delphit telepítesz, de az eredeti delphi 7(nekem jogtiszta van Enterprise) biztosan nem hoz létre semmilyen temp állományt RARSFX1 könyvtárba... :N
Szóval, ha ez nem eredeti szoftver, akkor szerintem csak ez a gond...

Fire.

UI: küldtem privet

[ 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)

(#1670) cellpeti válasza Fire/SOUL/CD (#1669) üzenetére


cellpeti
veterán

Szia!

Tényleg rég taliztunk. Otthon van egy 6os Delphi,de gondoltam,ha felmenne az újabb,azért az jobb lenne. Akkor majd otthon felnyomom! :U

Tigris, tigris, csóvafény...

(#1671) Torry


Torry
addikt

Hi all!
Kellene egy gyors segítség.
Ezen a képen az autókölcsönző menüt szeretném valahogy betenni középre, hogy ne ott felül legyen.
Hogyan tudnám?

Előre is kösz!

(#1672) Fire/SOUL/CD válasza Torry (#1671) üzenetére


Fire/SOUL/CD
félisten

Hali!

Erre gondolsz? Tehát egy bárhova elhelyezhető Mainmenüt akarsz csinálni?

Ha igen, akkor írj, holnap leírom, hogy lehet megoldani egyszerűen.
(most hulla fáradt vagyok, a gépeléshez... :o )

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)

(#1673) Prego


Prego
senior tag

Memo box-ba (illetve Stringbe) akarok iratni aposztrofot tenni (SHIFT+1), mi a kódja?
Köszi

Aki másnak vermet ás az a Stack Pointer

(#1674) Fire/SOUL/CD válasza Prego (#1673) üzenetére


Fire/SOUL/CD
félisten

Hali!

$27 vagy decimálisan 39

De simán duplázni kell csak... példul:
Memo1.Lines.Add('''aaaaaaa''');

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)

(#1675) Prego válasza Fire/SOUL/CD (#1674) üzenetére


Prego
senior tag

Köszi, a #$27 volt a jó megoldás.
Sajnos az SQL házimhoz kell rekordokat generáltatnom (100 darabot vigyen fel kézzel a ...)
Memo1.Lines.Add('INSERT INTO rent VALUES('+#$27+bYY+bMM+bDD+#$27+','+....)
Szal a ''' kiakadt. Mindegy ....
Köszi

Aki másnak vermet ás az a Stack Pointer

(#1676) Fire/SOUL/CD válasza Prego (#1675) üzenetére


Fire/SOUL/CD
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)

(#1677) seepheerd


seepheerd
csendes tag

Halihó!

Egy szövegfile-t kellene beolvasnom (comma separated), majd adott oszlopok numerikus adatai alapján szűrni a rekordokat és kimeneti file-t készíteni az eredményről. Hol találok rutinokat, vagy oktató cuccokat a neten?
(Vagy hat éve elkezdtem foglalkozni Delphivel, akkor apróbb dolgok mentek is, de sajna azóta nem volt időm, most viszont nagy segítség lenne ez a kis progi itt a sivatagban.)

(#1678) Prego válasza seepheerd (#1677) üzenetére


Prego
senior tag

Ha a vesszővel elválasztott rekordok beolvasása okoznak gondot:

type konyv = record
szerzo : string;
nev : string;
ar : word;
end;

while not eof(f) do
begin
inc(i);
readln(f,s); //beolvassuk s segésztringbe az aktuális sort
t[i].szerzo := copy(s,1,pos(',',s)-1); //a pos fv. megmutatja hogy hányadik bötű a ,
delete(s,1,pos(',',s));
t[i].nev := copy(s,1,pos(',',s)-1);
delete(s,1,pos(',',s));
t[i].ar := strtoint(s);
end;
closefile(f);

Aki másnak vermet ás az a Stack Pointer

(#1679) seepheerd válasza Prego (#1678) üzenetére


seepheerd
csendes tag

Szia!

Ez már megvan, szupi! Most szűrni kellene aztán file-ba írni :)

(#1680) Prego válasza seepheerd (#1679) üzenetére


Prego
senior tag

procedure TForm1.Hozzrs1Click(Sender: TObject);
begin
Assignfile(f,'c:\Temp\adat.txt');
append(f);
seek(f,Filesize(f)); ///evvel megyünk a szöveges fájl végére ....
Write(f,Eidt1 text+' '+Edit2.text);
Closefile(f);
end;

Hát ezt a szűrést konkrétan nem értem, de nem is a szöveges fájlkezelés témakörbe tartozik ....

Aki másnak vermet ás az a Stack Pointer

(#1681) Prego


Prego
senior tag

Ha már itt vagyok, felteszek két kérdést:
-Hálózatos progit írok (BDE), az adatbázis fájlok (.db, meg a képek és a PDOXUSRS.LCK) azon a gépen vannak egy megosztási mappában (sima XP prof), amelyik a legtöbbet fogja használni őket, viszont van egy másik XP-s gép (amin a progit fejvesztem), meg a főnök Vistás masinája. Úgy oldottam meg hogy minden tranzakció előtt tábla.open, utána meg tábla.close. gondolom elég kicsi a valsége annak hogy két ember tizedmásodperces pontossággal akarja ugyanazt a táblát használni, vagy érdemes lenne mindenféle Timert beleépíteni a progiba?

-Ha a felületen módosítom egy rekord valamelyik attribútumát (legtöbbet Editboxban), visszaírásnál az egész rekordot vissza kell írnom, vagy van olyan eljárás ami megjegyzi melyik editbox tartalma lett módosítva és nem kell annyi kódot kopizni?

Köszi

Aki másnak vermet ás az a Stack Pointer

(#1682) Fire/SOUL/CD válasza Prego (#1681) üzenetére


Fire/SOUL/CD
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)

(#1683) Prego válasza Fire/SOUL/CD (#1682) üzenetére


Prego
senior tag

Az első kérdésben akkor megnyugodtam.
A második nem is az adatbázis részben fontos, hanem az hogy beolvasok és kiiratom a 10 attributumot a formra, 10 EditBoxba, majd a Formon átírom az egyik értékét, és amikor a modosít gombra kattintok, ne mind a 10 attríbutumot írja felül, csak azt amelyiknek megváltozott a tartalma, tehát ne az legyen a módosítás kódja hogy:
Table1.FieldByName("ELSŐ ATTRIBUTUM").asinteger:=1;
Table1.FieldByName(" MÁSODIK ATTRIBUTUM").asinteger:=1;
Table1.FieldByName("HARMADIK ATTRIBUTUM").asinteger:=1;
Table1.FieldByName("NEGYEDIK ATTRIBUTUM").asinteger:=1;
Table1.FieldByName(" ÖTÖDIK ATTRIBUTUM").asinteger:=1;
Table1.FieldByName("HATODIK ATTRIBUTUM").asinteger:=1;
....

hanem csak
Table1.FieldByName("EDITHEZ TARTOZÓ ATTR").asinteger:=Megváltoztatott Edit;

Aki másnak vermet ás az a Stack Pointer

(#1684) Fire/SOUL/CD válasza Prego (#1683) üzenetére


Fire/SOUL/CD
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ítesz

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)

(#1685) Prego válasza Fire/SOUL/CD (#1684) üzenetére


Prego
senior tag

Hát akkor ötlet elvetve, mert több táblából dolgozik a gép (autók+bérlők = bérlés)
szal van ComboBox is ....

Aki másnak vermet ás az a Stack Pointer

(#1686) Fire/SOUL/CD válasza Prego (#1685) üzenetére


Fire/SOUL/CD
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 :DDD ), 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 :DDD ), 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"... :R

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)

(#1687) Prego válasza Fire/SOUL/CD (#1686) üzenetére


Prego
senior tag

Köszi az elméletet, lehet majd nyáron átbabrálom a szakdogámat. Suliban még nem volt téma ez a mestertábla, sőt arra ösztökélnek minket hogy összetett kulcsokat használjunk, majd akkor utánanézek ennek is ... :R

Aki másnak vermet ás az a Stack Pointer

(#1688) seepheerd válasza Prego (#1680) üzenetére


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.

(#1689) nszabolcs


nszabolcs
tag

Helló!

Nekem egy olyan problémám van, hogy van egy formom, rajta egy DBGridem. És azt nem tudom, hogy hogyan lehet azt megoldani, hogy az ablak méretezésével együtt a grid mérete is ugyanúgy változzon.

Szabolcs

(#1690) nszabolcs válasza nszabolcs (#1689) üzenetére


nszabolcs
tag

Mivel módosítani nem tudom, ezért így írom le.
Amit kérdeztem, az már megoldódott, viszont most olyan kellene, hogy egy kijelölt sor első field-jébe levő értéket hogyan tudom megkapni.
Előre is köszi a segítséget!

(#1691) Prego válasza nszabolcs (#1690) üzenetére


Prego
senior tag

DBGrid1.SelectedRows.Items[1];
A baj evvel csak az hogy Byte típusú értéket ad vissza.

Aki másnak vermet ás az a Stack Pointer

(#1692) Prego


Prego
senior tag

A képen a (teszt)adatbázis látható, gondolom minden kiderül róla.
A bajom az, hogy amikor azt a parancsot adom ki hogy:
SELECT WORK FROM service.db WHERE PLATE ='KWG-183'
Akkor kiakad, Invalid use of keyword Token: WORK Line Number: 1
Ha SELECT * al próbálom megoldani, akkor mindent szupi, meg akkor is ha a WORK kivételével az összes mezőt beteszem a SELECT-be.
Adatfelvitelnél már nem is említem hogy kiakad ...
Mégse akar képet ... Paradox 7 Tábla, TQuery komponens, SDATE (dátum), PLATE (AlphaNumerikus(7)), WORK(Alphanumerikus(100), PRICE(Number) mezőkkel.

[ Szerkesztve ]

Aki másnak vermet ás az a Stack Pointer

(#1693) Prego válasza Prego (#1692) üzenetére


Prego
senior tag

Oké megoldóttam, átneveztem a WORK-ot SWORK-re és már ment is. Gondolom valami foglalt szó lehetett.

Aki másnak vermet ás az a Stack Pointer

(#1694) Prego


Prego
senior tag

nah újabb probléma: olyan kis progit fejlesztek, ami különböző helyeken található exe fájlokat indítana el. Próbáltam már a ShellExecute és a CreateProcess parancsokat, de mindkettő rosszúl akar működni. Vázolom:
Van a login.exe, ami futtatná a többit (6 gomb van rajta ...)
Van a cars.exe egy másik mappában, ami használ különböző fájlokat (relatív hivatkozással). A database.dat fájlt, ami az adatbázisok helyét mutatja meg teljesen jól működik, az adatokat lekéri, van viszont egy olyan jpg fájl, ami a beviteli formon jelenik meg, amikor alaphelyzetbe hozom. Ez utóbbit viszont a login.ex mappájában keresi.
Valami ötlet ha érthető voltam? :D

Aki másnak vermet ás az a Stack Pointer

(#1695) nszabolcs


nszabolcs
tag

Helló!

Egy beadandó programom helyi mysql adatbázist használ, viszont ezt át kellene alakítanom olyanra, hogy távoli adatbázist is el tudjak érni vele. Kerestem, hogy hol lehet ilyet beállítani, de nem találtam. Ha valaki segítene az nagyon jó lenne.
Előre is köszi!

Szabolcs

(#1696) Prego


Prego
senior tag

Érdekes: két táblát használok: az egyikben az autók szerviztörténete található, minden tevékenységhez tartozik egy ár is (service.PRICE) A teszttáblába 9 rekord található, az árak 100 ... 900 (egyszerűség kedvéért az összegük 4500).
A másik tábla a házipénztárat tárolja (kivétel, betét) (cash.EPRICE)

Ha azt a parancsot adom ki hogy:
SELECT
SUM(service.PRICE)
FROM service
Akkor kiadja a 4500 (jó) megoldást. Ha viszont azt adom meg hogy:
SELECT
SUM(service.PRICE)
FROM service, cash
akkor már 9000-et ad vissza (akkor is ha még csinálok egy lekérdezést a cash táblából).

Aki másnak vermet ás az a Stack Pointer

(#1697) Prego válasza Prego (#1696) üzenetére


Prego
senior tag

Asszem ki kell egészítenem avval hogy a lekérdezéshez a:
DataModule2.Query1.Active := False;
DataModule2.Query1.Active := True;
Megoldást használtam, de az ExecSQL parancsot is próbáltam

Aki másnak vermet ás az a Stack Pointer

(#1698) #95904256


#95904256
törölt tag

Sziasztok!

Hogyan lehet ellenőrizni futásidőben azt, hogy egy objektum rendelkezik-e egy bizonyos property-vel vagy sem?

szerk.: Valami hasonló az elgondolásom:

if assigned(object.property) then ...

...csak ugye ez nem működik, mert inkompatibilis.

[ Szerkesztve ]

(#1699) Prego válasza #95904256 (#1698) üzenetére


Prego
senior tag

nincs valami olyan hogy NOT NULL, vagy pl if Edit1.Text<>'' then

Aki másnak vermet ás az a Stack Pointer

(#1700) Fire/SOUL/CD válasza #95904256 (#1698) üzenetére


Fire/SOUL/CD
félisten

Hali!

Megoldható emígyen:

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
ListBox1: TListBox;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

Uses TypInfo;

procedure TForm1.Button1Click(Sender: TObject);
var i:Integer;
begin
with Form1, ListBox1 do begin
Clear;
Items.Add('A form1-en található komponensek száma: '+IntToStr(Form1.ComponentCount));
for i:=0 to Form1.ComponentCount-1 do begin
Items.Add(Form1.Components[i].Name);
with Form1.Components[i] do begin
if GetPropInfo(ClassInfo, 'WordWrap')<>nil then Items.Add('VAN WordWrap tulajdonsága')
else Items.Add('NINCS WordWrap tulajdonsága');
end;
end;
end;
end;

end.

Delphi 7 ben íródott.

Kell egy TButton(Button1), TEdit(Edit1) és TListBox(ListBox1) a Formra(Form1).
Ami végülis a lényeg, az a GetPropInfo() függvény
A ComponentCount függvénnyel lekérjük a Form1-en lévő komponensek számát, majd egyenként végigmegyünk rajtuk egy ciklussal, és lekérjük az infót az adott tulajdonságról. Itt a WordWrap tulajdonságot ellenőriztem, ha a GetPropInfo nil értékkel tér vissza, akkor nincs ilyen tulajdonsága az adott komponensnek.
(Itt csak a Button-nak van ilyen tulajdonsága)
Ahhoz hogy használni tudd, kell ez a Unit: Uses TypInfo;

A kód szerintem érthető, tisztán látszik hogy kell használni, ha mégsem akkor persze írj nyugodtan.

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)

Copyright © 2000-2024 PROHARDVER Informatikai Kft.