AGB  ·  Datenschutz  ·  Impressum  







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

hat TStringgrig eine innere Größenbeschränkung?

Ein Thema von p80286 · begonnen am 15. Sep 2010 · letzter Beitrag vom 17. Sep 2010
Antwort Antwort
Seite 2 von 2     12   
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#11

AW: hat TStringgrig eine innere Größenbeschränkung?

  Alt 16. Sep 2010, 19:24
Also die Hinweise zusammengeworfen, (wenn schon die ganze Datenbank eingelesen und angezeigt werden muss) würde es am meisten Sinn machen, die Daten in einen schnellen "Container" einzulesen.

Also Daten erst in ein passendes dyn. Array einlesen und über eine simple Funktion die Werte für die jeweilige Zeile/Spalte bereitstellen (ist im Ausgangspost ja quasi schon vorhanden)
function GetDatabaseArrayValue(ACol, ARow): String; .

Nach dem Einlesen ist RowCount bekannt und kann im StringGrid gesetzt werden. Das StringGrid wird jetzt nicht gefüllt sonder wie mkinzler vorgeschlagen hat, nur der sichtbare Bereich via DrawCell angezeigt (Beispiel mit einer fixed Row):
Delphi-Quellcode:
procedure TForm1.StringGrid1DrawCell(Sender: TObject;
  ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);

var
  s : String;
begin
  with (Sender as TStringGrid) do begin

    if gdFixed in State then
      SetTextStyle(Canvas, clBtnFace, clBtnText, [])
    else
    if gdSelected in State then
      SetTextStyle(Canvas, clHighlight, clHighlightText, [])
    else
      SetTextStyle(Canvas, clWindow, clWindowText, []);

    if ARow = 0 then
      s := Cells[Acol,Arow]
    else
      s := GetDatabaseArrayValue(ACol, ARow);

    Canvas.TextRect(Rect,Rect.Left +2,Rect.Top+2, s);
  end;
end;

Geändert von Satty67 (16. Sep 2010 um 19:27 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#12

AW: hat TStringgrig eine innere Größenbeschränkung?

  Alt 17. Sep 2010, 11:05
@Satty67
Das wird das beste sein.
Mal sehen was ich damit anfangen kann. Ich würde es so benennen:
"Ein Browserfenster über die Daten gleiten lassen."
Da als alternative Ausgabe Text/TMemo vorhanden ist kann man da gleich Nägel mit Köpfen machen. CopyundPaste bliebe dann zwar auf der Strecke habe ich bisher aber nicht benötigt.

Ich hab mal an der Ausgangsfragestellung weiter gebastelt und würde jetzt "ja" sagen.
(zumindestens bei Stringgrids mit weniger als 512 Cols)
Mein Fehler tritt immer dann auf, wenn das Stringgrid x7FFF80 oder mehr Cells enthalten soll.
egal ob der Eintrag in das Grid über Cells[x,y] oder Rows[y] erfolgt.
bevor es jemand anmerkt, ja RowCount und CellCount waren initialisiert.

Vielen Dank an alle, die sich Ihren Kopf darüber zerbrochen haben.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 18:09 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