Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Grid macht mich mischucke (https://www.delphipraxis.net/179463-grid-macht-mich-mischucke.html)

lu maak 9. Mär 2014 15:12

Datenbank: ABS • Version: 7.10 • Zugriff über: Delphi XE3

Grid macht mich mischucke
 
Datenbank(ABS) und Grid soweit so gut.
Vorweg. Habe das Problem auch mit anderen Grid's (DBGrid, auch AdvGrid (TMS) ).
Die Columns sollen zur Laufzeit konfiguriert werden. Macht es auch.
Die erste Columne, 'lnr', soll nicht gezeigt werden. Geht auch zu Anfang.
Um verschiedene Parameter zu setzen, um zu wissen wie die genau heißen,
klickt man schon mal ins Grid, Columne-Fenster geht auf, nur mal eins zum sehen.
Irgendwann, wenn ich das ein paar Male gemacht habe.:oops:
kommt : Argument außerhalb des Bereichs
Setze ich gleich/oder mehr im Columne(Fenster) dann kommt die Meldung nicht mehr.

(Ich mach das mit der Variable i als inc(i), so kann ich die Reihenfolge ohne neu
zu deklarieren, verändern.)

Vor der großen Delphi-Pause, hatte ich am Ende das i+1 jemand zugeteilt,
dann war gut, ich komme da nicht mehr drauf (Alsheimer läßt grüßen).

Delphi-Quellcode:
 with SMDBGrid1 do
  begin
    DefaultDrawing:=true;
    DataSource := DataSource2;
    TitleFont.Style:=TitleFont.Style + [fsBold];
    Options:=[dgEditing,dgTitles,dgColLines,dgRowLines,dgIndicator];

    i := 0;
    with Columns[i] do
    begin
      FieldName := 'lnr';
      Width := 0;
      ReadOnly := true;
    end;
    inc(i);
    with Columns[i] do
    begin
      FieldName := 'name';
      title.Caption := 'Name';
      font.Style := [fsBold];
      font.Color := $00FF2A2F;
      Width := 35;
      Alignment := taCenter;
      ReadOnly := true;
    end;
    inc(i);
    with Columns[i] do
    begin
      FieldName := 'vname';
      title.Caption := 'Vorname';
      font.Style := [fsBold];
      Title.Alignment:=taCenter;
      Width := 105;
      Alignment := taRightJustify;
      ReadOnly := true;
    end;
    inc(i);
    ???????????:= i+1;

DeddyH 9. Mär 2014 15:28

AW: Grid macht mich mischucke
 
Setz doch bitte künftig Delphi-Tags, dann wird der Code schön formatiert und ist besser zu lesen. Du kannst dazu die "Helm"-Schaltfläche im Beitragseditor benutzen, oder Du machst das von Hand.
Code:
[delphi]Code[/delphi]
Zum Problem: wo wertest Du denn aus, ob i noch innerhalb des gültigen Bereichs ist? Der gültige Bereich wäre zwischen 0 und Columns.Count - 1.

hathor 9. Mär 2014 15:49

AW: Grid macht mich mischucke
 
http://de.wikipedia.org/wiki/Meschugge

Uwe Raabe 9. Mär 2014 15:50

AW: Grid macht mich mischucke
 
Es heißt übrigens meschugge.

[Edit] zu spät...

jaenicke 9. Mär 2014 16:43

AW: Grid macht mich mischucke
 
Wenn die Spalten zur Laufzeit konfiguriert werden sollen, macht es auch Sinn die dort hinzuzufügen (Columns.Add vermute ich) statt nur die Werte bestehender Spalten anzupassen. Im Moment setzt du ja nur die Werte deiner Columns[i].

Sprich ohne es ausprobiert zu haben würde ich vermuten:
Delphi-Quellcode:
var
  NewColumn: TSMDBColumn;
begin
  SMDBGrid1.Columns.Clear;

  NewColumn := SMDBGrid1.Columns.Add;
  NewColumn.FieldName := 'name';
  NewColumn.Title.Caption := 'Name';
  NewColumn.Font.Style := [fsBold];
  NewColumn.Font.Color := $00FF2A2F;
  NewColumn.Width := 35;
  NewColumn.Alignment := taCenter;
  NewColumn.ReadOnly := true;

  NewColumn := SMDBGrid1.Columns.Add;
  ...

lu maak 9. Mär 2014 16:51

AW: Grid macht mich mischucke
 
Danke für den Hilfeversuch.
Sorry. In der Vorschau war noch alles schön formartiert. Habe das mit dem Helm nicht gewußt.
i ist die Laufvariable, so kann ich Columne-Absätze verschieben, ohne die Reihenfolge neu zu deklarieren.
Aber das siehst doch auch?

Übrigens ich meinte mischucke, der Ausdruck (ok mit 2gg) `mischugge` bedeutet `verrückt` aus dem deutsch-Österreichischen Sprachgebrauch. Dein 'Meschugge' ist ein aus dem Hebräischen/Jiddischen entnommenes Lehnwort. Es wurde im 19. Jahrhundert aus dem Jiddischen meschuggo verrückt eingeführt.

Was mir aber auch nicht viel weiter hilft.

Na ja, Danke erstmal.




Hi, Sebastian,
deine Anwort kam gerade herein, werde das mal übernehmen und testen.
Oder morgen. Ich lebe in Thailand und bin euch 6 Stunden voraus.

sawasdee khaap
lu maak

Ps: lu maak bedeutet im thailändische viel schlaue; nicht ernst nehmnen.

lu maak 10. Mär 2014 01:31

AW: Grid macht mich mischucke
 
Hallo Sebastian,


mein Anliegen verstanden,
konstruktive Hilfe erhalten,


besten Dank
lu maak


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:24 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