AGB  ·  Datenschutz  ·  Impressum  







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

ein paar Fragen zum StringGrid

Ein Thema von ascotlx · begonnen am 11. Sep 2007 · letzter Beitrag vom 11. Sep 2007
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von ascotlx
ascotlx

Registriert seit: 8. Mär 2005
Ort: Hamburg
97 Beiträge
 
Delphi 7 Professional
 
#1

ein paar Fragen zum StringGrid

  Alt 11. Sep 2007, 09:17
Moin moin DP'ler,

ich habe da ein kleines Programm geschrieben, welches Dateien auf ihr "Vorhandensein" prüft.
Nun sollen die Dateien angezeigt werden und der Output über Labels sah doch sehr dürftig aus.
Kurz darauf stolperte ich hier über den Hinweis auf Stringrids.

Ich suchte die halbe Nacht und rausgekommen ist das Programm welches ihr im Anhang findet.

Nun zu meinen Fragen:

1. Das grau markierte Feld (siehe Screenshot) stört mich. Da "nur" die Informationen dargestellt
werden sollen, will ich keinen Focus auf das Stringgrid. Wie kann ich diese Markierung aufheben?

2. Wenn eine Datei nich vorhanden ist, soll die ganze Zeile rot markiert werden. Bis jetzt habe ich nur eine
Zelle rot "tünchen" können. Kann mir jemand eine Hilfestellung geben oder mir erklären was ich tun muss??

Wie gesagt, ich habe diverse Code Schnipsel gefunden und zusammengestrickt. Alleine hätte ich das nie hinbekommen.

Optimierungsvorschläge werden gerne gelesen und verwertet.

cu && vielen Dank schonmal ...

ascotlx

P.S.: das Archiv erstellt einen Ordner dp in dem das Projekt abgespeichert ist.
Miniaturansicht angehängter Grafiken
filecheck_104.jpg  
Angehängte Dateien
Dateityp: zip dp_104.zip (445,3 KB, 4x aufgerufen)
workarounds gibt es wie Sand am Meer und manchmal hat man ein workaround ohne es zu wissen
  Mit Zitat antworten Zitat
s-off
(Gast)

n/a Beiträge
 
#2

Re: ein paar Fragen zum StringGrid

  Alt 11. Sep 2007, 11:01
Hallo,

zu 1:
Delphi-Quellcode:
Procedure TForm1.FormCreate(Sender: TObject);
var
   TheRect: TGridRect;
Begin
   [...]

   StringGrid1.Selection := TheRect;
End;
zu 2:
lässt sich bestimmt auch eleganter lösen, funktioniert aber:
Delphi-Quellcode:
Procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
   Rect: TRect; State: TGridDrawState);

 [...]
Begin

   With (Sender As TStringGrid) Do Begin
      If (Pos('nicht', StringGrid1.Cells[ACol - 1, ARow]) = 1) Or
         (Pos('nicht', StringGrid1.Cells[ACol, ARow]) = 1) Or
         (Pos('nicht', StringGrid1.Cells[ACol + 1, ARow]) = 1) Then Begin
         Canvas.Brush.Color := clRed;
         Canvas.FillRect(Rect);
         Canvas.TextOut(Rect.Left + 2, Rect.Top + 1, StringGrid1.Cells[ACol, ARow]);
      End;
   End;

 [...]

End; // OnDrawCell
  Mit Zitat antworten Zitat
Benutzerbild von defede
defede

Registriert seit: 10. Aug 2006
Ort: Stötten am Auerberg
72 Beiträge
 
Delphi 7 Professional
 
#3

Re: ein paar Fragen zum StringGrid

  Alt 11. Sep 2007, 11:08
Hi,

du könntest mit RowSelect arbeiten.
Hat aber den Nachteil das das eben Blau einfärbt.
Amsonsten musst eben Rekuriv malen. (für die Zeile)

Delphi-Quellcode:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
begin
  //Funkt bei RowSelect
  if(ARow = StringGrid1.Row)then begin
    //Amsonsten noch ACol Prüfen!
    StringGrid1.Canvas.Brush.Color := clRed;
    StringGrid1.Canvas.FillRect(Rect);
  end;
end;
hoffe das hilft *g*
Invader Zim
Obey Zim
Fear Zim
  Mit Zitat antworten Zitat
Benutzerbild von ascotlx
ascotlx

Registriert seit: 8. Mär 2005
Ort: Hamburg
97 Beiträge
 
Delphi 7 Professional
 
#4

Re: ein paar Fragen zum StringGrid

  Alt 11. Sep 2007, 11:19
hey super s-off,
... und alles funktioniert ...

woher weiss man denn sowas ??
   StringGrid1.Selection := TheRect; bedeutet das, dass die Selection auf die "Gruppe von Zellen" gesetzt wird und nicht
auf die erste Zelle ??

Besten Dank

ascotlx
workarounds gibt es wie Sand am Meer und manchmal hat man ein workaround ohne es zu wissen
  Mit Zitat antworten Zitat
s-off
(Gast)

n/a Beiträge
 
#5

Re: ein paar Fragen zum StringGrid

  Alt 11. Sep 2007, 11:45
Zitat von ascotlx:
woher weiss man denn sowas ??
   StringGrid1.Selection := TheRect; bedeutet das, dass die Selection auf die "Gruppe von Zellen" gesetzt wird und nicht
auf die erste Zelle ??
ascotlx
Nein, das bedeutet, dass die Selektion entsprechend der Initialwerte des GridRects gesetzt wird, welche ausserhalb des (in diesem Fall) sichtbaren Bereichs liegen.

Korrekterweise würde man die Initialwerte mit 0 überschreiben, und erst dann die Selektion setzen.
Delphi-Quellcode:
  TheRect.Left := 0;
  TheRect.Right := 0;
  TheRect.Top := 0;
  TheRect.Bottom := 0;
  StringGrid1.Selection := TheRect;
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: ein paar Fragen zum StringGrid

  Alt 11. Sep 2007, 11:49
Wenn ich das richtig sehe, wäre für dein Vorhaben ein TListView besser geeignet. Dann könntest du beispielsweise sehr einfach zusätzlich das Icon, das mit der Dateiendung verknüpft ist, mit anzeigen. Dies könnte übersichtlicher wirken, zumindest würde mir das besser gefallen.

Anmerkung: TListView ist im Endeffekt das, worin im Windows Explorer auf der rechten Seite die Dateien aufgelistet werden. Das in der Detailansicht wäre für dich geeignet.
  Mit Zitat antworten Zitat
11. Sep 2007, 11:53
Dieses Thema wurde von "Matze" von "Sonstige Fragen zu Delphi" nach "VCL / WinForms / Controls" verschoben.
Benutzerbild von ascotlx
ascotlx

Registriert seit: 8. Mär 2005
Ort: Hamburg
97 Beiträge
 
Delphi 7 Professional
 
#8

Re: ein paar Fragen zum StringGrid

  Alt 11. Sep 2007, 15:33
@Matze ...
mhhhhh, danke für den Hinweis. Da ich bis jetzt auch mit dieser Variante keinerlei Erfahungen
sammeln konnte, schau ich mal was ich so finden kann.

Aber bis dahin, habe ich noch eine Frage zu obigem Thema StringGrid:

Wie kann ich nur in einer Zeile den Schrifttyp fsBold zuweisen ??
Wenn ich das hier mache, gilt es für das ganze StringGrid

StringGrid1.Font.Style:=[fsBold]; Besten Dank

ascotlx
workarounds gibt es wie Sand am Meer und manchmal hat man ein workaround ohne es zu wissen
  Mit Zitat antworten Zitat
s-off
(Gast)

n/a Beiträge
 
#9

Re: ein paar Fragen zum StringGrid

  Alt 11. Sep 2007, 15:46
Zitat von ascotlx:
Wie kann ich nur in einer Zeile den Schrifttyp fsBold zuweisen ??
Indem Du nur für die ACol, die sich in ARow=x befinden, im DrawCell-Event die Schriftart setzt.
  Mit Zitat antworten Zitat
Benutzerbild von ascotlx
ascotlx

Registriert seit: 8. Mär 2005
Ort: Hamburg
97 Beiträge
 
Delphi 7 Professional
 
#10

Re: ein paar Fragen zum StringGrid

  Alt 11. Sep 2007, 15:54
moin s-off,

nett ... und womit oder wie mache ich das ???

Meinen Fehlversuch hast Du ja schon gesehen. Ich finde leider nichts an Doku, sonst würde ich
nicht so nerven.



ascotlx

EDIT EDIT EDIT EDIT

Canvas.Font.Style:=[fsBold]; s-off ... besten Dank
workarounds gibt es wie Sand am Meer und manchmal hat man ein workaround ohne es zu wissen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 19:49 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