AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

InplaceEditor von Stringgrid zentrieren

Ein Thema von Ginko · begonnen am 23. Dez 2009 · letzter Beitrag vom 27. Dez 2009
Antwort Antwort
Ginko

Registriert seit: 30. Aug 2008
208 Beiträge
 
FreePascal / Lazarus
 
#1

InplaceEditor von Stringgrid zentrieren

  Alt 23. Dez 2009, 17:05
Hallo gibt es eine Möglichkeit den InplaceEditor bei jeder eingabe in eine Stringgrid-Zelle zu zentrieren?
  Mit Zitat antworten Zitat
Ginko

Registriert seit: 30. Aug 2008
208 Beiträge
 
FreePascal / Lazarus
 
#2

Re: InplaceEditor von Stringgrid zentrieren

  Alt 25. Dez 2009, 12:18
Ist es nicht irgendwie möglich mit der Funktion

function CreateEditor: TInplaceEdit; override; bei der Erstellung des InplaceEditor das oben beschriebene zu erreichen?
In der Art zB:

Delphi-Quellcode:
function TEigenesStringgrid.CreateEditor;
var CustomInplace: TInplaceEdit;
begin
  CustomInplace := TInplaceEdit.Create(self);
  CustomInplace.Left := 20;
  Result := CustomInplace;
end;
Was aber leider nicht klappt...
  Mit Zitat antworten Zitat
Ginko

Registriert seit: 30. Aug 2008
208 Beiträge
 
FreePascal / Lazarus
 
#3

Re: InplaceEditor von Stringgrid zentrieren

  Alt 27. Dez 2009, 16:17
Crossling zu Delphi-Forum
  Mit Zitat antworten Zitat
Ginko

Registriert seit: 30. Aug 2008
208 Beiträge
 
FreePascal / Lazarus
 
#4

Re: InplaceEditor von Stringgrid zentrieren

  Alt 27. Dez 2009, 18:06
So ich habe es jetzt endlich gelöst hier meine Lösung:


Delphi-Quellcode:
unit Unit3;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Grids;

type
  TExtInplaceEdit = class(TInplaceEdit)
  protected
    procedure CreateParams(var Params: TCreateParams); override;
  end;

  TExtStringGrid = class(TStringGrid)
  protected
    function CreateEditor: TInplaceEdit; override;
  public
    constructor Create(AOwner: TComponent); override;
    procedure DrawCell(ACol, ARow: Longint; ARect: TRect; AState: TGridDrawState); override;
  end;


implementation


{ TExtInplaceEdit }
procedure TExtInplaceEdit.CreateParams(var Params: TCreateParams);
begin
  inherited;
  Params.Style := Params.Style or LongWord(ES_Center); //Text des InplceEditors zentriert darstellen
end;

{ TExtStringGrid }
constructor TExtStringGrid.Create(AOwner: TComponent);
begin
  inherited;
  Parent := AOwner as TWinControl;
  DefaultColWidth := 75;
  DefaultRowHeight := 20;
  FixedCols := 0;
  FixedRows := 0;
  ColCount := 2;
  RowCount := 4;
  Width := 160;
  Height :=90;
  Options := Options + [goEditing];
  Selection := TGridRect(Rect(-1,-1,-1,-1));
end;

function TExtStringGrid.CreateEditor: TInplaceEdit;
begin
  Result := TExtInplaceEdit.Create(Self);
end;

procedure TExtStringGrid.DrawCell(ACol, ARow: Longint; ARect: TRect; AState: TGridDrawState);
var s: string;
begin
  s := Cells[ACol, ARow];
   //Text im Stringgrid zentriert darstellen
  DrawText(Canvas.Handle, PChar(s), Length(s), ARect, DT_SINGLELINE or DT_Center or DT_VCENTER);
end;

end.
  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 08:53 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