Zeichnen in TCustomEdit
-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
naja eine Stringgrid ist ja eine Standard Komponente oder nicht ?
Mit Wenig Aufwand sieht sie so aus wie ein TEdit... besser währe es die TStringDraw zu nehmen....
Christian ich frage mich wo, wo sind diese Original Grafiken abgespeichert ?
Von einem TEdit z.b. Das sind doch Grafiken oder ?
Auch wenn ich damit aufhören sollte, eine Idee habe ich noch: es gibt doch SelStart und SelEnd oder so Ähnlich, sieht zwar nicht so doll aus, aber würde doch auch gehen oder ? So mehr Vorschläge hätte ich auch im Moment nicht
Mit Wenig Aufwand sieht sie so aus wie ein TEdit... besser währe es die TStringDraw zu nehmen....
Christian ich frage mich wo, wo sind diese Original Grafiken abgespeichert ?
Von einem TEdit z.b. Das sind doch Grafiken oder ?
Auch wenn ich damit aufhören sollte, eine Idee habe ich noch: es gibt doch SelStart und SelEnd oder so Ähnlich, sieht zwar nicht so doll aus, aber würde doch auch gehen oder ? So mehr Vorschläge hätte ich auch im Moment nicht
MFG
Michael Springwald
Michael Springwald
-
- Beiträge: 1187
- Registriert: Mi 13. Dez 2006, 10:58
- OS, Lazarus, FPC: Winux (L 1.2.xy FPC 2.6.z)
- CPU-Target: AMD A4-6400 APU
- Wohnort: Hamburg
@Christian
Wie wäre es denn, wenn du den Text in HTML umwandelst und das da machst? Dafür hatte ich für Delphi mal irgendwo ein Tool gefunden mit dem das ging. Auf jeden Fall hat man da bei HTML deutlich mehr und einfachere Formatierungen zur Verfügung. Die JEDI's haben sowas auch irgendwo benutzt.
Wie wäre es denn, wenn du den Text in HTML umwandelst und das da machst? Dafür hatte ich für Delphi mal irgendwo ein Tool gefunden mit dem das ging. Auf jeden Fall hat man da bei HTML deutlich mehr und einfachere Formatierungen zur Verfügung. Die JEDI's haben sowas auch irgendwo benutzt.
Humor ist der Knopf, der verhindert, daß uns der Kragen platzt.
(Ringelnatz)
(Ringelnatz)
-
- Beiträge: 340
- Registriert: Di 12. Sep 2006, 08:57
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
- Kontaktdaten:
Hallo Christian,
du willst das also in nem TCustomEdit unterstrichen haben?
Wie wäre es, wenn du einfach en Bitmap mit den Unterstreichungen
über das Textfenster des Edits legst, und in ner Paint-Methode erst
den TCustomEdit und dann das Bitmap zeichnest? Nicht fein, aber
könnte funktionieren.
du willst das also in nem TCustomEdit unterstrichen haben?
Wie wäre es, wenn du einfach en Bitmap mit den Unterstreichungen
über das Textfenster des Edits legst, und in ner Paint-Methode erst
den TCustomEdit und dann das Bitmap zeichnest? Nicht fein, aber
könnte funktionieren.
Grüße, Antrepolit
care only if your os is really burning
care only if your os is really burning
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Ja, ich hab auch schon über solche Sachen nachgedacht.
Aber welche Paint funktion ??
Problematisch ist dabei auch das Scrollen und beim Memo ists dann ganz aus.
Ich werde es erstmal so gesalten das ein Button rechts oben in den Controls landet, über den ein separater Dialog aufgerufen wird der dann die Prüfung und Korrektur vornimmt. Nicht ganz so elegant aber sauber und einfach lösbar.
Soll nicht heißen das sich Jemand der eine Lösung für dieses Problem gesehen oder gefunden hat zurückhalten soll hier zu posten.
Aber welche Paint funktion ??
Problematisch ist dabei auch das Scrollen und beim Memo ists dann ganz aus.
Ich werde es erstmal so gesalten das ein Button rechts oben in den Controls landet, über den ein separater Dialog aufgerufen wird der dann die Prüfung und Korrektur vornimmt. Nicht ganz so elegant aber sauber und einfach lösbar.
Soll nicht heißen das sich Jemand der eine Lösung für dieses Problem gesehen oder gefunden hat zurückhalten soll hier zu posten.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
ich habe möglicherweise was gefunden:
das kommt von hier:
http://www.delphipraxis.net/topic111985 ... dmemo.html" onclick="window.open(this.href);return false;
evlt. hilft es dir !
Code: Alles auswählen
procedure TForm1.MemoSubClassWndProc(var Message: TMessage);
var
c: Char;
PaintSt: TPAINTSTRUCT;
cav: TCAnvas;
Dc: HDC;
CopRect: TRect;
Text1, Text2: String;
TextWidth: integer;
begin
case Message.Msg of
WM_CHAR:
begin
Case Char(Message.WParam) of
'a'..'z','A'..'Z','0'..'9':
begin
c:= Char(Message.WParam);
MemoCav.TextOut(MemoCav.TextWidth(MemoText), 0, c);
MemoText:= MemoText + c;
end;
end;
if byte(Message.WParam) = VK_Back then
begin
if length(MemoText)> 0 then
begin
Text1:= Copy(MemoText, 1, length(MemoText)- 1);
TextWidth:= MemoCav.TextWidth(Text1);
Text2:= MemoText[length(MemoText)];
CopRect:= Rect(TextWidth,0,TextWidth+ MemoCav.TextWidth(Text2), MemoCav.TextHeight(Text2));
MemoCav.CopyRect(CopRect,BildTemp.Canvas,CopRect);
MemoText:= Text1;
end;
end;
end;
WM_PAINT:
begin
Dc:= BeginPaint(Memo1.Handle, PaintSt);
cav:= TCAnvas.Create;
cav.Handle:= Dc;
cav.Draw(0,0,BildTemp);
cav.Brush.Style:= bsClear;
cav.TextOut(0, 0, MemoText);
cav.Free;
EndPaint(Memo1.Handle, PaintSt);
end;
else
OldWindowProc(Message);
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
Pfad: AnsiString;
begin
BildTemp:= TBitmap.Create;
Pfad:= ExtractFilePath(application.ExeName)+'Bild.bmp';
if FileExists(Pfad) then
BildTemp.LoadFromFile(Pfad);
OldWindowProc:= Memo1.WindowProc;
Memo1.WindowProc:= MemoSubClassWndProc;
end;
procedure TForm1.FormShow(Sender: TObject);
begin
MemoDc:= GetDC(Memo1.Handle);
MemoCav:= TCanvas.Create;
MemoCav.Brush.Style:= bsClear;
MemoCav.Handle:= MemoDc;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
Memo1.WindowProc:= OldWindowProc;
windows.ReleaseDC(Memo1.Handle, MemoDC);
MemoCav.Free;
end;
http://www.delphipraxis.net/topic111985 ... dmemo.html" onclick="window.open(this.href);return false;
evlt. hilft es dir !
MFG
Michael Springwald
Michael Springwald
-
- Lazarusforum e. V.
- Beiträge: 7192
- Registriert: So 19. Nov 2006, 12:06
- OS, Lazarus, FPC: Linux Mint 19.3
- CPU-Target: AMD
- Wohnort: Oldenburg(Oldenburg)
Ich habe noch was gefunden:
http://www.swissdelphicenter.ch/de/showcode.php?id=2150" onclick="window.open(this.href);return false;
http://www.swissdelphicenter.ch/de/showcode.php?id=2150" onclick="window.open(this.href);return false;
MFG
Michael Springwald
Michael Springwald