![]() |
ein paar Fragen zum StringGrid
Liste der Anhänge anzeigen (Anzahl: 2)
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. |
Re: ein paar Fragen zum StringGrid
Hallo,
zu 1:
Delphi-Quellcode:
zu 2:
Procedure TForm1.FormCreate(Sender: TObject);
var TheRect: TGridRect; Begin [...] StringGrid1.Selection := TheRect; End; 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 |
Re: ein paar Fragen zum StringGrid
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:
hoffe das hilft *g*
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; |
Re: ein paar Fragen zum StringGrid
hey super s-off,
... und alles funktioniert ... :thumb: woher weiss man denn sowas ??
Delphi-Quellcode:
bedeutet das, dass die Selection auf die "Gruppe von Zellen" gesetzt wird und nicht
StringGrid1.Selection := TheRect;
auf die erste Zelle ?? Besten Dank ascotlx |
Re: ein paar Fragen zum StringGrid
Zitat:
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; |
Re: ein paar Fragen zum StringGrid
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. |
DP-Maintenance
Dieses Thema wurde von "Matze" von "Sonstige Fragen zu Delphi" nach "VCL / WinForms / Controls" verschoben.
|
Re: ein paar Fragen zum StringGrid
@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
Delphi-Quellcode:
Besten Dank
StringGrid1.Font.Style:=[fsBold];
ascotlx |
Re: ein paar Fragen zum StringGrid
Zitat:
|
Re: ein paar Fragen zum StringGrid
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. :gruebel: ascotlx EDIT EDIT EDIT EDIT
Delphi-Quellcode:
s-off ... besten Dank
Canvas.Font.Style:=[fsBold];
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:10 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz