AGB  ·  Datenschutz  ·  Impressum  







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

Einfügen in SynEdit geht nicht

Ein Thema von XPLOSIV · begonnen am 8. Sep 2007 · letzter Beitrag vom 9. Sep 2007
Antwort Antwort
XPLOSIV

Registriert seit: 31. Aug 2007
74 Beiträge
 
#1

Einfügen in SynEdit geht nicht

  Alt 8. Sep 2007, 22:21
Also, ich hab nen Button der ein neues TabSheet mit einem SynEdit erstellt, doch da geht die einfügen funktion (auch STRG+V) nicht.

Delphi-Quellcode:
var
  ts: TTabSheet;
  se: TSynEdit;
  fn: TFileName;
begin
  ts := TTabSheet.Create(PageControl1);
  ts.PageControl := PageControl1;
  if fn = ''
    then ts.Caption := Format('Tabelle [%d]', [PageControl1.PageCount])
    else ts.Caption := ExtractFileName(fn);
  ts.Hint := fn;
  se := TSynEdit.Create(ts);
  se.Parent := ts;
  se.Align := alClient;
  se.ActiveLineColor:= $00FFFF80;
  se.Gutter.ShowLineNumbers:= TRUE;
  if fn = ''
    then se.Lines.Clear
    else se.Lines.LoadFromFile(fn);
  Files.AddObject(fn, se);
  PageControl1.ActivePage := ts;
  se.SetFocus;
end;
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Einfügen in SynEdit geht nicht

  Alt 9. Sep 2007, 07:27
Guten Morgen,

das SynEdit Control kommt prima mit den ClipBoard-ShortCuts zurecht, wenn du es nur zulassen würdest:

Delphi-Quellcode:
procedure TForm1.Einfgen1Click(Sender: TObject);
begin
  SynEdit.PasteFromClipboard;
end;
Mit diesem Code für dein MenuItem Einfgen1 und die Zuordnung des ShortCut Strg+V hast du effektiv alle Einfüge-Operationen auf deine Komponente SynEdit umgeleitet. Strg+V funktioniert dann auch nicht mehr in den anderen Edit Controls deiner Form.

Es gibt jetzt zwei Wege für dich aus dem Dilemma.

Du schickst die abgefangene Nachricht an das richtige Control weiter:

Delphi-Quellcode:
procedure TForm1.Einfgen1Click(Sender: TObject);
begin
  SendMessage(GetFocus, WM_PASTE, 0, 0);
end;
Oder du fügst die entsprechenden Standardaktionen aus dem Abschnitt Bearbeiten in deine ActionList ein und weist diese Actions deinen entsprechenden MenuItems zu.

Grüße vom marabu
  Mit Zitat antworten Zitat
XPLOSIV

Registriert seit: 31. Aug 2007
74 Beiträge
 
#3

Re: Einfügen in SynEdit geht nicht

  Alt 9. Sep 2007, 09:33
Danke funtzt prima, doch das Kopieren geht auch nicht, soll ich nen Theard machen oder wirds auch hier beantwortet ?
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: Einfügen in SynEdit geht nicht

  Alt 9. Sep 2007, 10:06
Mit den anderen ClipBoard-Funktionen ist es das gleiche Problem.

Du musst einfach die Lösung übertragen und anpassen.
  Mit Zitat antworten Zitat
XPLOSIV

Registriert seit: 31. Aug 2007
74 Beiträge
 
#5

Re: Einfügen in SynEdit geht nicht

  Alt 9. Sep 2007, 13:36
So habs jetzt, doch ich bekomm es noch für alles Markieren und Ausschneiden hin.


SendMessage(GetFocus, WM_SelectAll, 0, 0); SendMessage(GetFocus, WM_, 0,ClearSelection 0); Weiß einer Rat ?
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#6

Re: Einfügen in SynEdit geht nicht

  Alt 9. Sep 2007, 14:30
Zum "Ausschneiden" verwendest du die Nachricht WM_CUT, aber in deinem Menü habe ich "Markierten Text löschen" gesehen und dazu verwendest du WM_CLEAR. In beiden Fällen wird der markierte Text entfernt, bei WM_CUT aber zusätzlich in die Zwischenablage kopiert.

Hinter "Alles markieren" steht die Message EM_SETSEL, aber leider wird diese Nachricht laut message prefix nur von Edit Controls verstanden - und SynEdit ist kein Edit-Control. Da hilft nur eine Fallunterscheidung:

Delphi-Quellcode:
procedure TForm1.AllesMarkieren1Click(Sender: TObject);
var
  wc: TWinControl;
begin
  wc := FindControl(GetFocus);
  if wc is TSynEdit
    then TSynEdit(wc).SelectAll
    else SendMessage(wc.Handle, EM_SETSEL, 0, -1);
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 16:21 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