Powiedzmy że guag może przybierać wartości od 0 do 180 (kąty w stopniach). Później przerabiasz to na radiany. Następnie obliczas wartośc x i y z sinusa i cosinusa kąta znając promień (czyli to co chesz rysować - ramię). ramie:= 100; rad:=stopnie*3,14/180; dx:=ramie*cos(rad); dy:=ramie*sin(rad); mając X,Y punktu początkowego...
Użyj przed rysowaniem Lock dla kanwy, a po rysowaniu uwolnij ją. Co do Synchronize - musi ona być wywoływana zawsze z danego wątku, a ten zapis co przedstawiłeś nie do końca wskazuje na to.
Może spróbuj tak: with Image1.Canvas do begin Brush.Color:=clWhite; //Kolor dowolny , taki przyjmie Kanwa. FillRect(ClipRect); end;
Zamiast przypisania spróbuj użyć metody Assign . A najpewniej jest wykorzystać metodę Draw Canvy docelowej.
Dzięki za szkic programu, miałem się na czym wzorować :) Ja to napisałem tak i nie było żadnego problemu: [syntax=delphi] unit Unit1; {$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls, ComCtrls; type { TForm1 } TForm1 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; Button4:...
1. Metody LineTo i MoveTo Canvy bądź z WinAPI. 2. Poprzez własność Pixels[] canvy, bądź metodę PutPixel z WinAPI. 3. Zależy jakiego typu ma być krzywa. Najbardziej elastyczną są Krzywe Beziera, które można rysować wykorzystując gotowe metody (także w WinAPI). Parametry polecenia Arc są opisane w pliku pomocy.
DZIAŁA :D Dziękuję bardzo! Przy okazji - dzięki temu zrozumiałem też nadpisywanie Events. Jakby ktoś szukał, to zostawiam w wątku dodatkowo: http://pl.wikibooks.org/wiki/Delphi/Canv... http://delphi.clockwork-bits.pl/Pytania/...
Canvas.CopyRect; Canvas.Draw.
Sugeruję zapoznanie się z tym tematem : [url=http://www.elektroda.pl/rtvforum/to... 7 - rysowanie wykresów
COLORREF GetPixel(HDC hdc, int XPos, int YPos); hdc:=Canvas.handle; //Delphi hdc=Canvas->Hnadle; //CPP
w porządku, a jak chcę nanieść na mój wykres za pomocą funkcji Canvas to co muszę zrobić? by miał miejsce po przecinku?? Niech zgadnę, chodzi Ci o tekst? Jeżeli tak, to:[syntax=delphi]Canvas.TextOut({położe...
Witam!! Moze moje pytanie jest banalne,ale się zapytam.. Narysowalem wykres na canvasie obiektu image.Teraz chce na tym samym canvasie narysowac inny wykres i tamten zmazac.Jak to zrobic?? Albo wyrysować wypełniony prostokąt/kwadrat na canvasie ale o wymiarach canvasu.
Canvas.OutTextXY(10, 20, "tekst");
A tak próbowałeś ? [syntax=delphi]procedure TForm1.Button1Click(Sender: TObject); var BMP: TBitmap; begin BMP:=TBitmap.Create; with BMP,Canvas do begin Width:=100; Height:=100; PixelFormat:=pf1bit; Font.Name:='Calibri'; Font.Size:=20; TextOut(10,10,'Napis testowy'); SaveToFile('c:\aaa.bmp'); end; FreeAndNil(BMP); end; [/syntax]
Witam wszystkich otóż piszę na zaliczenie program zegar analogowy nie powiem bo także przy pomocy internetu i w pewnym momencie stanąłem niby zegar działa ale... Właśnie wskazówki zmieniają długo przy zmianie godziny minuty wszystko zapewne przez funkcji Canvas.LineTo tylko nie wiem czy to można jakoś zastąpić i nie wiem jaką funkcję napisać aby dobrze...
Może, w przypadku wolniejszych komputerów, spróbuj wywoływać refresh nie co jeden odcinek, a co kilka. Można także posłużyć się [url=http://graphics32.org/wiki/Main/Gra... ale nie wiem czy to pomoże w przypadku bardzo częstego odświeżania Canvas.
Tworzę w Delphi na Canvas-ie w TPrinter wydruk dokumentu. Dokument ma zawierać logo z pliku graficznego (bmp lub jpg). Używam metody LoadFromFile. I wszystko jest OK. Ale gdy przeniosę skompilowany plik .exe do innego katalogu, to próba wydruku kończy się komunikatem o braku pliku z grafiką logo. Czy istnieje jakiś sposób, by zawartość obrazka znalazła...
Witam! Jak korzystajac z Tchart zrobic na nim obszar (wielokat... no w najprostrzym przypadku jakis kwardat) ktoy mialby inny kolor niz pozostaly obszar wykresu ? ( chodzi o wizualne zaznaczenie dozwolonych wartosci... wszystko to co wychodzi poza byloby bledne...) ps. wolalbym uniknac malowania po canvas...
I teraz druga rzecz: o dziwo nic mi się nie gryzie w zmiennych, wątki śmigają piknie panocku, generują poprawne wyniki i aż serce rośnie. Mam jednak problem z rysowaniem podczas działania programu. A nie rysujesz przypadkiem w tym "roboczym" wątku?
Czy to jest jedyny kod (pisany samemu) w programie?
Zapomniałem jeszcze dodać, że w przedefiniowanej metodzie (override) jest: [syntax=delphi]Canvas.Brush.Color := clFuchsia; Picture.Bitmap.SetSize(_Width, _Height + 1); Canvas.FillRect(Rect(0, 0, _Width, _Height + 1));[/syntax]Dla czyszczenia zawartości przed ponownym malowaniem. Wszystkie takie jednostkowe obliczenia oczywiście wyrzuciłem przed pętle,...
int y=StrToInt(RevS);
Użycie OpenGL/DirectX, czyli generalnie karty graficznej, która dokona wygładzenia. W czystym WinAPI możesz co najwyżej przeprowadzić próbkowanie i rozmyć krawędzie lub po prostu samemu wyliczyć punkty, które mają największy błąd zaokrąglenia i dodać tam dodatkowe piksele (dla prostych to sprawdzi się lepiej niż pierwsza z metod). [zobacz na https://stackoverflow.com/questions/3613...
Canvas.Draw('D:\Documents and Settings\krzys\Pulpit\Moje obrazy\domek.bmp'); Tak nie można :> Draw(X, Y, Bitmap); Więc... Bitmap.loadFromFile('d:\doc........ Canvas.Draw(0,0,Bitmap);
Przykład czegoś takiego można odnaleźć choćby w komponentach "stylu XP", gdzie menu są rysowane ręcznie. Ze względu na fakt, że w WinAPI zajęłoby to jeszcze więcej kodu, zaś kodu z C++ pod ręką nie mam, podaję kod Delphi: {**********************************... { } { Borland Delphi Visual Component Library...
Hm.. a w jakim języku ma być kod? najprostrza metoda do takiego rysowania to Canvas. zamalozać jednym kolorem (tło).. namalować przedziałki czas/napięcie. potem przestawić kursor malowania na pozycje (0,data niedołączam pliku exe .. same source..
Mam zapisane wartości funkcji w tablicy np. tab Umiesz rysować linie? Ja trochę nie pamiętam jak się to robiło... ale chyba były to funkcję na Canvas typu MoveTo(x, y); oraz LineTo(x,y); Więc musisz stworzyć pętle typu: for x:=1 to 199 do begin Obiekt.Canvas.MoveTo(x, tab[x]); Obiekt.Canvas.LineTo(x+1, tab[x+1]);...
Najczyściej w takim przypadku używa się :[syntax=delphi]Canvas.TextWidth('jakis tekst'); Canvas.TextHeight('jakis tekst');[/syntax] Podobna metoda istnieje w VBA : http://msdn.microsoft.com/en-us/library/... Więc może także w tym Basic4android?
Mam kolejne problemy... 1. Jak rysuję po PaintBox1.Canvas to mruga obraz mimo DoubleBuffered dla formy - pod XP niż nie mrugało. 2. Nie działa założenie hooka na klawiaturę :( //przechwytywanie klawiatury MainHook := SetWindowsHookEx(wh_JournalRecord, KeyHook, HInstance, 0); Post oddzieliłem. - arnoldziq
procedure TForm1.Button1Click(Sender: TObject); begin if Printdialog1.Execute then try with printer do begin begindoc; chart1.PrintPartial(rect({4... canvas.Pen.Color:=clblue; canvas.Pen.Width:=1; canvas.Brush.Style:=bsclear; canvas.Rectangle(rect({45,7...
Jak zakolorować trójkąt na zielono , a koło na żółto ? procedure TForm1.Button1Click(Sender: TObject); begin Canvas.Brush.Color:=clyellow; Canvas.Ellipse(200,200,350,50); Canvas.MoveTo(200,200); canvas.LineTo(350,200); Canvas.MoveTo(350,200); canvas.LineTo(350,50); Canvas.MoveTo(350,50); canvas.LineTo(200,50); Canvas.MoveTo(200,50); canvas.LineTo(200,200);...
Oto wersja ewaluacyjna :) , wykonana "na szybkiego". Czy o coś takiego chodziło ? procedure TForm1.ComboBox1Enter(Sender: TObject); var M,L: integer; begin M:=0; with ComboBox1,Canvas,Items do begin for L:=0 to Count-1 do //pętla wyszukiwania najdłuższego ciągu M:=Max(M,TextWidth(Items[... if M>0...
Witam czy jest jakiś sposób na wymazywanie pojedynczych linii w PaintBoxie czy tylko zostaje zakolorowanie na biało linii Do tej pory wyglądało to tak [syntax=delphi] PaintBox1.Canvas.Clear; PaintBox1.Canvas.Pen.Color:=clBlue; PaintBox1.Canvas.LineTo(70,120+TrackBar1... PaintBox1.Canvas.LineTo(70,120); [/syntax] Niestety mam kilka lini naraz...
Możesz malować po canvas, a co do czyszczenia to nie ma takiej gotowej funkcji, najprościej rysować wypełniony prostokąt. A co do konstrukcji programu to polecam najpierw wygenerować obraz tła (osie, zarysy etc) w obiekcie TBitmap, następnie utworzyć nowy obiekt TBitmap skopiować do niego obiekt z tłem, następnie namalować interesujący obraz a na końcu...
Mam duży problem i nie wiem co z tym zrobić :cry: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, ColorGrd, ExtDlgs; type TForm1 = class(TForm) Button1: TButton; PaintBox1: TPaintBox; ListBox1: TListBox; ListBox2: TListBox; ComboBox1: TComboBox;...
Rzeczywiście, TImage i canvas są w tym przypadku niezastąpione. http://obrazki.elektroda.net/46_12614902... procedure TForm1.Button1Click(Sender: TObject); var x : integer; step , y : real; begin image1.Canvas.Pen.Width:=1; image1.Canvas.Pen.Color:=clblack; image1.Canvas.MoveTo(0,(Image1.H... div 2));...
.Canvas.Brush.Style := bsClear; //bo funkcja ellipse używa wypełnienia brush
Nie za wiele mi to pomaga, ponieważ wykres muszę mieć w komponencie Tchart podstawiam tam dane na x i y i rysuje mi strasznie kanciasty wykres a muszę mieć parabole i teraz czy bez zwiększania liczby danych da się coś takiego osiągnąć za pomocą jakiegoś polecenia? Canvas nie wchodzi w gre.
Najprosciej samo wypelnienie (z poprzedniego postu rozumiem ze chodzi o TImage): var a:TRect; begin a.Left := 0; a.Top := 0; a.Right:= Image1.Width; a.Bottom:= Image1.Height; Image1.Canvas.Brush.Color := clRed; Image1.Canvas.FillRect(a); end; Nie jest to moze zoptymalizowane pod wzgledem szybkosci i pamieci, ale masz...
ja1: wszystko co jest na aplikacji jest w rzeczywistości malowane bezpośrednio do karty graficznej.. jeśli fragment zostanie zasłonięty i ponownie odsłonięty to uzyskamy kolor tła aplikacji.. aby uniknąć tego efektu musisz w zdażeniu OnPaint odrysowywać całą część aplikacji, która niejest automatycznie odrysowywana.. teraz testując wspomniany efekt...
Witam... Nie wiem czy delphi 7 ma komponent do wykresow (zalezy jeszcze od wersji) ale najwygodniej by bylo posluzyc sie wlasnie takim komponentem(Builder 6 taki ma). Poszukaj na www.4programmers.net. Jesli nie znajdziesz to mozesz rysowac po Form poprzez Canvas (Form1->Canvas...) Inne komponenty tez maja wlasciwosc canvas jednak nie wszystkie. Bedziesz...
Witam Pracuję nad programem obrazującym stan procesu przemysłowego, programowanie w delphi nie idzie mi (jeszcze ;) ) najlepiej i proszę o kilka porad: Potrzebuję umiścić prostą grafikę na formie - coś podobnego jak na obrazku: http://obrazki.elektroda.net/11_11985834... W grafice muszę mieć możliwość: - sterowania kolorem wypełnienia, - wielkością...
Witam Pisze pewien program, ale zorientowałem się że się powoli gubię w kodzie dlatego chciałbym go sobie podzielić na mniejsze części już wykorzystałem biblioteki Dll ale z pewna rzeczą mam już kłopot, nie chciałbym przedstawiać całego programu żeby nie zaciemnić problemu pozwolę sie posłużyć przykładem. Dodam jeszcze że program jest związany z tworzeniem...
Jest możliwe, żeby Printer.Canvas był "tylko do zapisu" ?
Z użyciem ScanLine, kolor jest zmieniany prawie w czasie rzeczywistym - sprawdziłem. To może kolega się kodem podzieli? :P Tu nie ma się czym dzielić :-). Do konwersji RGB->HSV->RGB użyłem "na szybko" znalezionego unit'a: [url=http://users.atw.hu/delphicikk/list... [syntax=delphi]unit Main; interface uses Winapi.Windows,...
Ok, dziękuję. Pojawił się niestety kolejny problem (mam nadzieję, że ostatni). Po spełnieniu warunku wyświetlam komunikat ShowMessage('Test'); oraz resetuję zmienną odpowiedzialną za spełnianie tego warunku i pętla while leci dalej. Problem jest taki, że te komunikaty nie wyświetlają się poprawnie, tzn. czasem są dobre, a czasem okienko komunikatu jest...
Mam pytanko co do rysowania linii. coś w stylu. Image1.Canvas.LineTo(100,100); jak wyłączyć aby nie łaczyło mi koniec linii z początkiem. Chodzi o to że jak rysuje wykres a potem zaczynam kolejny na tym samym Image to mi łaczy koniec pierwszego z poczatkiem drugiego. drugi problem, Jak wyczyściś pole: Image? do tej pory rysowałem prostokąt....
Dzięki, ale szukam możliwości stworzenia i drukowania zawartości IMAGE bez zapisywania na dysku. Dodano po 10 Problem rozwiązany :) Printer.Canvas.Draw(0, 0, Image1.Picture.Graphic); Dzięki za zainteresowanie Pozdrawiam Puchała
No niestety delphi nie obsługuje PCX - jednak istnieją komponenty i/lub biblioteki które taką obsługę dokładają. Później masz dostęp (zazwyczaj) przez canvas i możesz kopiować --> z zapisem nie będzie problemu. Jeśli chodzi o te komponenty to ja kiedyś używałem DevIL (OpenIL) darmowa biblioteka która obsługuje troche formatów - ale robiłem przeglądarke...
Witam Mam drobny problem z kolorowaniem rekordów w komponencie ListView wg zadanych kryteriów, a dokładniej jeśli SubItem = 'X' to ma być czerwone, inaczej normalne. Niby rozgryzłem jak zmieniać styl lecz podczas kolorowania w procedurze CustomDrawSubItem bierze pod uwagę tylko ostatni rekord kolorując całość wg niego. https://obrazki.elektroda.pl/7793408900_...
Na szczęście C++Builder korzysta z tej samej biblioteki, co Delphi i przeniesienie powinno sprowadzić się do zmiany składni pomiędzy językami. (mam nadzieję że znasz podstawy składni jednego i drugiego). Jeżeli będziesz miał jakieś kłopoty, spróbuję coś jeszcze pomóc. Na razie parę podpowiedzi: C++ nie uznaje zagnieżdżania procedur, procedurę DrawCross...
....dobrze że są tu tacy ludzie :) . Dziękuje o to mi chodziło. [syntax=delphi] st: string; begin st:=memo1.lines[memo1.CaretPos.Y]; label2.Left:= (canvas.TextWidth(st)); end; [/syntax]
Żadnych sleepów! Timer ma swój interwał i on powinien tylko na przemian zapalać i gasić kursor. Możesz spokojnie zrobić (w kontekście Timera): if Tag=0 then Canvas.Pixels[]:=clBlack else Canvas.Pixels[]:=clWhite; Tag:=Tag xor 1;
Może to trochę pomoże: procedure TForm1.FillGrid; var i,j: Integer; begin StringGrid1.DefaultDrawing := False; for i := 0 to StringGrid1.RowCount -1 do for j := 0 to StringGrid1.ColCount -1 do StringGrid1.Cells[ j, i ] := Format('Współ. kom.: K: %d, W: %d', [j, i]); StringGrid1.Repaint; end; procedure...
Mam taki problem ponieważ tworzę aplikację która wyświetla animacje na komponencie TImage (rysuje figury) i robię to w pętli [syntax=delphi] repeat for i:= 1 to 50 Form1.Image1.Canvas.Ellipse (a, b, c, d); until Koniec [/syntax] I żeby widzieć efekt animacji muszę stosorać Rapaint lub Reflash. Czy idzie to jakoś ominąć ponieważ animacja jest w tedy...
Tak sie składa, że robię bardzo podobny program do diodek RGB. użyłem tabeli DrawGrid i działa kolorowanie kratek. Jednak narazie mam schody z zaznaczaniem fragmentów tabeli:/ Pojedyncze klikanie szybko sie nudzi, a czasem trzeba skopiować cały blok sekwencji. Tak wiec już mowie jak to wykonać, może sie komuś przyda: Even OnDrawCell jest wykonywany...
Proszę o podpowiedź jak za pomocą Canvasa wyświetlić tekst obrócony o 90 stopni? Jest do tego jakieś specjalne polecenie czy trzeba kombinować po swojemu z odwracaniem wycinka już narysowanego obszaru?
Witam Jestem początkującym programistą i mam male pytanie jak narysować na płutnie (Canvas) taki kształt jak na rysunku. Próbowalem juz rysowac metoda taka jak w Logo ale zajmuje ona za dużo kodu i nie można później wypełnić tego kształtu kolorem. Zamykam. - arnoldziq
Po co zaraz OpenGL ? Przecież w sumie wystarczy nawet prosta aplikacja w delphi , visual'u . Odbierasz dane po np. RS i rysujesz wykres . Ilość próbek w x czasu (gdzie x jest stałe lub definiowane) a próbka to zawsze 8 bitów (jeżeli zrobisz 8 kanałowy) Takie rzeczy w delphi mozna zrobić poleceniem canvas.draw(x,y)=color ... tu nie na 100% bo juz dawno...
Powalam sobie odświeżyć temat, bo rowiązania do dzisiaj nie znalazłem, a nadal go potrzebuję. Zadam pytanie z innej strony - z czego korzystacie, robiąc wykresy? Doszukałem się informacji o "canvas", ale to zabawa z rysowaniem "kreseczek na papierze" i problemy z położeniem wykresu na formatce (np przy jej skalowaniu). Znalazłem komponenty SDL, ale...
Moze cos takiego col:=bitmapa.Canvas.Pixels[x][y];
Witam Mam taki problem: nie wiem jak wysłać orbazek do przeglądarki www. unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs,IdBaseComponent, IdComponent, IdCustomHTTPServer, IdContext, IdHTTPServer, StdCtrls, ComCtrls, IdCustomTCPServer, IdSocketHandle, MMSystem, CPort, CPortCtl, GR32_Image,...
Witam. Możesz to zrobić na standardowym komponencie Delphi jakim jest PaintBox. Jest to komponent po którym można malować ( stawiać poszczególne pixele, linie, proste figury geometryczne ) Wszystko odbywa się na obiekcie Canvas ( czyli np. PaintBox1.Canva.Pixel[10,20]=clBlack - stawia pixel koloru czarnego w punkt o współrzędnych 10,20 , w analogiczny...
Zainstalowałem sobie Lazarusa na Win10 i postanowiłem przetestować zwykłe rysowanie linii metodą - MoveTo - LineTo. Na formie dodałem 2 komponenty Panel i przycisk Button po którym kliknięcie oba panele mają się zapełnić wzorkami typu kratka i kolorowe linie wychodzące od środka. Trywialna sprawa. O ile kod gładko chodzi to występuje pewna niedogodność....
Dziękuje za odpowiedzi. Lukawar - Komponent w postaci labela to trochę nie do końca dobre rozwiązanie, ponieważ ja bym chciał rysować ten cieniowany tekst na bitmapie, podczas gdy label to osobny komponent. Chyba, że by się dało zrobić, tak aby był sobie ten label i skopiować jego Canvas na docelową bitmapę, z tym, że metoda trochę partyzancka (choć...
Po co pobierasz X i Y myszy z Mouse jak masz jak na tacy podane X i Y poprzez argumenty zdarzenia MouseMove ? Zobacz: procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X , Y : Integer); Wystarczy teraz wykonać: procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin Label1.Caption:=IntToStr(X);...
witam. edit(-1): bitmapa:=TBitmap.Create; bitmapa.LoadFromFile(FileName); Form3.Canvas.CopyRect(rect(0,0,b... bitmapa.free; efekt: (z lewej plik oryginalny otwarty w msPaint, z prawej na mojej Formie3): http://obrazki.elektroda.pl/1418836700_1...
Dzięki za pomoc problem rozwiązany zamykam temat i załączam kod gotowego programu może kiedyś komuś się do czegoś przyda;] unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Label1: TLabel;...
No sorki, ale od początku krytykowałeś mój kod którego nawet nie sprawdzałeś. A ja sprawdzałem i okazywało się że on działał. Ej, bez przesady. Nie krytykowałem :-). Zamiast samemu grzebać w pliku BMP skorzystałem z Twojej konstrukcji z Canvas. Dzięki! Dzięki Tobie powróciłem do Delphi ;-). Raczej przeze mnie, bo Delphi to podobno przeżytek. Ja bardzo...
Witam, chciałbym zasięgnąć rady w sprawie tworzenia tabel w rave reports w delphi 7. Pomijam odczyt z bazy danych czy z plików bo to już mam zrobione. Nie chce też tworzenia zwykłej tabeli i wkładania tam normalnego obramowania, natomiast chciałbym aby tabela wyglądała tak : [url=http://yfrog.com/e4clipboard01xyj]L... Słyszałem, że można użyc do tego...
pisze komunikacje z prockiem,progarm w delphi. wymyslilem sobie tak ze procek wysyla dane ,komp odpowiada 1 jesli ok 2 jesli bad ,po sprawdzeniu parzystosci jesli 1 to procek wysyla nastepny znak jesli 2 to ten sam. jak to zrobic korzystajac z comport. moj kod wyglada tak procedure TForm1.ComPortRxChar(Sender: TObject; Count: Integer); var dana: String;...
Uhhh tez dlugo szukalem haka na rysowanie bezposrednie na pulpicie a nie na okienkach jak to ma miejsce przy GetWindowDC(GetDesktopWindow) Ale wkoncu gdzies znalazlem. Uchwycic trzeba odpowiednio ProgMan'a to on pozwala na rysowanie takie jak ty potrzebujesz: function GetDesktopListViewHandle: THandle; var S: string; begin Result :=...
jeśli chodzi o poszczególne literki to już inna bajka.... tak prosto się nie da można: a) zrobić tyle labeli ile liter i ustawać je label.left:=poprzedini.left+poprzedni.wi... b) rysowac własny napis na painboxie i jego canvasie ale tez musisz obliczac wspolrzedne nastepnej litery canvas.textout i canvas.font.color
Może to będzie straszne ale pisze: w napisaniu aplikacji :-D Próbowałem coś sam działać ale chyba w ogóle źle zacząłem opierając wszytko o formularz CANVAS, całość była podobna do rysowania w paincie a więc edycja "statyczna" a mi chodzi o "dynamiczną" możliwość tworzenia grafiki a więc przesuwanie obiektu itp. A poza tym nie mogłem w ogóle sobie poradzić...
Mam problem ponieważ moja aplikacja zbyt wolno działa podczas gdy pracuje z komponentem TImage i go opsługuje w jako wątek Thread. Poprostu rysuje sobie Image1.Canvas.Ellipse (); w ilości ok 500szt i je odświerzam co 5-35ms opuźnieniem np. Sleep (30); Problem jest tego typu że mi działa animacja ok co 0,5sek. Do odświerzania używam metody Synchronize...
ja to robiłem w ten sposób: {== zmienne globalne ==} down : boolean; sx, sy : integer; // współrzędne początka prostokąta ox, oy : integer; // wspórzędne końca {== zdarzenia bitmapy ==} {== onMouseDown ==} ... down := true; sx := x - Bitmap1.x; // pod zmienne sx i sy podstawiamy miejsce sy := y -...
na pewno nie układaj tyle komponentów bo nie dość że się komp zmuli konkretnie po tym programie, to Ty będziesz to pisał ze dwa lata...jak do każdego z ponad 30tys. komponentów chcesz napisać procedurkę....lol... Użyj TImage, masz tam onMouseDown (taki event) on wykrywa naciśnięcie klawisza myszki nad obszarem i pojade względne (lewy górny róg obrazka...
Rozumiem. Na chwilę obecną wszystko fajnie działa. Nie chciałbym tworzyć kolejnego tematu dotyczącego komponentu DSPack, dlatego zapytam tutaj. W różny sposób kombinowałem z naniesieniem tekstu na obraz, jednak mimo tego, że wizualnie na formatce on się tam znajdował to nie zostawał zapisywany do pliku. Przeglądając przykładowe dema dla tego komponentu...
Na formie Form1/ Unit1.pas mam komponent Image1, w module Unit2.pas nie chcę wstawiać Uses Unit1; bo tworzę "pokręconą"/uniwersalną klasę która chcialbym wywoływać z dowolnego modułu; W jednej z procedur np. UmageDraw(const FileName: String); chcę wczytać plik JPG o nazwie FileName i zamieścić go na TIMage albo poprzez uchwyt albo w ostateczności jakoś...
Jak w Delphi zmienić rozmiar bitmapy bez zniekształceń i zapisać do pliku? Skorzystałem z tego: http://www.7880.com/Info/Article-6ae82a0... (wszystkie procedury) i efekt jest taki jak po: Bitmap.Canvas.StretchDraw
Witam. Dlaczego metoda Canvas.LineTo(x,y) wykonuje się około 3-4 razy dłużej gdy Pen.Width:=2 w stosunku do Pen.Width:=1 ? Dotyczy to zarówno PaintBox'a jak również bitmapy wirtualnej. Czy można to w jakiś sposób przyspieszyć?
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, ComCtrls; type TForm1 = class(TForm) Image1: TImage; //Work area Image2: TImage; //Drag cursor eg 12x12 StatusBar1: TStatusBar; Timer1: TTimer; procedure FormCreate(Sender: TObject); procedure...
Dokładnie tak, jak z komponentem TImage możesz zrobić też bez użycia komponentu. Wystarczy w zmiennych globalnych zadeklarować zmienną np. var bmp: TBitmap; potem w zdarzeniu OnCreate Twojej formy głównej dajesz : bmp:=TBitmap.Create; bmp.Width:=ClientWidth; bmp.Height:=ClientHeight; rysujesz ten układ elektroniczny na bmp.Canvas a potem...
No cóż respekt dla wiedzy Jeszcze chciałem się dowiedzieć jak zrobić aby nagłówki kolumn również znajdował się w arkuszu i jak dopasować szerokość komórek w exelu do długości danych Tak rozwiązałem to z dopasowaniem długości komórek do długości danych w DBGridzie, a w exelu nie wiem jak to wykonać. procedure dopasuj_komurki; const dodatkowa_dlugosc...
Podmień w załączonym kodzie dwie procedury na takie : procedure TFormMain.PaintBox1Paint(Sender: TObject); var Cnt: Integer; begin for Cnt := 0 to GRAPH_WIDTH-1 do begin PaintBox1.Canvas.MoveTo( Cnt, (255-Graphic[Cnt, 0]) shr 1 ); PaintBox1.Canvas.LineTo( Cnt, (255-Graphic[Cnt, 1]) shr...
Kod ma bardzo dużo linii ale właśnie porównuję z poprzednik kodem co miałem na obiekcie image... i jedyną różnicę którą zauważyłem to poprzednio używałem funkcji Application.ProcessMessage a teraz jej nie używam w procedurach rysujących - jak ją dodałem teraz po zakończonym rysowaniu to wszystko działa jak należy - występuje zdarzenie raz/ 1 przesunięcie...
Hi, Poszukuję rozwiązania rysowania po Google Maps, wyświetlanej na komponencie TEdgeBrowser (WebView2). Do tej pory używałem TWebBrowser (IE11), ale ze względu na wycofanie wsparcia dla IE11 przez Microsoft i Google, jestem zmuszony użyć TEdgeBrowser. TWebBrowser miał dostęp do właściwości Document i poprzez kilka procedur Windows API mogłem dostać...
Miałem podobny problem i na necie znalazłem takie rozwiązanie 1) Najpierw deklarujesz coś takiego (pod uses) type TTabSheet = class(ComCtrls.TTabSheet) private FColor: TColor; procedure SetColor(Value: TColor); procedure WMEraseBkGnd(var Msg: TWMEraseBkGnd); message WM_ERASEBKGND; public constructor Create(aOwner: TComponent); override; property Color:...
Na wstępie zaznaczam że jestem zieloniutki z OpenGL, Muszę zrobić kawałek animacji w Delphi, Prosta wizualizacja procesu, zupełnie nic szczególnego, Rysując na canvie wszystko mruga, podwójne buforowanie też nic nie daje, Korzystając z pretekstu postanowiłem się dokształcić z OpenGL, Wszystko mi się podoba, bardzo to fajne jest ale jak wyświetlić kawałek...
Jak to się mówi: prosił pan, zrobił sam :). Rozwiązanie okazało się bardzo proste. Tym sposobem można rysować zarówno na TMediaPlayer oraz oknach, pulpicie, itp. Oto główna procedura dla wszystkich, którzy w przyszłości będą mieli z tym problem. Temat uważam za zamknięty. Dziękuję i pozdrawiam... procedure TForm1.Button1Click(Sender: TObject);...
var DesktopBitmap: TBitmap; GetCol: TColor; begin DesktopBitmap := TBitmap.Create; with DesktopBitmap do begin Width := Screen.Width; Height := Screen.Height; end; BitBlt(DesktopBitmap.Canvas.Handle, 0,0,Screen.Width,Screen.Height, GetDC(GetDesktopWindow),0,0,SrcC... GetCol := DesktopBitmap.Canvas.Pixels[0,...
Jakie OnPaint?? Przecież wtedy będzie się to rysowało przy każdym przesunięciu okna, jego zasłonięciu itp. Tylko przy odkrywaniu więc nie wprowadzaj ludzi w błąd. Przecież to logiczne, że musi zostać odrysowane to co zostało zakryte. Należy zdefiniować sobie zdarzenie AfterShow, czytaj tutaj: http://utak3r.pl/index.php?/archives/37-...
TImage powinien mieć Canvasa a on metody do zapełniania podobne do tych o któych pisał Dżyszla.
Hej! Bardzo prosto da się to zrobić w delphi ... bierzesz kolor formy np. clGreen, później wybierasz w inspektorze TransparentColor na true, i TranspareColorValue na clGreen - forma jest przeźroczysta dla systemu (win2000 wzwyż) zostaje tylko obramowanie, które zaraz usuniemy. następnie bierzesz bordelstyle na bsNone, windowState na wsMaximized i formstate...
Nie prościej urzyć paintbox?? procedure TForm1.Button1Click(Sender: TObject); var i:integer; x,y,tx,ty:real; begin paintbox1.canvas.Polyline([Point... //osie x,y i skala paintbox1.canvas.Polyline([Point... paintbox1.canvas.Polyline([Point...
Ja też w piszę w Delphi :) (choć sam język tutaj jest mało ważny - chodzi o idee). Skoro Ci się spodobało to fajnie :) naświetlę problem - mam plik tekstowy (HPGL) ze współrzędnymi, które wraz z innymi informacjami wrzucam sobie do tablicy jako X,Y + inne mało ważne teraz informacje. Więc stwórz sobie tablicę z kilkoma współrzędnymi (warto zrobić jakiś...
to akurat wydaje mi się nieważne w tym wypadku. jest tam normalne rysowanie na canvasie, kolorowo. ważne jest by drukując wywołać okienko opcji drukowania i po wybraniu tam, żeby na przykład drukować jako wersję szybką, czarno-białą, to żeby tak się wydrukowało.
A moge zrobić coś takiego używająć Stream'ów: [syntax=delphi]Type tDane = record Obraz : TStreamFile; end; var Bitmapa : TBitMap; F : File of tDane; Dane : tDane; begin Bitmapa:=TBitmap.Create; Bitmapa.Canvas.TextOut (0,0, 'test zapisu obrazka'); AssignFile (F, 'test.dat'); ... //przypisanie obrazka do rekordu Write (F, Dane); CloseFile (F); end;[/syntax]
najprosciem zrobic to tak: wczytaj bitmape do image, nastepnie za pomoca funkcji image.canvas.pixel[x,y]:=Tcolor; gdzie x,y to wspolrzedne pixela, a TColor to kolor w postaci HEX $RRGGBB. Pewnie nastepne pytanie bedzie brzmialo jak zapisac wartosc z ineger'a do tej zmiennej TColor. Rozwiazac to mozna nawiele sposobow, mozesz np tak: (Kazdy kolor jest...
do dopasowanie wczytaniej bitmapy nagryzmoliłem takie coś tylko Image1.Left:= 0; Image1.Top:= 0; Image1.Align:= alNone; procedure BitmapaToImageSize(Bitmapa: TBitmap; Image: TImage); begin // Image.Width:= Bitmapa.Width; Image.Height:= Bitmapa.Height; Image.Picture.Bitmap.Width:= Bitmapa.Width; Image.Picture.Bitmap.Height:=...
javascript canvas wykres canvas builder canvas
skrzynka przekaźników kredowy papier telefon mescomp
telewizor pionowy pasek galaxy watch
Głośne wirowanie pralki - przyczyny i rozwiązania Światła przeciwmgielne Peugeot 307 (2007) - problem z napięciem