Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Wine/Linux: RichEdit (https://www.delphipraxis.net/183056-wine-linux-richedit.html)

pelzig 8. Dez 2014 13:35

Wine/Linux: RichEdit
 
Wines RichEdits treiben mich bald in den Wahnsinn!

Wie bekommt man ein (sehr viele Zeilen enthaltendes) RichEdit unter Linux/Wine (aktuelles Mint Mate 17) dazu, beim Öffnen der Datei den Cursor NICHT in die letzte Zeile zu setzen?

So sieht's aus:

bWine := True; // eine globale Variable

Delphi-Quellcode:
procedure TForm1.ScrollToFirstLineOnWine;
begin
  if not bWine then exit
  else
  begin
    RichEdit1.Hide; //brachte nix
    RichEdit1.SelStart := 0;
    RichEdit1.SelLength := 0;
    RichEdit1.Perform(EM_SCROLLCARET, 0, 0); //brachte nix
//    RichEdit1.Perform(EM_SCROLLCARET, 1, 1); //brachte auch nix
    RichEdit1.Update;
    RichEdit1.Show; //brachte nix
  end;
end;
Ich will beim Anzeigen des Textes immer die erste Zeile sehen!

Hat jemand eine Idee, wie man ein Wine-RichEdit dazu bekommt, einen ellenlangen Text so anzuzeigen, daß der Cursor immer in der ersten Zeile ist?

Mein Problem: Der Cursor ist immer in der letzten Zeile :evil:

MfG

zagota 8. Dez 2014 14:24

AW: Wine/Linux: RichEdit
 
Zitat:

Zitat von pelzig (Beitrag 1282616)
Wines RichEdits treiben mich bald in den Wahnsinn!


Hat jemand eine Idee, wie man ein Wine-RichEdit dazu bekommt, einen ellenlangen Text so anzuzeigen, daß der Cursor immer in der ersten Zeile ist?

Mein Problem: Der Cursor ist immer in der letzten Zeile :evil:

MfG

Die Lösung hab ich auch nicht, versuch mal:

RichEdit1.SetFocus;

RichEdit1.Perform(EM_SCROLLCARET, 1, 1);
oder
Send die Tastenkombination [Ctrl+Pos1] an das RichEdit

cu

pelzig 8. Dez 2014 14:49

AW: Wine/Linux: RichEdit
 
Danke für die Anteilnahme, hat leider nix gebracht :cry:

MfG

pelzig 8. Dez 2014 21:21

AW: Wine/Linux: RichEdit
 
Wer ist blöder als blöd?

Ganz genau, ICH!

Delphi-Quellcode:
bWine := True; // eine globale Variable
Delphi-Quellcode:
procedure TForm1.ScrollToFirstLineOnWine;
begin
  if not bWine then exit
  else
  begin
    RichEdit1.Hide; //brachte nix
    RichEdit1.SelStart := 0;
    RichEdit1.SelLength := 0;
    RichEdit1.Perform(EM_SCROLLCARET, 0, 0); //brachte nix
// RichEdit1.Perform(EM_SCROLLCARET, 1, 1); //brachte auch nix
    RichEdit1.Update;
    RichEdit1.Show; //brachte nix
  end;
end;
Das brachte (mehrfach variiert) NIX. Aus Bequemlichkeitsgründen nur in einer VirtualBox mit Lubuntu getestet.

Das inzwischen stundenlange Herumprobieren mit
Delphi-Quellcode:
   RichEdit1.Perform(EM_SCROLLCARET, 0, 0);
usw.
oder Sendkeykram
Delphi-Quellcode:
   keybd_event(VK_CONTROL, MapVirtualKey(VK_CONTROL, 0), 0, 0);
usw. brachte NIX.

Des Rätsels Lösung ist/war ganz einfach:
Delphi-Quellcode:
procedure TForm1.ScrollToFirstLineOnWine;
var
  s: string;
begin
  if not bWine then exit;
  s := RichEdit1.Lines.Text;
  RichEdit1.Clear;
  RichEdit1.Text := s;
end;
Obwohl bWine (unter Windows) keinen Unterschied macht, reagiert Wine unter Linux doch geringfügig ANDERS :twisted:

Tschuldigung für meine blöde Frage und Danke für's Mitlesen!

MfG

Redeemer 8. Dez 2014 22:56

AW: Wine/Linux: RichEdit
 
Das ist keine dumme Frage. Dass TRichEdit auf Wine anders reagiert, ist mir auch schon aufgefallen, besonders was die Schriftgröße angeht, macht Wine in meinen Programmen großen Blödsinn.

Zu deiner Lösung: Geht da nicht die Formatierung bei verloren oder hast du da eh keine? Warum dann RichEdit?


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