Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Doppelten String nicht übergeben (https://www.delphipraxis.net/93773-doppelten-string-nicht-uebergeben.html)

Klaus01 12. Jun 2007 10:11

Re: Doppelten String nicht übergeben
 
Zitat:

type
TSetEditEvent = procedure (Sender: TObject; ACol, ARow: Longint; const Value: WideString) of object;
property OnSetEditText: TSetEditEvent;

Description

Write an OnSetEditText event handler to perform any special processing of the text edited by the user in an in-place editor. For example, use the OnSetEditText event to retrieve and store the value of a cell so that it can be displayed in an OnDrawCell event handler. OnSetEditText occurs every time the user changes the text.
Verabschiede Dich einmal von dem SetEditText Event, das wird jedesmal ausgelöst wenn der Text in der Zelle
geändert wird. Dein Zellentext wird also Zeichenweise in das Editfeld und auch das Label übertragen.
Damit wird eine Überprüfung die auf Wortbasis basiert unmöglich.

Entweder Du suchst Dir ein event das ausgelöst wird, wenn Du mit dem Editieren fertig bist - da habe ich noch keines gefunden - oder eines wenn Du die Zelle verlässt - habe ich auch noch keines gefunden - oder
Du machst noch einen Button auf die Form (mit Namen überprüfen/übernehmen o.ä) wo Du dann die Zellinhalte
überprüfen und gegebenenfalls anmeckern kannst.

Hier bin ich mit meinem Latein am Ende.

Grüße
Klaus

marabu 12. Jun 2007 10:18

Re: Doppelten String nicht übergeben
 
Hallo Sascha,

wenn die Anzeige unbedingt permament aktualisiert werden soll, dann so:

Delphi-Quellcode:
function ColsToStr(sg: TStringGrid; colNums: array of Integer): string;
var
  iCol, iRow: Integer;
  s: string;
begin
  with TStringList.Create do
  try
    Sorted := True;
    for iCol := Low(colNums) to High(colNums) do
      for iRow := sg.FixedRows to Pred(sg.RowCount) do
      begin
        s := Trim(sg.Cols[colNums[iCol]][iRow]);
        if (s <> '') and (IndexOf(s) < 0) then
          Add(s);
      end;
    Result := CommaText;
  finally
    Free;
  end;
end;

procedure TForm1.StringGridSetEditText(Sender: TObject; ACol,
  ARow: Integer; const Value: String);
begin
  Edit1.Text := ColsToStr(StringGrid, [11, 12]);
end;
Freundliche Grüße

SaFu 12. Jun 2007 10:28

Re: Doppelten String nicht übergeben
 
Genau das wars

Dank dir und natürlich auch ein danke an klaus für seine mühen konnte auch die sachen vom klaus für was anderes benutzen hab.

danke euch beiden


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:00 Uhr.
Seite 3 von 3     123   

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