Hangi komponenti kullanacağımı bilemedim

Başlatan z, 15 Temmuz 2015, 17:27:49

z

Edit kutucuğuna sayısal x degeri yazarsam aradığım komponent x satır ve 6 sutunlu bir tablo olarak oluşacak.

En tepede açıklamaları olacak

En Boy Sol Ust Yazısı Rengi
--  ---  ---  ---  ------ -----
--  ---  ---  ---  ------ -----
--  ---  ---  ---  ------ -----
--  ---  ---  ---  ------ -----
--  ---  ---  ---  ------ -----

Hangi kutucuğu tıklarsam içine text veri yazabileceğim.

Bu komponent nedir?

Edit: Sanırım buldum String Grid işimi görecek gibi.

Col Count 6 yaptığımda 6 sutun olustu.
FixedRows 1 yaptığımda tepede farklı rekte açıklama kutucukları da oluştu.

Ancak Açıklama kutucuklarına nasıl yazı yazacağımı bulamadım.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Salih

Programın içinden yazmak istiyorsan.

StringGrid1.Cells[sütun,satır] :=


Üzerinden yazmak istiyorsan.

options -> goediting = True yapılacak

z

"StringGridde"ki verileri doğrudan diske yazmak ve diskten geri yüklemek mümkün mü?
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

t2

  StringGrid1.Rows[1].SaveToFile('dosya1.txt');
  StringGrid1.Rows[1].LoadFromFile('dosya1.txt');

z

Tamamını tek çırpıda yazıp okumak mumkunmu?
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Salih

Alıntı yapılan: z - 15 Temmuz 2015, 19:39:50
Tamamını tek çırpıda yazıp okumak mumkunmu?

Bütün hücreler için bir defada saklama imkanı yok biliyorum.
Bir döngüyle Tstringlist'e aktarılılıp oradan da savetofile ve loadfromfile komutlarıyla olabilir.

t2

Böyle birşey yoksa, bu amaçla yeni bir prosedür yazabilirsiniz. Veya başka 3. Parti  grid bileşenleri kullanılabilir.
http://www.bergsoftware.net/

engerex

// Save a TStringGrid to a file

procedure SaveStringGrid(StringGrid: TStringGrid; const FileName: TFileName);
var
  f:    TextFile;
  i, k: Integer;
begin
  AssignFile(f, FileName);
  Rewrite(f);
  with StringGrid do
  begin
    // Write number of Columns/Rows
    Writeln(f, ColCount);
    Writeln(f, RowCount);
    // loop through cells
    for i := 0 to ColCount - 1 do
      for k := 0 to RowCount - 1 do
        Writeln(F, Cells[i, k]);
  end;
  CloseFile(F);
end;

// Load a TStringGrid from a file

procedure LoadStringGrid(StringGrid: TStringGrid; const FileName: TFileName);
var
  f:          TextFile;
  iTmp, i, k: Integer;
  strTemp:    String;
begin
  AssignFile(f, FileName);
  Reset(f);
  with StringGrid do
  begin
    // Get number of columns
    Readln(f, iTmp);
    ColCount := iTmp;
    // Get number of rows
    Readln(f, iTmp);
    RowCount := iTmp;
    // loop through cells & fill in values
    for i := 0 to ColCount - 1 do
      for k := 0 to RowCount - 1 do
      begin
        Readln(f, strTemp);
        Cells[i, k] := strTemp;
      end;
  end;
  CloseFile(f);
end;


// Save StringGrid1 to 'c:\temp.txt':

procedure TForm1.Button1Click(Sender: TObject);
begin
  SaveStringGrid(StringGrid1, 'c:\temp.txt');
end;

// Load StringGrid1 from 'c:\temp.txt':

procedure TForm1.Button2Click(Sender: TObject);
begin
  LoadStringGrid(StringGrid1, 'c:\temp.txt');
end;

CSV oılarak kaydedersen Excell ile de açabilirsin.