AGB  ·  Datenschutz  ·  Impressum  







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

Stringgrid

Ein Thema von michael.cohrs · begonnen am 7. Okt 2009 · letzter Beitrag vom 8. Okt 2009
Antwort Antwort
Seite 1 von 2  1 2      
michael.cohrs

Registriert seit: 11. Nov 2005
Ort: Hamburg
130 Beiträge
 
#1

Stringgrid

  Alt 7. Okt 2009, 18:27
Guten Abend zusammen,

ich habe einen Kalender entwickelt den ich in einem Stringgrid anzeige. Sieht ungefähr wo aus

Mo. Di. Mi. etc......
-----|-----|-----|...................

-----|-----|-----|...................


nun möchte ich gern das die Columns zwar mit den Texten erhalten bleiben,

die Zellen darunter jedoch unterteilt werden durch einen farbigen Strich, ungefähr so:

Mo. Di. Mi. etc......
-----|-----|-----|...................
| | | | | |...................
-----|-----|-----|...................


hat jemand eine Idee oder einen Vorschlag wie ich das realisieren kann??

Danke bereits jetzt

Gruß

Michael
Michael Cohrs
  Mit Zitat antworten Zitat
Benutzerbild von Lannes
Lannes

Registriert seit: 30. Jan 2005
Ort: Münster
745 Beiträge
 
Delphi 3 Professional
 
#2

Re: Stringgrid

  Alt 7. Okt 2009, 18:48
Hallo,

ja, im Event-Handler für OnDrawCell in den Zellen die Unterteilung zeichen.

Aber wäre es nicht besser über der Unterteilung(durch Columns) die darüberliegenden Zellen zu verbinden?

Oder habe ich jetzt etwas falsch verstanden? Meinst Du eventuel zwischen den "Zeilen" (Rows) unterteilen?
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
  Mit Zitat antworten Zitat
michael.cohrs

Registriert seit: 11. Nov 2005
Ort: Hamburg
130 Beiträge
 
#3

Re: Stringgrid

  Alt 7. Okt 2009, 19:27
DAnke für die Antwort,

es soll eine Art Belegungskalender werden, soll heissen jemand bucht vormittags aus....und ein anderer kommt nachmittags.

um das erkenntlich zu machen hätte ich gern diesen Trennstrich in der entsprechenden zelle

und ich habe leider zu wenig erfahrung mit der ondraw routine....vieleicht hast du ein beispiel??

danke

miohael
Michael Cohrs
  Mit Zitat antworten Zitat
Benutzerbild von Lannes
Lannes

Registriert seit: 30. Jan 2005
Ort: Münster
745 Beiträge
 
Delphi 3 Professional
 
#4

Re: Stringgrid

  Alt 7. Okt 2009, 19:48
Hallo,

soll das so aussehen?
Code:
________________________
|  Mo  |  Di  |  Mi  |
|_______|_______|_______|
    |       |       |
____|_______|_______|___
oder erstell doch mal eine Zeichnung/ein Bild, damit man sich das besser vorstellen kann.
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
  Mit Zitat antworten Zitat
michael.cohrs

Registriert seit: 11. Nov 2005
Ort: Hamburg
130 Beiträge
 
#5

Re: Stringgrid

  Alt 7. Okt 2009, 19:59
hallo zurück!!!

JAAAAA genau so
Michael Cohrs
  Mit Zitat antworten Zitat
Benutzerbild von Lannes
Lannes

Registriert seit: 30. Jan 2005
Ort: Münster
745 Beiträge
 
Delphi 3 Professional
 
#6

Re: Stringgrid

  Alt 7. Okt 2009, 20:54
Hallo,

und die Zellen sollen vermutlich auch Inhalte aufnehmen können/editiert werden können?
Ein Belegungsplan? Belegung auch über mehrere Tage?
Code:
________________________________________________
|  Mo  |  Di  |  Mi  |  Do  |  Fr  |  Sa  |
|_______|_______|_______|_______|_______|_______|
    |Müller |  Musterfrau  |   Meyer
____|_______|_______________|___________________

Zitat von Lannes:
oder erstell doch mal eine Zeichnung/ein Bild, damit man sich das besser vorstellen kann.
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
  Mit Zitat antworten Zitat
michael.cohrs

Registriert seit: 11. Nov 2005
Ort: Hamburg
130 Beiträge
 
#7

Re: Stringgrid

  Alt 8. Okt 2009, 04:14
Hallo,

Sorry das ich gestern nicht mehr gepostet habe, war einfach zu müde

ja, so soll es am Ende aussehen, editierbar und über mehrere Tage belegbar, hast
Du eine Idee oder einen Ansatz dafür?

Danke und einen schönen Tag

Michael
Michael Cohrs
  Mit Zitat antworten Zitat
NickelM

Registriert seit: 22. Jul 2007
Ort: Carlsberg
445 Beiträge
 
Delphi 2009 Professional
 
#8

Re: Stringgrid

  Alt 8. Okt 2009, 04:54
Hab gerade mal geschaut ich finde für dein Vorhaben geht ein ListView mit Columns.
Hab grad mal getestet mit OnDrawItem kannst du dir das super zeichnen.
du musst im Listview den Style auf Report stellen, Columns hinzufügen und RowSelect True machen.
Ich hab jedem Colums die Größe von 48 gegeben (2 mal 24 Stunden) und dan Mo,Di usw als Columns gemacht
Und fügst bei Items ein paar Namen ein.

Als Erkläreung:

Rect ist jeweils von der Zeile, da Rowselect an ist.
In Item sind die Informatione von dem Eintrag drin wie Caption (also den Namen des jeweiligen)
State brauchst du nur, wenn du noch die Farbe beim Select der Zeile ändern willst.
Bei OnDrawItem fügst du als Test folgen Code ein:

Delphi-Quellcode:
procedure TForm2.ListView1DrawItem(Sender: TCustomListView; Item: TListItem;
  Rect: TRect; State: TOwnerDrawState);
begin
// Das Rect.Top und Rect.Bottom jeweils, damit du in der Zeile bleibst.
ListView1.Canvas.Rectangle(30,Rect.Top,100,Rect.Bottom); //Ein Rechteck als beispiel
ListView1.Canvas.Brush.Style := bsClear; //Damit der ´Hintergrund vom Text nicht das Rechteck überdeckt
ListView1.Canvas.TextOut(30 +2,Rect.Top,Item.Caption); //Text zeichnen
//Du kannst ja mal über weitere Zeichenoptionen in der Hilfe nach der Klasse TCanvas nachschauen.
//Findest bestimmt etwas
end;

end.
So das müsste denke ich dir weiter helfen. In den Subitems kannst du z.b. die Daten von der Zeit oder Anfangstag oder so reinstellen.
Die Subitems kannst du dan über Item.Items abfragen soviel ich weiß.

Gruß NickelM
Nickel
"Lebe und denke nicht an morgen"
Zitat aus dem gleichnamigen Bollywoodfilm.
  Mit Zitat antworten Zitat
Benutzerbild von Lannes
Lannes

Registriert seit: 30. Jan 2005
Ort: Münster
745 Beiträge
 
Delphi 3 Professional
 
#9

Re: Stringgrid

  Alt 8. Okt 2009, 09:39
Hallo,

spätestens wenn die Subitems editierbar sein sollen und noch dazu nicht im Raster liegen, wird es sehr schwierig bis unmöglich mit einer ListView das zu realisieren. Auch mit einem StringGrid ist das nicht gerade eine leichte Übung. Auch da bleibt bei den Anfordeungen eigentlich nur die erste Zeile in einem Raster.
Es werden ja vermutlich mehrere unterschiedliche Belegungen/Tag auftreten, das sieht ja im Endeffekt dann so aus:
Code:
__________________________________________________________
|  Mo  |  Di  |  Mi  |  Do  |  Fr  |  Sa  |  ...
|_______|_______|_______|_______|_______|_______|_________
    |Müller |  Musterfrau  |         Meyer        |
____|_______|_______________|_______________________|_____
 Hinz |   Müller-Lüdenscheid       |  Kunz      
______|_____________________________|_____________________
    ...           |  ...  |               ...         |
___________________|________|____________________________|
Das mit einem Standard-ListView oder -Grid zu realisieren ist sehr zeitaufwändig(spreche da nicht von Tagen, eher Monate).
Ich glaube du solltest dich mal nach fertigen Komponenten umschauen, z.B. TVirtualTreeView(weiß ich nicht ob die das kann), oder z.B. das TAdvStringGrid(das beherrscht "cell merging", ist aber nicht Freeware Link -> Demo).

Willst Du Deine Anforderungen selbst umsetzen, empfehle ich Dir eine ScrollBox.
In der EE gibt es auch mal ein Thema das dazu Informationen liefert.
[StringGrid, VCL Win32] individuelle Zellen(!)-Breite, ist das möglich?
da geht es dann weiter: [TScrollbox, VCL Win32] Wie kann man die Erstellung der Objekte beschleunigen?
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
  Mit Zitat antworten Zitat
michael.cohrs

Registriert seit: 11. Nov 2005
Ort: Hamburg
130 Beiträge
 
#10

Re: Stringgrid

  Alt 8. Okt 2009, 16:38
Hallo nochmal zusammen,

ich hab mal nen Bild mit meinen bisherigen "Erfolgen" und meinem
einzigem noch vorhandenen Problem beigelegt. Ich denke es ist sehr sehr
einfach zu lösen nur seh ich zur Zeit den Wald vor lauter Bäumen
leider nicht mehr...

Vielen Dank

Michael
Miniaturansicht angehängter Grafiken
kalender_460.jpg  
Michael Cohrs
  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 23:56 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