Avatar billede prodoc Nybegynder
08. november 2002 - 19:13 Der er 18 kommentarer og
1 løsning

Forskellige lette spørgsmål... burde være lette points...!

Jeg har nogle spørgsmål som jeg længe har villet spørge om: den første er:
1. Markerer en celle i en stringgrid ved buttonclick!

2. MonthCalendar -> Date, skal altid være current date (FormCreate).

3. Ved tryk på en knap gemmes ændringer på program
Avatar billede prodoc Nybegynder
08. november 2002 - 19:14 #1
hov glemte at være høflig:
m.v.h. ProDoc
Avatar billede martinlind Nybegynder
08. november 2002 - 19:21 #2
1. det gør den da automatisk

2. MonthCalendar.Date := Date;

3. Du kan gemme i en Inifil eller registreringsbasen eller en fil af din egen type, der findes forskellige comp. der kan gemme i inifiler prøv evt. at søge på torry
Avatar billede martinlind Nybegynder
08. november 2002 - 19:21 #3
Glemte lige at svare :)
Avatar billede prodoc Nybegynder
08. november 2002 - 19:30 #4
1. Jeg har den i en array som hedder: Reserver[Nr,Raekke] -> så vil jeg have at når man trykker på knappen så markerer den cellen....!
Avatar billede athlon-pascal Juniormester
08. november 2002 - 19:31 #5
Martin Lind -> Tror ProDoc mener ved tryk på en TButton ..?
Avatar billede prodoc Nybegynder
08. november 2002 - 19:32 #6
men tak for svaret på nr. 2 -> jeg havde kun prøvet MonthCalendar.Date:=StrToDate(Date) :)
Avatar billede prodoc Nybegynder
08. november 2002 - 19:34 #7
ja tak athlon-pascal ->det var d jeg mente
Avatar billede martinlind Nybegynder
08. november 2002 - 19:37 #8
MyGrid.Selection := CellRect(aCol,aRow);

MyGrid.Selection := CellRect(4,7);
Avatar billede prodoc Nybegynder
08. november 2002 - 19:45 #9
Der står at den ikke kan finde ud af hvad CellRect er...?!

noget af koden ser sådan her ud:
var
Nr, Raekke: Integer;
begin
  Nr:=Oversigt.Col;
  Raekke:=Oversigt.Row;
  Reserver[Nr,Raekke]:='RE';
Avatar billede poull Nybegynder
09. november 2002 - 10:35 #10
Hvilke ting er det som skal gemmes når programmet lukkes ? Altså mener du dit array som også vises i stringgridet ?
Avatar billede martinlind Nybegynder
09. november 2002 - 10:37 #11
Kunne ikke komme på i går aftes :(

MyGrid.Selection := MyGrid.CellRect(aCol,aRow);

eks.:

MyGrid.Selection := MyGrid.CellRect(4,7);
Avatar billede prodoc Nybegynder
10. november 2002 - 12:48 #12
Poull> Ja helt præcis!!! men jeg har også en text i en Edit som skal gemmes ved et tryk på en Tbutton!!
Avatar billede prodoc Nybegynder
10. november 2002 - 12:51 #13
martinLind> den siger stadigvæk:
[Error] Unit1.pas(29): Incompatible types: 'TGridRect' and 'TRect'

koden ser sådan ud:
type
  TForm1 = class(TForm)
    MyGrid: TStringGrid;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
begin
MyGrid.Selection := MyGrid.CellRect(2,2);
end;

end.

/ProDoc
Avatar billede martinlind Nybegynder
10. november 2002 - 12:52 #14
Hmm, det var godt nok ikke testet :)

Prøv sådan :

MyGrid.Selection := TGridRect(MyGrid.CellRect(2,2));
Avatar billede martinlind Nybegynder
10. november 2002 - 12:59 #15
Data kan du gemme sådan, Lav en FileStream og smid den med som parameter :

procedure SaveToStream( St : TStream );
VAR
  Cnt,B : Integer;
begin
  Cnt := MyGrid.RowCount;
  St.Write(Cnt,Sizeof(Cnt));
  if MyGrid.RowCount > 0 then
  for Cnt := MyGrid.RowCount-1 downto 0 do
    MyGrid.Rows[Cnt].SaveToStream(St);

  for Cnt := 0 to MyGrid.RowCount-1 do
  begin
      B := MyGrid.RowHeights[Cnt];
      St.Write(B,Sizeof(B));
  end;

  for Cnt := 0 to MyGrid.ColCount-1 do
  begin
      B := MyGrid.ColWidths[Cnt];
      St.Write(B,Sizeof(B));
  end;
end;

procedure LoadFromStream( St : TStream );
VAR
  Cnt,B : Integer;
begin
  MyGrid.ColCount := MyGrid.FixedCols+1;
  St.Read(Cnt,Sizeof(Cnt));
  MyGrid.RowCount := Cnt;
  while Cnt > 0 do
  begin
      MyGrid.Rows[Cnt-1].LoadFromStream(St);
      Dec(Cnt);
  end;

  for Cnt := 0 to MyGrid.RowCount-1 do
  begin
      St.Read(B,Sizeof(B));
      MyGrid.RowHeights[Cnt] := B;
  end;

  for Cnt := 0 to MyGrid.ColCount-1 do
  begin
      St.Read(B,Sizeof(B));
      MyGrid.ColWidths[Cnt] := B;
  end;
end;
Avatar billede prodoc Nybegynder
10. november 2002 - 20:54 #16
MartinLind> den laver ingen fejl men den markerer ingen celle ved koden:
MyGrid.Selection := TGridRect(MyGrid.CellRect(2,2));
Du har vel ikke en komplet sourcecode?
Avatar billede prodoc Nybegynder
10. november 2002 - 20:56 #17
Forstår heller ikke koden med FileStream, vil du ikke lave en source med en stringgrid...
Avatar billede martinlind Nybegynder
11. november 2002 - 09:39 #18
Det med din selection har jeg ikke lige løsningen på :(

du kopier mine to procedure Save.. og load..

VAR
  F : TFileStream;

begin
  F := TFileStream.Create('MyGrid',fmCreate); // Mode skal være fm Create når du gemmer men fmOpenRead når du læser
  SaveToStream(F); // Gemmer din Grid der hedder MyGrid
  F.Free;
end;

/Martin
Avatar billede prodoc Nybegynder
12. november 2002 - 13:03 #19
Har selv fundet løsningen på det med selection....
men prøver lige det med save load..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester