- Igencsak szerény méretekkel rendelkezik az Aetina Xe HPG architektúrás VGA-ja
- Miniképernyős, VIA-s Epomaker billentyűzet jött a kábelmentes szegmensbe
- Különösen rendezett beltér hozható össze a Cooler Master új házában
- A középkorra és a pokolra is gondolt az új AMD Software
- Új gyártástechnológiai útitervvel állt elő a TSMC
- Projektor topic
- Rendkívül ütőképesnek tűnik az újragondolt Apple tv
- Milyen RAM-ot vegyek?
- Milyen billentyűzetet vegyek?
- Házi barkács, gányolás, tákolás, megdöbbentő gépek!
- Gaming notebook topik
- A Gigabyte is visszaveszi alaplapjainak alapértelmezett tuningját
- Übergyors Samsungnak próbál látszani egy hamisított NVMe SSD
- OLED TV topic
- Milyen nyomtatót vegyek?
Hirdetés
-
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 :)
-
Rossz üzlet az EV-kölcsönzés
it Küszködik az EV-kölcsönzés miatt a Hertz Global, még több EV-t adnak el.
-
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.
Új hozzászólás Aktív témák
-
Alan
aktív tag
lao ce, rég ''láttalak''
Bocsáss meg, hogy belefirkálok a programodba, de szerintem kicsit szebben így nézne ki:
const
szoveg = '11,10,09,08';
var
szamlalo : integer;
szamlalo := 1;
with Form1 do
for i := 0 to ComponentCount-1 do
begin
if Components i is TEdit
then
begin
(Components i as TEdit).Text := Copy(szoveg, szamlalo, 2);
szamlalo := szamlalo + 3;
end
end;
Ebből most már csak az hiányzik, hogy kizárólag a mi kinevezett szerkesztőmezőinkbe töltsön adatot, és így más mezőket is fel lehessen tenni az ablakra.
[Szerkesztve] -
Alan
aktív tag
Hát, több projektben is voltam, az tény, de az ''eltűnés'' igazi oka, hogy eléggé magam alá kerültem, meg a fórum sem vonzott annyira. Most is fejlesztek egyébként, meg a kedvem is kicsit feljavult---bár a helyzet semmit sem változott, de nem szabad attól függeni.
Nemrég teszteltem egyébként a Delphi 2005-öt, nagyon jó kis ware, különösen tetszenek a nyelvi újítások, a refactoring funkciók meg a SyncEdit, de lassúságban sajnos újabb, már-már hihetetlen csúcsot állít fel. Persze csak önmagához képest, mert ebben azért a VS.NET még mindig ''verhetetlen''
Ciao, majd még befigyelek egyszer-kétszer
[Szerkesztve] -
Alan
aktív tag
A debugolás nem vészes, hamar ráérzel és utána már nem is érted, mi volt előtte a gond.
Egy ilyen ciklusnál az i változását akkor látod, ha az ''i := i + 1;'' sorra teszed a töréspontot. Itt megáll a programod, a View menü Debug Windows almenüjéből bekapcsolod a Local Variables ablakot és abban máris kiírja az i értékét. Vagy, még jobb, ha ilyenkor, tehát megállított állapotban a programkódban az i fölé viszed az egered, kis sárga súgóban kiírja az i értékét. F8-cal és F7-tel tudod lépegetve végrehajtani a kódot, az F8 egyben végrehajt minden sort (vagyis pl. a metódushívásokat egyben ''lenyomja''), az F7 belelép mindenbe, akár Delphi VCL programkódjába is, tehát ez alaposabb, eleinte ne használd, mert megzavar. Szóval, ha a beállított sorodon megnyomod az F8-at, eggyel lejjebb lép a Delphi ( az ''end'' sorra), és az i kiírt értéke eggyel megnő.
Az egész akkor működik szépen, ha a programodhoz fordítottál debug infót (Project -> Options -> Compiler, ott a Debug information, Local symbols, Reference info, Use Debug DCUs lehetőségeket pipáld mind ki, utána Project -> Build).
Na?
[Szerkesztve] -
Alan
aktív tag
lao ce nyomdokain továbbgondolkodva talán nem is véletlen, hogy ''fanatikus tag'' a státuszod ;) A kitartásod és az erőfeszítésed tényleg csodálatraméltó. És ezt nem úgy értem, hogy ''jól van pistike, nincs is kockafejed'', hanem komolyan.
Szerintem ha a unit-ok tetejénél kommentekben megjelölöd a forrást, az teljesen OK. Azért értsd meg nagyjából, hogy mit csinálnak, mert szerintem erre is rákérdezhetnek.
A HelpScribble-t nem ismerem sajnos. Talán lao ce igen ;)
Amúgy milyen helpet csinálsz? .hlp lesz a kiterjesztése vagy .chm? A .chm súgók modernebbek és megírhatod sima HTML-ben, képekkel, mindennel, aztán egy ingyenes fordító csinál belőle .chm-et. Egyetlen hátránya, hogy Delphiből nehéz kontextusfüggő súgóvá gyúrni, tehát hogy pl. legyen egy kis kérdőjel az ablakok címsorának jobb oldalán és a program minden gombhoz, kezelőszervhez külön súgótémát mutasson a kérdőjel megnyomása után. Ha csak sima súgó kell, ami pl. F1-re megjelenik egy külön ablakban, akkor ajánlom ezt a HTML-es technikát, elég hatékony. -
Alan
aktív tag
Nyesed, lao ce, mint mindig ;)
Csak annyit hozzá, hogy ha a TEdit-hez hasonló osztályt szeretne az ember, akkor illik nem ebből, hanem a TCustomEdit-ből származtatni és csak a szükséges tulajdonságokat publikálni (így pl. ''el is rejthető'' a TEdit egy-két tulajdonsága).
Félek viszont, hogy a kérdezőnek komponensvágyai vannak, tehát hogy a saját osztályából egy ropogós friss példányt a TEdit helyett az egérrel feldobhasson a formjára, ahhoz viszont kell még egy-két dolog. Majd bekukkant és szól, ha így van
[Szerkesztve] -
Alan
aktív tag
Aha, remek, akkor teljesen jó lesz lao ce megoldása, csak csomagot is kell készítened meg Register eljárástz írnod a Delphi-be való telepítéshez, no meg az esztétika kedvéért kell .dcr fájl is. Tudsz komponenst csinálni, ugye?
Ha nem kell telepíthető komponens, egyszerűbb az élet, viszont kódból kell létrehoznod a saját szerkesztőmezőidet a saját konstruktorukkal (pl. HaniEdit1 := THaniEdit.Create(Self)), aztán feltenni őket az ablakaidra (pl. HaniEdit1.Left := 123; stb., HaniEdit1.Parent := Form1). Ez könnyebb, de az a hátránya, hogy tervezési időben nem látsz semmit. -
Alan
aktív tag
yksz, nem akarsz elolvasni előbb egy könyvet az objektumorientált fejlesztésről? Dicséretes, hogy próbálkozol, de hiányzik pár fogalom ismerete, ezek nélkül nagyon-nagyon sokáig kudarcra leszel ítélve. Először egy általános OOP könyvet javaslok, aztán hozzáfoghatsz pl. a ''Delphi 7 mesteri szinten'' című könyvhöz Marco Cantú-tól, és közben gyakorold a fejlesztést.
Természetesen mind így kezdtük, de azt meg te hidd el, hogy erőfeszítés, időbefektetés nélkül semmi sem fog menni. Olyan, hogy ma fogalmam sincs, holnap meg már értelmeset tudok alkotni, nem létezik.
[Szerkesztve] -
Alan
aktív tag
Rossz hírem van, szerintem az OK és Cancel gombokat kivéve maradna angolul, mert ez egyedi párbeszédablak. Ha borzalmasan sok időd lenne, azt mondanám, Resource DLL Wizard (azaz Project -> Languages -> Add, majd Hungarian 0x40e) és fordíts le mindent magyarra, de ettől most szerintem te is eltekintesz
A másik Rave Reports-os kérdést passzolom, nem használtam sosem.
Szurkolok neked, ismeretlenül is
[Szerkesztve] -
Alan
aktív tag
...ugyan a kutyát nem érdekli, de off-ban megjegyzem, hogy többek között az ilyenek miatt nem használom, sőt fel sem telepítem a Rave Reports-ot.
Mindenki szidja a QuickReports-ot, csakúgy, mint a BDE-t, de én mind a kettővel jól elvagyok. Tudni kell persze, mik a határok, de azok abszolút nem olyan szűkek, hogy ne lehetne megoldani velük a valódi problémák jó részét. A QuickReports nekem sokkal jobban tetszik, és szerintem te is, tusi74, sokkal jobban tudnád (majd a jövőben) használni.
Na megyek vissza robotolni ;)
[Szerkesztve] -
Alan
aktív tag
Királynő vagy, tusi74. Minden elismerésem, tényleg. Aztán ne rókázz sokat ;)
Mondjuk ezen a kódolós fedélzeten én már sokkal ritkábban nyomulok, mint pl. te, lao ce, régen még jobban bírtam A ''zsíros'' kóláról is átszoktam a lájt löttyre, mert híztam 15 kilót, persze ebben benne van a házasság is, meg a lustaság meg minden... És azt vettem észre, hogy már 8-10 óra fejlesztés után elfáradok, pedig a csúcsom 35 óra zsinórban, és a 14-16 meg se kottyant.
Kicsit sajnálom, hogy elmúltak a demós, örömfejlesztős, korrekt versenyes, valódi színvonalat értékelős, egymásnakkódotmegmutatós, mindentmeglehetmégcsinálni stílusú idők. De azért egy jó Delphivel felszerelve még most is klasszul meg lehet nyomni a gombot, nem igaz? -
Alan
aktív tag
lao ce, én általában hasraesek a programozónőktől Ritka, aki kitart és meg tudja oldani rendesen a dolgokat.
De a humorod az abszolút klasszikus Ismered egyébként a Calvin&Hobbes képregényt? Legjobb a világon. Abban vannak király sorozatok a női témában, persze nem programozónőkkel, hanem óvodásokkal, de a jelenség ugyanaz
Ha ismered, ennyi elég lesz, ha nem, akkor majd értekezünk -
Alan
aktív tag
Az az egyik jó dolog a programozásban, hogy mindent megcsinálhatsz, kipróbálhatsz és nincs komoly következménye, ha nem sikerült, ''letúrod'' és kezded elölről, ennél rosszabb nem történhet. Nincsenek fizikai törvények, amik korlátoznának - az életben nem tudok 150 m magasra felugrani, de a szoftverépítésben minden lehetséges.
Szóval nem kell pánikolni, ha valami nincs leírva, kitalálod, megcsinálod, és ha nem jó, továbbfejleszted. Ahogy csináltad ;) És így sokkal nagyobb is az öröm, ha működik a ''szoft'', úgy, ahogy megírtad.
Én egyébként a debugolástól rettegek mindig, vagyis attól, hogy lesz egy hiba a programban, amit nem fogok megtalálni. Ez egy ilyen irracionális félelem, tudod, mint amikor pl. valaki fél a liftben vagy a sötét, kis helyeken. Még sosem volt olyan hiba, amit ne találtam volna meg, de mégis mindig jön a pici gyomorgörcs, ha valami érthetetlenség történik a programomban
Amúgy ha még fogsz fejleszteni ezek után is, akkor ajánlom a Delphi 7 mesteri szinten c. könyvet (Marco Cantú), nagyon jó ez az egész sorozat. Sok példaprogram is van benne, amiket átírhatsz. Jó éjt, aludj még egy nagyot -
Alan
aktív tag
-
Alan
aktív tag
Elvileg szerintem nem neked kell bizonyítanod, hogy jó, hanem nekik, hogy rossz. A programod ott lesz mellékelve, az a bizonyíték, ha akarják, kipróbálhatják.
Tudom, hogy egy kicsit elvetettem a sulykot, de mit csináljak, belelkesedtem, mert tetszik a munkád. De szerintem sincs már idő arra, hogy mindent teljesen végigcsinálj, csak az a lényeg, hogy te ismersz tesztelési módszertant és ezt ők is lássák. Szóval nem kell annyira aprólékosan, mint amit itt írsz (16 -> 17), hanem inkább olyanokat írj le, hogy a bonyolultabb SQL utasításokat milyen tesztadatokkal próbáltad ki, a futási időben felépített SQL-ek minden ágát kipróbáltad-e és ha igen, milyen paraméterekkel. Aztán egyszerűen megállapítod, hogy erre is, arra is működött. S persze képernyőfotók mindig jól jönnek , ha még van idő a cicomára. -
Alan
aktív tag
Jó ötlet!
Még ha van kedved, azt is megcsinálhatnád, hogy a futási időben összeállított SQL parancsok végleges alakját írja ki erre a formra, pl. egy TMemo komponensbe. Tudod, olyan SQL Monitor-szerűségre gondolok, amivel bárki ellenőrizheti, hogy az összeállított SQL parancsok helyesek-e. A három DBGrid-es tesztformodtól, meg ettől a monitortól vérprofin fog kinézni a tesztelés. -
Alan
aktív tag
(Ha sok időd lenne, akár IFDEF-ekkel is megcsinálhatnád, és akkor kettő helyett egy programod lenne, amit pl. parancssorból -debug paraméterrel vagy debug build opció beállításával lehetne teszt üzemmódban is futtatni. De most már ezt ne, inkább majd a következő projektjeidnél.)
-
Alan
aktív tag
''es tarsat talalni a legnehezebb. kerdezd alan-t''
Akkor kérdezem Alan-t. Miért olyan nehéz társat találni?
Nehéz kérdés... bár tudnám, miért van ez. Fiatalon könnyebb. Minél hamarabb kezded, annál jobb az esélyed. Mi lao ce-vel már lassan súroljuk a felső határt, amikor még esélyes a dolog. Te viszont szerintem elég fiatal vagy, úgyhogy csak igyekezz, találj embereket, akiknek van energiájuk és idejük, hasonló témák érdeklik és rendesek, becsületesek, szorgalmasak, segítőkészek, nem ufók, nem hülyék, nem hagynak ott, ha baj van... és dolgozzatok együtt, tapasztaljátok ki egymás stílusát, csináljatok sok közös projektet. És akkor lehetsz a magad ura, saját cégért dolgozhatsz, ami azért nem megvetendő. -
Alan
aktív tag
Adj valami bővebb kódot, ennyiből nem lehet elég jól megállapítani, hogy mi a gond. A ''Close'' helyett mindenképpen írd azt, hogy ''Application.Terminate''. Ha zavar, hogy ilyenkor hirtelen megjelenik, majd eltűnik a főform, csináld azt, hogy pl. ''Halt(1)'' a ''Close'' helyett, erre durván (vagyis nagyon duLLLván) kilép a program. Ez utóbbi nem mindig célszerű, látatlanban nem tudom, hogy milyen struktúrájú a programod, lehet, hoyg access violation lesz a vége.
Amúgy pedig debug infóval fordítsd le (Project -> Options -> Compiler -> Debugging csoportban mindenhová pipa, majd Project -> Build), lépésenként futtasd (F8 billentyű), menj bele a kérdéses részbe, és nézd meg, hogy a kivétel pontosan hol keletkezik. Az is lehet még, hogy nem a te try..except..end blokkodabn keletkezik a kivétel, vagy valahol máshol van egy üres except..end kivételkezelő, ami ''megeszi'' a kivételedet és már nem jut el a kezelődhöz. -
Alan
aktív tag
válasz Drótszamár #456 üzenetére
Hallgass Szalmára, nagyon jól mondja. StretchBlt() a te barátod, vagy inkább StretchDraw(), ha nem akarsz ennyire mélyre fúrni. A TBitmap-eket menet közben is létrehozhatod, sőt elég belőle összesen 2 vagy 3, aztán majd ezekben váltogatod a képeket körbe-körbe (double/triple buffer).
[Szerkesztve]
Ja, és olvass doksit, próbálkozz, kísérletezz, abból tanulsz csak. Ha a fórumon válaszolunk neked, abból nem tanultál sokat, legközelebbre elfelejted. Nem lesz a tiéd a tudás, csak felhasználod.
[Szerkesztve] -
Alan
aktív tag
válasz Drótszamár #461 üzenetére
Persze, OK, én is kérdezgetek fórumokon, csak nem voltam biztos benne, hogy szerinted sem pótolja ez a kutatást. De most már tudom, hogy szóval vedd úgy, hogy nem szóltam semmit
-
Alan
aktív tag
Pont ezt akartam javasolni (Application.OnMessage), csak elaludtam, _AnTi_ megelőzött
Még egyszerűbb egyébként az ApplicationEvents komponens használata, aminek az OnMessage eseményét kell ugyanígy megadni. Arra vigyázni kell, hogy borzalmasan gyakran (akár másodpercenként ezerszer) fog meghívódni az ide helyezett rutin, ezért nagyon áramvonalasra kell megírni. -
Alan
aktív tag
Tetszik a nyelvi leleményem, mi? Csak azért, hogy ne unatkozzon nagyon, aki olvassa
Egyébként amit a debugolásról írsz, az a szívemből szól. Gondolkodni kell, különben az ember elhülyül az automatikus kiegészítőktől, a CodeRush automata mindenféléjétől, ami persze szükséges, mert ha már egyszer használtad, nem bírod ki nélküle, de nem szabad rögtön a debuggerhez kapni meg átírni úgy, hogy nem is értem, mi volt a probléma. OK, van, hogy fél nap elmegy egy problémára, de ha megoldod, annál jobb nincs.
Én e-mailt csak akkor írok mondjuk valami supportnak, ha biztosan tudom, hogy az idegen kód a hibás, kinyomoztam, hol a hiba és tudom vagy legalább sejtem, hogy lehetne kijavítani. Addig inkább küzdök, és közben rájövök egy csomó hasznos mindenfélére.
Kár, hogy amikor ''termelni'' kell, nincs idő és az ember ráfanyalodik a borzalmakra, mindenfélék bemásolására kipróbálás nélkül és egyebek, fujj. Azért ezt igyekszünk leszorítani jól -
Alan
aktív tag
Egy lehetőség: tegyél fel egy TPaintBox komponenst a kívánt méretben, alá egy gombot (Button1), majd a következő kódot írd bele a programodba:
...
var ABitmap: TBitmap;
...
procedure TForm1.Button1Click(Sender: TObject);
begin
ABitmap := TBitmap.Create;
ABitmap.LoadFromFile('c:\temp\kép.bmp');
PaintBox1.Canvas.Draw(0, 0, ABitmap);
end;
Ekkor ''normálisan'' kirjazolja a képet. A 0, 0 helyére kell beírnod a kívánt koordinátákat az eltolt rajzoláshoz.
Aztán persze lehet továbbfejleszteni, a koordinátákat más kezelőszerv állásához vagy az egér mozgásához kötni lenyomott bal gomb esetén stb. -
Alan
aktív tag
Hát... ehhez én első lépésben a TXMLDocument komponenst ajánlom (Internet fül a komponenspalettán). Nem vészesen bonyolult a használata, itt egy kis példa neked kiollózva egy régebbi programomból:
procedure AddNodesToTree(From: IXMLNode);
var i: integer;
CurrentXMLNode: IXMLNode;
begin
for i := 0 to From.ChildNodes.Count-1 do
if From.ChildNodes[ i ].NodeName = 'keresettcimke'
then begin
CurrentXMLNode := From.ChildNodes[ i ];
// adatfeldolgozás a CurrentXMLNode alapján
// pl. valami := CurrentXMLNode.Attributes[ 'egyikattributum' ] ;
// valami2 := CurrentXMLNode.Attributes[ 'masikattributum' ] ;
end;
if CurrentXMLNode.HasChildNodes then AddNodesToTree(CurrentXMLNode);
end;
...és ezt a rutint így hívnám meg:
AddNodesToTree(XMLDocument1.DocumentElement, nil);
Remélem, olvasható marad a kód...
[Szerkesztve] -
Alan
aktív tag
Szia tusi, jól elmerültél a diplomamunkában, te szegény.
Szerintem ez nem offolás, jó helye van itt a kérdéseidnek, úgyhogy leírom az egy-két vérszegény ötletemet:
1. BDE
Amit btotyi mondott, az nagyon jó. A BDE egy egységes programozói felületet adó, fizikai adatbáziskezelést elszigetelő szoftverréteg, nagyon sok relációs adatbázismotort támogat, ráadásul ODBC-n keresztül bármilyen adatbázishoz illeszthető (még pl. vacak Excel fájlokhoz is), így elvileg univerzális programot tudnál írni, ami nulla vagy minimális módosításokkal használhat DB2-t, Oracle-t, Interbase-t, Sybase-t vagy akár a jó öreg Paradox táblákat (legjobb , ami a kis helyi adatbázisok kezelésére abszolút megfelelő és kényelmes.
(A legnagyobb hátránya egyébként szintén ebből a funkciógazdagságból adódik: egyrészt nagyon komplex, már nem is fejlesztik tovább, másrészt maga a BDE motor nem tud rendes kétfázisú tranzakciókezelést, harmadrészt a teljesítménye és megbízhatósága bizonyos rekord/felhasználószámig nagyon jó, utána viszont hirtelen letörik, ami általában nem elfogadható. Én szeretem amúgy, a határain belül igazán jó kis adatbázismotor. Tapasztalatom szerint kb. 10-15 user és 15-30.000 rekord/tábla a maximum, utána dögvész.)
2. TStringGrid
Nehéz kérdés, hiszen a DBGrid-et pont adatbáziskezelésre találták ki... mondjuk mondd azt, hogy rugalmatlannak találtad és a TStringGrid viselkedése, a megjelenítés, az adatbázis-illesztés sokkal jobban testreszabható (ami igaz is). Erre sajnos valószínűleg azt fogják mondani, hogy nem biztos, hogy megérte a rengeteg pluszmunkát, mert annyival nem lett jobb a szoftver, amennyi extra időt a TStringGrid-es megvalósítás elvitt, és igazuk lesz, de majd mosolyogj szépen -
Alan
aktív tag
Tusi, megértelek. Ha ott lettem volna, biztos pofán vágom.
De nem az számít, hogy mit csinált az a majom, meg mit gondolt a bizottság, még csak nem is a jegy. Az számít, hogy megcsináltad. Lehet, hogy neked úgy tűnt, hogy nem sikerült jól, de szerintem igenis bizonyítottál.
Gratulálok, és ha tanítani fogsz, nevelj jó diákokat, olyan kitartókat és lelkeseket és fejlődőképeseket, mint te -
Alan
aktív tag
Milyen igazad van, ezt a sima igazítást én sem merném bonyolultnak nevezni.
Most éppen szétáll a fejem, ilyeneket kell írnom, hogy
''if not Assigned(TcxCustomGridTableView(AFocusedView.PatternGridView.
Clones[ i ]).Items[AFocusedView.Controller.FocusedItem.Index].Properties) then TcxCustomGridTableView(AFocusedView.PatternGridView.Clones[ i ]).
Items[AFocusedView.Controller.FocusedItem.Index].PropertiesClass :=
TcxMemoProperties;''
és hasonlók, ezer sorokon keresztül. És még ez is hol van az igazán bonyolulttól. Na megyek iszom valamit, mert leszakad a fejem...
[Szerkesztve] -
Alan
aktív tag
válasz atm*RefeeZ #952 üzenetére
v_ki.Lines[0] := v_be.Text;
Új hozzászólás Aktív témák
- Seasonic Focus GX 850 Gold - 10év papíros garanciával, újszerű állapotban, dobozában!
- GIGABYTE RTX 3070 GAMING OC 8GB GDDR6 SAMSUNG OC 256bits eladó!
- Asus VivoBook PRO - 14" 2.8k OLED / i5-11300H / 16Gb DDR4 / 512Gb NVME / RTX 3050 / HUN / 1.45 kg
- Alphacool Eisbaer LT360 vízhűtés
- O-K-G gép I5 7.generációs eladó, ajándék Logitech G102 Lightsync gaming egér és RGB gaming billentyű