![]() |
ButtonClick wird nicht ausgeführt
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Zusammen,
ich arbeite mit Delphi xe2 Starter und habe ein Phänomen, dass ich mir nicht erklären kann und was ganz schön nervig ist. Vereinzeln führen Buttons ihre ButtonClick Proceduren nicht mehr aus. Ich habe keine Ahnung, woran das liegen könnte... Anbei mal ein Screenshot, dass die Procedure dem Button zugewiesen ist und die Procedure (ich habe jetzt, nachdem die alte Procudure nicht mehr funktionierte eine einfache genommen).
Delphi-Quellcode:
Hat jemand einen Idee?
procedure TWSAgenda.ButtonZeitraumBearbeitenClick(Sender: TObject);
begin Showmessage('Hallo'); end; Vielen Dank Ykcim |
AW: ButtonClick wird nicht ausgeführt
Das was du hier gepostet hast sieht richtig aus...
Hast du mal einen Haltepunkt in die Zitat:
|
AW: ButtonClick wird nicht ausgeführt
Ja, habe ich gemacht. Wenn ich auf den Button klicke, verfärbt ersich, wie es alle Buttons machen, die man klickt, aber er läuft nicht in die Procedur rein. Es ist so, als gäbe es die Procedur gar nicht.
Ich habe schon an einen Fehler in Delphi xe2 gedacht und das ganze System heute Morgen neu aufgesetzt... Aber leider ohne Erfolg... |
AW: ButtonClick wird nicht ausgeführt
Wird evtl. irgendwo im Code der Eventhandler neu gesetzt?
|
AW: ButtonClick wird nicht ausgeführt
Nicht das ich das bewusst gemacht hätte...
Anbei der gesamte Code dieser Unit:
Delphi-Quellcode:
Die drittletzte Procedure (ButtonZeitraumBearbeitenClick) und die letzte (ButtonZieleBearbeitenClick) funktionieren nicht mehr... Die gleiche Procedure wird noch an einer anderen Stellen ausgeführt (ButtonAGendaBearbeitenClick), bei der einen klappt es und bei den zweien nicht mehr... Gestern Abend klappte es noch und heute morgen habe ich nur neu compiliert und dann reagierten die Buttons nicht mehr...
unit UnitAgenda;
interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.Grids, Vcl.ExtCtrls, Vcl.Menus, Vcl.StdCtrls, Planner, AdvObj, BaseGrid, AdvGrid, Vcl.ImgList, W7Classes, W7Buttons, Vcl.Buttons, Codes; type TWSAgenda = class(TFrame) PanelAgenda: TPanel; PanelZeitraum: TPanel; PanelAgendaListe: TPanel; Panel3: TPanel; Splitter3: TSplitter; Splitter4: TSplitter; PopupZeitraum: TPopupMenu; PopupAgenda: TPopupMenu; bearbeiten1: TMenuItem; N1: TMenuItem; Zeitraumhinzufgen1: TMenuItem; Zeitraumlschen1: TMenuItem; bearbeiten2: TMenuItem; N2: TMenuItem; AgendaPunkthinzufgen1: TMenuItem; AgendaPunktlschen1: TMenuItem; Panel1: TPanel; Panel2: TPanel; PanelZiele: TPanel; Planner1: TPlanner; GridZeitraum: TAdvStringGrid; GridZiele: TAdvStringGrid; ImageList1: TImageList; ButtonAgendaBearbeiten: TSpeedButton; ButtonAgendaLoeschen: TSpeedButton; ButtonAgendaNeu: TSpeedButton; Panel7: TPanel; Splitter5: TSplitter; Splitter6: TSplitter; Panel6: TPanel; Splitter1: TSplitter; Splitter2: TSplitter; ButtonZeitraumBearbeiten: TSpeedButton; ButtonZeitraumNeu: TSpeedButton; ButtonZeitraumLoeschen: TSpeedButton; ButtonZieleBearbeiten: TSpeedButton; ButtonZieleNeu: TSpeedButton; ButtonZieleLoeschen: TSpeedButton; procedure FrameResize(Sender: TObject); procedure Planner1ItemDelete(Sender: TObject; Item: TPlannerItem); procedure Planner1ItemInsert(Sender: TObject; Position, FromSel, FromSelPrecise, ToSel, ToSelPrecise: Integer); procedure ButtonAgendaLoeschenClick(Sender: TObject); procedure ButtonAGendaBearbeitenClick(Sender: TObject); procedure ButtonAgendaNeuClick(Sender: TObject); procedure ButtonZeitraumLoeschenClick(Sender: TObject); procedure ButtonZeitraumBearbeitenClick(Sender: TObject); procedure ButtonZieleBearbeitenClick(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; implementation {$R *.dfm} procedure TWSAgenda.FrameResize(Sender: TObject); begin ImageList1.GetBitmap(64, ButtonZeitraumBearbeiten.Glyph); ImageList1.GetBitmap(18, ButtonZeitraumNeu.Glyph); ImageList1.GetBitmap(5, ButtonZeitraumLoeschen.Glyph); ImageList1.GetBitmap(64, ButtonZieleBearbeiten.Glyph); ImageList1.GetBitmap(18, ButtonZieleNeu.Glyph); ImageList1.GetBitmap(5, ButtonZieleLoeschen.Glyph); ImageList1.GetBitmap(64, ButtonAgendaBearbeiten.Glyph); ImageList1.GetBitmap(18, ButtonAgendaNeu.Glyph); ImageList1.GetBitmap(5, ButtonAgendaLoeschen.Glyph); Panel1.Height:=round(PanelAgenda.Height*0.21); PanelZeitraum.Width:=round(PanelAgenda.Width*0.45); GridZeitraum.ColWidths[0]:=25; GridZeitraum.ColWidths[1]:=round((GridZeitraum.Width)*0.20); GridZeitraum.ColWidths[2]:=round((GridZeitraum.Width)*0.20); GridZeitraum.ColWidths[3]:=round((GridZeitraum.Width)*0.41); GridZeitraum.ColWidths[4]:=(GridZeitraum.Width-GridZeitraum.ColWidths[0]- GridZeitraum.ColWidths[1]-GridZeitraum.ColWidths[2])- GridZeitraum.ColWidths[3]-25; //PanelZiele GridZiele.ColWidths[0]:=25; GridZiele.ColWidths[2]:=40; GridZiele.ColWidths[1]:=Gridziele.Width-GridZiele.ColWidths[0]- GridZiele.ColWidths[2]-25; //Übershriften //Zeitraum GridZeitraum.Cells[0,0]:='Nr'; GridZeitraum.Cells[1,0]:='Von'; GridZeitraum.Cells[2,0]:='Bis'; GridZeitraum.Cells[3,0]:='Ort'; GridZeitraum.Cells[4,0]:='KW'; GridZiele.Cells[0,0]:='Nr'; GridZiele.Cells[1,0]:='Ziel'; GridZiele.Cells[2,0]:='Status'; end; procedure TWSAgenda.Planner1ItemDelete(Sender: TObject; Item: TPlannerItem); begin Planner1.FreeItem(Item); end; procedure TWSAgenda.Planner1ItemInsert(Sender: TObject; Position, FromSel, FromSelPrecise, ToSel, ToSelPrecise: Integer); begin with Planner1.CreateItemAtSelection do begin Text.Text:='Item created at runtime on '+Formatdatetime('hh:nn dd/mm/yyyy',Now); Update; end; end; procedure TWSAgenda.ButtonAGendaBearbeitenClick(Sender: TObject); begin if ButtonAgendaBearbeiten.Caption='Bearbeiten' then begin ButtonAgendaBearbeiten.Caption:='Speichern'; ButtonAgendaBearbeiten.Glyph:=nil; ImageList1.GetBitmap(29, ButtonAgendaBearbeiten.Glyph); ButtonAgendaNeu.Visible:=true; ButtonAgendaLoeschen.Visible:=true; end else begin ButtonAgendaBearbeiten.Caption:='Bearbeiten'; ButtonAgendaBearbeiten.Glyph:=nil; ImageList1.GetBitmap(64, ButtonAgendaBearbeiten.Glyph); ButtonAgendaNeu.Visible:=false; ButtonAgendaLoeschen.Visible:=false; end; end; procedure TWSAgenda.ButtonAgendaLoeschenClick(Sender: TObject); begin PostKeyEx32(VK_delete, [], False); end; procedure TWSAgenda.ButtonAgendaNeuClick(Sender: TObject); begin PostKeyEx32(VK_insert, [], False); end; procedure TWSAgenda.ButtonZeitraumBearbeitenClick(Sender: TObject); begin if ButtonZeitraumBearbeiten.Caption='Bearbeiten' then begin ButtonZeitraumBearbeiten.Glyph:=nil; ImageList1.GetBitmap(29, ButtonZeitraumBearbeiten.Glyph); ButtonZeitraumBearbeiten.Caption:='Speichern'; ButtonZeitraumNeu.Visible:=true; ButtonZeitraumLoeschen.Visible:=true; end else begin ButtonZeitraumBearbeiten.Caption:='Bearbeiten'; ButtonZeitraumBearbeiten.Glyph:=nil; ImageList1.GetBitmap(64, ButtonZeitraumBearbeiten.Glyph); ButtonZeitraumNeu.Visible:=false; ButtonZeitraumLoeschen.Visible:=false; end; end; procedure TWSAgenda.ButtonZeitraumLoeschenClick(Sender: TObject); begin showmessage(inttostr(Panel3.Font.Size)+','+inttostr(Panel6.font.Size)); end; procedure TWSAgenda.ButtonZieleBearbeitenClick(Sender: TObject); begin if ButtonZieleBearbeiten.Caption='Bearbeiten' then begin ButtonZieleBearbeiten.Caption:='Speichern'; ButtonZieleBearbeiten.Glyph:=nil; ImageList1.GetBitmap(29, ButtonZieleBearbeiten.Glyph); ButtonZieleNeu.Visible:=true; ButtonZieleLoeschen.Visible:=true; end else begin ButtonZieleBearbeiten.Caption:='Bearbeiten'; ButtonZieleBearbeiten.Glyph:=nil; ImageList1.GetBitmap(64, ButtonZieleBearbeiten.Glyph); ButtonZieleNeu.Visible:=false; ButtonZieleLoeschen.Visible:=false; end; end; end. Die Procedure soll eigentlich nur zwei Speedbuttons sicht bzw. unsichtbar machen und die Icons auf den Speedbutton steuern... |
AW: ButtonClick wird nicht ausgeführt
Funktioniert den irgendein Event bei diesen Buttons? Sind diese aktiv?
|
AW: ButtonClick wird nicht ausgeführt
Wie gross ist die CPU-Last?
|
AW: ButtonClick wird nicht ausgeführt
D.h. wenn Du einen Haltepunkt in die jeweils erste Zeile der Methode setzt, wird dieser nicht angesprungen? Übrigens ist es eher suboptimal, die Caption eines Buttons abzufragen und entsprechend zu reagieren, Du verlagerst damit die Logik in die Darstellung.
|
AW: ButtonClick wird nicht ausgeführt
Geh doch mal im Objektinspektor auf Ereignisse und guck dort ob unter OnClick deine procedure eingetragen ist.
|
AW: ButtonClick wird nicht ausgeführt
Laut Screenshot im Ausgangspost ist das der Fall, sonst wäre das auch mein erster Verdacht gewesen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:19 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