Hirdetés
-
AMD Radeon undervolt/overclock
lo Minden egy hideg, téli estén kezdődött, mikor rájöttem, hogy már kicsit kevés az RTX2060...
-
Érkezőben a Poco M6 4G
ma 5G-s és 4G-s Pro modell már van, hamarosan lesz Poco M6 4G-s alapváltozat is.
-
Miniképernyős, VIA-s Epomaker billentyűzet jött a kábelmentes szegmensbe
ph A megfizethető, szivacsokkal jól megpakolt modell ötfajta kapcsolóval és kétféle színösszeállítással/kupakprofillal szerezhető be.
Új hozzászólás Aktív témák
-
ViragL
tag
Hi!
Automatizálni szeretném a tesztelést Delphi alatt, elsősorban a DUnitra gondoltam, mint esztközre. Problémám, hogy nem látom át teljesen a működését (a dokumentációja kicsit vérszegényre sikerült). Ha valaki tudna segíteni néhány kérdés/válasz erejéig, kérem szóljon! thx -
ViragL
tag
válasz Terrorista #1266 üzenetére
Milyen komponenseket célszerű használni illetve hogy fogjak hozzá.
guglit kérdezd meg, pl ''web services delphi''
sorry, csak ennyit tudok segíteni, nem foglalkozok webes alkalmazásokkal -
ViragL
tag
válasz Terrorista #1274 üzenetére
-
ViragL
tag
Nem ma kezdtem a programozást, a Delphit is tolom kb 4 éve, de halvány lila gőzöm nincs róla, hogy a forráskód és a hozzá fűzött szöveg között mi a kapcsolat..
A ciklusod végtelen lesz, bár nem tudom mit is akar csinálni, ha L-hez mindig csak hozzáadsz akkor az egyre nagyobb lesz, több helyiérték = nagyobb hossz, tehát H monoton nő.
Újra kéne gondolnod az algoritmust.
[Szerkesztve] -
ViragL
tag
1, írtam, hogy nem ma kezdtem a Delphit, tehát a változók tipusát kitaláltam magamtol. Tehát az újbol beírt kód nem mond semmi újat.
2. abbol, hogy :
''A ciklusod végtelen lesz, bár nem tudom mit is akar csinálni, ha L-hez mindig csak hozzáadsz akkor az egyre nagyobb lesz, több helyiérték = nagyobb hossz, tehát H monoton nő.'' mit nem értessz?
A ciklusod azért lesz végtelen, mert L -hez mindig hozzáadsz valamit, így egyre nagyobb szám lesz, így egyre hosszabb string lesz belőle, tehát a hossz, amitöl a while ciklusod futása függ mindig nagyobb lesz mint egy, sőt szigorúan monoton nő az értéke.
3. az egész algoritmusnak semmi köze ahoz amit csinálni akarsz, az a baj, hogy gőzöd nincs róla, hogy mit csinál az amit írtál. HA mégis, akkor írd le nekem néhány mondatban, hogy elnézést tudjak kérni. -
ViragL
tag
válasz Calogero #1291 üzenetére
Query sehogy nem fogja neked megoldani a dolgot, javaslom, hogy kliens oldalon egy beszúró rendezéssel korigáld a hibás sorrendet. Tehát pl. a Query eredményével feltöltesz egy StringGridet, majd az ékezetes filmcímeket beszúrod a megfelelő helyre. Kib*szott lassu lesz a betöltés, de más ötletem nincs most hirtelen.
MOD: Ja de van még egy, ha nem ragszkodsz a Paradox-hoz, akkor használj pl. FireBird-et, ott tudsz írni egy tárolt eljárást ami adatbázis oldalon megcsinálja neked a szükséges rendezést. Ez a megoldás gyors és szép.
[Szerkesztve] -
ViragL
tag
Forrás: Jon Erik Oterhals Utolsó módosítás: 1998. december 17.
A fájl utolsó hozzáférésének (használatának) időpontját az alábbi eljárással tudod megjeleníteni. (A kérdéses fájl nevét (elérési útját) az AnyFile.FIL helyére kell behelyettesíteni.)
procedure TForm1.Button1Click(Sender: TObject);
var
FileHandle : THandle;
LocalFileTime : TFileTime;
DosFileTime : DWORD;
LastAccessedTime : TDateTime;
FindData : TWin32FindData;
begin
FileHandle := FindFirstFile('AnyFile.FIL', FindData);
if FileHandle <> INVALID_HANDLE_VALUE then
begin
Windows.FindClose(Handle);
if (FindData.dwFileAttributes and
FILE_ATTRIBUTE_DIRECTORY) = 0 then
begin
FileTimeToLocalFileTime(FindData.ftLastWriteTime,
LocalFileTime);
FileTimeToDosDateTime(LocalFileTime,
LongRec(DosFileTime).Hi,LongRec(DosFileTime).Lo);
LastAccessedTime := FileDateToDateTime(DosFileTime);
Label1.Caption := DateTimeToStr(LastAccessedTime);
end;
end;
MOD: gugli tudja
[Szerkesztve] -
ViragL
tag
válasz szabi244 #1315 üzenetére
Gombnyomásra tallózás ablak és a tallózás eredménye az edit mezőbe? Ha igen, akkor attol függően, hogy milyen tallózó ablak kell adj hozzá a formhoz egy OpenDilalog/SaveDialog-ot vagy bármely más dialogot, a gomb OnClick-jébe pedig pl.
if OpenDilalog1.Execute then
Edit1.Text := OpenDialog1.Filename;
Remélem segítettem.
[Szerkesztve] -
ViragL
tag
Nos a problémád oka az, hogy nem a megfelelő Delphi verzióval akarod fordítani a netröl leszedett programokat. A külömböző Delphi verziók nem véletlenül külömböző verziók. Semmi nem garantálja, hogy a külömböző verziókban a függvények és egyéb eszközök specifikációja, működése megegyezik.
-
ViragL
tag
Jól érted, nem teljesen kompatibilisek az egyes Delphi verziók. A fejlődés során sok mindent újraírtak, megváltoztattak, így valóban van egy StrPCopy() függvény mindegyik Delphi SysUtils unitjában, az nem egyezik meg azzal amit a másik Delphi verzióban megírt program használni akar. A neve ugyanaz, de a szignatúrája külömbözik, ha jobban megnézed. Így, mivel Delphiben (is) túlterhelhetőek a nevek, a fordító nem azt a függvényt keresi, ami a SysUtilsban van, hanem egy olyat keres, aminek a szignatúrája megegyezik a hívott függvény szignatúrájával és mivel olyat nem talál, azt mondja, hogy nem deklarált eszközt akarsz használni.
MOD: nem egy egzakt megfogalmazás, de remélem érthető a lényeg.
[Szerkesztve] -
ViragL
tag
A szignatúra az eljárás/függvény neve+ a formális paraméterek száma és tipusa + függvényeknél a visszatérési érték tipusa. (a teljesség igénye nélkül )
Ja, vagy írj saját függvényt, vagy keress egyet amivel megfelelő tipusura tudod konvertálni a nem megfelelő tipusu paramétert. Azt hiszem PChar -> PAnsiiChar konverterre lesz szükséged. A FillChar-ral is ugyanez a teendő. -
ViragL
tag
Szerintem nagy fába vágta a fejszét, amit meg szeretnél valósítani (hozzászólásaid alapján) az nem csak egy kis ''heggesztés'' lesz, hanem komolyabb tudást igényő feladat. Tehát, nem tudom az elméleti háttérrel hogy állsz, ha hiányosnak érzed, akkor javaslok egy cikket, szerintem olvasd át, ártani nem árthat (anno az egyetemen ez volt a szakirodalmunk hálózat gyakorlathoz..nc)[link] Nem Delphis cikk, csak a hálózati kommunikáció működését mutatja be.
Sajna ennyit tudok segíteni. Jut eszembe, ha jól emlékszem a Delphi demó projektek között van valahol egy p2p messenger program. Asszem.
Sok sikert. -
ViragL
tag
válasz Tomcat13 #1347 üzenetére
3. feladat (másolva a helpből)
var
FromF, ToF: file;
NumRead, NumWritten: Integer;
Buf: array[1..2048] of Char;
begin
if OpenDialog1.Execute then { Display Open dialog box }
begin
AssignFile(FromF, OpenDialog1.FileName);
Reset(FromF, 1); { Record size = 1 }
if SaveDialog1.Execute then { Display Save dialog box}
begin
AssignFile(ToF, SaveDialog1.FileName); { Open output file }
Rewrite(ToF, 1); { Record size = 1 }
Canvas.TextOut(10, 10, 'Copying ' + IntToStr(FileSize(FromF))
+ ' bytes...');
repeat
BlockRead(FromF, Buf, SizeOf(Buf), NumRead);
BlockWrite(ToF, Buf, NumRead, NumWritten);
until (NumRead = 0) or (NumWritten <> NumRead);
CloseFile(FromF);
CloseFile(ToF);
end;
end;
end;
2. feladat hoz annyit tudok mondani, töltsd fel a 2 lisBxot ugyanannyi elemmel, majd az OnCLick és OnKEyUp eseményekben állítsd be a másik ItemIndex propertyjét az esemény tulajdonosának ItemIndex értékére.
1. feladat. pakold a neveket egy tömbbe, lehetőleg dinamikusba, egy listBoxba pakold bele őket. (.items.add). tegyél ki egy gombot, onclick eseményben listBox törlése (.items.clear) a tömb rendezése majd pakold vissza a listboxba a rendezett tömb elemeit.
nincs most több időm erre, használd a helpet! bocs az esetleges szintaktikai hibákért. soksikert -
ViragL
tag
Alap.
-
ViragL
tag
A cortonaSDk-t nem ismerem, de amikor hasonló problémával találtam magam szembe anno, az volt a probléma, hogy a futtatható álományon kivül kellett még néhány egyéb cucc is a program futtatásához. Az én esetemben néhány DLL-kellett pluszba, szerintem neked is hasonló problémád van.
Csak tipp, mivel nem ismerem a cortonaSDK-t, hogy nem elég feltelepíteni, újra is kell fordítani, hangsúlyozom, ez csak tipp.
A klikkelős kérdést nem értem, ki klikkeljen és hova? A felhasználó a program területén valahova, vagy a program klikkeljen a területén belül valahova, esetleg kivülre?
[Szerkesztve] -
ViragL
tag
válasz goldboy #1383 üzenetére
''nem tudjuk megjeleníteni delphiben'' ez a modatrész nagy fejtörést okozott számomra , de aztán leesett, vagyis remélem. Tehát, gondolom a btotyi által írt programokról van szó, nos ha megnézed a kódot, kiderül belőle, hogy ezek konzolos alkalmazások {$APPTYPE CONSOLE}, ami azt jelenti, hogy nincs grafikus felületük, tehát nincs is mit megjeleníteni (legalábbis abban az értelemben, ahogy te vártad), ezek a programok parancssorból futtathatóak.
A topic célja nem az, hogy megírjuk hejetted a programot, hanem az, hogy segítsünk, ha problémába ütközöl. Segítünk, ha tudunk, de szerintem veled eszaladt kicsit a ló, a hangvételed és hozzáállásod is hagy kivánni valót maga után. Ha segít valaki, azt puszta szívjóságból tesz, ennek megfelelően kéne hozzáállni.
[Szerkesztve] -
ViragL
tag
válasz goldboy #1389 üzenetére
Nem lecsesztelek, csak megjegyeztem, hogy bántja a szemem valami. Dolgozok, egyetemre járok, szabad időmben szivesen segítek itt ph!-n, ha tudok. Szivesen csinálom, de ha nem tetszik valami azt is megmondom, ez természetes, nem kell belőle nagy ügyet csinálni. Nem zaklatás, ha írsz a topikba, arra való, ha valakit nem érdekel amit írsz, az nem szól hozzá.
-
ViragL
tag
A klikkelős dolgot még mindig nem értem pontosan, ha a felhasználót szeretnéd rávenni, hogy klikkeljen akkor ''mond meg neki mit csináljon'' pl. ShowMessage() ablakban.
Ha azt akarod, hogy a program ''magátol'' klikkeljen valamire, akkor hivd meg annak az objektumnak az OnClick() eseményét, pl self paraméterrel. -
ViragL
tag
Kikeresed az aktuális fontban a neked kellő karakter kódját, aztán az edit KeyDown metódusát megírsogatod. Annyit kell beleírnod, hogy, ha azt a billentyüt nyomja le a júzer, amit ki akarsz cserélni a sajátodra, akkor a Key paraméternek az új karakter kódját adod meg. Tipp, mert nem csináltam még ilyet, próbát megér. remélem értehtő
-
ViragL
tag
A 2. problémához annyit fűznék hozzá, hogy HA megoldható, akkor ne futásidőben hozd létre a gombokat stb, hanem használj statikus eszközöket, és futásidőben csak a Visible propertyjüket állítgasd. Ha ez megoldható, ez gyorsabb szebb és biztosnágosabb megoldás lesz, ráadásul sok macerától mented meg magad.
[Szerkesztve] -
ViragL
tag
Ok, csak javaslat volt.
Egyébként a Delphi helje a Borland büszkesége lehet, az egyik legjobb, ha nem a legjobb. A dinamikus tömbre konkrétan emlékszem, hogy nagyon szépen le van írva. A filelistás dolgot is megtalálod a helpben, ha szerencséd van van hozzá példakód is az alapján el kell, hogy boldogulj.
[Szerkesztve] -
ViragL
tag
Nem konkrétan delphi, de mivel úgyis elsősorban delphisek használnak IB-t vagy FireBirdet, ezért itt is megkérdezem: Van itt olyan ember aki IBExpertet használ?
-
ViragL
tag
Hajrá! Nemtudom mennyire lesz összetett a program amit csinálsz, az általad talált delay függvényt sem ismerem, de így látatlanban azt mondom, hogy problémás lesz a dolog. Gondolom a jó öreg ''pascalos'' delay-t ültette át valaki delphibe, ha igazam van akkor az aktuális szál működését függeszti fel a paraméterben megadott időre, ha ez így van, akkor, mivel egy szálad van összesen az egész program működését felfüggeszti arra az időre, ergo se menü se semmi nem lesz használható addig. Nekem sok bajom volt vele anno, csak azért írom ezt ide, hogy ha hasolót tapasztalsz, tudd miért van.
MOD: nem off
[Szerkesztve] -
ViragL
tag
Van egy hatalmas problémám BDS2006 alatt, a probléma tehát a következő:
Adott 1 form, amin van 1 TdxDockSite , amelyre Align = alClient. A docksite-ban van
1 TdxDockPanel.
Ha ebből a formból származtatok egy új formot, és ráteszek még 1
dockpanelt, akkor látszólag minden rendben, szépen le is dokkolja, úgy
ahogy azt eredetileg akarjuk, de amikor el akarom menteni a formot, akkor a következő kivételt dobja: ''A component named dxDockPanel1 already exists''.
A dolog érdekessége az, hogy a dxDockPanel1 nem más, mint az ősön elhelyezett dockpanel, tehát úgy tűnik, mintha az új dockpanelt ugyanolyan néven akarná beszúrni
mentéskor a dfm-be. Lényegtelen a név, ha átnevezem pl dpRecord-ra, akkor meg arra a névre
dobja a kivételt.
Ötlet, tipp, javaslat?
Még annyi, hogy DevExpresses komponenseket használunk, de azt már kizártuk, hogy a hiba komponensekben van.