

limelect
Members-
Content Count
913 -
Joined
-
Last visited
-
Days Won
1
limelect last won the day on April 15 2022
limelect had the most liked content!
Community Reputation
52 ExcellentRecent Profile Visitors
The recent visitors block is disabled and is not being shown to other users.
-
@Remy Lebeau To begin, thank you for helping a lot I cannot put here what I did, as it has too many places fixed. those 2 lines PListItemData(lvClip.Selected.Data).ThePicture.Free; Dispose(PListItemData(lvClip.Selected.Data)); were added in many places, and more my software closes nicely without any leaks So thanks again
-
Ok, I did a very simple test One line of text and delete then if ListItemData.ThePicture.empty then exit ;<<<<<<<<<<<< error cannot check ListItemData.ThePicture.Free; If I check with nil ListItemData.ThePicture is NOT nil I will keep checking to find what's going on.
-
Surely I followed your suggestion, which works OnDeletion is not done only if I want to delete Only if I delete a line in the list, unless I do not understand you This is why I have a form onclose. From the source New(ListItemData); try ListItemData.theString := s.Text; if ContainsText(s.Text, 'Picture') then begin ListItemData.ThePicture := nil; BlobField := FDQuery2.FieldByName('Image') as TBlobField; Stream := FDQuery2.CreateBlobStream(BlobField, bmRead); ListItemData.ThePicture := TBitmap.Create; ListItemData.ThePicture.LoadFromStream(Stream); FreeAndNil(Stream); end; ClipItem.Data := ListItemData; except ListItemData.ThePicture.Free; Dispose(ListItemData); end; lvClip.Items.EndUpdate; FDQuery2.Next; end; s.Free; That's it, nothing else Ok, let me explain the application. Sometimes you have text only, and at times text and Bitmap on the same line So I check for bitmap nill, but something fishy is that beside the above
-
@Remy Lebeau Obviously, it works, but using this, free gives an error D10,2,3 procedure TMyForm.lvClipDeletion(Sender: TObject; Item: TListItem); var ListItemData: PListItemData; begin ListItemData := PListItemData(Item.Data); if ListItemData <> nill then begin ListItemData.ThePicture.Free; <<<<<<<<<<<<<<<< error Dispose(ListItemData); end; end; On vcl.control procedure TWinControl.MainWndProc(var Message: TMessage); begin try try WindowProc(Message); finally FreeDeviceContexts; FreeMemoryContexts; end; except Application.HandleException(Self); <<<<<<<<<<<< error end; end; I wanted to add this to the program close procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction); var i: Integer; ListItemData: PListItemData; begin for i := 0 to lvClip.Items.Count - 1 do // if lvClip.Items.Data <> nil then begin ListItemData := PListItemData(lvClip.Items.Data); if ListItemData <> nil then begin // PListItemData(lvClip.Items.Data).ThePicture.Free; ListItemData.ThePicture.Free; <<<<<<<<<< Error and // Dispose(ListItemData); <<<<<<<<<<< I cannot use this as it gives many more errors end; end; end; Any Idea ?
-
I hope I explained my problem with the listview I have 2 pictures and 2 text Adding text ,the text items is OK, but Adding 2 pictures is the problem PListItemData = ^TListItemData; TListItemData = record theString: string; ThePicture: TBitmap; end; b: Tbitmap; <<<< is created at oncreat. var ClipItem: TListItem; ListItemData: PListItemData; while not FDQuery2.Eof do begin ------ process Query ClipItem := lvClip.Items.Insert(0); New(ListItemData); try ListItemData.theString := s.Text; <<< OK if ContainsText(s.Text, 'Picture') then begin b.Assign(nil); BlobField := FDQuery2.FieldByName('Image') as TBlobField; Stream := FDQuery2.CreateBlobStream(BlobField, bmRead);<<< read the picture b.LoadFromStream(Stream); ListItemData.ThePicture := TBitmap(b); <<<< get also the picture FreeAndNil(Stream); end; ClipItem.Data := ListItemData; except Dispose(ListItemData); end; FDQuery2.Next; end; No problem, no leak BUT !!!! Now to the problem of looping twice PListItemData(lvClip.Items[0].data).ThePicture <<<< first picture PListItemData(lvClip.Items[0].data).TheString <<< first text OK Second time in the loop PListItemData(lvClip.Items[1].data).ThePicture <<< got second picture PListItemData(lvClip.Items[1].data).TheString <<< second text OK But now PListItemData(lvClip.Items[0].data).ThePicture got the second picture SO, more explanation. The first item got the second picture!!! But the text is OK it has 2 texts no problem On the breakpoint, I see the watch list as PListItemData(lvClip.Items[0].data).ThePicture PListItemData(lvClip.Items[0].data).TheString PListItemData(lvClip.Items[1].data).ThePicture PListItemData(lvClip.Items[1].data).TheString
-
@Uwe Raabe I thought so as long as the Gexpert DLL is installed. @Lajos Juhász Is wrong. I suggest you try it, it's so simple to do. The toolbar pictures will not disappear
-
Yes, it took a while to cook
-
This is a guy not worth considering why https://github.com/mesutde/Delphi-Youtube-Downloader/issues/1 does not respect the knowledge of others "I'm currently downloading a video that you can't download. First, improve yourself." Sorry, usually I do not respond, but in this case, he made me angry
-
@Die Holländer My problem is understanding why I see the bmp on the keys, even though I have no link to any bitmaps Just try it and see if you can explain the phenomenon Get Gexpert procedure list from the source and copy the toolbar to a new form That's it.
-
The only way it knows is from the Gexpert DLL, which means that it has hidden resources. Try it yourself and see if you have the Gexpert source P.S. I just copied the toolbar from the FORM ( procedure list), nothing else!!!!!!!!!!!
-
I copied a toolbar from the Gexpert procedure list form Now, someone can explain The toolbar is on a NEW FORM. As one can see from the DFM, it has 2 sections object ToolBar: TToolBar Left = 0 Top = 27 Width = 552 Height = 22 AutoSize = True DisabledImages = dmSharedImages.DisabledImages <<<<<<< Images = dmSharedImages.Images<<<<<<<<<<<<< And the buttons show the icons On the form, there are no uses !!!! for it Can anyone explain why I see pictures on the buttons? Is it because GEXPERT is in my IDE? This means I can use all Delphi resources, even if they are hidden. P.S. Running this form, the icons disappear !!!
-
It does not matter. Things can fail on restart and then go back to OK. It happens to me hundred of times.
-
Read carefully this is my experience similar to yours