valaki nem tudja megmondani, hogy hogyan lehet megadott ideig késlelteni két parancs között? mint pl a pascalban a delay...
</end.?>
valaki nem tudja megmondani, hogy hogyan lehet megadott ideig késlelteni két parancs között? mint pl a pascalban a delay...
</end.?>
Timerrel. De azért itt ez nem olyan eccerű. ha sokszor akarsz késleltetni, akkor vagy sok timert kell rápakolni a formra, vagy 1 timert kell úgy megírni, hogy mindíg jó programrészlet hajtódjon végre. (pl case segítségével )
( 2b || !2b ) az itt a kérdés...
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
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!
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
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!
TDBLookupComboBox komponens a Data Controls fülröl kell neked.
de akkor semmi, csak kissé writeonlyban voltam
[Szerkesztve]
Y N W A
Valami ilyesmire ([link]) gondoltál?
Upsz!
Tudom, hogy most vannak az Ünnepek, de egy segítőkész Delphi-s Tudor igazán megszánhatna.
Igen ilyesmire gondoltam, nagyszerű. Köszi szépen és boldog új évet!
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!
'' ADOTable esetén ez a bookmarkosdi nem igazán jön össze valamiért ''
Dobj fel egy újabb ADOTable-t, és használd azt a feltöltéshez (most hirtelen jobb nem jut az eszembe). Módosítottam a kódot (ld. link).
[Szerkesztve]
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?
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.)
Elvileg talán a DBTable-t is le lehetne vhogy. szűrni, hogy mindent csak egyszer írjon ki, de ez most nem jut eszembe. Helyette próbáld meg SQL Query-vel (módosítottam a demo.zip-et).
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!!!
''Lot of thanx a segítségért!!!''
Nincs mit!
Remélem nekem is fog tudni majd valaki segíteni. [link]
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???
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!
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?
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.
Köszi a választ. Közben sikerült Outlook segítségével.
Ú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
[link] DbGrid színezés sok példával.
nekem pontosan arra a példára kell megoldás. A kegyetlen jó angol tudásommal nem sokra megyek azzal a linkkel
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.
DrawColumnCell procedura az honnan van. El kell valamit helyezni még a formon, vagy csak be kell gépelni?
A DataControls komponenspalettán található DBGrid komponens Event-jei között találod az OnDrawColumnCell eljárást.
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
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!
Miért nem teszed be a képeket egy resource fileba, aztán töltöd be futás közben, az ImageList ResourceLoad segítségével? [link] például.. Szal megszerkeszted szépen a Resource filet a képekkel, aztán meg {$R -el behívod, majd resourceLoad.Próbáld ki.
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;
Ez most komoly, hogy senki se akar segíteni?
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.
Már tényleg szemtelen vagyok.
Itt van a példa [link] amit csináltam, ha esetleg lenne időd és belenéznél, hátha van ott valami, amit elrontottam, és azért nem működik.
Letöltöttem, este ha hazaérek megnézem.
Én barom. Az eventsben nem állítottam be. Már minden ok. Bocs, hogy ilyen hülyeség miatt írtam.
Ú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...
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.
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.
Hogy lehet letíltani a billentyűzetet egy saját programnál.
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]
***
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.
Talán itt: [link]
***
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....
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
...
Köszönöm szépen! Tökéletes a megoldásod! Tényleg köszi!
Működik is ahogy kell !!!!
[Szerkesztve]
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.
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.