Avatar billede whynot Nybegynder
11. december 2003 - 16:18 Der er 8 kommentarer og
3 løsninger

spørgsmål omkring stringgrid

Jeg skal bruge et stringgrid til at vise data hentet fra et array.. jeg kan uden problemer vise dataen... men....

1. hvordan ændrer jeg titlerne på kolonnerne?
2. hvordan viser jeg numre i rows? sådan at ud for række1 skal der stå et ettal, ud for række2 skal der stå et total osv.
3. hvordan sorterer jeg et stringgrid efter den kolonne man trykker på, med data hentet fra et 2d array?
4. hvordan ændrer man baggrundsfarven på den row man har valgt en celle fra?

jeg håber nogle kan hjælpe mig.
Avatar billede Slettet bruger
11. december 2003 - 16:24 #1
1. Du bruger bare StringGrid1.Cell[<Kolonne>, 0] := 'Titel'; og 2eren brguer du bare StringGrid1.Cell[0, <Række>];
Avatar billede martinlind Nybegynder
11. december 2003 - 16:25 #2
1. Titler sætter du bare ind i række 0 Rows[0]
2. numre sætter du selv ind i Cols[0]
3. Det skal du selv gøre ved at opdatere den igen
4. Det skal du gøre med ownerdraw

/Martin
Avatar billede martinlind Nybegynder
11. december 2003 - 16:28 #3
med alle de krav du har er det nok smartere at bruge en TDrawGrid

fra hjælpen :

TDrawGrid represents a grid control that displays information in column and row format.

Description

Add a TDrawGrid object to a form to present arbitrary information in a tabular format. TDrawGrid provides many properties to control the appearance of the grid, as well as events and methods that take advantage of the tabular organization of the grid in responding to user actions.

TDrawGrid introduces several events and methods to allow applications to customize the appearance and behavior of the grid.

If the cells of the grid contain text strings that represent objects, consider using a TStringGrid object instead. If the grid displays field values from the records in a dataset, use TDBGrid instead.

/Martin
Avatar billede Slettet bruger
11. december 2003 - 16:30 #4
Avatar billede martinlind Nybegynder
11. december 2003 - 16:33 #5
det er alt for langsomt at sortere en stringgrid, det er hurtigere at sortere data og opdatere igen
Avatar billede whynot Nybegynder
11. december 2003 - 17:36 #6
Så har vi styr på 1,2 og næsten 3... skal blot lige finde ud af hvordan man sorterer et array.. fordi det har jeg aldrig prøvet før... kan I hjælpe?

mht. 4.. ownerdraw?!?.. øhmm.. hvad tænker du mere nøgagtig på martinlind?
Avatar billede martinlind Nybegynder
11. december 2003 - 17:40 #7
Kig i hjælpen en stringgrid har en Ownerdraw property, der er et udemærket eks. i hjælpen, delphi har også et eks. på en quick-sort i nogle at eks. filerne der følger med, kan ikke lige huske hvor
Avatar billede whynot Nybegynder
11. december 2003 - 19:15 #8
Sorry.. men jeg kan på ingen måde se at stringgrid har en ownerdraw property.. den har en owner property.. men det er da vist noget helt andet den beskriver.!
Avatar billede whynot Nybegynder
11. december 2003 - 20:22 #9
jeg kører iøvrigt med delphi7.. kan det forklare mit problem med at finde ownerdraw?
Avatar billede Slettet bruger
11. december 2003 - 21:03 #10
Du skal bruge OnDrawCell... der er nogle eksempler på, hvordan man bruger den her:

http://www.swissdelphicenter.ch/torry/showcode.php?id=1258
http://www.swissdelphicenter.ch/torry/showcode.php?id=273
Avatar billede whynot Nybegynder
11. december 2003 - 21:34 #11
Jeg fandt følgende svar i http://www.eksperten.dk/spm/165773

procedure TForm1.StringGrid1DrawCell(Sender: TObject; Col, Row: Longint;
  Rect: TRect; State: TGridDrawState);
var
  index: integer;
begin
  index := Row * StringGrid1.ColCount + Col;
  with Sender as TStringGrid do
  begin
    if gdFocused in State then
    begin
      Canvas.Brush.Color := clRed;
      Canvas.FillRect(Rect);
      Canvas.Brush.Color := clBackGround;
      Canvas.DrawFocusRect(Rect);
    end;
  end;
end;


og den virker fino :)

...så mangler jeg blot at kunne sortere et array som jeg ønsker - men det må blive en anden gang.. jeg fordeler lidt points til Jer alle sammen.. mange tak for hjælpen.
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