AGB  ·  Datenschutz  ·  Impressum  







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

Dry-Problem

Ein Thema von Delbor · begonnen am 23. Jul 2015 · letzter Beitrag vom 24. Jul 2015
 
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.192 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Dry-Problem

  Alt 23. Jul 2015, 15:23
Hi zusammen

Zitat:
Die Dialoge fordern ihre gewünschten Attribut an, der Dialog mit der ComboBox kann sich alle Attribute und ihre Namen aufzählen lassen.
Eigentlich wird es genau einen Dialog geben, der auf einem Pagecontrol mit 3 Tabsheets je einen Frame enthält (TJavaScriptAttributsFrame,TCssAttributsFrame,THTM LAttributsFrame).
Im Synedit, bzw. den Hightlighten dazu, sind die Propertys für Schriftstile, Farben etc vom Tip TSynHighlighterAttributes. Und deshalb sind die privaten Felder meiner Frames, welche für das Highlightning zuständig sind, auch von diesem Typ.
Diese Dinger werden im constructor des Frames erzeugt, während ich die Freigabe der Objectliste überlasse.
Der Dialog und damit die Frameinstanzen werden dynamisch beim Aufruf erzeugt und zerstört, wenn der Dialog geschlossen wird.
Über die Combobox kann das Objekt gewählt werden, dessen Farbben und Stile bearbeitet werden sollen.

Da mir bis anhin das Flyweigth-Pattern unbekannt war, hab ich mal danach gegoogelt; ich weiss zwar nicht genau, ob ich da schon alles verstanden habe, aber ich denke mal, dass es innerhalb der bestehenden Synedit-Quellcodes wohl eher Berechtigung hätte, da dort reger Gebrauch von Objekten gemacht wird, die sich in vielen Teilen ähneln.

Mir ist aber etwas aufgefallen: TSynHighlighterAttributes ist eine Klasse, und Klassen kann man Namen zuweisen - zum Beispiel den String, den ich der Combobox als Item zuweise (Offenbar hatten die vergangenen Hitzetage unliebsame Auswirkungen...).

Aber auch wenn der Dialog und seine Frames nur temporär bestehen, bräuchte ich diese Klassen möglicherweise gar nicht, sondern gerade mal völlig normale Records:
Delphi-Quellcode:
  TAttributsRec = Record
     BackGround : TColor;
    FoeGround : TColor;
    StyleBold :Boolean;
    StyleItalic : Boolean;
    StyleUnderLine : Boolean;
    StyleStrikeOff : Boolean;
    AttributName: String;
Nun war ich fast fertig, da hab ich einige neue Antworten gesehen,, weshalb ich eine Erweiterung anhänge:
Delphi-Quellcode:
procedure TJavaScriptAttributsFrame.SymbolAttributesCreate;
begin
  FSymbolAttri := TSynHighlighterAttributes.Create;
  FSymbolAttri.Name := 'Symbole'; //<== Damit steht ein String zur Verfügung
  FJavaScriptAttributsList.Add(FSymbolAttri);
  CmbxAttributes.Items.AddObject(FSymbolAttri.Name,TObject(FSymbolAttri));
  Application.ProcessMessages;
end;
Nein, das geht nicht nur in die richtige Richtung - das ist die Lösung. Irgendwie schwirrten mir Listen durch den Kopf, von wo aus aufgerufen werden sollte - aber was, wenn so eine Liste mal aus irgendeinem Grund umsortiert wird (Die Bluescreens während der Hitzewelle waren auch nicht vorgesehen...)?

Gruss
Delbor
Angehängte Grafiken
Dateityp: jpg Hihgtlighter 1.JPG (33,9 KB, 24x aufgerufen)
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
 


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 03:03 Uhr.
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