Search Results

Search found 1589 results on 64 pages for 'delphi 5'.

Page 54/64 | < Previous Page | 50 51 52 53 54 55 56 57 58 59 60 61  | Next Page >

  • How to avoid GUI freeze when calling Beginthread API?

    - by isa
    Below just a simple race between 2 button in 2 threads, and this will freeze other components on the form. procedure moveButton1(); var I: Integer; begin for I := 0 to 6000 do Form1.Button1.Left := Form1.Button1.Left - 1; Form1.Caption := 'Button1 won!'; EndThread(0); end; procedure moveButton2(); var I: Integer; begin for I := 0 to 6000 do Form1.Button2.Left := Form1.Button2.Left - 1; Form1.Caption := 'Button2 won!'; EndThread(0); end; procedure TForm1.Button3Click(Sender: TObject); var thread1, thread2,tick : Integer; id1, id2 : LongWord; begin thread1 := BeginThread(nil, 0, Addr(moveButton1), nil, 0, id1); thread2 := BeginThread(nil, 0, Addr(moveButton2), nil, 0, id2); CloseHandle(thread1); CloseHandle(thread2); end;

    Read the article

  • Inheritance of TCollectionItem

    - by JamesB
    I'm planning to have collection of items stored in a TCollection. Each item will derive from TBaseItem which in turn derives from TCollectionItem, With this in mind the Collection will return TBaseItem when an item is requested. Now each TBaseItem will have a Calculate function, in the the TBaseItem this will just return an internal variable, but in each of the derivations of TBaseItem the Calculate function requires a different set of parameters. The Collection will have a Calculate All function which iterates through the collection items and calls each Calculate function, obviously it would need to pass the correct parameters to each function I can think of three ways of doing this: Create a virtual/abstract method for each calculate function in the base class and override it in the derrived class, This would mean no type casting was required when using the object but it would also mean I have to create lots of virtual methods and have a large if...else statement detecting the type and calling the correct "calculate" method, it also means that calling the calculate method is prone to error as you would have to know when writing the code which one to call for which type with the correct parameters to avoid an Error/EAbstractError. Create a record structure with all the possible parameters in and use this as the parameter for the "calculate" function. This has the added benefit of passing this to the "calculate all" function as it can contain all the parameters required and avoid a potentially very long parameter list. Just type casting the TBaseItem to access the correct calculate method. This would tidy up the TBaseItem quite alot compared to the first method. What would be the best way to handle this collection?

    Read the article

  • Why SendMailMAPI renames file attachments to shorter ones?

    - by Tom
    I use the following emailing function with eudora, for some reason the attachment file name is renamed to be something else, how can I make sure the attachment file name remains intact? function SendMailMAPI(const Subject, Body, FileName, SenderName, SenderEMail, RecepientName, RecepientEMail: String) : Integer; var message: TMapiMessage; lpSender, lpRecepient: TMapiRecipDesc; FileAttach: TMapiFileDesc; SM: TFNMapiSendMail; MAPIModule: HModule; begin FillChar(message, SizeOf(message), 0); with message do begin if (Subject<>'') then begin lpszSubject := PChar(Subject) end; if (Body<>'') then begin lpszNoteText := PChar(Body) end; if (SenderEMail<>'') then begin lpSender.ulRecipClass := MAPI_ORIG; if (SenderName='') then begin lpSender.lpszName := PChar(SenderEMail) end else begin lpSender.lpszName := PChar(SenderName) end; lpSender.lpszAddress := PChar('SMTP:'+SenderEMail); lpSender.ulReserved := 0; lpSender.ulEIDSize := 0; lpSender.lpEntryID := nil; lpOriginator := @lpSender; end; if (RecepientEMail<>'') then begin lpRecepient.ulRecipClass := MAPI_TO; if (RecepientName='') then begin lpRecepient.lpszName := PChar(RecepientEMail) end else begin lpRecepient.lpszName := PChar(RecepientName) end; lpRecepient.lpszAddress := PChar('SMTP:'+RecepientEMail); lpRecepient.ulReserved := 0; lpRecepient.ulEIDSize := 0; lpRecepient.lpEntryID := nil; nRecipCount := 1; lpRecips := @lpRecepient; end else begin lpRecips := nil end; if (FileName='') then begin nFileCount := 0; lpFiles := nil; end else begin FillChar(FileAttach, SizeOf(FileAttach), 0); FileAttach.nPosition := Cardinal($FFFFFFFF); FileAttach.lpszPathName := PChar(FileName); nFileCount := 1; lpFiles := @FileAttach; end; end; MAPIModule := LoadLibrary(PChar(MAPIDLL)); if MAPIModule=0 then begin Result := -1 end else begin try @SM := GetProcAddress(MAPIModule, 'MAPISendMail'); if @SM<>nil then begin Result := SM(0, Application.Handle, message, MAPI_DIALOG or MAPI_LOGON_UI, 0); end else begin Result := 1 end; finally FreeLibrary(MAPIModule); end; end; if Result<>0 then begin MessageDlg('Error sending mail ('+IntToStr(Result)+').', mtError, [mbOk], 0) end;

    Read the article

  • How to debug this?

    - by LeonixSolutions
    I have an application which takes measurements every second (I am running it in demo mode & generating random data, so the problem is not to do with reading from devices attached to the serial port). After 5 or 6 minutes it hangs. I have added try // entire body of procedure/function goes here except on E: Exception do begin MessageDlg('Internal coding error in <function name>()', mtError, [mbOK], 0); end; end; to every single function (and Application.Run() in the project file), but I don't see any message dialogs. Any idea how I can test this?

    Read the article

  • The same property and procedure in different Classes. How they can be accessed ?

    - by lyborko
    Hi, I created several new objects TMyMemo = class (TMemo) private FYahoo = Integer; procedure SetYahoo(Value:integer) public procedure Google(A,B:integer; S:string); published property Yahoo:integer read FYahoo write SetYahoo; end; TMyPaintbox = class (TPaintbox) private FYahoo = Integer; procedure SetYahoo(Value:integer) public procedure Google(A,B:integer; S:string); published property Yahoo:integer read FYahoo write SetYahoo; end; TMyButton = class (TButton) private FYahoo = Integer; procedure SetYahoo(Value:integer) public procedure Google(A,B:integer; S:string); published property Yahoo:integer read FYahoo write SetYahoo; end; . . . These Controls are placed on Form1. Is there a way, how can I change the same property (Yahoo) and run the procedure (Google), which is declared in different objects (inheritance is not possible) ? procedure Form1.Button1Click(Sender:TObject); var i:integer; begin for i:=0 to Form1.ControlCount-1 do begin Controls[i].Google(4,5, 'Web'); // this should be changed somehow Controls[i].Yahoo:=6; // this should be changed somehow end; end; end; Thanks

    Read the article

  • How to use SetTextCharacterExtra in TEdit or TMemo?

    - by lyborko
    Hi, Does anybody know any component based on TEdit or TMemo, in which is possible to set different intercharacter spacing? Win API SetTextCharacterExtra solves the problem for Tcanvas, but I tried hard to implement this behavior as a property for my own TEdit Component (a year ago) and despite of my various desperate attempts to do this, I failed. Thanx in advance.

    Read the article

  • OO Design: use Properties or Overloaded methods?

    - by Robert Frank
    Question about OO design. Suppose I have a base object vehicle. And two descendants: truck and automobile. Further, suppose the base object has a base method: FixFlatTire(); abstract; When the truck and automobile override the base object's, they require different information from the caller. Am I better off overloading FixFlatTire like this in the two descendant objects: Procedure Truck.FixFlatTire( OfficePhoneNumber: String; NumberOfAxles: Integer): Override; Overload; Procedure Automobile.FixFlatTire( WifesPhoneNumber: String; AAAMembershipID: String): Override; Overload; Or introducing new properties in each of the descendants and then setting them before calling FixFlatTire, like this: Truck.OfficePhoneNumber := '555-555-1212'; Truck.NumberOfAxles := 18; Truck.FixFlatTire(); Automobile.WifesPhoneNumber := '555-555-2323'; Automobile.AAAMembershipID := 'ABC'; Automobile.FixFlatTire();

    Read the article

  • How to get TextWidth of string (without Canvas)?

    - by lyborko
    Hi, I would like to get text width of a string before an application starts. Everything works fine untill Application.MainForm canvas present. The problem is, when I try dynamicaly create TOrdinarium in the OnCreate event of the app. main form, "Canvas does not allow drawing" error occures. (Application.MainForm is nil....). I tried several ways to create Canvas dynamicaly (one of them is written below), but it can not measure text sizes without being attached to parented control. Is there way how to make it work somehow? Thanx I tried this: TOrdinarium = class (TCustomControl) private function GetVirtualWidth:integer; end; constructor TOrdinarium.Create(AOwner:TComponent); begin inherited; Width:=GetVirtualWidth; end; function TOrdinarium.GetVirtualWidth:integer; var ACanvas : TControlCanvas; begin ACanvas := TControlCanvas.Create; TControlCanvas(ACanvas).Control := Application.MainForm; ACanvas.Font.Assign(Font); result:=ACanvas.TextWidth('0'); ACanvas.Free; end;

    Read the article

  • Inverse function of FormatDateTime

    - by Salvador
    i am looking an funtion to reverse any string (YYYYMDD,YY/MM/DD,YYMMDD,...) created by the function FormatDateTime to datetime. example i have a string-date in format YYYYMMDDcreated by FormatDateTime mydatestr:=FormatDateTime('YYYYMMDD',Mydate); now how i can convert mydatestr to DateTime again?

    Read the article

  • Sticky notes associated with web page - how to?

    - by volvox
    I have this idea for a project. Associated with any web page, i want to create notes that will be saved locally in a database, the notes will be reloaded automatically from that database the next time i visit the same page. Creating the note is easy, but i'm looking for how to link the notes to the web page url and how to keep aware of the active web page. Any idea? (Note: i have come to this searching on the internet: http://webkit.org/demos/sticky-notes/ - this is part of WebKit Open source projects) - this is about what i'm looking for. Thank.

    Read the article

  • Strange behaviour when simply adding strings in Lazarus - FreePascal

    - by linkcharger
    The program has several "encryption" algorithms. This one should blockwise reverse the input. "He|ll|o " becomes "o |ll|He" (block length of 2). I add two strings, in this case appending the result string to the current "block" string and making that the result. When I add the result first and then the block it works fine and gives me back the original string. But when i try to reverse the order it just gives me the the last "block". Several other functions that are used for "rotation" are above. //amount of blocks function amBl(i1:integer;i2:integer):integer; begin if (i1 mod i2) <> 0 then result := (i1 div i2) else result := (i1 div i2) - 1; end; //calculation of block length function calcBl(keyStr:string):integer; var i:integer; begin result := 0; for i := 1 to Length(keyStr) do begin result := (result + ord(keyStr[i])) mod 5; result := result + 2; end; end; //desperate try to add strings function append(s1,s2:string):string; begin insert(s2,s1,Length(s1)+1); result := s1; end; function rotation(inStr,keyStr:string):string; var //array of chars -> string block,temp:string; //position in block variable posB:integer; //block length and block count variable bl, bc:integer; //null character as placeholder n : ansiChar; begin //calculating block length 2..6 bl := calcBl(keyStr); setLength(block,bl); result := ''; temp := ''; {n := #00;} for bc := 0 to amBl(Length(inStr),bl) do begin //filling block with chars starting from back of virtual block (in inStr) for posB := 1 to bl do begin block[posB] := inStr[bc * bl + posB]; {if inStr[bc * bl + posB] = ' ' then block[posB] := n;} end; //adding the block in front of the existing result string temp := result; result := block + temp; //result := append(block,temp); //result := concat(block,temp); end; end; (full code http://pastebin.com/6Uarerhk) After all the loops "result" has the right value, but in the last step (between "result := block + temp" and the "end;" of the function) "block" replaces the content of "result" with itself completely, it doesn't add result at the end anymore. And as you can see I even used a temp variable to try to work around that.. doesnt change anything though.

    Read the article

  • Why does Indy 10's echo server have high CPU usage when the client disconnects?

    - by Virtuo
    When I disconnect echo client like : EchoClient1.Disconnect; client disconnects fine... but EchoServer does NOT EVEN register client disconnection and it ends up with high process usage !?!? in every example and every doc it says that calling EchoClient.Disconnect is sufficient ! anyone, any idea ? (I am working in Win7, cloud that be a problem ?) Server code : procedure TForm2.EServerConnect(AContext: TIdContext); begin SrvMsg.Lines.Add('ECHO Client connected !'); end; procedure TForm2.EServerDisconnect(AContext: TIdContext); begin SrvMsg.Lines.Add('ECHO Client disconnected !'); end; problem is "TForm2.EServerDisconnect" never executes !?!?

    Read the article

  • Should I use block identifiers ("end;") in my code?

    - by JosephStyons
    Code Complete says it is good practice to always use block identifiers, both for clarity and as a defensive measure. Since reading that book, I've been doing that religiously. Sometimes it seems excessive though, as in the case below. Is Steve McConnell right to insist on always using block identifiers? Which of these would you use? //naughty and brief with myGrid do for currRow := FixedRows to RowCount - 1 do if RowChanged(currRow) then if not(RecordExists(currRow)) then InsertNewRecord(currRow) else UpdateExistingRecord(currRow); //well behaved and verbose with myGrid do begin for currRow := FixedRows to RowCount - 1 do begin if RowChanged(currRow) then begin if not(RecordExists(currRow)) then begin InsertNewRecord(currRow); end //if it didn't exist, so insert it else begin UpdateExistingRecord(currRow); end; //else it existed, so update it end; //if any change end; //for each row in the grid end; //with myGrid

    Read the article

  • Name Value Pairs in a ComboBox

    - by JamesB
    I'm convinced this must be a common problem, but I can't seem to find a simple solution... I want to use a combobox control with name value pairs as the items. ComboBox takes TStrings as its items so that should be fine. Unfortunately the drawing method on a combobox draws Items[i] so you get Name=Value in the box. I'd like the value to be hidden, so I can work with the value in code, but the user sees the name. Any Ideas?

    Read the article

  • How to hide and disable cursor globally?

    - by trudger
    I have two questions: How to hide cursor for all programs? I tried to hide the cursor by using ShowCursor, but it only works in my program. The cursor still appears when moving cursor outside of my program. How to disable mouse operations for all programs? I use SetWindowsHookEx to hook mouse and prevent other programs to processing the mouse operations. I can hook the clicks, but the problem is that I can't hook the "move". When I move the mouse to menu or system buttons ("minimize/restore/close"), they are highlighted. This means they can still "see" the mouse. Can anyone help me please?

    Read the article

  • Return no records if FIndKey results in False?

    - by jwilfong
    Using TDataSet.FindKey you can locate records. When it results in True the datasets cursor will be positioned on the found record. When it results in False the cursor is not moved. This results in the record data prior to FindKey being issued being displayed in data aware components. How can I code the result of FindKey to return an empty record? if Not tblSomeTable.FindKey([SomeSearchData]) then begin < code to return empty or move data cursor to neutral position > end; Thanks, John

    Read the article

  • What is considered bleeding edge in programming these days?

    - by iestyn
    What is "bleeding edge" these days? has it all been done before us, and we are just discovering new ways of implementing mathematical constructs within programming? Functional Programming seems to be making inroads in all areas, but is this just marketing to create interest in a programming arena where it appears that the state of the art has climaxed too soon. have the sales men got hold of the script, and selling ideas that can be sold, dumbing down the future? I see very old ideas making their way into the market place....what are the truly new things that should be considered fresh and new in 2010 onwards, and not some 1960-1980 idea being refocused.

    Read the article

  • VirtualStringTree hide node(s)

    - by michal
    Hi, is that possible to hide specific nodes in VirtualStringTree? I'm implementing "filtering" feature (the VST acts as a list with columns), and I'd like to avoid reloading content each time the filter is changed - instead, much faster would be to tell VST not to render specific items ... any solutions?

    Read the article

  • run a program under a limited user account

    - by sam
    hi all, i want to develop a program that will process images and show all esxisting images with details like "picasa photo viewer",also i have a windows service that gathering new images,it will run under "Local System Account",but in limited user account my program don't work,how i can run my program from limited user account ? thx for ur time

    Read the article

  • How to uniquely identify a monitor?

    - by Jerry Dodge
    I'm working on a project where I take screenshots of individual monitors (TMonitor) and stream their images through network (remote desktop viewing). Suppose a monitor is added/removed (which I can recognize this already), I need to synchronize which monitor this happened to. Because, suppose there's 3 monitors, indexes 0, 1, 2. Monitor 1 is removed. I don't want to automatically change index 2 to 1, I want it to maintain an ID at all times. Is there any property I can recognize in the TMonitor class (Screen.Monitors[i]) to uniquely identify it?

    Read the article

< Previous Page | 50 51 52 53 54 55 56 57 58 59 60 61  | Next Page >