AGB  ·  Datenschutz  ·  Impressum  







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

Memo / Synedit Hintergrundfarbe teilen Wie ?

Ein Thema von mschaefer · begonnen am 9. Mai 2005 · letzter Beitrag vom 11. Mai 2005
Antwort Antwort
Benutzerbild von mschaefer
mschaefer

Registriert seit: 4. Feb 2003
Ort: Hannover
2.029 Beiträge
 
Delphi XE3 Enterprise
 
#1

Memo / Synedit Hintergrundfarbe teilen Wie ?

  Alt 9. Mai 2005, 21:31
Moin, Spätmoin,

ich habe derzeit eine Memokomponente in der man Änderungen vornehmen kann.
Jetzt ergibt sich das Problem, dass Änderungen nur noch ab Zeile (sagen wir) 20
vorgenommen werden dürfen. Das mit der Zeilenabfrage und dem automatisch auf
ReadOnly schalten bei Zeilen über 20 bekomme ich geregelt.

Würde gerne aber die Hintergrundfarbe anpassen. Abgedunkelt bis Zeile 19 und ab 20 dann
aufgehellt. Mit ist aber nicht klar ob das überhaupt mit einem Memo geht. Richedit scheidet
derzeit aus, da ich in der Edit-StringList nach Textstücken Parse und da keine Formatanweisungen
stehen dürften.

Würde mich über Ideen und Hinweise freuen...

Grüße // Martin
Martin Schaefer
  Mit Zitat antworten Zitat
Narayana
(Gast)

n/a Beiträge
 
#2

Re: Memo / Synedit Hintergrundfarbe teilen Wie ?

  Alt 10. Mai 2005, 19:37
hi Martin,

wenn ich dich richtig verstehe, willst du so zu sagen einen Farbverlauf mit der Hintergrundfarbe des MemoFeldes darstellen (also zeilenweise andere Hintergrundfarbe).

Ich habe mal in einer ListBox die Zeilen in verschiedenen Farben geschrieben.

Ich habe leider gerade den Code nicht hier, vielleicht finde ich ihn morgen...

Aber auf jeden Fall habe ich es mit dem OnDraw ereignis bewältigt (da kann man gezielt die einzelnen Zeilen beim schreiben ansprechen und die Font Werte verändern...). Kannst ja mal danach suchen... das MemoFeld hat sowas irgendwie nicht, aber eine ListBox wäre ja vielleicht auch geeignet für dich (sollte ja keine Formatierung drin sein).

Ich werd morgen mal den alten Code von mir suchen, falls du es bis dahin noch nicht selber gefunden hast
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#3

Re: Memo / Synedit Hintergrundfarbe teilen Wie ?

  Alt 10. Mai 2005, 19:55
Würde auch sagen, daß da so stimmt. Bzw. mit Memo schwer/nicht zu machen ist. Mit Listbox ginge es so :

Delphi-Quellcode:
procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
  Rect: TRect; State: TOwnerDrawState);
var
  i : Integer;
begin
  for i := 1 to Listbox1.Items.Count do begin
    if Index mod 2 = 0 then begin
      Listbox1.Canvas.Brush.Color := $00FFAB;
      Listbox1.Canvas.FillRect(Rect);
      Listbox1.Canvas.TextOut(Rect.Left, Rect.Top, Listbox1.Items[Index]);
    end
    else
      Listbox1.Canvas.TextOut(Rect.Left, Rect.Top, Listbox1.Items[Index]);
  end;
end;
Das ist aus einem alten Testprogramm abgekupfert und soll ein grün/weißes Tabellierpapier anzeigen. Als Vorlage dürfte das wohl reichen. 8)
Gruß
Hansa
  Mit Zitat antworten Zitat
Narayana
(Gast)

n/a Beiträge
 
#4

Re: Memo / Synedit Hintergrundfarbe teilen Wie ?

  Alt 11. Mai 2005, 06:21
Moin,

ich habe meinen Code nun gefunden, aber der ist ganz ähnlich wie der von Hansa...

mir ist eingefallen, dass du wahrscheinlich doch keine ListBox verwenden kannst...man kann ja nicht schreiben in ihr. Wenn der benutzer selber Änderungen machen können soll, dann brauchst du irgendeine andere Komponente, die eine Funktion wie dies OnDrawItem der ListBox hat

Mir fällt da blos gerade keine ein.

Vie Erfolg beim suchen
  Mit Zitat antworten Zitat
Benutzerbild von mschaefer
mschaefer

Registriert seit: 4. Feb 2003
Ort: Hannover
2.029 Beiträge
 
Delphi XE3 Enterprise
 
#5

Re: Memo / Synedit Hintergrundfarbe teilen Wie ?

  Alt 11. Mai 2005, 10:00
Hallo Narayana, hallo Hansa,

Danke für Eure Beiträge!

Das Prinzip ist damit für mich klar: Memokomponente ableiten und Zeilen die als nicht änderbar markiert sind mit einem Rechteck auf dem Canvas hinterlegen. Das wird auch so passieren wenn es bei dem Memo bleibt. Allerdigns versuche ich mich noch etwas mit Synedit zu beschäftigen, aber ich denke das mit Farbhinterlegungen ist da auch nicht richtig gelöst.

Viele Grüße // Martin
Martin Schaefer
  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 09:05 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