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...
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));...
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]);...
Canvas.OutTextXY(10, 20, "tekst");
Ja nie zrozumałem. Image1->Canvas->Pixels Dodano po 16 Podaj jakis przykład wtedy nawet ja w innym stanie (nie jestem kobietą) zrozumiem.
Może nie całkiem na temat ale w jakim komponencie da się rysować dynamicznie w delphi bo gdyby zrobić krzywą smoka toby to nawet ładne było i jeszcze wrzucić jakiś timer żeby widać było na bieżąco jak się krzywa maluje :D
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.
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.
pisz trochę jaśniej... co dokładnie "nie działa" do listy uses dopisz moduł System, jaką wersje delphi używasz ?
Może spróbuj tak: with Image1.Canvas do begin Brush.Color:=clWhite; //Kolor dowolny , taki przyjmie Kanwa. FillRect(ClipRect); end;
Canvas.CopyRect; Canvas.Draw.
Zamiast przypisania spróbuj użyć metody Assign . A najpewniej jest wykorzystać metodę Draw Canvy docelowej.
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...
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!! W delphi nie siedze zbyt dużo, powstał już jednak dość zaawansowany jak na moje potrzeby program, potrzebuje jeszcze wykonać w nim coś takiego jak w centralnej części na filmiku http://www.lynxmotion.com/images/video/r... . Najlepiej żeby udało się to zrobić za pomocą instrukcji canvas czy paintboxa. Mam powerdrawa ale używam go już...
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...
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.
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...
OK, rozumiem zatem, że to wymaga testów i arbitralnego ustalenia, tak? Nie ma jakiejś funkcji w samym Delphi albo czegoś co pozwoliłoby na ustalenie optimum? Chodzi mi o coś co pozwoli mi na przydzielenie innej ilości wątków w przypadku jednordzeniowych procesorów... Jak to sprawdzać w programie a nie w ustaleniach użytkownika? I teraz druga rzecz:...
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...
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...
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);
Sugeruję zapoznanie się z tym tematem : [url=http://www.elektroda.pl/rtvforum/to... 7 - rysowanie wykresów
Ż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;
COLORREF GetPixel(HDC hdc, int XPos, int YPos); hdc:=Canvas.handle; //Delphi hdc=Canvas->Hnadle; //CPP
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/...
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,...
lineto() - laczy ci linie od punktu w ktorym aktualnie jest ustawiony wskaznik poczatku do punktu o wspolrzednych podanych jako parametry funkcji, czyli linie laczy ci razem, bo na koncu ostatniej znajduje sie aktualny wskaznik od ktorego ma zaczynac rysowanie przyklad przyklad Image1.Canvas.LineTo(100,100); Image1.Canvas.LineTo(50,50);...
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.
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]
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?
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;...
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);...
Czemu sporo? with PaintBox.Canvas do begin Lock; //mażemy stare CopyRect(OldRect,Bmp.Canvas,OldRect&... //rysujemy nowe LineTo(x,y); Elipse(NewRect); Unlock; end; //i kopia do bitmapy: Bmp.Canvas.LineTo(x,y); Z kolei OnPaint: with PaintBox.Canvas do begin Lock; Draw(ClipRect,Bmp.Canvas.ClipRect... Unlock; end;...
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...
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ę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
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...
Jest możliwe, żeby Printer.Canvas był "tylko do zapisu" ?
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...
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
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;...
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,...
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);...
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..
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...
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...
.Canvas.Brush.Style := bsClear; //bo funkcja ellipse używa wypełnienia brush
Zgadzam się z Wami, moim problemem właśnie były parametry a właściwiej niewłaściwa ich deklaracja. Jednak jakoś w końcu wyszło :D, ku mojemu zdumieniu okazało sie że mogę też wykorzystać tzw pliki dołączone wcześniej nie wiedzieć dlaczego wyskakiwał mi błąd. Ogólnie mam już 2/3 rozwiązania. Dzięki którym będę miał bardziej przejrzysty kod. Rozwiaznie1...
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 -...
Czy to jest jedyny kod (pisany samemu) w programie?
....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]
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 :=...
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...
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...
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_...
Moze cos takiego col:=bitmapa.Canvas.Pixels[x][y];
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...
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...
Nie rozumiem czemu na formie rysujesz czarny prostokat, a potem na niego nakladasz Timage. Wystarczy umiescic Timage na formularzu, potem dajesz polecenia Form1.Image1.Canvas.Brush.Color := clBlack; Form1.Image1.Canvas.Rectangle(0,0,Fo... i masz czany prostokat. Aby rysowac piszesz potem Form1.Image1.canvas ... Zeby...
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-...
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...
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;...
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ć...
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
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,...
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
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,...
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...
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...
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...
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...
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...
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...
Podesłałbym Ci mój projekt, nad którym pracują od paru miesięcy: modelowanie obiektów w 3d na podstawie zdjęć przedmiotu w rzeczywistości. Dla użytkowników Delphi, jest spore ułatwienie. Mamy dostępny komponent videograb. Wyglądem przypomina TImage, ale ma taki patent, że wyświetla obraz z kamery internetowej i można go zapisać do schowka, do obiektu...
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...
Rysując po Canvasie możesz zrobić każdą tabelę. Wygląda to mniej więcej tak for i:=0 to StringGrid1.RowCount-1 do begin Printer.Canvas.TextOut(260,2900+i*120,St... Dodano po 3 To i*120 w kodzie to wysokość jednej linijki, tzn po wydrukowaniu jednej linijki tekstu, przesuwam kursor o 120 punktów w dół. Nie mogłem edytować tego postu, proszę...
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...
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]
oj, ale wpadka - rect() oczywiście w kodzie są a jak tutaj pisałem to o nich zapomniałem co oczywiście nie zmienia faktu nieprawidłowego rysowania na canvas'ie formy. kod poprawiam Dodano po 5 ....pokazany kod nie ma nic wspólnego ze skalowaniem. czyli jeśli niema być skalowania to powinienem to oprogramować dodatkowo? czyli te linie są efektem "przypadkowego"...
Kliknij sobie dokładnie na to co wyrysowałeś i zobaczysz że nie jest to osd. Klikając na to co wyrysowałeś powinno zareagować na klikniecie to co znajduję się pod nim np. przeglądarka internetowa niestety tak się nie dzieje. Wczoraj znalazłem coś takiego co tworzy troche bardziej prawdziwe osd.: Canvas.Handle := GetWindowDC(GetDesktopWindow);.....
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ć?
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
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...
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...
Jestem na takim etapie i niby wszystko działa a nie widać efektu/ obrazka [syntax=Delphi] Unit1; ... procedure TForm2.FormCreate(Sender: TObject); var ImageDC : HDC; begin ImageDC:= Image.Picture.Bitmap.Canvas.Handle; MojImage:= TMojImage.Create(ImageDC); end; [/syntax] [syntax=Delphi] Unit2; ... type TMojImage= class private public FImage : TImage;...
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:=...
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...
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...
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...
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ć...
nie napisałeś w czym pracujesz. NP w Delphi kolor pixela jest wartością Cardinal i powstaje w taki sposób R,G,B są z zakresu 0..255 COLOR:=R+(256*G)+(256*256*B); A jeśli odczytałeś wartość z pixela (tak jak chcesz to zrobic) to masz trzy funkcje: getRvalue(color) getGvalue(color) getBvalue(color) I tymi funkcjami odczytujesz wartości kolejnych składowych...
Prosty kod: http://obrazki.elektroda.pl/3516156300_1... http://obrazki.elektroda.pl/6993794600_1... (z powodu ograniczeń na Forum musiałem BMP jeszcze zmienić na PNG, ale dokładnie tak to widać)
Szukałem na internecie, ale nie znalazłem nigdzie rozwiązania, wiec piszę tu. Chcę wydrukować zawartość StringGrida, który ma około 100 wierszy. Korzystam z gotowej funkcji, ale drukuje ona tylko jedną stronę, na której nie są wszystkie wiersze ze StringGrida. Próbowałem różnymi sposobami, ale nie udało mi się żeby wydrukować resztę wierszy na nowej...
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...
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ć...
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...
Zamiast wczytywać ręcznie BMP, można wykorzytsać gotowe komponenty Delphi. uses Graphics, jpeg; var Image : TGraphic; begin Image := TJPEGImage.Create; try Image.LoadFromFile('plik_do_binaryza... { teraz można dostać się do pikseli poprzez Image.Canvas.Pixels } { można wykonać binaryzację czy cokolwiek } Image.SaveToFile('plik_po_binaryzacj...
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:...
wykres canvas builder canvas javascript canvas
podłączyć zamel studio muzyczny pełna sinusoida zasilacz
Dokręcanie głowicy w silniku 3-litrowym V6: procedura i wskazówki Szum na UKF w amplitunerze Radmor 5102 - przyczyny i diagnostyka