[ÇÖZÜLDÜ] Grafik VCL önerisi - Baskı Önizleme +- Delphi Can (https://www.delphican.com) +-- Forum: Delphi (https://www.delphican.com/forumdisplay.php?fid=3) +--- Forum: Genel Programlama (https://www.delphican.com/forumdisplay.php?fid=6) +--- Konu Başlığı: [ÇÖZÜLDÜ] Grafik VCL önerisi (/showthread.php?tid=3534) |
[ÇÖZÜLDÜ] Grafik VCL önerisi - shooterman - 10-04-2019 Herkese selamlar, bir projemde kullanılmak üzere ekteki resimdeki gibi bir grafik yapmam gerekiyor. Teechart ile bu şekle bep getiremedim. Önereceğiniz bir VCL varsa, yardımcı olmanızı rica ederim. [attachment=559] Cvp: Grafik VCL önerisi - narkotik - 10-04-2019 (10-04-2019, Saat: 18:29)wiseman Adlı Kullanıcıdan Alıntı: Herkese selamlar,Teecharta bakmışsınız herhalde fakat ben sample larında boyle bir ornek hatirliyorum sanki Grafik VCL önerisi - mrmarman - 10-04-2019 Basit bir örnek vereyim, oradan mantığı yürütürsünüz... Uses VclTee.Series, VclTee.TeeGDIPlus, VclTee.TeEngine, Vcl.ExtCtrls, VclTee.TeeProcs, VclTee.Chart; var FChart : VclTee.Chart.TChart; Procedure PieChartHazirla( aControl: TWinControl ); begin if NOT Assigned( FChart ) then FChart := VclTee.Chart.TChart.Create(nil); With FChart do begin Parent := aControl; Width := aControl.Width - 20; Height := aControl.Height - 20; Left := 10; Top := 10; Anchors := [akLeft, akTop, akRight, akBottom]; Visible := True; View3D := True; Legend.Visible := True; while SeriesCount > 0 do Series[0].DisposeOf; Title.Text.Clear; Title.Text.Add( 'Ana Başlık 1. Satır' ); Title.Text.Add( 'Ana Başlık 2. Satır' ); Title.Text.Add( 'Ana Başlık 3. Satır' ); AddSeries( VCLTee.Series.TPieSeries.Create(nil) ); Series[0].Name := 'PieChart'; Series[0].Add( 10, '10 birim', clYellow ); Series[0].Add( 20, '20 birim', clBlue ); Series[0].Add( 30, '30 birim', clMaroon ); Series[0].Add( 40, '40 birim', clRed ); end; end; Procedure PieChartKaldir; begin if Assigned( FChart ) then begin while FChart.SeriesCount > 0 do FChart.Series[0].DisposeOf; FreeAndNil( FChart ); end; end; Örnek Kullanım procedure TForm1.Button1Click(Sender: TObject); begin PieChartHazirla( self ); end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin PieChartKaldir(); end; Grafik VCL önerisi - shooterman - 11-04-2019 Muharrem hocam, çok teşekkür ederim ilginize. Aşağıdaki satırda disposeof komutunu kabul etmedi. while SeriesCount > 0 do Series[0].DisposeOf; Grafik VCL önerisi - mrmarman - 11-04-2019 Free deyin disposeof yerine çalışacaktır. Grafik VCL önerisi - shooterman - 11-04-2019 Muharrem hocam, teşekkür ederim. Yine bir derdimize çare oldunuz. Cvp: Grafik VCL önerisi - shooterman - 11-04-2019 (11-04-2019, Saat: 09:53)mrmarman Adlı Kullanıcıdan Alıntı: Free deyin disposeof yerine çalışacaktır. Muharrem hocam, bir de chart onmousemove eventinda, mouse hangi dilimin üzerinde ise, onun değerini hint olarak nasıl alabileceğim konusunda da yardım istesem olur mu? Grafik VCL önerisi - mrmarman - 11-04-2019 Hemen örnekleyelim... With FChart do begin Parent := aControl; Width := aControl.Width - 20; Height := aControl.Height - 20; Left := 10; Top := 10; Anchors := [akLeft, akTop, akRight, akBottom]; Visible := True; // Eklenen Event OnMouseMove := Form1.PieMouseMove; //Bunu Ekledik.... procedure TForm1.PieMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); var sIdx : Integer; aPoint : TPoint; begin sIdx := FChart.Series[0].Clicked(X, Y); FChart.ShowHint := sIdx <> -1; if FChart.ShowHint then begin FChart.Hint := FChart.Series[0].ValueMarkText[sIdx]; aPoint.X := X; aPoint.Y := Y - 30; Application.ActivateHint( ClientToScreen( aPoint )); end; end; Cvp: Grafik VCL önerisi - shooterman - 11-04-2019 (11-04-2019, Saat: 18:33)mrmarman Adlı Kullanıcıdan Alıntı: Hemen örnekleyelim...Teşekkürler hocam. Oldu. |