unit D_fleche; {written by denis bertin in a day for www.denisdraw.com with delphi-7} interface uses windows,whelp,wbase,col_plan,dialbase,messages; type Tdial_position_fleche = class(whelp.ThelpDialog) constructor create (un_parent:wbase.twindow; un_plan_param:col_plan.TCalque); procedure setupwindow; override; procedure wmnum_edit_change(var msg:messages.TMessage); override; procedure wmcommand(var Msg: TMessage); override; private un_calque_actif:col_plan.TCalque; Position_de_la_fleche:dialbase.TNumEdit_plus_moins; Epaisseur_de_la_fleche:dialbase.TNumEdit_plus_moins; Distance_de_la_fleche:dialbase.TNumEdit_plus_moins; public bool_modifier:boolean; count_before:integer; end; {Tdial_position_fleche} implementation uses wmain; Type TRec_Position_fleche = record Position, Epaisseur, Distance:integer; end; var Rec_Position_fleche : TRec_Position_fleche; const id_appliquer = 1000; constructor Tdial_position_fleche.create(un_parent:wbase.twindow; un_plan_param:col_plan.TCalque); const kid_position_fleche = 1681; const id_Position_de_la_fleche = 101; const id_Epaisseur_de_la_fleche = 102; const id_Distance_de_la_fleche = 103; begin inherited create(un_parent,kid_position_fleche,0); TransferBuffer := @Rec_Position_fleche; Self.un_calque_actif:=un_plan_param; Self.Position_de_la_fleche:=dialbase.TNumEdit_plus_moins.create(self,id_Position_de_la_fleche,3,0,100,0); Self.Position_de_la_fleche.Enable_Previent_ton_Parent(true); Self.Epaisseur_de_la_fleche:=dialbase.TNumEdit_plus_moins.create(self,id_Epaisseur_de_la_fleche,3,0,100,0); Self.Epaisseur_de_la_fleche.Enable_Previent_ton_Parent(true); Self.Distance_de_la_fleche:=dialbase.TNumEdit_plus_moins.create(self,id_Distance_de_la_fleche,3,0,100,0); Self.Distance_de_la_fleche.Enable_Previent_ton_Parent(true); Self.bool_modifier:=false; count_before:=Self.un_calque_actif.count; end; procedure Tdial_position_fleche.setupwindow; begin inherited setupwindow; postmessage(self.hwindow,wm_command,id_appliquer,0); end; {Tdial_position_fleche.setupwindow} procedure Tdial_position_fleche.wmnum_edit_change(var msg:TMessage); begin postmessage(self.hwindow,wm_command,id_appliquer,0); end; {Tdial_position_fleche.wmnum_edit_change} procedure Tdial_position_fleche.wmcommand(var Msg: TMessage); var i:integer; begin inherited wmcommand(Msg); case Msg.Wparam of id_cancel: begin if bool_modifier then begin for i:=count_before to pred(Self.un_calque_actif.count) do begin Self.un_calque_actif.atdelete(i); end; end; end; id_appliquer: begin if bool_modifier then begin for i:=count_before to pred(Self.un_calque_actif.count) do begin Self.un_calque_actif.atdelete(i); end; end; Self.TransferData(TDirT_GetData); with Rec_Position_fleche do un_calque_actif.Dessiner_une_fleche_rigide(bool_modifier,Epaisseur,Position,Distance); {->formecom} invalidaterect(wmain.MainWindow.hwindow,nil,false); end; end; {case} end; {Tdial_position_fleche.wmcommand} beginRec_Position_fleche.Position:=80; {%}Rec_Position_fleche.Epaisseur:=20; {%}Rec_Position_fleche.Distance:=25; {%}end.
_______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal