Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Prism VCL.NET -> Winforms .NET (https://www.delphipraxis.net/70599-vcl-net-winforms-net.html)

Elvis 2. Jun 2006 09:33

Re: VCL.NET -> Winforms .NET
 
Du hättest gleich sagen können, dass es sich um ein Control handelt. :roll:

Alexander 5. Jun 2006 17:45

Re: VCL.NET -> Winforms .NET
 
Hallo,
also ich bin jetzt einen Schritt weiter. Ich kann jetzt das Control hinzufügen und es funktioniert auch so weit.
Bei der Komponente handelt es sich um ein TMemo bzw. ein TAdvMemo (bei beiden tritt der gleiche Effekt auf). Und zwar verliert das Memo den Fokus, wenn die Cursor Tasten oder Return gedrückt werden. Dieser Effekt ist natürlich nicht erwünscht ;).
Woran könnte das liegen? Bzw. wie kann ich das beheben?

Nachtrag:
Der Source:
Delphi-Quellcode:
var
  memo : TMemo;
begin
  memo := TMemo.Create(nil);
  memo.Text := 'select * from WetterData limit 0,50';

  memo.Parent := Self;
In meinem "richtigen" Programm habe ich das TMemo bzw. das TadvMemo global definiert. Tritt aber das gleiche auf.

Alexander 6. Jun 2006 12:47

Re: VCL.NET -> Winforms .NET
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe zwar einen Workaround gefunden, der mir aber persönlich nicht wirklich gefällt.
Und zwar setze ich den Fokus wieder per Hand auf das Memo und ändere dann die Caret-Position ebenfalls per Hand:
Delphi-Quellcode:
procedure TMDIChild.TMDIChild_KeyUp(sender: System.Object; e: System.Windows.Forms.KeyEventArgs);
begin
  // Hier werden die Cursor - Tasten abgefangen und der fokus wieder auf das Memo gelenkt:
  editor.SetFocus;
  if (e.KeyCode = Keys.Down ) then // nach unten
    editor.CurY := editor.CurY +1
  else if (e.KeyCode = Keys.Up ) then // nach unten
    editor.CurY := editor.CurY -1
  else if (e.KeyCode = Keys.Left ) then // nach unten
    editor.CurX := editor.CurX -1
  else if (e.KeyCode = Keys.Right ) then // nach unten
    editor.CurX := editor.CurX +1;
end;
Aber wie gesagt, es ist nicht wirklich befriedigend. Vor allem auch deswegen, dass der Fokus immer noch hin und her springt. Sprich anfangs hat das Memo den Fokus, dann wird z.b. die Up-Taste gedrückt, dann bekommt das nächste Control den Fokus und zack hat der Editor wieder den Fokus. Das entsprechende Control blinkt dann so schrecklich. Ich habe mal eine Testanwendung gemacht. Seht selbst.

Habt ihr bessere Ideen/Lösungen?

mirage228 6. Jun 2006 13:21

Re: VCL.NET -> Winforms .NET
 
Hi,

wenn ich die STRG oder ALT Taste während der Cursorbewegung verwende, gehts ohne Probleme.
Vielleicht hilft dir das ja weiter...

mfG
mirage228

Elvis 6. Jun 2006 13:30

Re: VCL.NET -> Winforms .NET
 
Was soll dieses Control denn können, was es nicht bereits in einer freien SWF-basierten Lib gibt?
Und wenn es ein paar Dinge mehr kann(, die du benötigst,) kann man die nachrüsten oder gar darauf verzichten?
VCL Controls in SWF zu benutzen ist zwangsläufig pain-ish in the ass-ish, du kannst ja nicht das Control selbst benutzen, nur den Wrapper. Und nun bist du darauf angewiesen, dass sich dieser Wrapper an die Regeln hält. (Was er anscheinend nicht tut)

Alexander 6. Jun 2006 13:55

Re: VCL.NET -> Winforms .NET
 
@Mirage Danke, das wäre vielleicht ein Ansatz. Auch wenn ich noch nicht genau weiß, wie mir das helfen soll :gruebel:

@Elvis: Es ist eine Komponente, die dem Editor vom VS und Delphi 2005/06 nachempfunden ist (also Syntaxhighlighting, Code-Completion, Code-Folding etc.). Das habe ich jedoch auch nicht getestet. Etwas vergleichbares habe ich so noch nicht gefunden. Ich habe eine Zeitlang mit dem Texteditor von Sharpdevelop rumgespielt. Aber das wahre war es auch nicht :?

Elvis 6. Jun 2006 14:13

Re: VCL.NET -> Winforms .NET
 
Dann schaue dir mal Fireball an.
Ähnlich wie Firebird von Interbase abstammt, stammt Fireball von Componas' Editor Control ab.

Alexander 6. Jun 2006 14:36

Re: VCL.NET -> Winforms .NET
 
Was genau kann denn Fireball? Hast du evtl. eine Feature-List oder so etwas?
PS: Wobei ich derzeit immer noch an meinem TAdvMemo hänge ;). Allein schon wegen der gekauften Lizenz ;)

Elvis 6. Jun 2006 17:08

Re: VCL.NET -> Winforms .NET
 
Zitat:

Zitat von Alexander
Was genau kann denn Fireball? Hast du evtl. eine Feature-List oder so etwas?

Du hast doch sicher selbst einen Browser. Und der Link oben führt dich zur Projektseite, die dich sicherlich zu einer Seite mit der Featureliste führt.

Zitat:

PS: Wobei ich derzeit immer noch an meinem TAdvMemo hänge ;). Allein schon wegen der gekauften Lizenz ;)
Selbst Schuld. Aber ein VCL Control in SWF zu nehmen ist doch etwas krank, findest du nicht? ;)

Alexander 6. Jun 2006 21:10

Re: VCL.NET -> Winforms .NET
 
Zitat:

Zitat von Elvis
Zitat:

Zitat von Alexander
Was genau kann denn Fireball? Hast du evtl. eine Feature-List oder so etwas?

Du hast doch sicher selbst einen Browser. Und der Link oben führt dich zur Projektseite, die dich sicherlich zu einer Seite mit der Featureliste führt.

Die habe ich ja eben nicht gefunden ;). Ich würde nicht fragen, wenn ich nicht vorher selbst gesucht hätte :). Selbst im Wiki auf deren Seite scheint nichts zu sein :?
Aber ich habe noch mal gegoogelt und habe das hier gefunden:
http://www.codeproject.com/useritems...codeeditor.asp
Da ist zumindest mal ein Bildchen. Dann habe ich noch ein wenig im Forum von FireBall rumgelesen. Aber so richtig viel scheint da nicht los zu sein. Zumal Code-Completion und Code-Folding nicht ganz so einfach zu implementieren ist. Oder hast du da mehr Erfahrung und hast die Komponente schon einmal ausprobiert ?
Ich muss zu geben, dass ich noch nichts runtergeladen habe. Aber ich habe so meine Bedenken, dass das mit Delphi 2005 funktionieren wird, da Fireball doch ein .NET 2 Assembly zu sein scheint, oder nicht?

Zitat:

Zitat:

PS: Wobei ich derzeit immer noch an meinem TAdvMemo hänge ;). Allein schon wegen der gekauften Lizenz ;)
Selbst Schuld. Aber ein VCL Control in SWF zu nehmen ist doch etwas krank, findest du nicht? ;)
Ich finde die Idee als Übergangslösung sogar recht elegant. So ist man zunächst erstmal von dem Komponentenhersteller unabhängig, kann deren Lizenzen weiterverwenden und ggf. zu einem späteren Zeitpunkt ersetzen. Eigentlich schade, dass da nichts von Borland in der Richtung gekommen ist. VCL.NET ist in meinen Augen krank :P, zumindest für neue Projekte.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:30 Uhr.
Seite 2 von 2     12   

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