ViaThinkSoft CodeLib
Dieser Artikel befindet sich in der Kategorie:
CodeLib → Programmierhilfen → Delphi
Borland sieht es in der Komponente TValueListEditor nicht vor, den Textcursor zu beeinflussen.
Um einen Text zu beeinflussen, muss die Eigenschaft "InplaceEditor" durch eine Ableitung in den öffentlich sichtbaren Bereich verschoben werden.
Hier ist eine kleine Erweiterung des TValueListEditor:
Um einen Text zu beeinflussen, muss die Eigenschaft "InplaceEditor" durch eine Ableitung in den öffentlich sichtbaren Bereich verschoben werden.
Hier ist eine kleine Erweiterung des TValueListEditor:
unit ExtendedValEdit;
// by ViaThinkSoft
// http://devboard.viathinksoft.de/viewtopic.php?f=34&t=778
interface
uses
ValEdit;
type
TExtendedValueListEditor = class(TValueListEditor)
public
property InplaceEditor;
procedure TextCursorToBeginning;
procedure TextCursorToEnd;
procedure TextCursorSelectAll;
procedure TextCursorToPosition(Pos: integer);
procedure SelCell(ACol, ARow: integer; ASelectText: boolean);
procedure ClearValues;
end;
implementation
procedure TExtendedValueListEditor.TextCursorToBeginning;
begin
if Assigned(InplaceEditor) then
begin
InplaceEditor.SelStart := 0;
end;
end;
procedure TExtendedValueListEditor.TextCursorToEnd;
begin
if Assigned(InplaceEditor) then
begin
InplaceEditor.SelStart := InplaceEditor.GetTextLen - 0;
end;
end;
procedure TExtendedValueListEditor.TextCursorToPosition(Pos: integer);
begin
if Assigned(InplaceEditor) then
begin
InplaceEditor.SelStart := Pos;
end;
end;
procedure TExtendedValueListEditor.TextCursorSelectAll;
begin
if Assigned(InplaceEditor) then
begin
InplaceEditor.SelectAll;
end;
end;
procedure TExtendedValueListEditor.SelCell(ACol, ARow: integer; ASelectText: boolean);
begin
Col := ACol;
Row := ARow;
SetFocus;
// Workaround: http://devboard.viathinksoft.de/viewtopic.php?f=34&t=779
Refresh;
if not ASelectText then TextCursorToEnd; { else TextCursorSelectAll; }
end;
procedure TExtendedValueListEditor.ClearValues;
var
i: integer;
begin
for i := 1 to RowCount - 1 do
begin
Cells[1, i] := '';
end;
end;
end.
Daniel Marschall
ViaThinkSoft Mitbegründer
ViaThinkSoft Mitbegründer