Bildirim
Delphi Ödev
Daha Fazla
Bu Konudaki Kullanıcılar:
Daha Az
2 Misafir - 2 Masaüstü
Giriş
Mesaj
-
-
O ne be öyle karınca duası gibi :)
Bu arada Delphi TIOBE (programlama dilleri popülerlik) endeksinde ilk 20 den çıktı.
< Bu ileti mini sürüm kullanılarak atıldı > -
Çıktı fakat ege sağolsun hala devam ediyor dersleri pascal dahil -
Aslında Delphi iyi bir dil ve IDE'dir fakat derste zorunlu olarak kullanılması pek iyi değil. Ödev Delphi değil de Java Swing olsaydı o zaman belki bir kısmını yapardım.
< Bu ileti mini sürüm kullanılarak atıldı > -
Olsun yinede teşekkür ederim -
ilk soru için wpf olsaydı aşağıda birtane yaptım ama delphiyi bırakalı çok zaman oldu
using System;
using System.Collections.ObjectModel;
using System.ComponentModel;
namespace VucutKitle
{
public class Veriler : INotifyPropertyChanged
{
private string isim;
private double ağırılık;
private double boy;
private double vki;
private string sınıflandırma;
public string İsim
{
get { return isim; }
set
{
if (isim != value)
{
isim = value;
OnPropertyChanged(nameof(İsim));
}
}
}
public double Ağırılık
{
get { return ağırılık; }
set
{
if (ağırılık != value)
{
ağırılık = value;
OnPropertyChanged(nameof(Ağırılık));
OnPropertyChanged(nameof(Vki));
OnPropertyChanged(nameof(Sınıflandırma));
}
}
}
public double Boy
{
get { return boy; }
set
{
if (boy != value)
{
boy = value;
OnPropertyChanged(nameof(Boy));
OnPropertyChanged(nameof(Vki));
OnPropertyChanged(nameof(Sınıflandırma));
}
}
}
public double Vki
{
get
{
vki = Ağırılık / (Math.Pow(Boy / 100, 2));
return vki;
}
set
{
if (vki != value)
{
vki = value;
OnPropertyChanged(nameof(Vki));
}
}
}
public string Sınıflandırma
{
get
{
if (Vki < 20)
{
sınıflandırma = "Zayıf";
}
if (Vki >= 20 && Vki < 24.9)
{
sınıflandırma = "Normal";
}
if (Vki >= 25 && Vki < 29.9)
{
sınıflandırma = "Hafif Şişman";
}
if (Vki > 30)
{
sınıflandırma = "Şişman";
}
return sınıflandırma;
}
set
{
if (sınıflandırma != value)
{
sınıflandırma = value;
OnPropertyChanged(nameof(Sınıflandırma));
}
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged(string propertyName) => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
public class VerilerViewModel
{
public ObservableCollection<Veriler> Veriler { get; set; }
public VerilerViewModel()
{
Veriler = new ObservableCollection<Veriler>
{
new Veriler() { İsim = "Ali", Ağırılık = 60, Boy = 150 },
new Veriler() { İsim = "Veli", Ağırılık = 80, Boy = 140 },
new Veriler() { İsim = "Deli", Ağırılık = 50, Boy = 170 }
};
}
}
}
using System.Linq;
using System.Windows;
namespace VucutKitle
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
DataContext = new VerilerViewModel();
}
private void Button_Click(object sender, RoutedEventArgs e)
{
string metin = "";
(DataContext as VerilerViewModel)?.Veriler.OrderByDescending(z => z.Boy).ToList().ForEach(z => metin = ${metin}={$"{z.İsim};{z.Boy};{z.Ağırılık};{z.Sınıflandırma}"}");
MessageBox.Show(metin);
}
}
}
https://www.dosyaupload.com/o1dz
<Window x:Class="VucutKitle.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:VucutKitle"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
Title="MainWindow"
Width="400" Height="400"
mc:Ignorable="d">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<DataGrid Grid.Column="0"
d:DataContext="{d:DesignInstance Type=local:VerilerViewModel}"
AutoGenerateColumns="False"
ItemsSource="{Binding Veriler}">
<DataGrid.Columns>
<DataGridTextColumn Header="Ad" Binding="{Binding İsim}" />
<DataGridTextColumn Header="Ağırlık" Binding="{Binding Ağırılık, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
<DataGridTextColumn Header="Boy" Binding="{Binding Boy, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
<DataGridTextColumn Header="Vki"
Binding="{Binding Vki, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
IsReadOnly="True" />
<DataGridTextColumn Header="Sınıflandırma"
Binding="{Binding Sınıflandırma, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
IsReadOnly="True" />
</DataGrid.Columns>
</DataGrid>
<Button Grid.Column="1"
Content="Hesapla"
Click="Button_Click" />
</Grid>
</Window>
< Bu mesaj bu kişi tarafından değiştirildi Gökşen PASLI -- 26 Nisan 2020; 22:17:33 >
-
Teşekkür ederim hocam delphide tstringgrid ile yapılcak büyük ihtimalle ama internette'de hiç bir kaynak bulamadım çok eski programquote:
Orijinalden alıntı: Gökşen PASLI
ilk soru için wpf olsaydı aşağıda birtane yaptım ama delphiyi bırakalı çok zaman oldu
using System;
using System.Collections.ObjectModel;
using System.ComponentModel;
namespace VucutKitle
{
public class Veriler : INotifyPropertyChanged
{
private string isim;
private double ağırılık;
private double boy;
private double vki;
private string sınıflandırma;
public string İsim
{
get { return isim; }
set
{
if (isim != value)
{
isim = value;
OnPropertyChanged(nameof(İsim));
}
}
}
public double Ağırılık
{
get { return ağırılık; }
set
{
if (ağırılık != value)
{
ağırılık = value;
OnPropertyChanged(nameof(Ağırılık));
OnPropertyChanged(nameof(Vki));
OnPropertyChanged(nameof(Sınıflandırma));
}
}
}
public double Boy
{
get { return boy; }
set
{
if (boy != value)
{
boy = value;
OnPropertyChanged(nameof(Boy));
OnPropertyChanged(nameof(Vki));
OnPropertyChanged(nameof(Sınıflandırma));
}
}
}
public double Vki
{
get
{
vki = Ağırılık / (Math.Pow(Boy / 100, 2));
return vki;
}
set
{
if (vki != value)
{
vki = value;
OnPropertyChanged(nameof(Vki));
}
}
}
public string Sınıflandırma
{
get
{
if (Vki < 20)
{
sınıflandırma = "Zayıf";
}
if (Vki >= 20 && Vki < 24.9)
{
sınıflandırma = "Normal";
}
if (Vki >= 25 && Vki < 29.9)
{
sınıflandırma = "Hafif Şişman";
}
if (Vki > 30)
{
sınıflandırma = "Şişman";
}
return sınıflandırma;
}
set
{
if (sınıflandırma != value)
{
sınıflandırma = value;
OnPropertyChanged(nameof(Sınıflandırma));
}
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged(string propertyName) => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
public class VerilerViewModel
{
public ObservableCollection<Veriler> Veriler { get; set; }
public VerilerViewModel()
{
Veriler = new ObservableCollection<Veriler>
{
new Veriler() { İsim = "Ali", Ağırılık = 60, Boy = 150 },
new Veriler() { İsim = "Veli", Ağırılık = 80, Boy = 140 },
new Veriler() { İsim = "Deli", Ağırılık = 50, Boy = 170 }
};
}
}
}
using System.Linq;
using System.Windows;
namespace VucutKitle
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
DataContext = new VerilerViewModel();
}
private void Button_Click(object sender, RoutedEventArgs e)
{
string metin = "";
(DataContext as VerilerViewModel)?.Veriler.OrderByDescending(z => z.Boy).ToList().ForEach(z => metin = ${metin}={$"{z.İsim};{z.Boy};{z.Ağırılık};{z.Sınıflandırma}"}");
MessageBox.Show(metin);
}
}
}
https://www.dosyaupload.com/o1dz
<Window x:Class="VucutKitle.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:VucutKitle"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
Title="MainWindow"
Width="400" Height="400"
mc:Ignorable="d">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<DataGrid Grid.Column="0"
d:DataContext="{d:DesignInstance Type=local:VerilerViewModel}"
AutoGenerateColumns="False"
ItemsSource="{Binding Veriler}">
<DataGrid.Columns>
<DataGridTextColumn Header="Ad" Binding="{Binding İsim}" />
<DataGridTextColumn Header="Ağırlık" Binding="{Binding Ağırılık, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
<DataGridTextColumn Header="Boy" Binding="{Binding Boy, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
<DataGridTextColumn Header="Vki"
Binding="{Binding Vki, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
IsReadOnly="True" />
<DataGridTextColumn Header="Sınıflandırma"
Binding="{Binding Sınıflandırma, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
IsReadOnly="True" />
</DataGrid.Columns>
</DataGrid>
<Button Grid.Column="1"
Content="Hesapla"
Click="Button_Click" />
</Grid>
</Window>
-
var
agirlik,boy,vki:Double;
siniflandirma:string;
begin
agirlik:=StringGrid1.RowCount;
boy:=StringGrid1.ColCount;
vki:=agirlik / (boy * boy);
StringGrid1.Cells[0,0]:='İsim';
StringGrid1.Cells[0,1]:='Can';
StringGrid1.Cells[0,2]:='Efe';
StringGrid1.Cells[0,3]:='Ali';
StringGrid1.Cells[0,4]:='Deniz';
StringGrid1.Cells[1,0]:='Ağırlık';
StringGrid1.Cells[1,1]:='50';
StringGrid1.Cells[1,2]:='70';
StringGrid1.Cells[1,3]:='80';
StringGrid1.Cells[1,4]:='90';
StringGrid1.Cells[2,0]:='Boy';
StringGrid1.Cells[2,1]:='160';
StringGrid1.Cells[2,2]:='150';
StringGrid1.Cells[2,3]:='190';
StringGrid1.Cells[2,4]:='180';
StringGrid1.Cells[3,0]:='VKİ';
StringGrid1.Cells[4,0]:='Sınıflandırma';
StringGrid1.Cells[3,1]:=FloatToStr(vki);
StringGrid1.Cells[3,2]:=FloatToStr(vki);
StringGrid1.Cells[3,3]:=FloatToStr(vki);
StringGrid1.Cells[3,4]:=FloatToStr(vki);
end;
end.
Acaba nerde hatam var bmi yapmaya çalışıyorum vücüt kitle indeksi düzenlerken bu boyları bide kilolaları nasıl alıcam kod olarak yani sütünlardan ona göre bide if koşuluyla sınıflandırmaya yazdırıcam
Sayfa:
1
Ip işlemleri
Bu mesaj IP'si ile atılan mesajları ara Bu kullanıcının son IP'si ile atılan mesajları ara Bu mesaj IP'si ile kullanıcı ara Bu kullanıcının son IP'si ile kullanıcı ara
KAPAT X
Bu mesaj IP'si ile atılan mesajları ara Bu kullanıcının son IP'si ile atılan mesajları ara Bu mesaj IP'si ile kullanıcı ara Bu kullanıcının son IP'si ile kullanıcı ara
KAPAT X