- D1Rect: Nagy "hülyétkapokazapróktól" topik
- eBay-es kütyük kis pénzért
- WhrlpoolMind: Búcsú a HD3870-től
- sh4d0w: Netflix? Ugyan, VW előfizetés!
- sziku69: Szólánc.
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- LordAthis: AI (és másra is használt) Cluster építése - Második Cikk
- gban: Ingyen kellene, de tegnapra
- Magga: PLEX: multimédia az egész lakásban
Új hozzászólás Aktív témák
-
Tomi_78
aktív tag
Bizony jó érzés, és még jobb végre elkészülni a programmal. Ez egy kis képszerkesztő, amivel egyszerre nagy mennyiségű képet lehet átméretezni és átnevezni. Talán másoknak is jól jöhet, ezért beillesztem ide a letöltési címét: [link]
És még egyszer, ezer köszönet a segítségért, Vz12! Bár a programfejlesztéssel ezzel nem állok le, sőt, vannak egyéb játékok és felhasználói programok még, amik megvalósításra várnak, ezért nem kizárt, hogy jövök még ide. -
Tomi_78
aktív tag
Végül megtaláltam erre az áttetszőséges gondra a megoldást, ugyanis hirtelen ötlettől vezérelve megnéztem a bitmélységét a forrásképnek és az elmentettnek, és az előbbinek 32, míg az utóbbinak csak 24 bit.
Ennek alapján ki kellett egészítenem a kódot ezzel a sorral:ujkep.pixelformat:=pf32bit;
Az is fontos, hogy ez a kiegészítés a StretchDraw-ot tartalmazó sor elé kerüljön, különben ha utána tesszük, valamiért egy üres képet eredményez elmentve!
Úgy örülök, hogy sikerült megcsinálni, mert sok képszerkesztési munkától fog megkímélni ez a kis program, ha végül készen lesz. -
Tomi_78
aktív tag
Jó lett, csak átlátszóság nincs, hanem fekete keretben van a képecske. Akkor lehet, hogy azt nem is tudja kezelni? Ez a kódom:
procedure TForm1.Button2Click(Sender: TObject);
var tarolokep,kiskep: TBitmap;
ujkep: TPortableNetworkGraphic;
begin
if ListBox1.ItemIndex<>-1 then
begin
kiskep:=TBitmap.Create;
ujkep:=TPortableNetworkGraphic.Create;
tarolokep:=TBitmap.Create;
ujkep.transparent:=true;
kiskep.transparent:=true;
tarolokep.transparent:=true;
kiskep.Width:=strtoint(Edit1.Text);
kiskep.Height:=strtoint(Edit2.Text);
ujkep.LoadFromFile(mappa+ListBox1.Items.Strings[0]);
tarolokep.assign(ujkep);
kiskep.canvas.StretchDraw(rect(0,0,kiskep.width,kiskep.height),tarolokep);
ujkep.assign(kiskep);
ujkep.savetofile(mappa+'PROBA.png');
kiskep.free;
ujkep.free;
tarolokep.free;
end;
end; -
Tomi_78
aktív tag
Az lehet baj, hogy maga a gomb létrehozás is a FormKeyDown() eseményben van? A következőképpen:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState
);
begin
if Key=VK_ESCAPE then
kilepgombkatt(form1)
else
begin
case jatallapot of
2: begin
kilepgomb:=TButton.Create(form1);
kilepgomb.Parent:=form1;
kilepgomb.Top:=2;
kilepgomb.Left:=2;
kilepgomb.Caption:='Esc';
kilepgomb.OnKeyDown:=
;kilepgomb.OnClick:=
; -
Tomi_78
aktív tag
Igen, a bekapcsolásával már érthetőbb lett az üzenet: pontosan kiírta, hogy melyik sor a hibás!
Igaz, ezzel nem jutottam közelebb a megoldáshoz, mert nem tudom, hogy miért nem jó az.
Lehet, hogy mégis a frissítéssel van a gond, ahogy írod? A példányok törlése valóban így megy 25 fps-es "invalidate"-enként:
procedure TForm1.palyafrissites(Sender: TObject);
begin
ha nem létezik, törlés, különben műveletek vele.
with canvas do invalidate;
end; -
Tomi_78
aktív tag
Hű, köszönöm, Vz12, a gyors és alapos választ!
Még tegnap ezt találtam a SIGSEG-vel kapcsolatban, amikor kerestem:
[link]
Be is kapcsoltam a kipipálható dolgokat a Hibakeresőben, és azután nem jelentkeztek a hibák. Csak hát én kipipálás nélkül is szeretném tudni az okokat és akkor is hibamentesnek szeretném tudni a programomat, nameg érteni azt, hogy mit pipáltam ki.
Ma kivettem a jelölőnégyzetekből a pipákat és erre megint hibát dob fel egy kis idő után.
A videót is köszönöm; még ma megnézem okvetlenül. És az F8-asozást is kipróbálom. -
Tomi_78
aktív tag
Köszi a választ, de egyelőre még nem jó.
Az imént próbáltam ezzel is a FreeAndNil() helyett: delete(egysegek,edb,1); de hiába - bár most más Assembly utasítást dobott fel.
A másik, bár kevésbé lényeges probléma, hogy ha ez a kóddarab van a FormPaint-ban:if egysegdb>0 then
akkor miért mindig kék színű lesz a radarobj téglalap? Még a nem játékos irányította egységeknél is? Mert azoknál sárga kellene, hogy legyen.
begin
for edb:=0 to egysegdb-1 do
begin
if egysegek[edb].letezik=true then
begin
if egysegek[edb].tulaj='jatekos' then
canvas.brush.Color:=clBlue
else
canvas.brush.Color:=clYellow;
radarobj.left:=2+Round(egysegek[edb].xhely / (palyakep.canvas.width / opanelkep.width+2));
radarobj.top:=radyeltol+Round(egysegek[edb].yhely / (palyakep.canvas.height / opanelkep.width+6));
radarobj.right:=radarobj.left+2;
radarobj.bottom:=radarobj.top+2;
canvas.rectangle(radarobj);
end;
end;
end; -
Tomi_78
aktív tag
-
-
Tomi_78
aktív tag
-
-
Tomi_78
aktív tag
Huhhh, sikerült megcsinálnom; a StretchDraw utasítás volt hozzá a megfelelő.
Nagyon szépen köszönöm, hogy felvilágosítottál ezekről a dolgokról! Sajnos a leírások nem voltak túl informatívak, amiket a világhálón találtam, úgyhogy hála neked, megint tanultam valamit.
A kód egyébként most így néz ki:var psz,pm: byte;
iderakx,ideraky: word;
talajteglalap: TRect;
terkep: array [0..7,0..7] of byte=(
(0,0,0,1,0,0,0,0),
(0,0,0,1,0,0,0,0),
(0,0,0,1,0,0,0,0),
(0,0,1,1,0,0,0,0),
(0,0,1,0,0,0,0,0),
(0,0,1,0,0,0,0,0),
(0,0,1,1,0,0,0,0),
(0,0,0,1,0,0,0,0)
);
begin
iderakx:=0;
ideraky:=0;
case mostpalya of
1: begin
palyakep.SetSize(Form1.width*2,Form1.height*2);
for psz:=0 to 7 do
for pm:=0 to 7 do
begin
case terkep[pm,psz] of
0: begin
talajteglalap:=rect(iderakx,ideraky,iderakx+palyakep.width div 8,ideraky+palyakep.height div 8);
palyakep.canvas.StretchDraw(talajteglalap,talajkep);
end;
1: begin
palyakep.Canvas.Brush.Color:=clBlue;
palyakep.canvas.fillrect(psz*palyakep.width div 8,pm*palyakep.height div 8,psz*palyakep.width div 8+palyakep.width div 8,pm*palyakep.height div 8+palyakep.height div 8);
end;
end;
if pm<7 then
ideraky:=ideraky+palyakep.height div 8
else
begin
ideraky:=0;
iderakx:=iderakx+palyakep.width div 8;
end;
end; -
Tomi_78
aktív tag
Szia!
Igen, az m magasságot, az sz szélességet jelent (pályamagasság és pályaszélesség).
Akkor a SetSize csak kisebbíteni tud képet? Ez érdekes..."arányítottam a "zöld" sáv pixelben vett szélességét a "zöld+fekete" szélességhez, és kerekítéstől eltekintve egészen pontosan kijött a 256/400 arány."
Ezt hogyan csináltad? Azért kérdezem, mert változó pályamérethez kellene majd mindig igazítanom a zöld és kék sáv kiterjedését.
"Egyébként miért kellett megszorozni 2-vel a "Form1.width" és a "Form1.height" értékét? Hogy "lelógjon" a képed a képernyőről, vagyis a form-ról?"
Pontosan. A kép görgethető a nyíl gombokkal a képernyőn. A pályaméretnek ugyanis nagyobbnak kell lennie a felhasználó aktuális képernyőméreténél. Ehhez a pályamérethez kellene igazítanom a zöld és kék sávok értékeit, hogy mindig pontosan kitöltsék.
A mátrix tkp. egy kistérkép, amely nagyban vetül ki a palyakep képre. -
labuwx
tag
-
labuwx
tag
Köszönöm mindkettőtöknek!
Most viszont olyan gondom van, hogy nem hajlandó a TImage legalsó ill a jobbszélső sorába vonalat húzni, sőt van ilyen parancs akkor a többi vonal mind "szürke" lesz.
489x489-es TImage -
Prego
senior tag
Mármint az eljárás fejlécét vagy a meghívását?
Közben felmerült egy kis gondocska, leszedtem az európai országok zászlóit és ezeket szeretném ráhúzni a formomra. Mivel ezek nem fognak változni, ezért nem dinamikus komponensekkel kéne dolgoznom, hanem statikus TImage és CheckBox komponensekkel. Van e arra lehetőség hogy a komponenspalettáról egyszerre több komponenest rakja rá a panelra, vagy kénytelen leszek egyesével ráhuzogatni?
Új hozzászólás Aktív témák
Hirdetés
- HP 14 Elitebook 840 G10 FHD+ IPS i5-1335U 10mag 32GB RAM 512GB SSD Intel Iris XE Win11 Pro Garancia
- Corsair Vengeance LPX 2x8GB 2400MHz DDR4 kit
- Sigma 60-600mm f/4.5-6.3 DG OS HSM Sports objektív ( Nikon ) -Újszerű-
- Msi X99s Gaming7 + 12 magos xeon proci
- Gigabyte RTX 2070 SUPER WINDFORCE 3X OC 8GB GDDR6
- Dell Optiplex 3020 SFF I5 4590
- LG 39GS95UE - 39" Ívelt OLED / QHD 2K / 240Hz & 0.03ms / 1300 Nits / NVIDIA G-Sync / AMD FreeSync
- Dymo LabelWriter 400 hőpapíros címkenyomtató
- Bomba ár! HP ProBook 440 G8 - i5-11GEN I 16GB I 256SSD I HDMI I 14" FHD I Cam I W11 I Gar
- Xiaomi 14 Ultra 512GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: FOTC
Város: Budapest