AGB  ·  Datenschutz  ·  Impressum  







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

TComboBox - ReadOnly - "CopyToClipboard"

Ein Thema von Tyrael Y. · begonnen am 11. Dez 2007 · letzter Beitrag vom 12. Dez 2007
Antwort Antwort
Seite 1 von 2  1 2      
Tyrael Y.

Registriert seit: 28. Jul 2003
Ort: Stuttgart
1.093 Beiträge
 
Delphi 2007 Professional
 
#1

TComboBox - ReadOnly - "CopyToClipboard"

  Alt 11. Dez 2007, 09:25
Hallo zusammen,

ich habe einige TComboxen, die ich auf den Style csDropDownList gesetzt habe, um sie
nicht veränderbar zu machen. Jetzt wäre es schön, wenn man den ausgewählten Text
mittels STRG + C kopieren könnte.

Eine TComboBox ist ja eine Kombination aus einem Edit und einer TextBox.
Kann ich irgendwie auf das Edit zugreifen, um zB. CopyToClipBoard aufrufen zu können?

Eine "dumme" Variante wäre, ein unsichtbares Edit zu nehmen und beim Ereignis
OnKeyDown der TComboBox den selektierten Text in das edit zu schreiben und vom
Edit die Methode CopyToClipboard aufzurufen. Würde funktionieren wäre aber sowas von
Quick and Dirty....

Einer ne Idee?
Levent Yildirim
Erzeugung von Icons aus Bildern:IconLev
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#2

Re: TComboBox - ReadOnly - "CopyToClipboard"

  Alt 11. Dez 2007, 09:56
Vielleicht so:
Delphi-Quellcode:
uses ClipBrd;

procedure TForm1.ComboBox1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if (Key = Ord('C')) and (Shift = [ssCtrl]) then
    ClipBoard.AsText := ComboBox1.Items[ComboBox1.ItemIndex];
end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Tyrael Y.

Registriert seit: 28. Jul 2003
Ort: Stuttgart
1.093 Beiträge
 
Delphi 2007 Professional
 
#3

Re: TComboBox - ReadOnly - "CopyToClipboard"

  Alt 11. Dez 2007, 10:13
21 ist nur die halbe Antwort bzw.
sehr schön, das Kopieren funktioniert wunderbar....muss nur noch rausfinden welche Eigenschaft dafür sorgt, daß bei Tastendruck zu dem ersten Eintrag gesprungen wird, der dem gedrückten Buchstaben entspricht....AutoComplete scheint es, wie vermutet, nicht zu sein.

Edit: ...möchte damit sagen, daß bei STRG + C zu dem ersten Eintrag mit dem Anfangsbuchstaben c gesprungen wird, was nicht ok ist
Levent Yildirim
Erzeugung von Icons aus Bildern:IconLev
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#4

Re: TComboBox - ReadOnly - "CopyToClipboard"

  Alt 11. Dez 2007, 11:04
Das weiß ich im Moment leider auch nicht, und da ich hier gerade nur Delphi 5 zur Verfügung habe, kann ich auch nicht nachsehen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#5

Re: TComboBox - ReadOnly - "CopyToClipboard"

  Alt 11. Dez 2007, 12:30
vermutlich reagiert die ComboBox nicht auf Strg und wertet nur das C ... spring also zu "C".

wenn du in OnKeyDown und Co. den Wert nicht zurücksetzt, dann verarbeitet die VCL die Eingabe ebenfalls nochmal.

Code:
procedure TForm1.ComboBox1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if (Key = Ord('C')) and (Shift = [ssCtrl]) then
  begin
    ClipBoard.AsText := ComboBox1.Items[ComboBox1.ItemIndex];
    [color=red][b]Key := 0;[/b][/color]
  end;
end;
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Tyrael Y.

Registriert seit: 28. Jul 2003
Ort: Stuttgart
1.093 Beiträge
 
Delphi 2007 Professional
 
#6

Re: TComboBox - ReadOnly - "CopyToClipboard"

  Alt 11. Dez 2007, 12:36
Tjo hätte ich auch gedacht himitsu, war der 1.Versuch von mir, leider hilft es nicht

So sah es bei mir aus.

Delphi-Quellcode:
procedure TMainForm.DoOnComboBoxKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  if Sender is TComboBox then
  begin
    if (Shift = [ssCtrl]) and (Key = Ord('C')) then
    begin
      ClipBoard.AsText := TComboBox(Sender).Items[TComboBox(Sender).ItemIndex];
      Key := 0;
    end;
  end;
end;
...leider reagiert es dann immer noch auf das C
Levent Yildirim
  Mit Zitat antworten Zitat
raiguen
(Gast)

n/a Beiträge
 
#7

Re: TComboBox - ReadOnly - "CopyToClipboard"

  Alt 11. Dez 2007, 13:25
Moin Wie schon festgestellt, reagiert die ComboBox nicht so wie gewünscht...
Aber wie wäre es, wenn du der ComboBox ein PopUpMenu spendierst mit nur einem einzigen Menupunkt -> Kopie in Zwischenablage z.B. Wäre doch noch eine brauchbare/vertretbare Lösung
  Mit Zitat antworten Zitat
Tyrael Y.

Registriert seit: 28. Jul 2003
Ort: Stuttgart
1.093 Beiträge
 
Delphi 2007 Professional
 
#8

Re: TComboBox - ReadOnly - "CopyToClipboard"

  Alt 11. Dez 2007, 13:56
Naja natürlich ohne Probleme und schnell machbar.
Die Kunden sind aber daran gewöhnt über STRG + C diese Inhalte zu kopieren.
Ein PopUp-Menü könnte man zusätzlich machen, aber der ShortCut sollte trotzdem möglich sein.

Ich muss mich grad mit anderen Sachen rumschlagen.
Dieses Problem nehme ich Morgen oder so in Angriff...es wird schon irgendwie gehen...müssen ^^
Levent Yildirim
Erzeugung von Icons aus Bildern:IconLev
  Mit Zitat antworten Zitat
Tyrael Y.

Registriert seit: 28. Jul 2003
Ort: Stuttgart
1.093 Beiträge
 
Delphi 2007 Professional
 
#9

Re: TComboBox - ReadOnly - "CopyToClipboard"

  Alt 11. Dez 2007, 15:59
Ich habs vorerst folgendermassebn gelöst.

Delphi-Quellcode:
procedure TMainForm.DoOnComboBoxKeyPress(Sender: TObject; var Key: Char);
begin
  if Sender is TComboBox then
  begin
    Key := #0;
  end;
end;
Das OnKeyDown benutze ich wie oben angegeben und im OnKeyPress ignoriere ich die Tastatureingabe. Da ich das OnKeyPress anderweitig nicht brauche, ist diese Lösung für mich in Ordnung.
Levent Yildirim
Erzeugung von Icons aus Bildern:IconLev
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#10

Re: TComboBox - ReadOnly - "CopyToClipboard"

  Alt 11. Dez 2007, 16:14
dann reagiert die doch auf keine Tastatureingaben mehr(?).

und wie sieht es aus, wenn du auch noch auf das Loslassen der Tasten reagierst?
Delphi-Quellcode:
procedure TForm1.ComboBox1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if (Key = Ord('C')) and (Shift = [ssCtrl]) then
  begin
    ClipBoard.AsText := ComboBox1.Items[ComboBox1.ItemIndex];
    Key := 0;
  end;
end;

procedure TForm1.ComboBox1KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if (Key = Ord('C')) and (Shift = [ssCtrl]) then
    Key := 0;
end;
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 15:39 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