AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

StringGrid und Spalte ausblenden

Ein Thema von Kunoishi · begonnen am 6. Okt 2009 · letzter Beitrag vom 6. Okt 2009
Antwort Antwort
Kunoishi

Registriert seit: 26. Dez 2002
Ort: Berlin
140 Beiträge
 
Delphi 5 Standard
 
#1

StringGrid und Spalte ausblenden

  Alt 6. Okt 2009, 20:39
ein Hallo an die Runde,
Ihr habt mir bei fast allen Problemen gut Helfen können darum wage ich mal wieder eine neue Frage

Ich habe ein StringGrid und möchte eine Spalte aus diesem Ausblenden.
Stellt sich nur die Frage wie.
Mein derzeitiger Aufbau sieht so aus.
Delphi-Quellcode:
procedure TMDIChild.SetzeGrid;
begin
  Sachverhaltsuebersicht.rowCount:=2;
  Sachverhaltsuebersicht.colCount := 10;
  Sachverhaltsuebersicht.cells[0,0] := 'Nr.';
  Sachverhaltsuebersicht.cells[1,0] := 'Datum';
  Sachverhaltsuebersicht.cells[2,0] := 'Zeit';
  Sachverhaltsuebersicht.cells[3,0] := 'Objekt';
  Sachverhaltsuebersicht.cells[4,0] := 'Name';
  Sachverhaltsuebersicht.cells[5,0] := 'Vorname';
  Sachverhaltsuebersicht.cells[6,0] := 'nummer';
  Sachverhaltsuebersicht.cells[7,0] := 'zeichen';
  Sachverhaltsuebersicht.cells[8,0] := 'Ausgang';
  Sachverhaltsuebersicht.cells[9,0] := 'Begründung';
end;
.
.
.

procedure TMDIChild.grdArtikelDrawCell(Sender: TObject; ACol,
  ARow: Integer; Rect: TRect; State: TGridDrawState);
var InhaltZelle: string;
begin
  with (Sender as TStringgrid) do
    begin
      InhaltZelle := cells[acol, arow];// Zellinhalt in Variable auslesen
      canvas.fillrect(rect);// Zelle mit aktueller Hintergrundfarbe "übermalen"

      // 1. Spalte zentriert und mit Abstand nach oben
      if (acol = 0) then
         canvas.textrect(rect, (rect.Left + rect.Right -
         canvas.textwidth(InhaltZelle)) div 2, rect.top + 3, InhaltZelle);

      // 2. Spalte zentriert und mit Abstand nach oben
      if (acol = 1) then
         canvas.textrect(rect, (rect.Left + rect.Right -
         canvas.textwidth(InhaltZelle)) div 2, rect.top + 3, InhaltZelle);

      // 3. Spalte zentriert und mit Abstand nach oben
      if (acol = 2) then
         canvas.textrect(rect, (rect.Left + rect.Right -
         canvas.textwidth(InhaltZelle)) div 2, rect.top + 3, InhaltZelle);

      // 4. Spalte zentriert und mit Abstand nach oben
      if (acol = 3) then
         canvas.textrect(rect, (rect.Left + rect.Right -
         canvas.textwidth(InhaltZelle)) div 2, rect.top + 3, InhaltZelle);

      // 5. Spalte zentriert und mit Abstand nach oben
      if (acol = 4) then
         canvas.textrect(rect, (rect.Left + rect.Right -
         canvas.textwidth(InhaltZelle)) div 2, rect.top + 3, InhaltZelle);
      // 6. Spalte zentriert und mit Abstand nach oben
      if (acol = 5) then
         canvas.textrect(rect, (rect.Left + rect.Right -
         canvas.textwidth(InhaltZelle)) div 2, rect.top + 3, InhaltZelle);
      // 7. Spalte linksbündig mit Abstand nach links und oben
      if (acol = 6) then
         canvas.textout(rect.left + 3, rect.top + 2, InhaltZelle);

      // 8. Spalte linksbündig mit Abstand nach links und oben
      if (acol = 7) then
         canvas.textout(rect.left + 3, rect.top + 2, InhaltZelle);

      // Alle anderen Spalten rechtsbündig mit Abstand nach rechts und oben
      if (acol > 7) then
         canvas.textrect(rect, rect.Right - canvas.textwidth(InhaltZelle) - 4,
         rect.top + 2, InhaltZelle);
    end; // von with
end; // der Prozedur
nun soll Spalte 5 und 7 ausgeblendet werden
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: StringGrid und Spalte ausblenden

  Alt 6. Okt 2009, 20:40
Stelle die Breite der Spalten auf 0
Markus Kinzler
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#3

Re: StringGrid und Spalte ausblenden

  Alt 6. Okt 2009, 20:45
... Null?
... bei mir muss die Spaltenbreite auf -GridLineWidth eingestellt werden
Ralph
  Mit Zitat antworten Zitat
Kunoishi

Registriert seit: 26. Dez 2002
Ort: Berlin
140 Beiträge
 
Delphi 5 Standard
 
#4

Re: StringGrid und Spalte ausblenden

  Alt 6. Okt 2009, 20:45
warum bin ich denn nicht auf die Lösung gekommen? na klar
ick stand bestimmt auf der Leitung.
DANKE
  Mit Zitat antworten Zitat
hoika
Online

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: StringGrid und Spalte ausblenden

  Alt 6. Okt 2009, 20:49
Hallo,

dann kann die Spalte aber trotzdem ausgewählt werden.

if (acol = 0) then Schlecht ...

Benutze Variable für jede Spalte

if (acol = iNameCol) then Die ist entweder -1 (nicht anzeigen) oder hat einen Wert

Jede Konstante bekommt noch eine Boolean-Var dazu
Delphi-Quellcode:
var
  bNameCol: Boolean;
Die ColCount ergibt sich durch Prüfen der bXCol's

Der Wert von iXCol's wird beim Start berechnet.


Heiko
Heiko
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#6

Re: StringGrid und Spalte ausblenden

  Alt 6. Okt 2009, 20:51
Zitat:
kann die Spalte aber trotzdem ausgewählt werden
.. sorry, verstehe ich nicht!
Von wem ausgewählt?
Vom Anwender?
Ralph
  Mit Zitat antworten Zitat
Kunoishi

Registriert seit: 26. Dez 2002
Ort: Berlin
140 Beiträge
 
Delphi 5 Standard
 
#7

Re: StringGrid und Spalte ausblenden

  Alt 6. Okt 2009, 20:56
Heiko da hast du recht

mit der 0, habe ich gerade festgestellt. Aber war ein Ansatz auf den ich noch nicht mal gekommen bin.
Dein Ansatz ist noch genauer und ich werde mal schauen wie ich ihn umsetzen kann.
Muß mich da mal reindenken. Wenn ich nicht klar komme pin ich dich direkt an wenn ich darf.
Danke schon mal im vorraus.

Mit freundlichen Grüßen.
  Mit Zitat antworten Zitat
hoika
Online

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#8

Re: StringGrid und Spalte ausblenden

  Alt 6. Okt 2009, 21:33
Hallo,

you are welcome


Heiko
Heiko
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:12 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz