Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi TDBmemo einfügen geht nicht (https://www.delphipraxis.net/114073-tdbmemo-einfuegen-geht-nicht.html)

QuickAndDirty 19. Mai 2008 12:38

Datenbank: elevateDB • Version: ? • Zugriff über: native

TDBmemo einfügen geht nicht
 
Hallo,
Bei drücken von F5 soll ganz so wie im Notepad in eine TDBMEMO Komponente bei Cursor ein Datum und eine Uhrzeit eingefügt werden.
Der Cursor soll hinter den eingefügten Text plaziert werden.

Ich mache das so.
Delphi-Quellcode:
procedure Formular.DbMemoKeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
var s,sdt:string;
begin
  if key = VK_F5 then
  Begin
    s := TdbMemo(Sender).Text;
    sdt := DateTimetoStr(Now);
    system.insert(sdt,s,TdbMemo(Sender).Selstart);
    TdbMemo(Sender).Text := s;
    TdbMemo(Sender).Selstart := TdbMemo(Sender).Selstart+length(sdt);
  end;
end;
Ich weiß warum das nicht geht. (TdbMemo.Fdatalink.Edit wird nicht gefeuert)
Aber ich weiß nicht wie ich mache das es geht.

Das Symptom:
Wenn F5 getdrückt wird passiert genau was ich will!!!
Wird Anschließend Return gedrückt verschwindet der Text und das Return passiert da wo der Cursor vor dem F5 stand.

Wie mache ich es besser.
Direkt in die Tabelle schreiben? Aber das hilft mir dann immer noch nicht mit dem cursor

QuickAndDirty 19. Mai 2008 12:56

Re: TDBmemo einfügen geht nicht
 
OK, sorry problem gelöst hatte ein Brett vorm Kopf
Delphi-Quellcode:
procedure Formular.DBMemoKeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
var s,sdt:string;
begin
  if key = VK_F5 then
  Begin
    s := TdbMemo(Sender).Text;
    sdt := DateTimetoStr(Now);
    system.insert(sdt,s,TdbMemo(Sender).Selstart);
    TdbMemo(Sender).autodisplay := false;
    tabelle.edit;
    tabelle.FieldByName(TdbMemo(Sender).Field.Fieldname).asstring := s;
    tabelle.post;
    TdbMemo(Sender).Loadmemo;
    TdbMemo(Sender).autodisplay := true;
    TdbMemo(Sender).Selstart := TdbMemo(Sender).Selstart+length(sdt);
  end;
end;

marabu 19. Mai 2008 12:59

Re: TDBmemo einfügen geht nicht
 
Hi,

das geht auch mit weniger Code:

Delphi-Quellcode:
procedure TDemoForm.DBMemoKeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key = VK_F5 then
    with Sender as TDBMemo do
    begin
      Key := 0;
      DataSource.Edit;
      SelText := DateTimeToStr(Now);
    end;
end;
Grüße vom marabu

QuickAndDirty 19. Mai 2008 13:27

Re: TDBmemo einfügen geht nicht
 
Danke,
sieht ja echt sexy aus der code.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:31 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