Ich habe begonnen, mich etwas ausführicher mit dem Lazarus TGrid zu beschäftigen (bis jetzt habe ich im wesentlich nur verwendet, was ich von Delphi kenne), und bin verblüfft über die Möglichkeiten - das geht wirklich sehr weit über das hinaus, was das Delphi TGrid bietet - eine Menge von dem, was ich für meine Delphi Grids dazuprogramiert habe, ist hier fix und fertig und zum Teil auch komfortabler gelöst.
Jetzt hänge ich aber mit einer vermutlich einfach lösbaren Frage.
Wenn ich in einem TGrid mehrere gleichartige Spalten brauche, wie kann ich die Eigenschaften der Spalte in eine neue Spalte übernehmen? Der GridspaltenEditor erlaubt nur das hinzufügen und das Löschen von Spalten, und während man sonst Komponenten mit allen Eigenschaften mit strg-c, strg-v im Formeditor duplizieren kann, habe ich nicht herausgefunden, wie man das mit Gridspalten machen kann.
Spalten in einem Grid kopieren
Re: Spalten in einem Grid kopieren
Richtig, da müsste man den Spalteneditor etwas erweitern. Alternativ kannst du die lfm-Datei editieren: im Formulareditor rechte Maustaste > "View Source (.lfm)", das Grid suchen, Spalteneintrag (nach "Columns" zwischen "Item" und "end") kopieren (unten in fetter Schrift) und an gewünschter Stelle wieder einfügen. Speichern. Es dürfte klar sein, dass man da eine Menge zerstören kann, daher vorher eine Sicherungskopie der LFM-Datei anlegen.
Code: Alles auswählen
object Form1: TForm1
Left = 345
Height = 240
Top = 129
Width = 676
Caption = 'Form1'
ClientHeight = 240
ClientWidth = 676
LCLVersion = '2.1.0.0'
object StringGrid1: TStringGrid
Left = 10
Height = 303
Top = 8
Width = 603
Columns = <
item
ButtonStyle = cbsCheckboxColumn
Title.Caption = 'Spalte A'
Width = 40
end
item
Alignment = taRightJustify
Title.Caption = 'Name'
end
item
ButtonStyle = cbsButtonColumn
Title.Caption = 'Title'
end
item
ButtonStyle = cbsCheckboxColumn
Title.Caption = 'Spalte B'
end>
TabOrder = 0
end
end
-
- Beiträge: 369
- Registriert: Do 8. Jun 2017, 18:21
- OS, Lazarus, FPC: Windows 10 64bit, Lazarus 2.0.10, FPC 3.2.0
- CPU-Target: 64Bit
- Wohnort: Wien
Re: Spalten in einem Grid kopieren
Hmm, schon klar, dass das so geht, aber ich möchte wenn irgend möglich das direkte Bearbeiten von lfm Dateien vermeiden, weil das doch eher fehleranfällig ist. Eventuell mache ich einen feature request, ich glaube nicht, dass ich der einzige sein werde, der das immer wieder braucht.