Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   ToolsAPI (https://www.delphipraxis.net/130235-toolsapi.html)

Bomberbb 5. Mär 2009 09:58


ToolsAPI
 
Zur Frage einmal den Hintergrund evtl. gibt es ja noch eine andere Lösung.

Ich nutze (Delphi 5) öfters 'Alle Projekte erstellen'. Da das bei mir eine ganze Zeit dauert nutze ich die Gelegenheit, eMail abzurufen. Nun kommt aber nach jedem kompiliertem Projekt Delphis Fenster mit dem Kompilerfortschritt in den Vordergrund. schaltet man das Fenster weg, weis man nicht, wann Delphi mit dem Kompilieren fertig ist.
Mich hat das jetzt so angenervt, dass ich was über ToolsAPI machen möchte. Meine erste Idee war, den Kompilerstatus in die Taskleiste zu setzen. Bin dann aber aufgrund der Fehlenden ToolsAPI-Kenntnisse gescheitert. Nun gebe ich nach dem Komplieren eine Meldung über
Delphi-Quellcode:
(BorlandIDEServices As IOTAMessageServices).AddToolMessage
      ('',uppercase(extractfilename(AusgabeDatei))+ ' erfolgreich kompiliert'
      , 'Meldung', 0, 0);
aus. Schön und gut, nun gibt es allerdings das Problem, dass das Fenster mit den Meldungen leiser nur kommt, wenn es Delphiseitig eine Meldung gibt, oder wenn Suchergebnisse drinstehen. Also komme ich so auch nicht weiter.

Hat jemand eine Idee?

shmia 5. Mär 2009 16:17

Re: ToolsAPI
 
Zitat:

Zitat von Bomberbb
Zur Frage einmal den Hintergrund evtl. gibt es ja noch eine andere Lösung.

Klar gibt's ne andere Lösung; könnte nur sein ,dass sie deinem Geldbeutel nicht gefällt.
Dein Monitor ist zu klein!
Wenn du ernsthaft und professionell programmieren willst, brauchst du einen grossen Monitor (~26")
oder zwei mittelgrosse Monitore (20-22").
http://www.joelonsoftware.com/pictures/ggth10.jpg

RWarnecke 5. Mär 2009 18:21

Re: ToolsAPI
 
Als andere Lösung wäre vielleicht möglich einen Balloon-Tip anzeigen zu lassen.

Edit:
Ich habe ebengerade noch dieses Beispiel im Internet gefunden:
Delphi-Quellcode:
procedure TSDCSimpleExpert.ShowMessageWindow(b : boolean);
 var
  I: Integer;
 begin
  for I := 0 to Screen.FormCount - 1 do
   if Screen.Forms[I].ClassNameIs('TMessageViewForm') then
    begin
     if b then begin
       Screen.Forms[I].Show;
       Break;
       end else
        begin
       Screen.Forms[I].Hide;
       Break;
      end;
    end;
end;

procedure TSDCSimpleExpert.Execute;
begin
  (BorlandIDEServices as IOTAMessageServices).AddToolMessage('','hello', 'execute method', 0, 0);
  ShowMessageWindow(true);
end;

Bomberbb 6. Mär 2009 10:07

Re: ToolsAPI
 
Danke,

das Beispiel hat weitergeholfen!!!

:-D

Bomberbb 13. Mär 2009 08:25

Re: ToolsAPI
 
Noch eine Frage zur Toolapi. Wahrscheinlich auch etwas spezieller...
Ich benutze folgende Klasse (Delphi 5):
Delphi-Quellcode:
 TCompilerNotifier = Class(TNotifierObject, IOTAIDENotifier)
  Private
    AusgabeDatei: String;
  Public
    // IOTAIDENotifier
    Procedure FileNotification(NotifyCode: TOTAFileNotification; Const FileName: String; Var Cancel: Boolean); Virtual;
    Procedure BeforeCompile(Const Project: IOTAProject; Var Cancel: Boolean); Overload; Virtual;
    Procedure AfterCompile(Succeeded: Boolean); Overload; Virtual;

    // IOTAIDENotifier50
    Procedure BeforeCompile(Const Project: IOTAProject; IsCodeInsight: Boolean; Var Cancel: Boolean); Overload;
      Virtual;
    Procedure AfterCompile(Succeeded: Boolean; IsCodeInsight: Boolean); Overload; Virtual;
  End;
Nun wird BeforeCompile und AfterCompile auch zwischendurch ausgeführt. Ich möchte das aber nur ausführen, wenn ich selbst das Kompilieren gestartet haben.

Geht das?

jbg 13. Mär 2009 08:54

Re: ToolsAPI
 
Du must IsCodeInsight abfragen und nur bei False reagieren.

rwachtel 13. Mär 2009 09:11

Re: ToolsAPI
 
Zitat:

Zitat von shmia
[...] Wenn du ernsthaft und professionell programmieren willst, brauchst du einen grossen Monitor (~26")
oder zwei mittelgrosse Monitore (20-22"). [...]

So ein Blödsinn. Glaubst Du wirklich, die Anzahl der Monitore ist ein Grad für Professionalität in der Softwareentwicklung?

Ich habe dutzende höchstens durchschnittlich begabte Programmierer mit zwei und mehr Monitoren gesehen und mindestens genauso viele Top-Entwickler, deren hauptsächliches Arbeitswerkzeug ein Notebook mit 1.440x900 Auflösung war.

http://ralfw.blogspot.com/2008/12/cl...g-zu-mehr.html

Bomberbb 13. Mär 2009 09:16

Re: ToolsAPI
 
Da hab ich ein Problem: Bei mir wird nur
Delphi-Quellcode:
  BeforeCompile(Const Project: IOTAProject; Var Cancel: Boolean)
ausgeführt.
Durch
Delphi-Quellcode:
  BeforeCompile(Const Project: IOTAProject; IsCodeInsight: Boolean; Var Cancel: Boolean)
scheint er nicht durchzugehen.

worker 13. Mär 2009 09:23

Re: ToolsAPI
 
[OT]
Zitat:

Zitat von shmia
Wenn du ernsthaft und professionell programmieren willst, brauchst du einen grossen Monitor (~26")
oder zwei mittelgrosse Monitore (20-22").

Das ist ernsthaft Schwachsinn.
[/OT]

Edit: ah, gerade den Beitrag von rwachtel gelesen.


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