Avatar billede agg-zeus Nybegynder
22. januar 2004 - 13:29 Der er 12 kommentarer og
4 løsninger

Tabeller i Deplhi som i HTML !

Jeg sidder og vil gerne lave min egen kalender i Delphi. TIl det ville jeg gerne bruge tabeller til at sætte datoerne ind i så det også kom til at se lidt pænt ud, men jeg kan ikke finde noget om tabller. Kan man overhovedet lave tabeller (som f.eks. i HTML) i Delphi?
Er der en anden måde at gøre det på ?
Avatar billede whynot Nybegynder
22. januar 2004 - 14:25 #1
jeg tror du skal se lidt på stringgrid... det er vist det som er tættest på..

Du kan ændre på stringgridets egenskaber i det uendelige.. derud over har stringgrids egenskaber som er særdeles nyttige i din problemstilling - nemlig at kunne vælge en dato, samtidig med at cellen blive markeret med en farve du selv bestemmer.
Avatar billede agg-zeus Nybegynder
22. januar 2004 - 14:38 #2
okay... lyder godt :)
Er der et godt sted på nettet med noget info om stringgrid ? eller skal jeg bruge Delphis egen hjælp ?
Avatar billede whynot Nybegynder
22. januar 2004 - 14:43 #3
he he.. faktisk synes jeg ikke at jeg har fundet en speciel god hjælp nogen steder ;) hverken i delphi eller på nettet.. min viden har jeg opbygget ved dels at prøve mig frem, søge på eksperten eller ved sporadisk tekst på nettet.. sorry - men jeg synes ikke at jeg kan sige at ét sted er det bedste.. fordi jeg synes at hjælpen i delphi/nettet er elendig.!
Avatar billede whynot Nybegynder
22. januar 2004 - 14:49 #4
Her får du lidt ekspempler på hvordan et stringgrid tilgåes... håber det hjælper dig lidt på vej.


    //man skal huske at sætte hvor mange kolonner og rows man har.. her har du for kolonner.. der findes en tilsvarende for rows.
    FormMain.StringGrid1.ColCount := 11;

    //sætter overskrifter i stringgrid
    FormMain.StringGrid1.Cells[0, 0] := 'celle1'
    FormMain.StringGrid1.Cells[1, 0] := 'celle2';
 
    //sætter størrelsen af rows i stringgriddet som default.
    FormMain.StringGrid1.DefaultRowHeight := 20;
Avatar billede janbb Juniormester
22. januar 2004 - 17:03 #5
Avatar billede agg-zeus Nybegynder
22. januar 2004 - 19:43 #6
hmm... burde det her så ikke lave en række med 7 kolonner med ugedagene ?
Det eneste jeg får er en eller anden EAccessViolation ...


unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, StdCtrls;

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  x: integer;
  aDage: array[0..6] of string;
  StringGrid1: TStringGrid;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var
  x: integer;
begin

aDage[0]:= 'Mandag';
aDage[1]:= 'Tirsdag';
aDage[2]:= 'Onsdag';
aDage[3]:= 'Torsdag';
aDage[4]:= 'Fredag';
aDage[5]:= 'Lørdag';
aDage[6]:= 'Søndag';

for x:=0 to 6 do
begin
  StringGrid.Cells[x,0]:= aDage[1];
end;


end;


end.
Avatar billede agg-zeus Nybegynder
22. januar 2004 - 19:43 #7
lykken skulel selvfølgelig hedde:

for x:=0 to 6 do
begin
  StringGrid1.Cells[x,0]:= aDage[x];
end;
Avatar billede agg-zeus Nybegynder
22. januar 2004 - 19:53 #8
det med lykken var bare en rettelse... det virker stadig ikke med det...
Avatar billede whynot Nybegynder
23. januar 2004 - 10:17 #9
Du skal huske på at celle 0,0 er øverste venstre celle altså helt oppe i hjørnet.

Du skal nok hellere lave følgende:

for x:=o to 6 do
begin
  stringgrid1.cells[x+1,0]:= aDage[x];
end;

..hvorfor er x og arrayet blevet globale variable?

..hvilken fejl får du? fordi din procedure virker hos mig !??!
Avatar billede agg-zeus Nybegynder
23. januar 2004 - 21:43 #10
Project Project1.exe raised exception class EAccessViolation with message 'Access violation at address 0044DCA8 in module 'Project1.exe'. Read of address 616855C0' ... Det er hvad den siger.. og så henviser den til at der er fejl i den linie med end; i lykken

for x:=o to 6 do
begin
  stringgrid1.cells[x+1,0]:= aDage[x];
end; // <<< denne end; brokker den sig over !
Avatar billede whynot Nybegynder
23. januar 2004 - 23:35 #11
den fejl sker når en ressource ikke er tilgængelig eller at man prøver at henføre til noget som ikke eksisterer..

Under "type" mangler du dit stringgrid.! Det skal erklæres der og ikke som en global variabel.. så der skal stå:

Type
stringGrid1: Tstringgrid;

Husk at du naturligvis skal have smidt en stringgrid på din form før at det dur.!

Anyway.. jeg tror at det er der problemet for dig ligger.
Avatar billede whynot Nybegynder
23. januar 2004 - 23:36 #12
Husk iøvrigt:

StringGrid1.ColCount := 8;
Avatar billede rednex Nybegynder
24. januar 2004 - 16:32 #13
TStringGrid er en komponent (eller et objekt om du vil). Alle objekter skal initialiseres før de kan bruges (og frigøres igen når du er færdig med dem). Da StringGrid er en visuel komponent som du kan smide på din form, vil jeg foreslå at du gør det i stedet. Du kan finde den under 'Additional' fanebladet. Så kan du hive og trække i den (altså komponenten ;-)) indtil du synes den ser fin ud. Og så sørger Delphi også for alt det med at initialisere og frigøre den.
Avatar billede agg-zeus Nybegynder
29. januar 2004 - 14:07 #14
tak rednex... det var det der skulle til. vil du have lidt points også ?
Avatar billede rednex Nybegynder
29. januar 2004 - 14:12 #15
Så skidt da :o)
Avatar billede whynot Nybegynder
30. januar 2004 - 10:17 #16
øhmmm hvad forstår du ved:

"Husk at du naturligvis skal have smidt en stringgrid på din form før at det dur.!"

....det viser blot hvor meget folk de i grunde læser de svar de får.!
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

IT-JOB

Netcompany A/S

Linux Operations Engineer

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Cyberdivisionen søger Business Relationship Manager

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Digital forretningsanalytiker til Cyberdivisionen