Karakterek beszúrása probléma delphiben, van rá megoldás?
A segítségeteket szeretném kérni,mert elakadtam benne. Olyan progit kell írnom,ami két db számérték beírásakor, azaz 122 esetén egy "-" jelet ír a textboxba egy enter lenyomása után, 123 esetén pedig "+" jelet és ezt ismételgeti így a végtelenségbe, ebben a formában pl:
122-123+122-123+122-123+122-123+ stb...
vagy
123+122-123+122-123+122-123+122-123+ stb...
3 számjegyig sikerült megoldanom,de aztán sajnos rendesen elakadtam és bele is fáradtam sajnos.Azt feltételezem,hogy biztos nem lehet azért ördöngösség megoldani,de jelenleg fogalmam nincs miképpen lehetséges és mit hagytam figyelmen kívül.Az én megoldásom biztosan pocsék, ezért szeretném kérni hogy segítsetek benne,mert elfogyott a türelmem vele szórakozni.:))
Előre is köszi!
Az eddigi próbálkozásom:
unit karakterbeszur;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
var s:string;
implementation
{$R *.dfm}
function RepeatString(const s: string; count: cardinal): string;
var i:integer;
begin
for i := 1 to count do
Result := Result + s;
end;
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
var x:integer;
var y:integer;
begin
if key=#13 then begin
x:=length(edit1.text)+2;
y:=length(edit1.text)-2;
{x:=edit1.SelStart+2;
y:=edit1.selstart-2;}
if pos('123',edit1.text)>0 then begin
edit1.selText:=repeatstring('+',1);
s:=edit1.text;
delete(s,x+y,1);
edit1.Text:=s;
edit1.SelStart:=x-y div 4;
end;
if pos('122',edit1.text)>0 then begin
edit1.selText:=repeatstring('-',1);
s:=edit1.text;
delete(s,x-1,1);
edit1.Text:=s;
edit1.SelStart:=y+x * 4;
end;
end;
end;
A feladat kivalló, de abszurd és életveszélyes,de mi is kell hozzá nézzük csak át programozásilag legalább igen nagyvonalúkban
1. Kell egy olyan driver vagy komponens, ami kezeli a portokat és interruptokat, megkerülve vagy éppen kijátszva a kernelt,mert a win mostani verziói nem engedi meg csak 95-nél a közvetlen interrupt és port eléréseket.
(Van éppen ilyen, de a legtöbbje fizetős, attól függ milyen prog platform alá kell, C, Delphi, VB)
2. Tudni kell programozni a videokártyát, legalább annyira, hogy tudni kell melyik port állítja elő az órajelet.
3. Azt be kell hívni egy a formon nem látható textboxba, vagy listboxba, majd abból egy findtext, pos, indexof, vagy akármilyen kereső függvénnyel és kombijaival rá kell kerestetni a számokra az egész beírómezőben, ha megtalálta, akkor azt berakni az editbe, utánaírva egy +, vagy éppen - jelet ugye számtól függően.
5. Majd elküldeni a jelet szintén egy olyan rádió készülékre, ami rá van csatizva a gépre, amihez szintén ismerni kell vagy a soros, vagy az usb portok programozását és azt, hogy az adott rádió melyik porttal váltja ki a DX-elés üzemmódót, majd attól függöen el kell döntenie a programnak, hogy - előjel esetén az egyik frekvenciára, majd a másik frekire küldi ki a jelet, ha 122, akkor 2 rádió kell, mert az egyik antennája dél felé vagy irányítva, a másik pedig észak felé. hacsak nem olyan profkó a rádió, hogy két antennát és két sávot is tud egyszerre egy időben váltani és kezelni.
Még az nem világos, hogy sima sound utasítással kell jelet varázsolni, vagy messagebeep-el, mármint a 122 Hz és 123 Hz-es jeles + ugye bejátszik egy 2*pi*f ami lófütty és a többi és a többi okosság.
Simán kivitelezhető, ha okos a rádiód és ha okos vagy programozásban. SimkoL és Coopper biztos simán generál nektek egy ilyen programot, meg én is, de bolond leszek, hogy helyetted csüccsenjek majd a böribe és akkor tényleg filmet írhat róla majd kedves, valaki által említett Spielberg bácsi halálra kacagva magát az "agyament programozók", akinek nem inge ne vegye magára társaság eget rengető találmányától...
A jelgenerálást már korábban megoldottam, kissé vizuálissá is téve :) 50 Hz és 5 kHz a határ, tud szinusz, négyszög és háromszög jelet, de a háromszög állítható így lehet fűrész is.
A videó kártya órajelének fixnek illene lenni, mivel órajel. Esetleg a videókártya által generált jelekből...
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!