|
| 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
| |
|
|