/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
Kommando til at læse på printerport
Fra : Calle.


Dato : 09-06-03 09:33

Hvad findes der af simple plugin til Delphi 4 (standard) til at læse I/O
på printerporten?

--
Calle



 
 
Finn Bindeballe (09-06-2003)
Kommentar
Fra : Finn Bindeballe


Dato : 09-06-03 09:36

"Calle." wrote:

> Hvad findes der af simple plugin til Delphi 4 (standard) til at læse I/O
> på printerporten?
>
> --
> Calle

det kommer an paa hvilket OS du bruger ... WIN98 - WIN 2000.....

kik paa http://torry.net .. her kan du sikkert finde noget.
F


Calle. (09-06-2003)
Kommentar
Fra : Calle.


Dato : 09-06-03 10:23

Finn Bindeballe wrote:
> "Calle." wrote:
>
>> Hvad findes der af simple plugin til Delphi 4 (standard) til at læse
>> I/O på printerporten?
>>
>> --
>> Calle
>
> det kommer an paa hvilket OS du bruger ... WIN98 - WIN 2000.....
>
win 98, men er der ikke noget der kan bruges generelt
--
Calle



Kim (09-06-2003)
Kommentar
Fra : Kim


Dato : 09-06-03 11:18

On Mon, 9 Jun 2003 10:32:39 +0200, "Calle." <Calle@fjernjyde.dk> wrote:

>Hvad findes der af simple plugin til Delphi 4 (standard) til at læse I/O
>på printerporten?

function getIOport (p:word):byte; stdcall;
begin
asm
push edx
push eax
mov dx,p
in al,dx
mov @result,al
pop eax
pop edx
end;
end;


Procedure SetIOport (p:word;b:byte);Stdcall;
begin
asm
push edx
push eax
mov dx,p
mov al,b
out dx,al
pop eax
pop edx
end;
end;


--
Kim


Calle. (09-06-2003)
Kommentar
Fra : Calle.


Dato : 09-06-03 12:29

Kim wrote:
> On Mon, 9 Jun 2003 10:32:39 +0200, "Calle." <Calle@fjernjyde.dk>
> wrote:
>
>> Hvad findes der af simple plugin til Delphi 4 (standard) til at læse
>> I/O på printerporten?
>
> function getIOport (p:word):byte; stdcall;
> begin
> asm
> push edx
> push eax
> mov dx,p
> in al,dx
> mov @result,al
> pop eax
> pop edx
> end;
> end;
>
>
> Procedure SetIOport (p:word;b:byte);Stdcall;
> begin
> asm
> push edx
> push eax
> mov dx,p
> mov al,b
> out dx,al
> pop eax
> pop edx
> end;
> end;

Kan man ikke lige få lidt info om hvordan det bruges?
Skal portadressen ind i hex / bin / dec?

--
Calle



Calle. (09-06-2003)
Kommentar
Fra : Calle.


Dato : 09-06-03 13:55

Calle. wrote:
>> function getIOport (p:word):byte; stdcall;
>> begin
>> asm
>> push edx
>> push eax
>> mov dx,p
>> in al,dx
>> mov @result,al
>> pop eax
>> pop edx
>> end;
>> end;
>>
>>
>> Procedure SetIOport (p:word;b:byte);Stdcall;
>> begin
>> asm
>> push edx
>> push eax
>> mov dx,p
>> mov al,b
>> out dx,al
>> pop eax
>> pop edx
>> end;
>> end;
>
> Kan man ikke lige få lidt info om hvordan det bruges?
> Skal portadressen ind i hex / bin / dec?

Ser ud til at det lykkedes at læse, men hvorfor kan jeg ikke få dette
til at virke (nederste linie)
unit port;

interface

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

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

end;

var
Form1: TForm1;
ind:string;

implementation

{$R *.DFM}

function getIOport (p:word):byte; stdcall;
begin
asm
push edx
push eax
mov dx,p
in al,dx
mov @result,al
pop eax
pop edx
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
edit1.text:='der trykkes på knappen';
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
edit1.text:='';
end;

begin
ind:=inttostr(getioport($378));
edit1.text:=ind;

end.

--
Calle



Calle. (09-06-2003)
Kommentar
Fra : Calle.


Dato : 09-06-03 20:28

Calle. wrote:
> Calle. wrote:
>>> function getIOport (p:word):byte; stdcall;
>>> begin
>>> asm
>>> push edx
>>> push eax
>>> mov dx,p
>>> in al,dx
>>> mov @result,al
>>> pop eax
>>> pop edx
>>> end;
>>> end;
>>>
>>>
>>> Procedure SetIOport (p:word;b:byte);Stdcall;
>>> begin
>>> asm
>>> push edx
>>> push eax
>>> mov dx,p
>>> mov al,b
>>> out dx,al
>>> pop eax
>>> pop edx
>>> end;
>>> end;
>>
>> Kan man ikke lige få lidt info om hvordan det bruges?
>> Skal portadressen ind i hex / bin / dec?
>
> Ser ud til at det lykkedes at læse, men hvorfor kan jeg ikke få dette
> til at virke (nederste linie)
> unit port;
>
> interface
>
> uses
> Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
> Dialogs,
> StdCtrls;
>
> type
> TForm1 = class(TForm)
> Button1: TButton;
> Edit1: TEdit;
> procedure Button1Click(Sender: TObject);
> procedure FormCreate(Sender: TObject);
> private
> { Private declarations }
> public
> { Public declarations }
>
> end;
>
> var
> Form1: TForm1;
> ind:string;
>
> implementation
>
> {$R *.DFM}
>
> function getIOport (p:word):byte; stdcall;
> begin
> asm
> push edx
> push eax
> mov dx,p
> in al,dx
> mov @result,al
> pop eax
> pop edx
> end;
> end;
>
> procedure TForm1.Button1Click(Sender: TObject);
> begin
> edit1.text:='der trykkes på knappen';
> end;
>
> procedure TForm1.FormCreate(Sender: TObject);
> begin
> edit1.text:='';
> end;
>
> begin
> ind:=inttostr(getioport($378));
> edit1.text:=ind;
>
> end.

Har selv fundet fejlen
--
Calle



Finn Bindeballe (09-06-2003)
Kommentar
Fra : Finn Bindeballe


Dato : 09-06-03 15:04

Virker IKkE under Win NT - Win 2000 - Win XP......
/F


Calle. (09-06-2003)
Kommentar
Fra : Calle.


Dato : 09-06-03 19:25

Finn Bindeballe wrote:
> Virker IKkE under Win NT - Win 2000 - Win XP......

I første omgang gør det heller ikke noget, da jeg kører win98
--
Calle



Calle. (09-06-2003)
Kommentar
Fra : Calle.


Dato : 09-06-03 20:32

Kim wrote:
> On Mon, 9 Jun 2003 10:32:39 +0200, "Calle." <Calle@fjernjyde.dk>
> wrote:
>
>> Hvad findes der af simple plugin til Delphi 4 (standard) til at læse
>> I/O på printerporten?
>
> function getIOport (p:word):byte; stdcall;
> begin
> asm
> push edx
> push eax
> mov dx,p
> in al,dx
> mov @result,al
> pop eax
> pop edx
> end;
> end;
>
>
> Procedure SetIOport (p:word;b:byte);Stdcall;
> begin
> asm
> push edx
> push eax
> mov dx,p
> mov al,b
> out dx,al
> pop eax
> pop edx
> end;
> end;

Jeg har nu fået det til at fungere, så den læser porten og smider det ud
i en editbox hver gang jeg trykker på en knap, men hvordan får jeg den
til at gøre det løbende uden at røre ved noget.
Det skal senere bruges til at aktivere forskellige hændelser alt efter
hvad der læses på porten.
Jeg har prøvat at lave løkker, men det ser ikke ud til at fungere for
mig. Hvad gør jeg for at det skal fungere?

--
Calle



Finn Bindeballe (10-06-2003)
Kommentar
Fra : Finn Bindeballe


Dato : 10-06-03 14:18

hej der......

typisk gør man det inden i et timer-tick...... men hvis det skal gaa
meget stærkt, eller er tidskritisk, skal du bruge en TThread. du kan
finde info om den i help.

/f


Kim (10-06-2003)
Kommentar
Fra : Kim


Dato : 10-06-03 16:33

On Mon, 9 Jun 2003 21:32:17 +0200, "Calle." <Calle@fjernjyde.dk> wrote:

>> function getIOport (p:word):byte; stdcall;

>Det skal senere bruges til at aktivere forskellige hændelser alt efter
>hvad der læses på porten.
>Jeg har prøvat at lave løkker, men det ser ikke ud til at fungere for
>mig. Hvad gør jeg for at det skal fungere?

Prøv med flg. i løkken :

Application.ProcessMessages;

--
Kim


Calle. (10-06-2003)
Kommentar
Fra : Calle.


Dato : 10-06-03 22:37

Kim wrote:
> On Mon, 9 Jun 2003 21:32:17 +0200, "Calle." <Calle@fjernjyde.dk>
> wrote:
>
>>> function getIOport (p:word):byte; stdcall;
>
>> Det skal senere bruges til at aktivere forskellige hændelser alt
>> efter hvad der læses på porten.
>> Jeg har prøvat at lave løkker, men det ser ikke ud til at fungere for
>> mig. Hvad gør jeg for at det skal fungere?
>
> Prøv med flg. i løkken :
>
> Application.ProcessMessages;

hvad gør den?
--
Calle



Finn Bindeballe (11-06-2003)
Kommentar
Fra : Finn Bindeballe


Dato : 11-06-03 07:33

hej der......

>>Application.ProcessMessages;
>>
>>
>
>hvad gør den?
>
>
den frigiver dit program, saa windows messages kan behandles, det er
ikke det du har brug for her... han forveksler muligvis

Application.ProcessMessages med Application.OnIdle , som bliver kaldt naar din application ikke har noget at lave....

/f


Calle. (11-06-2003)
Kommentar
Fra : Calle.


Dato : 11-06-03 18:37

Finn Bindeballe wrote:
> hej der......
>
>>> Application.ProcessMessages;
>>>
>>>
>>
>> hvad gør den?
>>
>>
> den frigiver dit program, saa windows messages kan behandles, det er
> ikke det du har brug for her... han forveksler muligvis
>
> Application.ProcessMessages med Application.OnIdle , som bliver kaldt
> naar din application ikke har noget at lave....
>
det ved jeg ikke, men det virkede
--
Calle



Søg
Reklame
Statistik
Spørgsmål : 177580
Tips : 31968
Nyheder : 719565
Indlæg : 6409084
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste