Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   MyInsight, das Delphi 2010 IDE-Insight für's eigene Programm (https://www.delphipraxis.net/150872-myinsight-das-delphi-2010-ide-insight-fuers-eigene-programm.html)

himitsu 4. Mai 2010 09:25

Re: MyInsight
 
Das Problemchen mit den fehlenden Farben in der TreeView konnte ich nun erstmal umgehen,
die Icons lassen sich nun stretchen (hab's über ein weiteres Bitmap gelöst und stretche erst dann),
nur die leeren Standard-Icons der Fenster ignoriere ich jetzt erstmal (man kann ja auch andere Icons und sonstige Bilder übergeben).
Sonst scheint es ja zu funktionieren.

Daniel bräuchte theoretisch jetzt nur seine Aktion-Listen angeben
Delphi-Quellcode:
Insight.AddActionList(CommandActionList, 'Befehle', True);
Insight.AddActionList(OtherActionList, 'Anderes');
und dann müßte nur noch irgendwann der Insight-Dialog aufgerufen werden. :-D
Delphi-Quellcode:
procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  if Key = VK_F6 then
    Insight.Show(Self)
end;
Beim Anzeigen werden die registrierten Aktionlisten neu ausgelesen. (falls in der Zwischenzeit mal was geändert wurde)

Das True bei AddActionList gibt nur an, daß alle Aktionen der Liste in die angegebene Standard-Kategorie einsortiert sollen.
Ansonsten werden die Kategorien verwendet, welche bei den jeweiligen Actions angegeben sind.


[info] Quellcodes und der Screenshot upgedatet

himitsu 4. Mai 2010 20:27

Re: MyInsight, das Delphi 2010 IDE-Insight für's eigene Prog
 
Ups, da hatten sich ein paar Kleinigkeiten eingeschlichen, welche ich beim Testen mit Delphi 2006 ändern mußte und vergaß wieder zurückzubauen.
(vorallem da dieses in der TStringList kein OwnsObjects kennt, was ohne Reaktivierung des Codes in einem Speicherleck endete und der überladene Default-Property wurde auch nicht zurück umbenannt)
Außerdem werden jetzt in der Demo noch über 1000 Dummy-Einträge eingefügt, um die Geschwindigkeit zu testen.
Selbst über 3500 Einträge reagierten noch in annehmbarer Zeit.
Wobei ich schon überrascht war, da der TreeView bei jeder Änderung der angezeigten Liste komplett neu aufgebaut wird. :stupid:

christio 16. Jun 2010 15:03

AW: MyInsight, das Delphi 2010 IDE-Insight für's eigene Programm
 
Hallo,

Wie wäre es mit einem Insight.AddMainMenu?

himitsu 16. Jun 2010 17:02

AW: MyInsight, das Delphi 2010 IDE-Insight für's eigene Programm
 
Liste der Anhänge anzeigen (Anzahl: 1)
Menüs lassen sich in meiner internen Version schon hinzufügen und verwalten (das war nicht so schwer ... brauchte ja nur die Verwaltung der Action-Listen klonen),

aber die Menüs auch noch in die Insight-Liste einzufügen ... da muß ich erstmal überlegen/probieren wie sich die Menü-Struktur am Besten auf die Kategorien verteilen läßt.
Action-Listen und die Insight-Liste sind ja ein Baum, wo alle "Aktionen" nur in der zweiten Ebene liegen, wärend die erste Ebene immer eine Kategorie ist.

Ein Menü (MainMenu, PopupMenu und Co.) können eine Mehrdimensionale Baumstruktur sein und die Aktionen (Items mit OnClick-Ereignissen) können sonstwo liegen.


[add]
noch völlig ungetestet (werd ich versuchen bald nachzuholen), aber es kompiliert zumindestens schonmal.

Neue Befehle in IInsight:
Delphi-Quellcode:
Procedure AddMenu   (Menu: TMenu;     DefaultCategory: String);
Procedure AddMainMenu(Menu: TMainMenu; DefaultCategory: String; AllInDefault: Boolean = False);
Procedure AddPopup  (Menu: TPopupMenu; DefaultCategory: String);
Function CountMenus:           Integer;
Property Menu [idx: Integer]: IInsightMenu Read GetMenu;
Procedure Delete(Menu: IInsightMenu); Overload;
Procedure ClearMenus;
[edit] Anhang gelöscht

christio 17. Jun 2010 12:24

AW: MyInsight, das Delphi 2010 IDE-Insight für's eigene Programm
 
Schaut gut aus, deine Komponente macht wirklich Sinn.
Danke.

christio 17. Jun 2010 14:03

AW: MyInsight, das Delphi 2010 IDE-Insight für's eigene Programm
 
Vielleicht noch eine Funktion fürs UI:

Delphi-Quellcode:
procedure TInsightForm.TreeView1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if ((Key = VK_UP) and
      (not Assigned(TreeView1.Selected) or (TreeView1.Items.GetFirstNode = TreeView1.Selected))) then
    Edit1.SetFocus;
end;

procedure TInsightForm.Edit1KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key = VK_DOWN then
    TreeView1.SetFocus;
end;

Win32.API 17. Jun 2010 14:04

AW: MyInsight, das Delphi 2010 IDE-Insight für's eigene Programm
 
Starke Komponente :thumb:

Weiter so, werde sie bald in einem Projekt einsetzen und hier Bericht erstatten.

//Win32

himitsu 17. Jun 2010 15:06

AW: MyInsight, das Delphi 2010 IDE-Insight für's eigene Programm
 
Zitat:

Zitat von christio (Beitrag 1029638)
Vielleicht noch eine Funktion fürs UI:

OK, die Tastenspielerei ist auch drin.
Ich hoffe dir gefällt meine etwas andere Behandlung.

[edit] Anhang gelöscht

christio 17. Jun 2010 15:48

AW: MyInsight, das Delphi 2010 IDE-Insight für's eigene Programm
 
Deine Tastenspielerei macht den Kreis wirklich rund :)

himitsu 17. Jun 2010 16:46

AW: MyInsight, das Delphi 2010 IDE-Insight für's eigene Programm
 
So, nun noch ein Testmenü in die Demo eingebaut und dann die Hinweistexte im Insight-Menü optimiert (die Klammern und Anderes wurden nicht so schön ausgegeben)

[edit]
Anhänge entfernt


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:29 Uhr.
Seite 2 von 3     12 3      

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