![]() |
|
Runtime ile SpinEdit toplamı alma - 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ığı: Runtime ile SpinEdit toplamı alma (/showthread.php?tid=7958) |
Runtime ile SpinEdit toplamı alma - denizfatihi - 04-12-2024 Herkese merhaba, Runtime süresi içerisinde oluşturduğum SpinEdit're nasıl toplam aldıracağıma dair bir çözüm bulmadım, toplama esnasında son kullanılanı baz alıp topluyor. Normal olmuş olsa aşağıdaki gibi bir çözüm var ama runtime olduğu için tek ayırt edici özelllik tagları. Total := SpinEdit1.Value + SpinEdit2.Value + SpinEdit3.Value; if Sender is TSpinEdit then begin if TSpinEdit(Sender).Tag = 1 then begin TSpinEdit(Sender).MinValue := 200; TSpinEdit(Sender).MaxValue := 10000; TSpinEdit(Sender).Increment:= 200; end; if TSpinEdit(Sender).Tag = 2 then begin TSpinEdit(Sender).MinValue := 100 ; TSpinEdit(Sender).MaxValue := 10000; TSpinEdit(Sender).Increment:= 100; end; if TSpinEdit(Sender).Tag = 3 then begin TSpinEdit(Sender).MinValue := 25 ; TSpinEdit(Sender).MaxValue := 10000; TSpinEdit(Sender).Increment:= 25; end; Runtime ile SpinEdit toplamı alma - yhackup - 04-12-2024 (04-12-2024, Saat: 10:45)denizfatihi Adlı Kullanıcıdan Alıntı: Herkese merhaba, Onchange Eventi oluştur. tümünü create ederken bu metodu referans göster toplamları içinde yap. Cvp: Runtime ile SpinEdit toplamı alma - RAD Coder - 04-12-2024 [attachment=2827] Cvp: Runtime ile SpinEdit toplamı alma - yhackup - 04-12-2024 unit MainUnit;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, ColumnCellsFormat,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Rest.Json, ComObj, Vcl.StdCtrls, Vcl.Samples.Spin;
type
TMainForm = class(TForm)
SpinEdit1: TSpinEdit;
SpinEdit2: TSpinEdit;
procedure FormCreate(Sender: TObject);
procedure SpinEditOnChange(Sender: TObject);
private
public
{ Public declarations }
end;
var
MainForm: TMainForm;
implementation
{$R *.dfm}
procedure TMainForm.FormCreate(Sender: TObject);
begin
with TSpinEdit.Create(self) do
begin
tag := 54;
Left := 160;
Top := 128;
Width := 121;
Height := 24;
OnChange := SpinEditOnChange;
Parent := MainForm
end;
with TSpinEdit.Create(self) do
begin
tag := 54;
Left := 160;
Top := 158;
Width := 121;
Height := 24;
OnChange := SpinEditOnChange;
Parent := MainForm
end;
end;
procedure TMainForm.SpinEditOnChange(Sender: TObject);
var
i: integer;
toplam: NativeUInt;
begin
for i := 0 to self.ComponentCount - 1 do
begin
if (self.Components[i] is TSpinEdit) then
begin
if (TSpinEdit(self.Components[i]).tag = 54) then
begin
toplam := toplam + TSpinEdit(self.Components[i]).Value;
end;
end;
end;
Caption := toplam.ToString;
end;
end.
Cvp: Runtime ile SpinEdit toplamı alma - denizfatihi - 04-12-2024 Öncelikle çok teşekkür ederim. Yazıdan sonra bakarken biraz dolambaçlı da olsa başka bir çözüm buldum değerleri labella aktarıp en alt kısımda toplam almak gibi. if Sender is TSpinEdit then begin if TSpinEdit(Sender).Tag = 1 then begin TSpinEdit(Sender).MinValue := 200; TSpinEdit(Sender).MaxValue := 10000; TSpinEdit(Sender).Increment:= 200; 200.Caption:= FloatToStr(TSpinEdit(Sender).Value); //eklenen kısmlar end; if TSpinEdit(Sender).Tag = 2 then begin TSpinEdit(Sender).MinValue := 100 ; TSpinEdit(Sender).MaxValue := 10000; TSpinEdit(Sender).Increment:= 100; 100.Caption:= FloatToStr(TSpinEdit(Sender).Value); end; if TSpinEdit(Sender).Tag = 3 then begin TSpinEdit(Sender).MinValue := 25 ; TSpinEdit(Sender).MaxValue := 10000; TSpinEdit(Sender).Increment:= 25; 25.Caption:= FloatToStr(TSpinEdit(Sender).Value); end; Total := strtofloat(200.Caption) + strtofloat(100.Caption) + + strtofloat(25.Caption) Runtime ile SpinEdit toplamı alma - yhackup - 04-12-2024 Seni yanlış anlamışım. Ben tüm spineditlerin toplamını bir yerde görmek istiyorsun sandım. 200.Caption:= FloatToStr(TSpinEdit(Sender).Value); yerine TSpinEdit(Sender).Caption:= FloatToStr(TSpinEdit(Sender).Value); yaz bari
Cvp: Runtime ile SpinEdit toplamı alma - denizfatihi - 04-12-2024 En alt satırda kümüle toplama gelince yine kafa karıştıracak, çalışıyorsa dokunma ![]() Teşekkür ederim tekrardan. Total := strtofloat(200.Caption) + strtofloat(100.Caption) + strtofloat(25.Caption) Runtime ile SpinEdit toplamı alma - yhackup - 04-12-2024 (04-12-2024, Saat: 11:59)denizfatihi Adlı Kullanıcıdan Alıntı: En alt satırda kümüle toplama gelince yine kafa karıştıracak, çalışıyorsa dokunma Benim paylaştığım gibi dinamik toplasan hiç bir yer karışmaz Yarın yeni bir spin eklemen gerektiğinde satır satır gezersin.
|