Hirdetés

2024. május 3., péntek

Gyorskeresés

Hozzászólások

(#1451) Rolly válasza Rolly (#1450) üzenetére


Rolly
veterán

lesz egy tabsheetes bigyó s az összetartozó cuccok egy tabsheeten lesznek, s akkor csak a tabsheet láthatóságát kell birizgálni.

(#1452) Tele von Zsinór válasza Rolly (#1451) üzenetére


Tele von Zsinór
őstag

A panelnek lehet állítani a széleit, be lehet állítani úgy is, hogy ne látszódjon. .BevelInner és .BevelOuter kell neked.

(#1453) Bandus99


Bandus99
őstag

Sziastok
segitsetek mi lehet a hiba ebben miert nem mukodik?


var
Ch1: char;
hn: (he, ke, sz, cs, pe, szo, va);


begin

Ch1 := pred (cs);
Writeln (Ch1);

readln;

end.

Van me'g ve'r a koffeinkeringe'semben

(#1454) P.H. válasza Bandus99 (#1453) üzenetére


P.H.
senior tag

Azért nem fordul le, mert a c1 char típusú, a pred(cs) pedig nem. (affene, már mondatot is ;-vel zárok alapban :D )

esetleg így:

type Thn = (he, ke, sz, cs, pe, szo, va);
var
..Ch1: Thn;
begin
..ch1:=pred(cs);
..writeln(ord(ch1));
..readln;
..end.


Azért writeln(ord(ch1)), mert alapban a writeln nem ismeri a Thn típust, így ki lehet íratni az elem index-ét (0-6 között lesz.)

Ez biztos, hogy Delphi-s, nem sima Pascal? Vagy console-os Delphi program lesz? Csak a readln/writeln miatt kérdem.

[Szerkesztve]

Arguing on the Internet is like running in the Special Olympics. Even if you win, you are still ... ˙˙˙ Real Eyes Realize Real Lies ˙˙˙

(#1455) Bandus99 válasza P.H. (#1454) üzenetére


Bandus99
őstag

Koszonom megnezem

Turbo Delphi de console application ahol probalkozunk

Van me'g ve'r a koffeinkeringe'semben

(#1456) Bandus99 válasza P.H. (#1454) üzenetére


Bandus99
őstag

nem ismeri a thn valtozot vagy csak en rontok el vmit...

Van me'g ve'r a koffeinkeringe'semben

(#1457) P.H. válasza Bandus99 (#1456) üzenetére


P.H.
senior tag

A Thn egy típus.
Írd be a teljes forrást, úgy könnyebb lesz. (A fentit Delphi4 alatt írtam, ment).

[mod]: Vagy arról van szó, betű szerint? Hányas Delphi?

[Szerkesztve]

Arguing on the Internet is like running in the Special Olympics. Even if you win, you are still ... ˙˙˙ Real Eyes Realize Real Lies ˙˙˙

(#1458) Rolly válasza Tele von Zsinór (#1452) üzenetére


Rolly
veterán

megcsináltam hogy legyen egy Tabsheeten az egy cucchoz tartozó gombok s akkor a tabsheet-et tüntetem el.

(#1459) csewe


csewe
csendes tag

sziasztok

az én problémám az hogy delphi 5 ben irtam egy progit ami külömbözö adatokat küld ki az lpt portra asm-ben van a portraküldés de indításkor kapok egy üzenetet amit nem értek (no inglis)
project project1.exe raised exception dass eprivilege with message 'privilege instruction' process stopped,use step or ron to continue.
erre kinálja az OK gombot
megjegyzem még régebben ugyanez az asm progirészlet pascalban simán müködött .
minden tanácsot szivesen fogadok.
a progi feladata egyébként az lpt porton lévö elektronika vezérléselenne.

előre is köszi.

(#1460) P.H. válasza csewe (#1459) üzenetére


P.H.
senior tag

Gondolom vannak pl. IN és OUT utasítások az assembly részben, ezek Windows alatt nem lehetnek benne felhasználói programokban, csak a kernelben és driver-ekben, azaz privilégizált utasítások (privilege instruction, DOS-ban nincs ilyen megkötés, azért ment Pascal-ban). Tehát a programmal semmi gond, biztosan helyes, csak ez az út járhatatlan.

Inkább Windows-on (API) keresztül csináld az LPT-vezérlést.

[Szerkesztve]

Arguing on the Internet is like running in the Special Olympics. Even if you win, you are still ... ˙˙˙ Real Eyes Realize Real Lies ˙˙˙

(#1461) csewe


csewe
csendes tag

sajna nem vagyok jártas anyira a delpfiben windows api fügvényeket nem igazán használtam még és egyébkáént is az api fügvényes portkezelő valószínűleg kivan hegyezve nyomtatókra ezére választ vár a kiküldött kódra az én cuccom pedig nem válaszol csak végrehajt íme a kódrészlet

asm
mov dx , 0378h ; portcím
mov al , dat ; kiküldendő adat
out dx, al ;kiítás a pórtra
end ;

ha valaki tudja ezt az asm rutint helyettesítani úyg hogy windows alatt is menjen a dolog azt kérem tegye meg hogy leyrja nekem a helyettesítő kódrészletet.
nemragaszkodom az asm kódhoz lhet a delphiben alkalmazható bámi más megoldás is

(#1462) Tele von Zsinór válasza csewe (#1461) üzenetére


Tele von Zsinór
őstag

Szerintem ez lesz neked a tökéletes: [link]
ezen az oldalon szépen le is van írva, hogy lehet használni.

(#1463) csewe válasza Tele von Zsinór (#1462) üzenetére


csewe
csendes tag

köszi mindjárt meg is nézem és ha valami nem világos akkor visszatérek ide

(#1464) csewe válasza Tele von Zsinór (#1462) üzenetére


csewe
csendes tag

megnéztem az ajánlott oldalt nem éppen delfi progframozással foglalkozik valami használható nincs?

(#1465) P.H. válasza csewe (#1461) üzenetére


P.H.
senior tag

Az API portkezelő általános portkezelésre van kihegyezve, a kódod valahogy így nézne ki legegyszerűbben, NT alapú Windows-okban (9x alatt már a CreateFile első paramétere):

var
..Data: byte;
..Moved: DWORD;
..hPort: THANDLE;
begin
..hport:=createfile('LPT1',
......(GENERIC_READ or GENERIC_WRITE),
......0,
......nil,
......OPEN_EXISTING,
......FILE_ATTRIBUTE_NORMAL,
......0);
..if hport <> INVALID_HANDLE_VALUE then begin
....writefile(hport,data,sizeof(data),moved,nil);
....closehandle(hport); end;
end;


Ez megnyitja az LPT1 portot írásra-olvasásra, kizárólagos használattal. Ha a kapott handle érvényes (= a megnyitás sikeres), akkor a Data változó tartalmát kiírja a portra, majd lezárja a handle-t.
Ehhez csak uses Windows; kell a program vagy unit elejére, bár az alapból ott van.

Arguing on the Internet is like running in the Special Olympics. Even if you win, you are still ... ˙˙˙ Real Eyes Realize Real Lies ˙˙˙

(#1466) csewe válasza P.H. (#1465) üzenetére


csewe
csendes tag

azt gondolom hogy itt az xp jelenti a gondot merthogy mos az van a gépen . közben kopróbáltam az IO.dll-t de nem működik avval sem pedig máshol nagyon ajánlják de lehet hogy csak én vagyok béna bár konkrét progirészletet kaptam de nem akar kiérni a jel az lpt-re így néz ki

unit PrinterPort;

interface

uses Classes, Forms, StdCtrls, Controls;

type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

function IsDriverInstalled:Boolean stdcall; external 'io.dll';
procedure PortOut(Port:Word;Data:Byte) stdcall; external 'io.dll';

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
begin
PortOut($378,1);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
PortOut($278,1);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
IsDriverInstalled;
end;

end.



két gomb van az egyikkel az lpt1 amásikkal az lpt2-re küld ki agy bájtot ha valaki látja mért nem működik az kijavíthatná
köszi

(#1467) P.H. válasza csewe (#1466) üzenetére


P.H.
senior tag

Szerintem feleslegesen bonyolítod a dolgot ezzel a IO.DLL-lel, meg azzal a szemlélettel, hogy kézzel megadott port-ra írsz. Az összes Windows tudja a fenti kódomat, ami persze működik is, kipróbáltam.

Első ránézésre az IO.DLL link-jére és a kódodra, a LoadIODLL() hívás hiányozik. Az IO.H szerint:
function LoadIODLL: longint; stdcall; external 'io.dll'.


[Szerkesztve]

Arguing on the Internet is like running in the Special Olympics. Even if you win, you are still ... ˙˙˙ Real Eyes Realize Real Lies ˙˙˙

(#1468) csewe válasza P.H. (#1467) üzenetére


csewe
csendes tag

akkor még tegyél meg anyit hogy adaptálod a lpt2-re mert azon szeretném használni
kőszi

(#1469) P.H. válasza csewe (#1468) üzenetére


P.H.
senior tag

A createfile első paraméterét 'LPT1'-ról átírod 'LPT2'-re.

Arguing on the Internet is like running in the Special Olympics. Even if you win, you are still ... ˙˙˙ Real Eyes Realize Real Lies ˙˙˙

(#1470) csewe válasza P.H. (#1469) üzenetére


csewe
csendes tag

ha csak enyi akkor mé ma kipróbálom
ojan rutin kellene ami ritmikusam küld ki adatot az lpt2-re atimerrel gondoltam megoldani már csak azt a sort kéne megadnod amejik kiküldi az adatot mert az át jkell tennem a timer rutinba gondolom az if____thenben van az a sor én ugy látom de az a biztos ha megmondod

(#1471) csewe válasza P.H. (#1469) üzenetére


csewe
csendes tag

ja és hova kell beszurni a load iodll utasitást

(#1472) P.H. válasza csewe (#1470) üzenetére


P.H.
senior tag

A writefile írja ki valójában az adatot, de az egész a file-kezelés analógiájára épül (megnyitás-transfer-lezárás), és mivel kizárólagosan nyitja meg a portot (más nem férhet hozzá, amíg nyitva van), legjobb egy egységként kezelni az egész folyamatot.

A writefile amúgy akármilyen hosszú adatot ki tud küldeni egyszerre, nem kell byte-ozni (paraméterei: handle, a kiírandó buffer címe, a buffer hossza, mutató egy DWORD-re (most Moved), illetve egy nil itt most, visszatérési értéke egy boolean. Akkor sikeres a transfer, ha TRUE-val jön vissza, és a megadott DWORD (Moved) értéke megegyezik a paraméterként megadott buffermérettel.)

[mod]: az oldal ''The only step you are required to do is call LoadIODLL somewhere at the beginning of your program. Make sure you do this or you will find yourself faced with all sorts of interesting crashes.''
Az egyetlen lépés, ami szükséges, a LoadIODLL meghívása valahol a program elején. Csináld meg, vagy érdekes/érthetetlen dolgokat fogsz tapasztalni. (Az enyémhez term. nem kell majd. Illetve vagy egy olyan érzésem, hogy az IO.DLL a program teljes ideje alatt fogja a portot. Vagy mindet. De nem ismerem, csak nézegetem az oldalát.)

[Szerkesztve]

Arguing on the Internet is like running in the Special Olympics. Even if you win, you are still ... ˙˙˙ Real Eyes Realize Real Lies ˙˙˙

(#1473) csewe válasza P.H. (#1472) üzenetére


csewe
csendes tag

ez működik akkor is ha nem nyomtatót vezérelek a portról? mert az én áramköröm semilyen visszajelzést nem ad a gépne arról hogy fogadta az adatot

(#1474) P.H. válasza csewe (#1473) üzenetére


P.H.
senior tag

Kiírja a portra a megadott adatokat, nem kell visszajelzés. Olvasni vissza a readfile-lal lehet, paraméterei megegyeznek a writefile-lal.

Egyszerű példa, hogy mennyire alacsony szintű ez: az első próbálkozásom portokkal az volt, hogy megírtam szinte a fenti kódot, hogy olvasson be a COM1-ről 512 byte-ot. ('COM1', és readfile), fogtam egy soros golyós egeret, menet közben rányomtam a COM1-re, persze semmi driver, észre se vette a Windows, elindítottam a programot. Kb. 5 másodpercig húzkodtam az egeret, aztán kiírta a program, hogy megvan az 512 beolvasott byte. Ennyi.

[mod]: Igazából kiírásnál nem is kell, hogy legyen valami rádugva a port-ra, úgy is sikeres az írás. Csak kinyomja a register-ekbe, mintha OUT-tal írnád.

[Szerkesztve]

Arguing on the Internet is like running in the Special Olympics. Even if you win, you are still ... ˙˙˙ Real Eyes Realize Real Lies ˙˙˙

(#1475) csewe válasza P.H. (#1474) üzenetére


csewe
csendes tag

köszi ez az egeres dolog még érdekelne mert tervezek egy letapogatót amit égérrel kívánok megvalósítani igaz delphiben az egérlekérdezés totál egyszerű de érdekelne ez a megoldás is ha nem titok a forráskódot átkűldhetnéd emailben

(#1476) P.H. válasza csewe (#1475) üzenetére


P.H.
senior tag

Ok, az viszont benn van a munkahelyemen, holnap elhozom. Nem akarok itt és most improvizálni, mert az olvasás, ha minőségi, akkor overlapped kell legyen. Írásnál még elviselhető, hogy addig megáll a program, amíg ki nem írja a teljes adatot, de az olvasás már csak ne működjön úgy, hogy megmondod, hogy mondjuk 1 KB-ot vársz a port-ról, aztán a program 'lefagy', amíg be nem jött a teljes mennyiség. Már ha egyáltalán pontosan tudható, hogy mikor fog jönni.

Arguing on the Internet is like running in the Special Olympics. Even if you win, you are still ... ˙˙˙ Real Eyes Realize Real Lies ˙˙˙

(#1477) csewe válasza P.H. (#1476) üzenetére


csewe
csendes tag

mindent köszi ugyérzem hasznos volt a beszélgetés kipróbálom a progit amit itt írtál aztán majd jelentkezem akkoris ha jó szia

(#1478) csewe válasza P.H. (#1476) üzenetére


csewe
csendes tag

kipróbáltam egérklikkre kellene kiküldenie egy bájtot majd bezárnia a progit de lefagy így néz ki

unit Unit1;

interface

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

type
TForm1 = class(TForm)
procedure llllll(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

Data: byte;
Moved: DWORD;
hPort: THANDLE;
implementation

{$R *.DFM}

procedure TForm1.llllll(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin

data := 1 ;

hport:=createfile('LPT1',
(GENERIC_READ or GENERIC_WRITE),
0,
nil,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
0);
if hport <> INVALID_HANDLE_VALUE then begin
writefile(hport,data,sizeof(data),moved,nil);
closehandle(hport); end;
close ;

end;

end.fusd át hátha russzulm használom a kódot amit írtál nekem
köszi

(#1479) P.H. válasza csewe (#1478) üzenetére


P.H.
senior tag

Valóban megáll LPT portnál, ha nincs rádugva semmi, illetve ha a ''az én cuccom pedig nem válaszol csak végrehajt'' azt jelenti, hogy nem billenti meg az ACK vonalat sem, akkor megoldás az overlapped (magyarul aszinkron) I/O.
Kérdés: azt nem írtad, hogy a jel kiment azért?

Az overlapped I/O-t inkább ide írom, még hasznos lehet. 4 kis rutin, ezek mennek LPT-re és COM-ra is, illetve a COM-ra lesz még egy kis toldalék.

..uses Windows;
..type
....TCOMM = record
........Handle: THANDLE;
........TimeOut: DWORD;
........Overlap: OVERLAPPED;
........State: DCB; end;
..const
....COMM_SUCCESS = 0;
....COMM_OPEN_FAILED = 1;
....EVENT_CREATION_FAILED = 2;
....COMM_STATE_SET_FAILED = 3;
{===================================================================}
..function _OPENCOMM(PortName:PCHAR; var Com:TCOMM): byte;
....begin
......result:=COMM_SUCCESS;
......ZEROMEMORY(@com,sizeof(com));
......com.handle:=CREATEFILE(portname,
..........(GENERIC_READ or GENERIC_WRITE),
..........0,
..........nil,
..........OPEN_EXISTING,
..........(FILE_ATTRIBUTE_NORMAL or FILE_FLAG_OVERLAPPED),
..........0);
......if com.handle = INVALID_HANDLE_VALUE then
........result:=COMM_OPEN_FAILED
......else begin
........com.overlap.hevent:=CREATEEVENT(nil,true,false,nil);
........if com.overlap.hevent = 0 then begin
..........result:=EVENT_CREATION_FAILED;
..........CLOSEHANDLE(com.handle); end; end; end;
{===================================================================}
..procedure _CLOSECOMM(var Com:TCOMM);
....begin
......CLOSEHANDLE(com.overlap.hevent);
......CLOSEHANDLE(com.handle); end;
{===================================================================}
..function _READCOMM(var Com:TCOMM; var Size:DWORD; var Dest): boolean;
....var Moved: DWORD;
....begin
......RESETEVENT(com.overlap.hevent);
......result:=READFILE(com.handle,dest,size,moved,@com.overlap);
......if not result and (GETLASTERROR = ERROR_IO_PENDING) then
........begin

........WAITFORSINGLEOBJECT(com.overlap.hevent,com.timeout);
........result:=GETOVERLAPPEDRESULT(com.handle,com.overlap,moved,false);
........end;
......if result then size:=moved; end;
{===================================================================}
..function _WRITECOMM(var Com:TCOMM; var Size:DWORD; var Src): boolean;
.....var Moved: DWORD;
.....begin
......RESETEVENT(com.overlap.hevent);
......result:=WRITEFILE(com.handle,src,size,moved,@com.overlap);
......if not result and (GETLASTERROR = ERROR_IO_PENDING) then
........begin

........WAITFORSINGLEOBJECT(com.overlap.hevent,com.timeout);
........result:=GETOVERLAPPEDRESULT(com.handle,com.overlap,moved,FALSE);
........end;
......if result then size:=moved; end;
{===================================================================}


Kell egy struktúra, ami tartalmaz minden struktúrát és változót, amit kell: TCOMM
Kell egy eljárás, ami megnyitja a portot (megkapja a nevét string-ként - 'LPT1', 'LPT2', ..., 'COM1',COM2', ...), és a struktúrát és megnyitja: _OPENCOMM. Ha a megnyitás sikertelen, akkor visszaadja, hogy miért (a port foglalt vagy nem létezik, illetve segédváltozó kreálása sikertelen).
Kell egy eljárás, ami bezárja a portot: _CLOSECOMM
Kell egy-egy író és olvasó eljárás: _WRITECOMM és _READCOMM. Ezek megkapják, hogy honnan/hova és hány byte-ot olvassanak be vagy írjanak ki, illetve közvetve a struktúrában a kísérleti időt millisecundum-ban: TimeOut mező (hogy ne kelljen minden egyes alkalommal megadni). Vissza boolean, hogy sikerült-e a teljes transfer, illetve ha nem, akkor a méretváltozóban visszadja, hogy ténylegesen mennyi sikerült a megadott idő alatt.

Ezekkel egy egyszerű rutin:
..procedure TForm1.StartClick(Sender:TObject);
....var
......Data:byte;
......Bytes: DWORD;
......lpt2: TCOMM;
....begin
......data:=1;
......if _OPENCOMM('LPT2',lpt2) = COMM_SUCCESS then begin
........lpt2.timeout:=5000;
........bytes:=sizeof(data);
........_WRITECOMM(lpt2,bytes,data);
........_CLOSECOMM(lpt2); end; end;

A megnyitás után beállítja a timeout-ot (most 5000 ms), majd kiír a portra (jelen esetben, ha minden igaz, tartja a byte-ot a kimeneten, mivel ACK nem érkezik), majd lezárja. Gondolom, sejthető, hogy neked akkor nem is kell timer így, mivel a _WRITECOMM-ot kell egy ciklusba tenni, mivel az 5 másodpercenként fog visszatérni, FALSE-szal ugyan, de az nem érdekes.

A fentiek hasonlóan működnek 'COMx' portnév megadásával is, de ott az _OPENCOMM után lehetőség van a paraméterek beállítására, pl. így (most legyen com1 a struktúra neve):
..GETCOMMSTATE(com1,com1.state);
....with com1.state do begin
......baudrate:=9600;
......bytesize:=8;
......parity:=EVENPARITY;
......stopbits:=ONESTOPBIT; end;
....SETCOMMSTATE(com1,com1.state);

Gondolom, kommentálni nem kell, hogy mit jelent a jelenlegi beállítások lekérése, egyes paraméterek átírása, majd beállítás.

A progamozási stílus remélet átlátható, az API-hívások, a belsőeljárás-nevek és a konstansok nagybetűsek, és igyekeztem a lehető legkevesebb utasítást egy sorban hagyni.


[Szerkesztve]

Arguing on the Internet is like running in the Special Olympics. Even if you win, you are still ... ˙˙˙ Real Eyes Realize Real Lies ˙˙˙

(#1480) P.H. válasza P.H. (#1479) üzenetére


P.H.
senior tag

_READCOMM-ban és _WRITECOMM-ban:

result:=GETOVERLAPPEDRESULT(com.handle,com.overlap,moved,false);
(nem látszik a vége), és az utolsó sor mindkettőben:
if not result then size:=moved; end;
(not kimaradt).

Arguing on the Internet is like running in the Special Olympics. Even if you win, you are still ... ˙˙˙ Real Eyes Realize Real Lies ˙˙˙

(#1481) Tele von Zsinór válasza P.H. (#1479) üzenetére


Tele von Zsinór
őstag

Te jézusatyaúristen :Y
Ezt ilyen szépen leírva, ráadásul syntax highlightolva... respect :R

(#1482) csewe válasza P.H. (#1480) üzenetére


csewe
csendes tag

köszönöm hogy enyi energiát szántál a problémám megoldására a kódot kinyomtattam megpróbálom átrágni rajta magam de eléggé megijedtem mikor megláttam enyi kinlódás csak mert xp van a gépen már klomolyan fontolgatom hogy visszalépek win 9x verzióba mert ott könnyedébn megoldottam volna gondolom megvan a teljes progikód neked ha nem nagy gond átkűldhetnéd privát az emeil.emre hogy kísérletezhessem vele a problémát egyenlöre megoldottnak takintem míg ez ellenkezöje ki nem derül

mindent köszi
szia

(#1483) s-cy-net


s-cy-net
csendes tag

Helo mindenkinek

Tudna-e valaki tippet adni,hogyan lehet 2 Form mágnesezése.
Szóval, mint a Winampnál össze ragadjonak. FormMagnet komponens nélkül?

Elöre is kösz! :R



[Szerkesztve]

(#1484) Tele von Zsinór válasza s-cy-net (#1483) üzenetére


Tele von Zsinór
őstag

Figyelni kell a mozgatás eseményt (azt hiszem wm_nciHitTest vagy hasonló), és mindig szépen megvizsgálni a koordinátákat, szélességet, magasságot.

(#1485) s-cy-net


s-cy-net
csendes tag

helo .
kösz a tippet,de egyre jobban szorít az idő. Ha esetleg valakinek megvan a FormMagnet komponens,persze (Full pas-ra számitok pedig nem dcu-ra) s-cy-net@hotmail.com ezen a cimen jelentkezzen. Igazán rendkivüli komponenseket adhatok cserébe mint( TSynEdit_full package, stb.)

[Szerkesztve]

[Szerkesztve]

(#1486) s-cy-net válasza Tele von Zsinór (#1484) üzenetére


s-cy-net
csendes tag

ok. már meg oldottam. A következőből kell ki indulni:

type TWindowHook = function(var Message: TMessage): Boolean of object;

type
TMessage = packed record

Msg: Cardinal;
case Integer of
0: (
WParam: Longint;
LParam: Longint;
Result: Longint);
1: (
WParamLo: Word;
WParamHi: Word;
LParamLo: Word;
LParamHi: Word;
ResultLo: Word;
ResultHi: Word);

end;

[Szerkesztve]

(#1487) Tele von Zsinór válasza s-cy-net (#1486) üzenetére


Tele von Zsinór
őstag

Ez egy hagyományos üzenetkezelő függvény interface-e.

(#1488) s-cy-net


s-cy-net
csendes tag

Moderálva. - Race

Ezt nem kellett volna!!

(#1489) bevik válasza s-cy-net (#1488) üzenetére


bevik
csendes tag

Ezt azért nem kellett volna :(

Max 2 percembe került megtalálni gugli barátunkkal.

De hogy még a terjesztés tiltására való figyelmeztetést is bemásoltad, hát ez lol.
''distribution of all or any portion of the code contained in this file is strictly prohibited and may result in severe civil and criminal penalties and will be prosecuted to the maximum extent possible under the law''

Az árakról pedig: 16$ a lefordított unitért, vagy 26$ a forrásért sztem igazán nem sok, főleg hogy súgót és támogatást is kapsz hozzá.
De ha sok, akkor nem nagy kunszt megírni Tele von Zsinór adott jó ötletet. Lehet hogy nem lesz univerzális és profi, de a te alkalmazásodba biztos elég lenne.
Vagy ha egy ilyen apró kihívás megtántorít, akkor felejtsd el ezt a pályát!

Mindig legyél a legjobb abban amit csinálsz.

(#1490) Tele von Zsinór válasza s-cy-net (#1488) üzenetére


Tele von Zsinór
őstag

Ezt tényleg nem kellett volna. Amint egy moderátor idetalál, gondod lesz belőle. Pont azért, mert jogvédett anyag az egész, ahogy te a hsz. elején írtad is.

(#1491) s-cy-net válasza Tele von Zsinór (#1490) üzenetére


s-cy-net
csendes tag

Elnézést kérek mindenkitöl. Töbé nem fordul elő. Ami az árakat illeti,messze nem ijen olcsó,mint ahogy azt bevik állitja. Majd 120$!

Remélem el nézitek.

s-cy-net@hotmail.com

(#1492) bevik válasza s-cy-net (#1491) üzenetére


bevik
csendes tag

Itt találtam: [link]

Mindig legyél a legjobb abban amit csinálsz.

(#1493) s-cy-net válasza bevik (#1492) üzenetére


s-cy-net
csendes tag

Nos. Ok.
Én meg itt találtam [link]



De ezt is megtaláltam.

procedure WMNCHitTest(var Msg: TMessage);

[Szerkesztve]

(#1494) Rolly


Rolly
veterán

pár kérdésem lenne:
1. a savedialog-nál hogyan lehet megcsinálni hogy ha olyan fájlra akarsz menteni ami már létezik akkor rákérdezzen hogy felülírja-e

2. trackbarnál vagy minél (húzgálni lehet a pöcköt rajta, s állítja az értéket...) azt szeretném megcsinálni, hogy ne folyamatossan állítsa, hanem mikor elengeded az egér gombját

3. ja és a végső jelentlegi gond, hogy van egy openpicturedialogom ami elméletileg tud gif, png és jpg képet megnyitni tudtommal. a megnyitott képet átadom egy image-nek ahova azt ő szépen kirajzolja, viszont csak bmp képet tudok megnyitni

(#1495) Tele von Zsinór válasza Rolly (#1494) üzenetére


Tele von Zsinór
őstag

1: savedialog1.options.ofOverwritePrompt-ot állítsd át true-ra

3: delphiben gif támogatás biztos nincs, és szerintem png sem. jpg-hez kell a jpeg unit, és trükközni kell a TJPEGImage-al.

(#1496) bevik válasza Rolly (#1494) üzenetére


bevik
csendes tag

2. Származtathatsz új komponenst a TrackBar-ból, amibe megírod az OnMouseUp eseményt, és a Position értékét OnKeyUp és OnMouseUp-nál olvasod ki.

3. uses ... Jpeg, GifImage;
Hogy működjön, töltsd le valahonnan a GifImage.pas-t. (a .png-t én sem tudom)

[Szerkesztve]

Mindig legyél a legjobb abban amit csinálsz.

(#1497) Rolly


Rolly
veterán

köszönöm a válaszaitokat, majd este kipróbálom

(#1498) ViragL


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.

(#1499) prekox válasza ViragL (#1498) üzenetére


prekox
csendes tag

Hozd létre futásidőben, vagy próbálkozz egy Frame komponensre pakolászni.
Szerintem!

(#1500) lacko81


lacko81
tag

Kezdő vagyok még a témában és néhány kérdésemre szeretnék választ kapni.
String --> Ascii kód ---> Bináris szám konverzióra lenne szükségem. De valamiért az IntToBin függvény nem működik. Azt írja ki, hogy nincs deklarálva ez a függvény, olyan mint ha nem is ismerné... az IntToHex az működik.
A másik kérdésem, hogy vannak-e a Delphiben bit- műveletekre függvények? Jobbra-balra Shiftelés, Set-Bit, Clear-Bit és ilyesmikre gondolok.


A recipriverzexkluzíva egy olyan szám, amely önmagán kívül minden más számmal egyenlő.

Copyright © 2000-2024 PROHARDVER Informatikai Kft.