Yorumları: 669
Konuları: 73
Kayıt Tarihi: 20-12-2018
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 1.544 Programcı
10-04-2019, Saat: 18:29
(Son Düzenleme: 16-04-2019, Saat: 09:35, Düzenleyen: shooterman.)
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.
Yazılımcı, kahveyi koda çeviren bir organizmadır.
Yorumları: 644
Konuları: 84
Kayıt Tarihi: 04-10-2017
Aktif Kullandığınız Delphi Sürümü:
- Delphi 11
- Delphi 10.4
- Delphi 10.3
- Delphi 10.2
- Delphi 10.1
- Delphi 10
- Delphi XE Serisi
Rep Puanı: 2.701 Uzman
(10-04-2019, Saat: 18:29)wiseman Adlı Kullanıcıdan Alıntı: 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.
Teecharta bakmışsınız herhalde fakat ben sample larında boyle bir ornek hatirliyorum sanki
Yalnızım ama bir kente yürüyen ordu gibiyim, edebiyattan kaçınmalıyım..
Yorumları: 1.660
Konuları: 20
Kayıt Tarihi: 05-08-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 18.981 Üstad
10-04-2019, Saat: 20:33
(Son Düzenleme: 10-04-2019, Saat: 20:40, Düzenleyen: mrmarman.)
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;
Saygılarımla
Muharrem ARMAN
Yorumları: 669
Konuları: 73
Kayıt Tarihi: 20-12-2018
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 1.544 Programcı
Muharrem hocam, çok teşekkür ederim ilginize. Aşağıdaki satırda disposeof komutunu kabul etmedi.
while SeriesCount > 0 do Series[0].DisposeOf;
Yazılımcı, kahveyi koda çeviren bir organizmadır.
Yorumları: 1.660
Konuları: 20
Kayıt Tarihi: 05-08-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 18.981 Üstad
Free deyin disposeof yerine çalışacaktır.
Saygılarımla
Muharrem ARMAN
Yorumları: 669
Konuları: 73
Kayıt Tarihi: 20-12-2018
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 1.544 Programcı
Muharrem hocam, teşekkür ederim. Yine bir derdimize çare oldunuz.
Yazılımcı, kahveyi koda çeviren bir organizmadır.
Yorumları: 669
Konuları: 73
Kayıt Tarihi: 20-12-2018
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 1.544 Programcı
(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?
Yazılımcı, kahveyi koda çeviren bir organizmadır.
Yorumları: 1.660
Konuları: 20
Kayıt Tarihi: 05-08-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 18.981 Üstad
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;
Saygılarımla
Muharrem ARMAN
Yorumları: 669
Konuları: 73
Kayıt Tarihi: 20-12-2018
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 1.544 Programcı
(11-04-2019, Saat: 18:33)mrmarman Adlı Kullanıcıdan Alıntı: 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;
Teşekkürler hocam. Oldu.
Yazılımcı, kahveyi koda çeviren bir organizmadır.
|