1. |
Delphi (mind) |
26 sor |
(cikkei) |
2. |
pascal + asm (mind) |
22 sor |
(cikkei) |
3. |
Access - OLE (mind) |
14 sor |
(cikkei) |
4. |
RE: [Delphi/BCB] Memo field es StringList (mind) |
19 sor |
(cikkei) |
5. |
Re: Real mode (mind) |
41 sor |
(cikkei) |
6. |
Re: hangkartya programozas (mind) |
67 sor |
(cikkei) |
|
+ - | Delphi (mind) |
VÁLASZ |
Feladó: (cikkei)
|
Sziasztok Coderek!
Delhivel kapcsolatban lenne nehany kerdesem:
1.: Le szeretnem kerdezni egy TOpenDialog ablak bal felso koordinatajanak
a poziciojat (a kepernyohoz viszonyitva, pixelben). Hogyan lehet (ehhez
szeretnek pozicionalni egy masik ablakot).
2.: Egy TStringGrid komponensen van horizontal ScrollBar, nekem pedig
szuksegem lenne ennek a scrollbarnak a magassagara (vizszintesen all).
Probalkoztam a TStringGrid.Controls properity-vel, de ures volt (lehet,
hogy rossz helyen kerestem a TScrollBar-t).
3.: Hogyan lehet azt megcsinalni, hogy ha egy program fut, de nem az az
aktiv (es meg mondjuk minimalizalna is van), akkor egy esemenyre (event)
a program aktivva valjon, es megjelenjen rendes meretben. Sokmindennel
probalkoztam mar, de egyik se tette aktivva a programot.
4.: Ha megirok egy programot egy kepernyofelbontasban, atvaltok egy
kissebb felbontasra, akkor elrontja a kinezetet (kissebbre valtva a
felbontast lesz igazan zavaro).
Van valamilyen otletetek?
Elore is kosz:
Unicorn
|
+ - | pascal + asm (mind) |
VÁLASZ |
Feladó: (cikkei)
|
HoHi
> Pascalban es Assemblyben programozok, keverve. Gondjaim
> tamadtak a 32 bites regiszterek ( EAX, EBX, ECX stb. )
> valos modban valo programozasaval.
Megoldas:
...
asm
db $66 {prefix, hogy 32 bites adatok}
mov ax,bx { ennek eredmenye: mov eax,ebx}
db $66
mov ax,$ffff
dw $ffff {ennek pedig mov eax,$ffffffff
db $66
xor ax,ax {na meg ezt is xor eax,eax}
end;
...
van meg egy idevago prefix a $67, ez a cimzest teszi 32 bitesse, de itt
mas beallitasokra is szukseg van
bred!rg42
|
+ - | Access - OLE (mind) |
VÁLASZ |
Feladó: (cikkei)
|
>Access-bol adok at a Wordnek
>adatokat ugy, hogy a Word egy korlevelben definialt mezokent kapja meg.
Koszonom a hozzaszolasokat. Vegulis sikerult ugy megoldani, hogy ha az
ember Accessbol stringeket ad at a Wordnek, akkor azt mar "megeszi"
Meg egy adalek: A Word bizonyos mezoi, amelyeket be lehet fuzni a
dokumentumba es kapcsolokat lehet ratenni. Ilyen pl az aktualis datum,
lapoldal, stb. Nemet Worddel dolgoztam, es csak nagy nehezsegek aran
tudta nemet formatumu datumot - angol helyett - nem befuzni, hanem
megjeleniteni! Gondolom hasonlo problema lehet a magyar Office-szal is.
Udv
Tibor
|
+ - | RE: [Delphi/BCB] Memo field es StringList (mind) |
VÁLASZ |
Feladó: (cikkei)
|
Hello!
Szucs Zoltan irta
> Felraktam egy memo-t es egy listbox-ot. Az alabbi sorral sikerult
> kinyernem a memo a szoveget soronkent (egy listbox soraiba).
> ListBox1.Items.Assign(Memo1.Lines);
> Mivel a kerdesbol nem ertettem, hogy TMemo-rol, TDBMemo-rol vagy
> TMemoField-rol van szo, megneztem a help-ben. Elvileg
> mindegyikkel mukodnie kell. Termeszetesen ListBox helyett
Amit irsz, az valoban jo TMemo objektumra, viszont TDBMemo-ra nem,
mivel annak nincsen Lines property-je. Van viszont AsString property-je,
amiben benne van a Memo tipusu mezo egesz tartalma, a sorok \n-nel
elvalasztva. Igy megoldas lehet a StrList.Text=DBMemo1.AsString,
ahol StrList egy StringList. A megoldas trivialis, csak akkor nem
gondolkoztam.
Azert koszi.
Rado Andras
|
+ - | Re: Real mode (mind) |
VÁLASZ |
Feladó: (cikkei)
|
hello,
> Felado : [Hungary]
> Pascalban es Assemblyben programozok, keverve. Gondjaim
> tamadtak a 32 bites regiszterek ( EAX, EBX, ECX stb. )
talan hallottal rola, hogy a 32-bites opcode ugyanugy nez ki,
csak elotte van nehany prefix:
$66 - data size override
$67 - index size override ; ez most lenyegtelen
szoval:
mov eax,myvar1 ; myvar1 = longint!
ez kb igy nez ki pascalban:
db $66;mov ax,word ptr myvar1
ha az indexben vannak 32-bites cuccok, akkor igy jartal, mert
ott egy kicsit trukkosebb, raadasul nem tudod hasznalni
a SIB cimzest
pl: mov eax,[ebx+ecx*8+$a0000]
mellesleg a konstansokkal is gondod lehet:
pl: add eax,10
db $66;add ax,10
viszont ha a konstans >255, akkor:
db $66;add ax,(loword)
dw (hiword)
mivel: a 32 bites adatnal, a konstans erteket is 32-bitesnek tarolja,
kiveve, ha <256, mert arra kulon opcode van, es csak 1 byte a konstans
de ez nem mindegyik utasitasnal van igy.
ezzel csak azt akarom mondani, hogy eleg csinnyan kell ezzel
banni, mert eleg szepen porul fogsz jarni ha tulzasba viszed
azert jo probalkozast :))
-kyle % autopsy
|
+ - | Re: hangkartya programozas (mind) |
VÁLASZ |
Feladó: (cikkei)
|
hello,
> Felado : [Romania]
> Most epp hangkartyat programozok, es ezzel kapcsolatban lenne
par
> kerdesem, mert nem nagyon vannak forraskodjaim.
> Szoval az a kerdes, hogy hogyan szoktak lejatszani mondjuk egy
wav
> file-t? Ugy tudom, hogy beirsz egy reszt a memoriaba, odairanyitod az
eloszor is, attol fugg, milyen hangkartyaval bibelodsz.
nekem csak SB-vel kapcsolatban vannak tapasztalataim, ugyhogy
imol van nemi segitseg (fele) :) (csak a teendoket irom le)
1. DSP reset
2. Speaker on
3. Set time constant
4. Speaker on
5. Setup DMA
6. enable IRQ + IRQ proc beallitas
7. itt lehet feltolteni a DMA buffert
8. start Auto-init DAC
az auto-init fontos!!! mivel nagy hangot jatszol le, allandoan
toltogetni kell.
es minden DMA programozas egy kis idot vesz igenybe + a DSP-nek
is kell par parancs, ezert minden blokk vegen egy kis kattanas lesz.
ha viszont autoinitet csinalsz, akkor csak egyszer elinditod, es
loop-olva
fogja lejatszani a blokkot, amig le nem lovod.
ezt mar az SB2.0 is tudta, de a creative-labs elfelejtette dokumentalni.
:)
szoval: az auto-init-nel nem csak a DMA blokk vegen general IRQ-t, hanem
a felenel is
azt neked kell szamon tartani, hogy eppen melyik felet jatssza le, es ez
alapjan
a masik felebe kell tolteni a hangokat. igy folyamatos lesz a dolog.
IRQ:
> probelmam, hogy nem tudom milyen megszakitast general, es hogyan lehet
> kezelni.
szoval ez attol fugg, hogy az SB milyen IRQ-ra van allitva.
tegyuk fel, hogy 5 (ez a default)
akkor a 5+8 = 13 ($0d) megszakitast kell atirnod, es ez fog meghivodni
Itt is kell nehany extra dolgot csinalni.
1. betoltod az uj hangblokkot (csak 1 felet! :))
itt ossze is lehet mixelni tobb csatornat, ha ahhoz van kedved:)
2. 1 byte-ot ki kell olvasni a $2xE portrol (IRQ acknowledge)
3. Send IRQ signal (vagymi)
mov al,20h
out 20h,al
ha befejezted, akkor:
1. Stop auto-init-DAC
2. disable IRQ
3. Speaker off
4. eredeti IRQ vissza
asszem naggyabol ennyi.
a DSP es DMA parancsokat most fejbol nem tudom, es nem akarok
hulyeseget irni, de ha kell, akkor megnezem es kuldom privatba.
remelem tudtam segiteni..
-kyle % autopsy
|
|