Cim nahradit Watcom C ? Prace s grafikou pod Win10 – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Cim nahradit Watcom C ? Prace s grafikou pod Win10 – C / C++ – Fórum – Programujte.comCim nahradit Watcom C ? Prace s grafikou pod Win10 – C / C++ – Fórum – Programujte.com

 

Atro
~ Anonymní uživatel
19 příspěvků
4. 9. 2023   #1
-
0
-

Zdravim,

Poprosim o rady. Mam nejake projekty napsane ve starickem Watcomu. S extenderem Dos4gw to umelo chodit hezky. Plny pristup ke graficke karte (_setvideomode (_XRES256COLOR), _getimage (384, 0, 384+23, 21, spr[0]), _remapallpalette (&colors) atd..

Aktualne to chodi pouze v DOSBoxu.

HLEDAM nastupce Watcom cecka. Mel by byt free, mel by umet obsluhovat obrazovku na urovni pixelu (read, write) a hlavne mel by umet tvorit programy chodici pod Win10.

Pokud nekoho napada nejaky produkt, prosim o doporuceni. Nejsem zrovna guru ktery dokaze prekopad nejake pridavne knihovny a vclenit je do prostredi nejakeho kompilatoru. Uvitam proto co nesnazsi cestu.

Diky.

Nahlásit jako SPAM
IP: 90.176.144.–
Ovrscout
~ Anonymní uživatel
113 příspěvků
6. 9. 2023   #2
-
0
-

#1 Atro

Koukám že zatím bez odpovědi, tak přispěju svou troškou do mlýna :)

Přímou náhradu Neporadím.
Ono taky bude záležet jak moc ty programy používají dosové API případně přímý přístup ke grafice. Taky to může znamenat různé vesa a podobné režimy a přímý přístup do RAM pro grafiku. Tam už se asi bez něčeho jako DOSBOX nejspíš nepohnete.

Pro nové věci ale můžete zkusit překladače clang nebo gcc(mingw). A jako knihovnu pro grafiku asi něco jako libsdl. Tu sice znám jen z dálky, ještě jsem se k vyzkoušení nedostal, ale vypadá že to je celkem používané a relativně jednoduché..

Nahlásit jako SPAM
IP: 193.165.79.–
Atro
~ Anonymní uživatel
19 příspěvků
6. 9. 2023   #3
-
0
-

#2 Ovrscout

Diky za tip.Mingw pouzivam na bezgrafikove projekty. Koukal jsem a libsdl je to taky uz pekna vykopavka.

Programy nejsou az zase tak narocne na grafiku. Jen to drive bylo IMO snazsi. Otevrej jsem v programu konfiguraci grafiky, nacetl jsem si obrazek obsahujici treba 20 mensich obrazku. Ty jsem pak pomoci _getimage sejmul z obrazovky do alokovane pameti. Pomoci _remapallpalette jsem si nastavil vlastni paletu a pak pomoci _putimage umistil obrazky dle utrciteho vzoru na obrazovku.

Urcite znate hru Ludolfova patnactka. v rastru 4x4 policka mate nahodne rozhazenych 15 cisel 1-15. Ukolem je: poslakadat tech 15 cisel do tvaru:
01|02|03|04
05|06|07|08
09|10|11|12
13|14|15|  |

Program nacetl ruzne obrazky, ty rozdelil do 15 segmentu a ty zamixoval a uzivatel je pak presouval po obrazovce do uvedeneho spravneho tvaru. Pak nasledovalo nekolik slozitejsich projektu. Nevyuzival jsem zadne pokrocile funkce, V te dobe na to nebyla podpora. A totez ocekavam od noveho prostredi.

Mezitim jsem nasel kombinaci Community Visual Studio 2022 + openGL knihovna GLFW (www.glfw.org).
Mozna pujdu s kanonem na vrabce, ale vypada to pouzitelne.

Ceka me dalsi uceni, nikdy jsem nemel potrebu prechazet na OOP, vystacil jsem si s klasikcym C. Uvedena kombinace ale bezi pod C++. Snad v tom nebude problem.

Kazdopadne diky za tip.

Nahlásit jako SPAM
IP: 90.176.144.–
Ovrscout
~ Anonymní uživatel
113 příspěvků
7. 9. 2023   #4
-
0
-

Já bych ale tu www.libsdl.org uplně nezatracoval. Sice uz je to starsi projekt ale porad je aktivni (verze 2 je udrzovana a pracuje se na SDL 3).

Každopádně ale budu držet palce, a díky za tip na glfw :) vypadá to dost podobně.

Nahlásit jako SPAM
IP: 193.165.79.–
JerryM0
Věrný člen
8. 9. 2023   #5
-
0
-

#1 Atro
WatcomC a DOS32 extender je opravdu stařičký a pod Win11 už fungovat nebude. Máš mnoho možností. Např: 1/ MS VS 2022 C# .NET7 WinForms. To je VELMI dobrá volba ale funguje jen pod Windows. ANO programování pixelů tam opravdu jde a je to jednoduché. Nastavení videomodu po Windows je poněkud složitější než bylo před 30ti lety v MSDOSu. Máme tu teď LCD monitory. 2/ Mužeš zkusit C++ a VULKAN (  https://www.vulkan.org/ ; ) což je zcela nová platforma a vývojové prostředí je MS VS nebo Eclipse. 3/ Můžeš zkusit stařičký OpenGL ( https://www3.ntu.edu.sg/…_C.html ; ) ale já bych do toho už nešel. 4/ Možná ti bude stačit WEBová grafika s HTML5+CSS3+JavaScript. To musíš vyzkoušet sám.

Ano, existuje mnoho dalších možností, ale jde o to ubírat se tím správným směrem.

Nahlásit jako SPAM
IP: 2a00:1028:83bc:e52a:58a:5c05:f442:3baa...–
Atro
~ Anonymní uživatel
19 příspěvků
8. 9. 2023   #6
-
0
-

#5 JerryM
Dvakrat jsem koukal a skutecne mi na stole stoji 2 LCD monitory. To jsem necekal :)

Nejsem milovnikem aplikaci v prohlizeci (osobni preference). Koukal jsem ze zajmu i na kazdy odkaz co jsi poslal a porad mi vychazi nejlepe to VS a k nemu GLFW. Zitra se snad dostanu k instalaci a pustim se do uprav puvodniho kodu.

Ano, existuje mnoho dalších možností, ale jde o to ubírat se tím správným směrem.

Pro me je spravny smer ten, ktery vede s minimem zmen puvodniho kodu k cili.

Diky za odpoved a preji Hezky den.

Nahlásit jako SPAM
IP: 90.176.144.–
JerryM0
Věrný člen
8. 9. 2023   #7
-
0
-

hm to je klasická OpenGL odvozenina ... asi bude chodit pod Windows .. já bych spíš ten kod v C přepsal do C# ale ... jak říkáš .. tohle asi bude jednodušší

Nahlásit jako SPAM
IP: 2a00:1028:83bc:e52a:58a:5c05:f442:3baa...–
JerryM0
Věrný člen
9. 9. 2023   #8
-
0
-

tam v tom manuálu

https://www.glfw.org/GLFWReference27.pdf

se napíše jak zobrazit bod ...  to musíš dohledat někde na na netu

https://discourse.glfw.org/t/a-very-basic-issue-with-draw-line/804

to máš mnohem lepší ten C# WinForms protože už v sobě má celou 2D knihovnu pro grafiku

chápeš jo .. aby z toho nakonec nebyla zkratka-prodlužovačka ...

Nahlásit jako SPAM
IP: 2a00:1028:83bc:e52a:b832:22d3:5d01:a1c6...–
Atro
~ Anonymní uživatel
19 příspěvků
9. 9. 2023   #9
-
0
-

Asi jsem se snad nemel ani ptat. Vsechno ma evidentne nejaky problem.

Zlate casy basicu a strojaku pro Spektru. Tohle vzdavam, vsechno vypada naprosto silene komplikovane.

Nahlásit jako SPAM
IP: 90.176.144.–
JerryM0
Věrný člen
9. 9. 2023   #10
-
0
-

to nemusíš vzdávat stačí vytrvat :)

Nahlásit jako SPAM
IP: 2a00:1028:83bc:e52a:b832:22d3:5d01:a1c6...–
gna
~ Anonymní uživatel
1864 příspěvků
10. 9. 2023   #11
-
0
-

Používat na jednoduché kreslení přímo OpenGL, Direct3D nebo Vulkan je nesmysl. GLFW zjednoduše použití OpenGL, ale pořád je to OpenGL, z bláta do louže

SDL podobně, hodně low-level a samo o sobě nic moc neumí. Můžeš v něm přímo použít OpenGL nebo Direct3D, nebo všechno matlat "ručně" (nebo k tomu přidat ještě další knihovnu). Jestli chceš jen "hýbat texturama", tak bych asi taky doporučil SDL.

Použitelnější ve stylu té Watcomácké knihovny mi přijde Raylib. V tom smyslu, že vedle pokročilých funkcí, má i primitivní funkce pro kreslení čáry a kruhu a tak.

Nahlásit jako SPAM
IP: 213.211.51.–
Atro
~ Anonymní uživatel
19 příspěvků
10. 9. 2023   #12
-
0
-

Diky vsem za komentare. Mam uz jen posledni otazku.

Pokud bych chtel ten prenos vyuzit i jako vyuku jazyka pro pripadnou zmenu zamestanani (aktualne delam HW ale vzdy jsem mel vetsi vztah k SW), co by bylo asi nejuzitecnejsi pro vetsi sanci k uplatneni?

Nemam vyhranenou oblast, zajmu/zamereni. Vetsinou jsem si psal ruzne utilitky na rozkodovani (a zpetne zakomponovani) textu/grafiky z/do her, nejakou ta simple hru, Proste veci pro usnadneni zivota.

Nahlásit jako SPAM
IP: 90.176.144.–
JerryM0
Věrný člen
10. 9. 2023   #13
-
0
-

#12 Atro
nejzádanější v čr je Java (obecně a to i pro web), dále ASP .NETcore C# (.NET7) + HTML5+CSS3+JavaScript.

ano, i v Javě to mužeš naprogramovat. Možná by si měl jít cestou Javy protože o desktopové programátory v MS VS 2022 C# .NET7 WinForms není v čr zájem a neuživíš se. Možná by ses uživil jako MS VS 2022 C# .NET7 WPF programátor desktopových aplikací ale s malým platem. Java vývojář webu si vydělá o mnoho více. Nicméně pokud už ti bylo 50 tak bych asi nejančil a zůstal u HW protože .... to už asi nedáš ...

https://stackoverflow.com/questions/58873445/draw-line-on-main-window-in-java

Nahlásit jako SPAM
IP: 2a00:1028:83bc:e52a:74c3:c27:d9cb:18c6...–
remmidemmi0
Věrný člen
10. 9. 2023   #14
-
0
-

#1 Atro
nejprve upřesním tvoji terminologii, protože v ní zjevně nemáš jasno :)

programy napsané ve stařičkém watcomu ... správně má být programy zakódované pomocí stařičkého watcomu . Watcom je kódovací software, nikoliv textový editor na psaní dopisů. Ale v Česku se to vše patlá všelijak. Znám borce z moravské firmy, kde místo MS Wordu používají MS Excell a textové zprávy a majly píší v MS excellu a ty pak odesílají majlem. Fakt jo, na mou duši, kočičí chlupy a psí uši to tak je. Prostě moravští borci.... Koho tak může napadnout psát text majlu v Excellu....

Zpět k tvé terminologii:

Pokud někoho napadá nějaký produkt ... 

Termín "produkt" standardně vyznačuje lejno, kočičí lejno, psí lejno, kravské či kobylí lejno. Slovo "produkt" pochází z ruštiny продукт  Když dobytče či kočka či pes kálí, dělá продукты, neboli "produktíruje" . V Česku se toto ohromně ujalo. Dnes nikdo nic nevyrábí, netvoří, nemontuje, nesestavuje. Všichni dnes jen "produktují" produkty.  Prostě všichni na vše serou :)

Nyní k tvému dotazu - jestliže máš progam, čili algoritmus., můžeš jej zakódovat v čemkoliv co umí generovat kód pro Windows 10 a má potřebné knihovny a ovladače pro tvoje potřeby, například pro řízení grafiky. 

Rozdíl mezi vytvářením programu a kódováním je popsán zde:

http://www.jplabs.co.uk/cz/programovani.html

Probíral se též na diskuzním fóru Microforum:

http://www.microforum.co.uk/viewtopic.php?p=145&sid=497ec4966a4b3485979b5c2fd8def011#p145

Protože neuvádíš nic bližšího k tvému algoritmu, co přesně dělá, jakou grafiku vyžaduje, co v počítači ovládá, je těžko radit. Obecně můžu doporučit LabView, které má dobře zpracovanou grafiku, podporu řady adaptérů. Pro studentské účely a studijní pokusy existuje free verze. LabView je grafický systém pro vytváření apliikací, není to nic pro mlátiče do klávesnice nebo mastiče kódů, kteří "jedou jak fretky" a mastí kódy rychlostí 150 úhozů do klávesnice za minutu. :)

Nahlásit jako SPAM
IP: 89.24.40.–
Atro
~ Anonymní uživatel
19 příspěvků
10. 9. 2023   #15
-
0
-

#14 remmidemmi

Omlouvam se ale tvuj post jsem vubec nepobral. Omlouvam se znovu pokud se uz termin 'post' nepouziva.

Hezky den.

Nahlásit jako SPAM
IP: 90.176.144.–
Atro
~ Anonymní uživatel
19 příspěvků
10. 9. 2023   #16
-
0
-

#13 JerryM

tože o desktopové programátory v MS VS 2022 C# .NET7 WinForms není v čr zájem a neuživíš se. Možná by ses uživil jako MS VS 2022 C# .NET7 WPF programátor desktopových aplikací ale s malým platem. Java vývojář webu si vydělá o mnoho více. Nicméně pokud už ti bylo 50 tak bych asi nejančil a zůstal u HW protože .... to už asi nedáš ...

Zni o tedy dost krute. Necekal jsem, ze cely CR svet programovani stoji zrovinka na jave.

Na napad zvazit prechod na programovani (testovani) me privedly titulky jako napr. "rekvalifikace s garanci nalezeni zamestnani". Znelo to az moc dobre. Taky me trapila predstava ze C# pripadne prace svazana s NETx bude povazovana za amaterinu pro 'trapaky co nemaj na nic lepsiho'. Ano, nemam prehled a vychazel jsem pouze z infa co jsem pohledal na netu. Ziji v naivni predstave, ze se proste vetsina programu pise v C/C++ a Java a NETx se pouzivaji hlavne pro web aplikace.

Pokud jde o to zda to dam nebo nedam, tak to nevim. Je mi opravdu dost pres 50. Zatim ale porad umim koukat na zadani a predstavit si jak asi jit na jeho reseni. Koneckoncu i proto jsem se ptal na jaky produkt prejit. Nekdo chova kraliky, nekdo pestuje rajcata, me bavi zkusit si napsat neco co me zaujme. I kdyz jsou to pro nekoho treba ptakoviny. Bohuzel mi pozdeji doslo, ze vetsina lidi doporuci produkt ve kterem sama pracuje a zna ho. Ze proste asi budu muset sahnout po necem sam a zkusit to.

Hezky den.

Nahlásit jako SPAM
IP: 90.176.144.–
JerryM0
Věrný člen
10. 9. 2023   #17
-
0
-

no jo ... tak jak sem řikal muže si vybrat buď Javu nebo C# nebo C++/Qt tam to de taky. Já osobně bych si vybral to C# protože to je nejjednodušší, ale bohužel Java je asi v čr víc žádaná než C# to je těžko říct. Někdo by ti doporučil HTML5+CSS3+JavaScript nebo TypeScript a udělat to jako WEB aplikaci.

Nahlásit jako SPAM
IP: 2a00:1028:83bc:e52a:74c3:c27:d9cb:18c6...–
Atro
~ Anonymní uživatel
19 příspěvků
11. 9. 2023   #18
-
0
-

#17 JerryM
nainstaloval jsem VC, zkusil jsem nejake fragmenty kodu na nacteni bitmapy a zobrazeni a zadny se mi nepodarilo ani zkompilovat. Zrejme mi unika neco zasadniho. Potrebuji opravdu jen proste otevreni obrazku a jeho zobrazeni v okne. At hledam jak hledam, nenasel jsem zadny funkcni priklad kodu v C# ktery by tohle ukazal. Prosel jsem par kurzu nebo seznameni s C# ale bez vysledku.

Pul kralovstvi za odkaz na funkcni zdrojak v C# ktery:
-otevre a nacte do pameti soubor.bmp (nebo png, gif to je fuk) tak, aby s nim slo nasledne manipulovat
-vykresli obrazek do okna od zadanych souradnic
 

Nahlásit jako SPAM
IP: 90.176.144.–
JerryM0
Věrný člen
11. 9. 2023   #19
-
0
-

nainstaloval sis VC ? a to je co ???? Visual C++ pod Windows ? takže děláš v GDI+ v C++ ? nebo DirectX 12 ????  příkladů v C# je na netu hromada

Nahlásit jako SPAM
IP: 2a00:1028:83bc:e52a:19c3:bbdd:862f:7d03...–
Atro
~ Anonymní uživatel
19 příspěvků
11. 9. 2023   #20
-
0
-

Nainstaloval jsem Visual Studio 2022  + .NET desktop development.

Podle infa na netu by to melo pro praci s obrazky stacit.

Na netu je hromada prikladu typu consolove aplikace "hello world". V pripade neceho slozitejsiho jsou to jen ukazky nefunkcnich fragmentu kodu ktere zacatecnikovi v C# nepomahaji.
Abych to vysvetlil, kdyz nekomu napisu radek nebo dva kodu kde zobrazim soucet dvou cisel ale predtim vynecham dalsich 50 radku kodu ktery mi to umozni, je to priklad ku h...u.

Jdu hledat dal, ale uz moc nemam predstavu jak zadat vyhledavani abych neco nasel. Jak rikam, 100% nalezenych odkazu jsou jen nefunkcni fragmeny kodu,

Nahlásit jako SPAM
IP: 90.176.144.–
JerryM0
Věrný člen
11. 9. 2023   #21
-
0
-

no s ohledem na tvuj věk a znalosti tě ujišťuju že tohle už sám nedáš ... možná vpříštím životě

můžeš zkusit Python, začít se učit od začátku, na internetu je spousta příkladů i na grafiku a python je jednoduchej a zatim sme ho tu nejmenovali a asi budeš potřebovat tohle na ten python:

https://uloz.to/file/YmU0cGdMN6RC/jetbrains-intellij-idea-ultimate-2017-2019-2022-password-is-admin-rar#!ZGpmAwR2Zwx2AwR0LGN0AzZmZmyyARAFAx5IpKcIIx16omOvMD==

tady máš příklad v MS VS 2022 C# .NET7 WinForms a kreslí to čáru a mění barvu pixelu v obrázku který je v adresáři toho projeku .NET7 vyžaduje aby obrázek byl načten v paměti např. v memorystreamu nebo jinde to už je na tobě:

https://uloz.to/file/ItW3PLpUEUpa/060-winforms-bitmap-zip#!ZGRlLGR2AJSuZTMyLGNjLwSxMwuzZ2SjIHITJT5YrUyHZGtkAN==

adresář projektu kde to mám já je:  c:\_APP\060 winforms bitmap\ 

a tam to musíš dát i ty jinak budeš muset změnit přístupové cesty

Připojen obrázek.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;


namespace MyWF
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();



            ViewBitmapFromFile();



        }// public Form1()


        private void ViewBitmapFromFile()
        {
            // datagridview sel changed
            //**************************************************

            Int32 counter = 0;

            Int32 selectedRow = 0;

            MemoryStream ms = null;
            FileStream fs = null;

            Int32 bufferSize = 0;


            //**************************************************



            try
            {
                bufferSize = 64000;
                ms = new MemoryStream();
                fs = new FileStream("c:\\_APP\\060 winforms bitmap\\dock.jpg",
                                    FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
                Byte[] buffer = new Byte[bufferSize];
                counter = 0;

                while (fs.Read(buffer, counter, bufferSize) != 0)
                {
                    ms.Write(buffer, counter, bufferSize);
                }// while

                Bitmap mybitmap = new Bitmap(ms);
                this.pictureBox1.Image = mybitmap; //
                fs.Close();
                fs = null;
                ms.Close();
                ms = null;



                // this.pictureBox1.Image = null kdyz chces obrazek smazat 

                Graphics g = null;

                g = Graphics.FromImage(this.pictureBox1.Image);

                Pen pen01 = new Pen(Color.Black, (float)10);

                g.DrawLine(pen01, 0, 0, 500, 500);

                mybitmap.SetPixel(498, 498, Color.FromArgb(255, 255, 255));
                this.pictureBox1.Image = null;
                this.pictureBox1.Image = mybitmap; //

            }
            catch (Exception err)
            {
                MessageBox.Show("Fatal error while image reading: " + err.Message, "Fatal error.", MessageBoxButtons.OK);
            }// try catch

            fs = null;
            ms = null;

            return;


        }// private void ViewBitmapFromFile()

    }// public partial class Form1 : Form




}// namespace MyWF
Nahlásit jako SPAM
IP: 2a00:1028:83bc:e52a:19c3:bbdd:862f:7d03...–
Atro
~ Anonymní uživatel
19 příspěvků
12. 9. 2023   #22
-
0
-

#21 JerryM
Diky za priklad ktery toho hodne vysvetlil. Prisel jsem na to, proc mi vetsina veci zrejme nefungovala. Kdyz jsem zkopiroval kod ktery jsi napsal zde, hlasilo to chyby. Kdyz jsem sosnul a rozpakoval cely projekt, vse najednou zapadlo.
Netusil jsem, ze si samotna definice formulare generuje vlastni kod.Netusil jsem, ze bez teto definici to nefunguje. Napriklad nevim, zda lze tuto definici formulare presunout do hlavniho souboru s kodem, ale to uz je drobnost.

Kadopadne mam funkcni ukazku se vsim vsudy. Tak jak jsem ji potreboval. Ted uz se muzu venovat kodu.a ten vypada v pohode.
 

Zatim byl cas kouknout jen na moznosti okna aplikace ve formulari, Rad bych mel okno bez ramecku nebo max 1px siroky. Musim jeho velikost zmenit tak, aby cista (vyuzitelna) plocha mela 1024x768. Pak bude nasledovat vlastni kod - mensi obrazky, manipulace s kazdyym z nich.

Jeste jednou diky za priklad. Chyba nebyla v kodu ale v navaznosti na nutnost definice kostry frejmu s oknem.

Nahlásit jako SPAM
IP: 90.176.144.–
JerryM0
Věrný člen
12. 9. 2023   #23
-
0
-

#22 Atro
definici nejde přesunout

ta tvoje prace je na dlouho obzvláště když nic neumíš .. .to potrvá rok možná dva než se do toho dostaneš nezapomeň hlavně pak v properties hlavního okna nadefinovat MaxWidth a MaxHeight rozměry formuláře jinak se ti na větší obrazovce rozjede do stran. šířka rámečku se asi upravit dá ale už si to nepamatuju ...

Nahlásit jako SPAM
IP: 2a00:1028:83bc:e52a:3c81:2a92:a759:2de2...–
Atro
~ Anonymní uživatel
19 příspěvků
12. 9. 2023   #24
-
0
-

#23 JerryM
Ano nic neumim. S Visual Studiem delam poprve, stejne tak s C# a Forms. Schazi mi ty uplne basic informace co musi obsahovat kostra projektu a jak to spolu souvisi.

S vlastnim kodem aplikace si myslim ze uz ted nebude problem.

btw: okno aplikace uz je presne jak chci. Velikost i vlastnosti. Vypada a zobrazujete to presne co chci.
Jeste jednou diky.

Nahlásit jako SPAM
IP: 90.176.144.–
JerryM0
Věrný člen
12. 9. 2023   #25
-
0
-

https://uloz.to/file/aRAfIYnG1qwi/windows-forms-v-jazyce-c-petzold-pdf#!ZGIwBGR1AQL5MGEwZmVlMzWuZJZjnKqkZJMlEIuZpUMwBGIu

Nahlásit jako SPAM
IP: 2a00:1028:83bc:e52a:3c81:2a92:a759:2de2...–
JerryM0
Věrný člen
13. 9. 2023   #26
-
0
-

https://uloz.to/file/Z5AzNPDqwIKu/c-sharp-books-rar#!ZGV4ZmR2ZmD5LmWyZJR3BTD5MJL1ZaIYFKq0ZTA1BTgLJwyzMN==

Nahlásit jako SPAM
IP: 2a00:1028:83bc:e52a:ac02:27df:f77b:28a...–
Atro
~ Anonymní uživatel
19 příspěvků
14. 9. 2023   #27
-
0
-

Tak jsem bojoval ale asi mi neni souzeno.

Kdykoliv jsem jekkoliv upravil kod 9treba nacteni dalsiho obrazku0, cele se to sesype. Zacne to psat pri kompilaci chyby. Zkusil jsem i dalsi fragmenty programu z internetu, obrazek se nekdy zobrazi, nekdy ne.

Vubec nerozumim tomu, ze zatim co ukazky kodu pracuji s 

Bitmap image1 = new Bitmap("image1.png")
Graphics g = this.CreateGraphics();
g.DrawImage(image1, 10, 10);

Nicmene to vetsinou funguje.

Ty pouzivas nejake streamy (memory stream, filestream)...

Uplne jsem pominul nejake osetreni eventu a obnova zobrazeni. Chtel jsem jen zobrazit obrazek pripadne s nim hejbnout. Nikde jsem nenasel ani info, zda do jednoho prvku picturebox mohu zobrazit vice obrazku.

Proste je toho moc. Toho balastu bez spetky smysluplnosti aby clovek mohl vytvorit uplny zaklad pod windows. Nebavi me hledat skyte veci co vsechno musi clovek udelat aby slo vubec spustit zakladni graficke okno pod windows a v klidu si do nej malovat.  Takze to vzdavam.

Mel si pravdu, tuhle neskutecnou sracku nabalenou kolem kodu fakt nedam. Resit 95% nejakych IMO nekde tajne zdokumentovanych hovadin ktere vubec nedavaji smysl aby me fungoval 5% obsahu MUJ KOD to fak nedam.

Takze mozna budu dal hledat nejake prostredi ktere za me poresi tech 95% sracek abych se mohl venovat svemu kodu. A pokud to nepujde, tak co uz. Jako webovku to fakt psat nebudu. To uz radeji ted dosbox kde mam celou obrazovku pro sebe a bez tech wokenicovejch sracek.

Takze sorry za cas o ktery jsem te obral. Mozna v pristim zivote :)

Nahlásit jako SPAM
IP: 90.176.144.–
JerryM0
Věrný člen
14. 9. 2023   #28
-
0
-

ano ukázky kodu používají to co píšeš protože jsou to "dětské" ukázky kodu na ukázku, v praxi je bohužel nutné "uvolnit" zámek na soubor obrázku na disku protože příkazem
Bitmap image1 = new Bitmap("image1.png")
se soubor na disku uzamkne dokud se handle neuvolní příkazem image1 = null; a když nastane chyba v tvém kodu tak se neuvolní nikdy což je problém. takže proto se v reálném dospělém světě používá vytvoření obrázku do paměti.

ano říkal jsem ti to, moderní programování je opravdu velmi obtížené -- svým zpusobem. ale C# a WinForms co jsem ti vybral patří mezi to jednodušší. na stejné úrovni je Python. musel by ses to učit min. 2 roky. a ty si to vzdal po týdnu. asi proto že seš důchodce a je ti 68 ? 70 ? takže jedině DosBox a návrat do MSDOSu nebo si pořiď VMWare a to samé pod Windows 98/ME nebo WIndowsXP32bit (to je nejlepší volba) nebo pak prostě ten MSDOS a nebo se nauč Linux nějakou hezkou verzi třeba Ubuntu ...  a dělej to v Céčku pod Ubuntu  a jako prostředí si vem Eclipse nebo něco z NetBeans. .

Nahlásit jako SPAM
IP: 2a00:1028:83bc:e52a:a091:2e47:e27d:372c...–
Atro
~ Anonymní uživatel
19 příspěvků
14. 9. 2023   #29
-
0
-

#28 JerryM

Problem je, ze jsem to nechtel delat pro sebe. Chtel jsem se podelit s kamarady ale hlavne jsem chtel zkusit, zda kod, ktery mi nedelal problem psat v dobe kdy nebyl clovek svazany prostredim windows (cela obrazovka a cely vykon PC byl jen 'muj') bude fungovat (po upravach) i dnes.

Zase tak stary jeste nejsem, 60 mi jeste neni, Mam pocit, ze to asi nedokazi poradne vysvetlit. Ze tu vznika 'sum'. Me je samozrejme jasne ze se otevrene/locknute soubory musi zase uvolnit. Nechytej se prosim jen jednoho kousku VYSEKU kodu. Jak jsem se snazil (asi neuspesne) popsat. Problem je jinde. Zkusim to popsat imaginarnim rozhovorem zkuseneho programatora treba s novackem (to jsem jako ja :D)

ja: tak jsem doplnil kod co jsi mi rekl a funguje to. Kdyz jsem ale posunul obrazek kus dal, hlasi to chybu XY

odbornik: no jiste, tak to nejde musis doplnit kod XYZ protoze jinak to nefunguje

ja: aha a kde to zjistim? mimochodem, muzu zobrazit ty obrazky dva?

odbornik: jak zjistis? To je prece zakad. v C# to tak proste je, Proc chces vedet proc? A dva obrazky jiste, pridej tam ten druhy na dalsi radek. Je to stejny kod.

ja: Zaklad v C# ale kde se dozvim, ze kdyz udelam A musim udelat i B,C pripadne D aby to fungovalo? A taky doplnil jsem radek jak jsi rekl,ale kod prestane vykreslovat i prvni obrazek.

odbornik: a doplnil jsi i na zacatku kodu XYZ? A do definice formulare taky FGH? Vzdyt to je preci uplne jasne ze to tam musis dat, jinak to fungovat nebude.

ja: nedoplnil. To je aby se zobrazil druhy obrazek nebo aby to nejak vubec fungovalo?

odbornik: posli me ten kod, ja se na to kouknu

...po hodine...

odbornik: posilam ti ten kod..

ja: co tam bylo spatne?

odbornik: mel jsi to uplne spatne

.....

Pro me je dulezite abych pochopil PROC. Proc se musi s A doplnit i B. Nevim zda je nejaky kurz ktery by dokazal reagovat na dotazy zaku. Podle me proste schazi hromada zakladnich veci, informaci ktere nejsou automaticke pro novacka zatim co profik je dela automaticky a vubec mu nedochazi, jak ta provazanost je dulezita.

Bard poskytuje hromady infa ale je to vzdy jen fragment ktery bez patricne kostry nefunguje.

stalo se mi kuprikladu i to, ze jsem otevrel novy projekt ale v editaci formulare nesel doplnit button. Ta volba byla zasedla. Netusim proc. je to milion veci, ktere bych rad vedel ale nemam jak najit odpoved. Asi neumim hledat a nici me to.

Nahlásit jako SPAM
IP: 90.176.144.–
JerryM0
Věrný člen
14. 9. 2023   #30
-
0
-

napadlo mě že bys mohl zkusit Promox a v něm MSDos nebo FreeDOS

https://www.youtube.com/watch?v=lG5jVYrpKiM

https://www.proxmox.com/en/

je to mnohem lepší než DOSBox

Nahlásit jako SPAM
IP: 2a00:1028:83bc:e52a:a091:2e47:e27d:372c...–
Atro
~ Anonymní uživatel
19 příspěvků
14. 9. 2023   #31
-
0
-

#30 JerryM
Nenapadlo. Protoze ac s tim mam chut prastit, tak nechci a budu hledat a zkouset dal.

Nahlásit jako SPAM
IP: 90.176.144.–
Atro
~ Anonymní uživatel
19 příspěvků
15. 9. 2023   #32
-
0
-

Ja to fakt nechapu, zadam kod presne podle popisu a stejne to nejede. Zobrazi se prazdny form (defaultni okno ktere vytvori designer po spusteni noveho projektu) plus dalsi male prazdne okno definovane v kodu.

 obsah Form1.cs:

using System;
using System.Drawing;

namespace WinFormsApp5
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();


            // Vytvorte instanci tridy Image a nactete do ni obrazek.
            Image image = Image.FromFile(@"C:\\_APP\\060 winforms bitmap\\01-start.png");

            // Vytvorte instanci tridy Form.
            Form form = new Form();

            // Vytvorte instanci tridy Graphics a priradte ji formulari.
            Graphics graphics = form.CreateGraphics();

            // Vyuzijte metodu DrawImage() tridy Graphics k vykreslení obrazku na pozadovane souradnice.
            graphics.DrawImage(image, new Point(1, 1));

            // Zavrete graficky kontext.
            graphics.Dispose();

            // Zobrazte formular.
            form.Show();
        }
    }
}

Proc se nezobrazi ten obrazek?
Potrebuji menit souradnice vykresleni, proto jsem zkousel DrawImage.

Se fakt picnu...

Nahlásit jako SPAM
IP: 90.176.144.–
JerryM0
Věrný člen
15. 9. 2023   #33
-
0
-

nevykreslí ti nic protože hned po vykreslení dáváš
graphics.Dispose();
a nekreslíš na podklad na který se má kreslit

hele vzdej to tohle nemá smysl .. .jak jsem říkal to je na 2 roky a takhle by u tebe někdo musel 2 roky sedět

Nahlásit jako SPAM
IP: 2a00:1028:83bc:e52a:ccc3:33a2:1b74:31c9...–
gna
~ Anonymní uživatel
1864 příspěvků
15. 9. 2023   #34
-
0
-

Kreslení na Form by mělo fungovat, ale neuchovává se a když se z nějakého důvodu překreslí, tak ty tvoje kresby zmizí. Teď kreslíš ještě před zobrazením formuláře a jeho zobrazení pak proběhne "normálně".

Hoď tam ještě PictureBox, jak psal Jerry, a kresli do jeho Image. To by mělo fungovat podle očekávání.

Nahlásit jako SPAM
IP: 213.211.51.–
Atro
~ Anonymní uživatel
19 příspěvků
16. 9. 2023   #35
-
0
-

#34 gna
Na to mizeni bych pouzit ten forced event na vynucene prekresleni. Tak me napada, ani jsem nekoukal, zda lze form zobrazit jako fullscreen. ALe to uz je asi fuk.

Podle me se ale pro me reseni pres forms nehodi. Potrebuji kreslit do jednoho okna (at uz je to form nebo picturebox) vice obrazku a nektere se i presunuji. Coz pravdepodobne nejde. Kazde dalsi zobrazeni noveho obrazku premaze cele okno. Nemuzu ani rozdelit scenu na segmenty (v podobe XxY pictureboxu), protoze grafika se prolina celou scenou.

Hledal jsem zda neni nejaka alternativa. Koukal jsem na Unity a taky na Python s PIX nebo Pillow. Zalezi, ajk moc balastu bude chtit vlastni inicializace. Pokud to bude srozumitelne i pro 'duchodce', tak to zkusim.

Jen se trochu bojim ze Unity bude jako jit s kanonem na vrabce. A ze u Pillow zjistim, ze je tam zase nejaka silena incializace a vazby ktere se clovek musi nasrotit.

Nahlásit jako SPAM
IP: 90.176.144.–
BDS+3
Věrný člen
19. 9. 2023   #36
-
0
-

vice obrazku a nektere se i presunuji. 

Pokud má jít o plynulý pohyb, třeba navíc i nějaká animace, tak se Windows Form opravdu moc nehodí. Pokud by jsi chtěl dělat něco jako bylo Malování v XP, tak není problém. Animace se dají lépe dělat ve WPF, ale to už je trochu jiný level. Ale asi by jsi to zvládl snáze než Vulkan, DirectX, Unity apd.

Nahlásit jako SPAM
IP: 185.69.68.–
W10 :)
Atro
~ Anonymní uživatel
19 příspěvků
20. 9. 2023   #37
-
0
-

#36 BDS
malovani ne, Nic takoveho. Proste dve logicke graficke hry. Ovladani pomoci klaves (mys neni treba) , Na kazdy stis klavesy se presunuje grafika. Nektere kousky zmizi nebo se prekresli na neco jineho.

MUj problem je, ze ja tak nejak veril ze ze mi prace pri prenosu tech 2 her pod C# pomuze se jazyk naucit. Bohuzel snahao prekonani tach prekazek v 'iniciaizacni casti' je tolik, ze, me to deptalo az me to udeptalo. A to jsem se defakto vubec nedostal k vlastnimu kodu.

Bavil jsem se s par kamarady co maji vice zkusenosti s programovanim. Vysledkem bylo, ze vsichni nenavidi jak tohle  (ne)funguje a naprosty chaos kolem inicializaci. Popsal bych s tim stranky co jsem slysel. Nejvtipnejsi okamziky ale jsou, kdyz v casti kodu nadepsane 'zde je misto pro Vas kod' nebyl NIKDY zadny kod, vzdy byl v jine casti nebo jinem souboru :)

Kazdopadne po testu v Pythonu uz se obrazky hejbou, presunuji a bez nutnosti venovat 'utajenym' inicializacim' a chaotickemu deleni zdrojaku hodiny a hodiny zivota. Krom toho mam v zaloze jeste jedno prostredi ktere vypada jeste vic cool.

Nahlásit jako SPAM
IP: 90.176.144.–
BDS+3
Věrný člen
20. 9. 2023   #38
-
0
-

O.T.

#14 remmidemmi
Znám borce z moravské firmy, kde místo MS Wordu používají MS Excell a textové zprávy a majly píší v MS excellu a ty pak odesílají majlem.

To je ještě "slabota" k nám starostové obcí zasílají personálie pro zpracování (tisk). Už se mi několikrát stalo, že mi (většinou) starosta pošle podklady tak, že vytvoří v excelu tabulku, tu vytiskne na papír, vyfotí to mobilem a pošle to z PC! mailem (Outlook mu nabídne zmenšit obrázek, tak ho samozřejmě ještě zmenší). Já mu pak zavolám, jestli by nebyl tak laskav a neposlal mi ten soubor, který vytisknul. On na to, že by mi to poslal, ale neví kdy se mu to uložilo.. / nebo to dělala sekretářka a ta už je na dovolené... na konec to najde:) super už mám půlku dat přepsaných na text   A za půl roku znovu... na zabití:)

Nahlásit jako SPAM
IP: 185.69.68.–
W10 :)
gna
~ Anonymní uživatel
1864 příspěvků
21. 9. 2023   #39
-
0
-

Bavil jsem se s par kamarady co maji vice zkusenosti s programovanim. Vysledkem bylo, ze vsichni nenavidi jak tohle  (ne)funguje a naprosty chaos kolem inicializaci.

To jste zajímavá parta důchodců :)

Nahlásit jako SPAM
IP: 213.211.51.–
Jerry
~ Anonymní uživatel
504 příspěvků
21. 9. 2023   #40
-
0
-

jo jo důchodci ... je nás stále víc a víc :) :) :)  důchodci vpřed !!!

Nahlásit jako SPAM
IP: 2a00:1028:83bc:e52a:dd5f:cb3b:d73a:ca89...–
Atro
~ Anonymní uživatel
19 příspěvků
21. 9. 2023   #41
-
0
-

#40 Jerry
Mno, pokud nas omladina patricne obohacena vsudepritomnym PŠM nesemele na hnojivo.

A somozrejme pred tim, nez vyzereme 'jejich' prachy z duchodoveho systemu.

Ja teda snad jesne nejaky stihnu uzit, Vzhledem k milionprocentnimu narustu nefachcenek z rad mladych (nejen) vysoskolaku po absolvovani vsech tech novodobnych nepouzitelnych oboru (ktere by zvladlo dite z predeslych rocniku asi tak v pate tride ZŠ), je budoucnost lidstva v dobrych rukou...

AI jiste poradi :)

btw: sorry za OT.

Nahlásit jako SPAM
IP: 90.176.144.–
remmidemmi0
Věrný člen
25. 9. 2023   #42
-
0
-

#41 Atro
postavte mladého perspektivního  inženýra z ČVUT elektrofakulty k analogovému počítači (sestavenému z  moderních operačních zesilovačů většinou Analog Devices, teda žádný retro) a dejte mu za úkol sestavit program pro simulaci jednoho cyklu oběhu Měsíce okolo Země. Uvidíte tu reakci. :)

V podstatě simulační programy na analogových počítačích jsou hry v reálném čase. Netřeba malovat nějaké obrázky, počítač vytváří obrázky sám. Pouze nastavíte knoflíky a zmačknete tlačítko a "hra" začíná.

Na analogovém počítači si můžete naprogramovat jakoukoliv hru. Cokoliv vás napadne. Třeba let na Mars , přistání na Marsu , odchyt jednoho tam žijícího Marťana, jeho dopravu do kosmické lodi, start z Marsu a návrat na Zemi.  Je to jen o tom, kolik resources (operačních zesilovačů, derivátorů, integrátorů, zdrojů, potenciometrů. AD a DA převodníků ...) má váš analogový počítač. Výstup pochopitelně na barevnou velkoplošnou obrazovku. A je to o tom, na kolik programátor umí matematiku a dokáže napsat program. Jestli programátor umí jen mlátit kódy do kávesnice, je to málo. To uměla kdejaká bába písařka před 50 roky. Jen mlátila do klávesnice psacího stroje...

Nahlásit jako SPAM
IP: 78.80.120.–
MilanL+1
Grafoman
25. 9. 2023   #43
-
0
-

V C to jde dnes taky, jen je třeba se postarat o vše okolo vytváření Windows okna a jeho součástí, to co si v C# .NET s WPF nebo WInform nakóduješ/naklikáš vizuálně, to musíš v C vše obsloužit kódem - není to tak složité, když natrefíš na správný YT tutoriál.

Co se týče toho zdrojového obrázku a zobrazení je několik možností.

Pro jednoduchost přechodu ze starého na nové programování/kódování si lze starou grafickou paměť představit jako bitmapu a obraz generovat do bitmapy a tu následně zobrazit v daném prvku okna. 

Nahlásit jako SPAM
IP: 91.139.9.–
Atro
~ Anonymní uživatel
19 příspěvků
26. 9. 2023   #44
-
0
-

#43 MilanL
To bych hrozne rad. Predstava neni problem. Vzdy ale narazim na problem:

stara prace s obrazovkou bez patosu VS nova prace s oknem pod win + bambilion patosu.

A abych byl uplne presnej - ja bych tam ten patos klidne napsal, ale asi nemam bunky hledat v nejake IMO utajene dokumentaci jak ma ten patos vypadat. Krom toho, staci zmeni jednu uplne s tim nesouvisejici vec (radek v kodu mimo) a cele se to rozpadne a uz to nedam dohromady.

Mozna to nekoho bavi (goglit hodinu) a hledat co si vlastne ten M$ kompilator preje abcyh mu tupe opsal z nejaky definice. A nebo jsem opravdu tak starej, ze nechapu, ze misto 20 radkoveho kodu je nahle 100kB velky adresar projektu, ktery obsahuje vagon neskutecnych sracek?

Vzdy jsem si myslel, ze 'vyvojove prostredi' ma cloveku pomahat... Ted mam pocit, ze ma cloveka vytacet do ruda. Veci typu nadefinoval jsem event na konkretni okno.. uz ho nepotrebuji, tak ho ze zdrojaku smaznu JAJ! No jeste musim projit tech 100kB balastu a najit kde je schovane neco, kvuli cemu se to nezkompiluje..

A tak podobne...

Nahlásit jako SPAM
IP: 90.176.144.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 3 hosté

Podobná vlákna

Práce s diskem pod ms dos — založil VáclavValíček

Win10 64/32bit — založil Michal

Chyba s grafikou — založil pali6

Stránky s grafikou — založil Jakub

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý