Hirdetés
Új hozzászólás Aktív témák
-
ReJim
őstag
valaki nem tudja megmondani, hogy hogyan lehet megadott ideig késlelteni két parancs között? mint pl a pascalban a delay...
</end.?>
-
Drótszamár
őstag
-
corm
senior tag
Van viszont egy sleep nevezetű fv. használata: sleep(szám);
Ám ekkor minden megáll. Ha azt akarod, hogy az egyik parancs várjon csak mondjuk 1 secet, akkor valóban timer. Vagy ha az a process amire várni kell küld valamiféle ''készvagyok'' szignált, akkor egy sima ciklus is elég...
[Szerkesztve]Y N W A
-
<Adamsky>
nagyúr
Sziasztok!
A következőben kérném a nagyérdemű segítségét:
A helyzet az, hogy eddig csak apróbb - egy gépes - programokat írogattam Delphiben, és most egy olyan feladatom lenne, melyben a hálózati kommunikációt is meg kellene oldanom.
Az egész tulajdonképpen egy vizsgáztató rendszer. Van egy ''szerver'' progi, melyhez kliens (max. 50) gépek csatlakoznak. A vizsga kezdetén a kliens gépek bejelentkeznek a szerverre, majd az átküldi a kérdéseket (szöveg & kép). A vizsga végén a kliens gépek visszaküldik a szervernek a kitöltött tesztlapokat, és kész. A kérdésem az, hogy milyen adatbázist (BDE, Interbase (Firefox) - ezeket ismerem) és módszert használjak a feladat megoldásához. Jó lenne, ha tudnátok ajánlani vm. jó könyvet, linket ami segít a megoldásban, vagy ami még jobb lenne az egy példaprogram.
Válaszokat előre is köszönöm! -
corm
senior tag
Tudja valaki, hogy hogyan lehetne egy paradox táblában (table-datasource combo) random bejegyzéseket kiadogatni, egyszerűen? Találtam egy moveby eljárást, csak ezzel némileg körülménes a megvalósítás. A mezőkre meg direktbe nem lehet hivatkozni sajna, legalábbis eddig nem találtma
[Szerkesztve]Y N W A
-
wolffy
aktív tag
Sziasztok!
Tudna nekem valaki segíteni abban, hogy miként valósítható meg, hogy egy mezei ComboBox elemei pl. egy gomb megnyomására egy adattábla x mezőjének rekordjai legyenek. Az alábbi értékadással már annyit sikerült elérnem, hogy az x mező egy rekordjának értékét felvegye a ComboBox elemének, de nekem az összes kéne.ComboBox1.Items.Text:=DataModule1.table.Fields[4].Text;
DBComboBox-ot ismerem, de anélkül kellene a feladatot megvalósítani.
Válaszokat köszi! -
wolffy
aktív tag
válasz <Adamsky> #1058 üzenetére
Nos a gond csak annyi a példával, hogy én ADO-t használok és nem BDE-t. DBTable esetén a példádban OK a dolog, de ADOTable esetén ez a bookmarkosdi nem igazán jön össze valamiért.
A konkrét megoldandó probléma egyébként annyi lenne, hogy van egy ComboBox és Button. Ha a Button-re kattint a user, akkor a ComboBox feltöltődik egy ADOTable segítségével hivatkozott adattábla első mezőjének adataival.
Ha tudnál segíteni, klassz lenne. Köszi! -
wolffy
aktív tag
válasz <Adamsky> #1062 üzenetére
Bocsi, valamit elnéztem, sikerült újabb ADOTable feldobása nélkül is. Működik a dolog ahogy kell, viszont még valamit nem vettem figyelembe. A hivatkozott mezőben ugyanaz a rekord többször is előfordul. (pl. egy típusmegnevezés akár 40-szer előfordulhat, mivel két készülék típus lehet ugyanaz, a gyári szám különbözteti meg őket, ami egy másik mező) Na lényeg a lényeg, hogy érhető el, hogy ugyanaz a rekord csak egyszer szerepelje a ComboBox-ban?
-
wolffy
aktív tag
Hát nem egy nagy programírás, de a probléma megoldására dobtam még egy ADOTablet-t ami egy külön táblára hivatkozik amit a lehetséges típusnevekkel töltöttem fel. Így tuti, hogy egy név csak egyszer jelenik meg. Én jobb megoldást nem tudtam rá. (Egyéni szegénység tudom.)
-
wolffy
aktív tag
válasz <Adamsky> #1065 üzenetére
Na igen, így is lehet. Én is gondoltam az SQL-re de nem is volt rossz ötlet az új tábla a lehetséges típusnevekkel, mert így már a felvitelnél is tudom a usert kényszeríteni egy DBComboBox-szal, hogy a típusneveket egyféle formában vigye fel. (Ne legyen az egyik kis-, a másik nagybetűvel, vagy keverve.) Lot of thanx a segítségért!!!
-
wolffy
aktív tag
Tud-e valaki megoldást?
Van egy programom, ami ADOTable alapján hivatkozik egy Access (*.mdb) adatbázis egyik táblájára. Nem tudok rájönni mi lehet a hiba, ugyanis nem mindig jelentkezik a dolog, de jobbára időnként akkor jön elő, amikor a kész program használata során új rekordot veszek fel (append eljárással). Ekkor egy hibaüzenet kinyögi, hogy ''xy table not in edit or insert mode''. Mi okozhatja ezt a jelenséget??? -
d-j
csendes tag
Sziasztok!
Nekem is ADO-s programmal kapcsolatosan van egy kérdésem. Nem tudom hogyan valósíthatnám meg a következőket:
Van egy ACCESS adattáblában néhány mező, mely ADO-val van egy Delphi-s progihoz kapcsolva. Az egyik mező a sok közül az azonosító tárolására szolgál. Lehet két egyforma azonosító, azonban ekkor a státusz mező adattartalma eltér a rekordban. Mikor új rekordot vesz fel a felhasználó, a progin keresztül és megad egy már létező azonosítót akkor nyögni kéne a programnak egy üzenetet a képernyőre, hogy xy azonosítómár van felvéve, yx státusszal.
Légyszi aki tud segítsen ennek megvalósításában! Nagyon fontos lenne! Köszi! -
Metalwarrior
tag
Helló!
Meg lehet azt oldani delphiben, hogy egy adatbázisból kiolvassa, hogy pl. februárig ki fizetett be az összeget, aki meg nem fizetet annak küld e-mailt? -
Diskcopy
tag
válasz Metalwarrior #1070 üzenetére
Hi! Ez csak egy sima sql-es lekérdezés. Lekérdezed az adatbázisból az olyan mail címeket, ahol a dátum későbbi mint február az akt évnek és fizetett. Ha az sql-t nem ismered, akkor sem túl nehéz.. select ez, meg az, meg amaz from táblánév where dátum dátumfeltétel, és fizetve. pontosan nem tudom megmondani, mivel nem ismerem a tábládat, tábláidat, lehet joinolni is kell, ha többen van. Utánna a mail küldés sem nehéz, smtp komponenssel,vagy akár beépített levelezővel. Keress rá neten: Delphi mail send. sok példa lesz előtted.
-
Metalwarrior
tag
Újabb gond.
if cikk.FieldValues['mail'='xxx@x.x' then ennek a rekordnak a betűi más színnel legyenek kiírva.
valahogy így dbgrid1.ez a record.font.color:=szín -
Diskcopy
tag
válasz Metalwarrior #1073 üzenetére
[link] DbGrid színezés sok példával.
-
Metalwarrior
tag
nekem pontosan arra a példára kell megoldás. A kegyetlen jó angol tudásommal nem sokra megyek azzal a linkkel
-
wolffy
aktív tag
válasz Metalwarrior #1075 üzenetére
Ha jól értem, valami ilyesmire van szükséged:
procedure Tform1.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if DataModule1.Table1.Fields[0].Value='x@y.com' then
DBGrid1.Canvas.Font.Color:=clRed;
end;
Ez egy eljárás ami egy formon elhelyezett TDBGrid, DrawColumnCell eseményére van ''ráhegesztve''. Ha az adott mező rekordja eleget tesz a feltételnek, akkor piros színt kap. -
wolffy
aktív tag
válasz Metalwarrior #1077 üzenetére
A DataControls komponenspalettán található DBGrid komponens Event-jei között találod az OnDrawColumnCell eljárást.
-
Metalwarrior
tag
Ha a table1.DefaultIndex false-ra állítom a griden nem jelenik meg semmi, ha true akkor megjelenik a tábla, de nem tudja festeni
-
corvin
csendes tag
Hello!
Delphiben irok egy programocskat, amiben szerepelnek képek díszítésként. Ezeket a képeket, szegélyeket ImageList-be raktam, ahonnan hívogatom....A gondom az,h a nagyobb (2294x19) képeknél, a projekt mentésekor v. a compilernél lefagy a program. Szükségem van ezekre a képekre, és nemszeretnék más módszert, mert mindent ImageList rendszerrel csináltam... A képeknek rontottam a minőségét is (kisebb memóriahasználat végett), de nem segített!
Help! -
-
Metalwarrior
tag
Már lassan kezdek idegesítő lenni , de még mindig van egy kis gond:
DBGridet DBGrid1DrawColumnCell segítségével festem. Mindent szépen megcsinál, de ha a gridet egy Pagecontrolba teszem akkor már nem csinál semmit.
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
If Table1.FieldValues['AREA' < 1000000
then If Column.FieldName = 'Area'
then DBGrid1.Canvas.Brush.Color:= clAqua
else DBGrid1.Canvas.Brush.Color:= clWhite;
If gdFocused in State then DBGrid1.Canvas.Font.Color:= clred;
DBGrid1.DefaultDrawColumnCell(rect, DataCol, Column, State);
end; -
Metalwarrior
tag
Ez most komoly, hogy senki se akar segíteni?
-
wolffy
aktív tag
válasz Metalwarrior #1082 üzenetére
Hát nem igazán tiszta előttem miért nem műxik neked a dolog. Az elvileg nem kéne, hogy befolyásoló tényező legyen, hogy PageControl-on vagy Form-on van a DBGrid. Nekem is PageControl-on van és működik.
Talán próbáld ki, hogy mikor a Table1-re hivatkozol, a Table1 név elé beírod az adatmodul, vagy egyéb Form nevét és utána egy pontot, ahol a Table1 található. Ha nincs a Table1 külön adatmodulban, készíts egyet. Én mindig adatmodulba szoktam rakni. Most jobbat nem tudok. -
wolffy
aktív tag
válasz Metalwarrior #1085 üzenetére
Letöltöttem, este ha hazaérek megnézem.
-
Metalwarrior
tag
Én barom. Az eventsben nem állítottam be. Már minden ok. Bocs, hogy ilyen hülyeség miatt írtam.
-
wolffy
aktív tag
válasz Metalwarrior #1087 üzenetére
Úgy van! Semmi gáz. Épp most néztem meg a letöltött anyagot és akartam visszaírni, mikor látom a válaszod. Örülök, hogy magadtól rájöttél. Legközelebb figyelj jobban. Majd szólsz ha elakadsz...
-
Jégkokó
veterán
Nekem most nagyon sűrgősen kéne segítség a delphiben.Nem tudja valaki, hogy honnan tudnám eltölteni,nekem jó a trial verzió is mert nem akariok vele komolyan foglalkozni.Ha valakinek lennének documentumai ilyen alap dolgokról és ezek megoldásával akkor annak nagyon örülnék.
A főnök tekintete mindig nyílt és őszinte. Vagyis egyik szeméből a nyilt gonoszság a másikból az őszinte rosszindulat sugárzik.
-
Jégkokó
veterán
Nem tud senki se , olyan programokat amikből meg tudnám érteni ennek az egésznek a lényegét?Nekem olyan kéne, hogy van a feladat és részletesen el van magyarázva, hogy mi kell csinálni meg ilyenek
A főnök tekintete mindig nyílt és őszinte. Vagyis egyik szeméből a nyilt gonoszság a másikból az őszinte rosszindulat sugárzik.
-
sipis
csendes tag
Hogy lehet letíltani a billentyűzetet egy saját programnál.
-
MODERÁTOR
válasz Jégkokó #1089 üzenetére
Van Delphi 2005 Personal, ami ingyenes otthoni és tanulási célokra. Sajna nem lehet letölteni, de átmásolhatod mástól, majd a Borlandtól legálisan lehet kérni regisztrációs kódot hozzá.
Hogy honnan tudnád megtanulni? Keress rá google-vel, millió oldal foglalkozik vele, még kezdőknek is. Remélem tudsz angolul...
Kezdésnek: [link]***
-
Jégkokó
veterán
Az igazat megvalva eddig amit sikerült vele megcsinálnom, az az volt, hogy egy gombnyomásra kijöjjön a dvd meghajtó és egy másikra meg vissza menjen, és volt még egy kilépés gomb is.Nekem azért elsősorban magyar oldal kéne, mert ugy többet tudnék belőle tanulni
A főnök tekintete mindig nyílt és őszinte. Vagyis egyik szeméből a nyilt gonoszság a másikból az őszinte rosszindulat sugárzik.
-
mandrake83
csendes tag
Sziasztok! Van egy problémám amire biztos tök egyszerű a válasz, de valahogy nem bírok rájönni... Van egy listboxom amihez egy gombra kattintva különböző feliratú elemeket adok hozzá. ez így néz ki, pl.:
listbox4.items[listbox4.items.count]:=' valami '
Idáig semmi gond, megy is szépen. a gond a törlésnél jelentkezik amit egy másik gombra kattintva szeretnék előhívni. simán DeleteSelected()-el nem tudom törölni sajna, mert vizsgálnom kell azt is, hogy milyen feliratot törlök, ugyanis ez további folyamatokhoz vezet majd. Ha például a ''valami'' feliratú elemet törlöm akkor vegyen el egy számból mondjuk 10-et, de ha nem ''valami'' feliratú elemet törlök akkor ne csináljon semmit. (A listában mindenféle feliratú elem van, nem csak a ''valami'' feliratú). a törlés így néz ki:
for m:=0 to listbox4.items.count-1 do
begin
if (listbox4.selected[m]) and (listbox4.items[m]='valami') then
begin
listbox4.DeleteSelected;
szam:=szam+10;
end;
end;
A törlés működik és el is veszi a szam változóból a 10-et, de MINDIG CSAK AKKOR HA AZ UTOLSÓ ELEMET TÖRLÖM. Tehát 3 elemű listából a 3-at törlöm, majd a 2.-at, majd az 1-t akkor működik minden. De ha én a 3 elemű listából az elsőt akarom törölni akkor leáll a program a ''List index out of bounds(2)'' hibaüzenettel.
Remélem érthető voltam, és köszi előre is a segítségeteket, mert már fél napja gondolkozom és próbálkozok de nem jön össze.... -
g4dg3t
senior tag
válasz mandrake83 #1095 üzenetére
A gond az h lepteto ciklust hasznalsz es a cikluson belul torlod az elemet.
Ha peldaul a 2. korben (m=1) torlod a 2. elemet akkor az utolso korben (m=2) a
if (listbox4.selected[m]) and (listbox4.items[m]='valami') feltetel hibat fog okozni, mivel az Items[m] (m=2) kifejezessel kimutatsz a tombbol (ugyebar a tomb az elozo torles miatt (n-1) elemszamu lett).
Vagy atszervezed a ciklusod, vagy kiegeszited a felteteled egy plussz vizsgalattal igy:
...
if (m < Listbox4.Items.Count) and (Listbox4.Selected[m]) and (Listbox4.Items[m] = 'valami') then begin
... -
Jégkokó
veterán
Engem az érdekelne, hogy hogy tudom azt megoldani, hogy az Edit 1 ben szereplő számot el tudjam osztani 8 al és ezt a edit 2 be szeretném ki irtatni
A főnök tekintete mindig nyílt és őszinte. Vagyis egyik szeméből a nyilt gonoszság a másikból az őszinte rosszindulat sugárzik.
-
Jégkokó
veterán
Nehogy már senki se tudja a problémámra a megoldást.Ezt nem hiszem el
A főnök tekintete mindig nyílt és őszinte. Vagyis egyik szeméből a nyilt gonoszság a másikból az őszinte rosszindulat sugárzik.