AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein TAdvStrinGrid mit ComboBox mehrere Spalten füllen
Thema durchsuchen
Ansicht
Themen-Optionen

TAdvStrinGrid mit ComboBox mehrere Spalten füllen

Ein Thema von norwegen60 · begonnen am 21. Mär 2020 · letzter Beitrag vom 22. Mär 2020
Antwort Antwort
hhcm

Registriert seit: 12. Feb 2006
Ort: Wegberg
310 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: TAdvStrinGrid mit ComboBox mehrere Spalten füllen

  Alt 21. Mär 2020, 17:24
Ich war mal in einer ähnlichen Situation. Leider finde ich das entsprechende Projekt nicht mehr.
Es lief aber alles auf eine Ableitung "Editlink" hinaus. Also einen eigenen Editor.

Vielleicht hilft das weiter.
Schau dir dazu mal die bereits vorhandenen EditLink Komponenten von TMS an.
Chris
  Mit Zitat antworten Zitat
norwegen60

Registriert seit: 23. Dez 2007
Ort: Schwarzwald
529 Beiträge
 
Delphi 12 Athens
 
#2

AW: TAdvStrinGrid mit ComboBox mehrere Spalten füllen

  Alt 21. Mär 2020, 21:03
Nachdem ich gesehen hatte, dass es mit edGridDropDown eine einfache Möglichkeit gibt eine Combo mit Spalten zu erstellen, hatte ich eigentlich die Hoffung, dass damit meine Aufgabenstellung auch einfach zu implementieren ist.
Wenn ich da jetzt aber doch was eigenes bauen muss, kann ich auch bei der vorhanden Lösung bleiben. Da wird auf das Grid ein zweites Grid gelegt wird, in dem dann die Auswahlen stehen. Sobald man eine Doppelklickt, wird die ausgewählte Zeile spaltenweise übertragen.

Schade.
  Mit Zitat antworten Zitat
hhcm

Registriert seit: 12. Feb 2006
Ort: Wegberg
310 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: TAdvStrinGrid mit ComboBox mehrere Spalten füllen

  Alt 22. Mär 2020, 08:17
Ich habe nicht gesagt das es nicht anders geht.
Was mit deinem Beispiel funktioniert ist folgendes.

Delphi-Quellcode:
procedure TFormx.sg2EditChange(Sender: TObject; ACol, ARow: Integer; Value: string);
var
  di: TDropDownItem;
  colIndex: Integer;
begin
  if ACol = 2 then
  begin
    sg2.GridDropDown.LookupColumn := 0;
    colIndex := sg2.GridDropDown.Items.IndexInColumn(0, Value);

    if colIndex > -1 then
    begin
      di := sg2.GridDropDown.Items[colIndex];
      sg2.Cells[3, ARow] := di.Text[1];
    end;
  end
  else if ACol = 3 then
  begin
    sg2.GridDropDown.LookupColumn := 1;
    colIndex := sg2.GridDropDown.Items.IndexInColumn(1, Value);

    if colIndex > -1 then
    begin
      di := sg2.GridDropDown.Items[colIndex];
      sg2.Cells[2, ARow] := di.Text[0];
    end;
  end;
end;
Ist als Showcase. Geht bestimmt elleganter.
Chris
  Mit Zitat antworten Zitat
norwegen60

Registriert seit: 23. Dez 2007
Ort: Schwarzwald
529 Beiträge
 
Delphi 12 Athens
 
#4

AW: TAdvStrinGrid mit ComboBox mehrere Spalten füllen

  Alt 22. Mär 2020, 15:20
Super, ein Schritt weiter und etwas mehr Verständnis meinerseits.
Delphi-Quellcode:
sg2.GridDropDown.LookupColumn;
sg2.GridDropDown.Items.IndexInColumn(0, Value);
sg2.GridDropDown.Items[colIndex];
waren mir nicht geläufig.

Giebt es noch einen Tip wie ich die Combo immer linksbündig zu Spalte 2 öffnen kann, bzw. meinen Klick in Spalte 3 in einen Klick in Spalte 2 umleite?

Gerd
  Mit Zitat antworten Zitat
hhcm

Registriert seit: 12. Feb 2006
Ort: Wegberg
310 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: TAdvStrinGrid mit ComboBox mehrere Spalten füllen

  Alt 22. Mär 2020, 15:47
Mit ein paar Schaltern unter Navigation und/oder MouseActions sollte folgendes gehen

Delphi-Quellcode:
procedure TFormx.sg2SelectCell(Sender: TObject; ACol, ARow: Integer; var CanSelect: Boolean);
begin
  if ACol = 3 then
  begin
    CanSelect := False;
    sg2.EditCell(2, ARow);
  end;
end;
Chris
  Mit Zitat antworten Zitat
Antwort Antwort


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 19:55 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